# frozen_string_literal: true # WARNING ABOUT GENERATED CODE # # This file is generated. See the contributing guide for more information: # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md # # WARNING ABOUT GENERATED CODE module Aws::LexRuntimeV2 module Types # @!attribute [rw] message # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/AccessDeniedException AWS API Documentation # class AccessDeniedException < Struct.new( :message, :event_type) SENSITIVE = [] include Aws::Structure end # Contains information about the contexts that a user is using in a # session. You can configure Amazon Lex V2 to set a context when an # intent is fulfilled, or you can set a context using the , , or # operations. # # Use a context to indicate to Amazon Lex V2 intents that should be used # as follow-up intents. For example, if the active context is # `order-fulfilled`, only intents that have `order-fulfilled` configured # as a trigger are considered for follow up. # # @!attribute [rw] name # The name of the context. # @return [String] # # @!attribute [rw] time_to_live # Indicates the number of turns or seconds that the context is active. # Once the time to live expires, the context is no longer returned in # a response. # @return [Types::ActiveContextTimeToLive] # # @!attribute [rw] context_attributes # A list of contexts active for the request. A context can be # activated when a previous intent is fulfilled, or by including the # context in the request. # # If you don't specify a list of contexts, Amazon Lex V2 will use the # current list of contexts for the session. If you specify an empty # list, all contexts for the session are cleared. # @return [Hash] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/ActiveContext AWS API Documentation # class ActiveContext < Struct.new( :name, :time_to_live, :context_attributes) SENSITIVE = [:context_attributes] include Aws::Structure end # The time that a context is active. You can specify the time to live in # seconds or in conversation turns. # # @!attribute [rw] time_to_live_in_seconds # The number of seconds that the context is active. You can specify # between 5 and 86400 seconds (24 hours). # @return [Integer] # # @!attribute [rw] turns_to_live # The number of turns that the context is active. You can specify up # to 20 turns. Each request and response from the bot is a turn. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/ActiveContextTimeToLive AWS API Documentation # class ActiveContextTimeToLive < Struct.new( :time_to_live_in_seconds, :turns_to_live) SENSITIVE = [] include Aws::Structure end # Represents a chunk of audio sent from the client application to Amazon # Lex V2. The audio is all or part of an utterance from the user. # # Amazon Lex V2 accumulates audio chunks until it recognizes a natural # pause in speech before processing the input. # # @!attribute [rw] audio_chunk # An encoded stream of audio. # @return [String] # # @!attribute [rw] content_type # The encoding used for the audio chunk. You must use 8 KHz PCM 16-bit # mono-channel little-endian format. The value of the field should be: # # `audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; # is-big-endian=false` # @return [String] # # @!attribute [rw] event_id # A unique identifier that your application assigns to the event. You # can use this to identify events in logs. # @return [String] # # @!attribute [rw] client_timestamp_millis # A timestamp set by the client of the date and time that the event # was sent to Amazon Lex V2. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/AudioInputEvent AWS API Documentation # class AudioInputEvent < Struct.new( :audio_chunk, :content_type, :event_id, :client_timestamp_millis, :event_type) SENSITIVE = [] include Aws::Structure end # An event sent from Amazon Lex V2 to your client application containing # audio to play to the user. # # @!attribute [rw] audio_chunk # A chunk of the audio to play. # @return [String] # # @!attribute [rw] content_type # The encoding of the audio chunk. This is the same as the encoding # configure in the `contentType` field of the `ConfigurationEvent`. # @return [String] # # @!attribute [rw] event_id # A unique identifier of the event sent by Amazon Lex V2. The # identifier is in the form `RESPONSE-N`, where N is a number starting # with one and incremented for each event sent by Amazon Lex V2 in the # current session. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/AudioResponseEvent AWS API Documentation # class AudioResponseEvent < Struct.new( :audio_chunk, :content_type, :event_id, :event_type) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] message # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/BadGatewayException AWS API Documentation # class BadGatewayException < Struct.new( :message, :event_type) SENSITIVE = [] include Aws::Structure end # A button that appears on a response card show to the user. # # @!attribute [rw] text # The text that is displayed on the button. # @return [String] # # @!attribute [rw] value # The value returned to Amazon Lex V2 when a user chooses the button. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/Button AWS API Documentation # class Button < Struct.new( :text, :value) SENSITIVE = [] include Aws::Structure end # Provides a score that indicates the confidence that Amazon Lex V2 has # that an intent is the one that satisfies the user's intent. # # @!attribute [rw] score # A score that indicates how confident Amazon Lex V2 is that an intent # satisfies the user's intent. Ranges between 0.00 and 1.00. Higher # scores indicate higher confidence. # @return [Float] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/ConfidenceScore AWS API Documentation # class ConfidenceScore < Struct.new( :score) SENSITIVE = [] include Aws::Structure end # The initial event sent from the application to Amazon Lex V2 to # configure the conversation, including session and request attributes # and the response content type. # # @!attribute [rw] request_attributes # Request-specific information passed between the client application # and Amazon Lex V2. # # The namespace `x-amz-lex:` is reserved for special attributes. # Don't create any request attributes for prefix `x-amz-lex:`. # @return [Hash] # # @!attribute [rw] response_content_type # The message that Amazon Lex V2 returns in the response can be either # text or speech based on the `responseContentType` value. # # * If the value is `text/plain;charset=utf-8`, Amazon Lex V2 returns # text in the response. # # * If the value begins with `audio/`, Amazon Lex V2 returns speech in # the response. Amazon Lex V2 uses Amazon Polly to generate the # speech using the configuration that you specified in the # `requestContentType` parameter. For example, if you specify # `audio/mpeg` as the value, Amazon Lex V2 returns speech in the # MPEG format. # # * If the value is `audio/pcm`, the speech returned is audio/pcm in # 16-bit, little-endian format. # # * The following are the accepted values: # # * audio/mpeg # # * audio/ogg # # * audio/pcm # # * audio/* (defaults to mpeg) # # * text/plain; charset=utf-8 # @return [String] # # @!attribute [rw] session_state # The state of the user's session with Amazon Lex V2. # @return [Types::SessionState] # # @!attribute [rw] welcome_messages # A list of messages to send to the user. # # If you set the `welcomeMessage` field, you must also set the [ # `DialogAction` ][1] structure's [ `type` ][2] field. # # # # [1]: https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_DialogAction.html # [2]: https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_DialogAction.html#lexv2-Type-runtime_DialogAction-type # @return [Array] # # @!attribute [rw] disable_playback # Determines whether Amazon Lex V2 should send audio responses to the # client application. # # Set this field to false when the client is operating in a playback # mode where audio responses are played to the user. If the client # isn't operating in playback mode, such as a text chat application, # set this to true so that Amazon Lex V2 doesn't wait for the prompt # to finish playing on the client. # @return [Boolean] # # @!attribute [rw] event_id # A unique identifier that your application assigns to the event. You # can use this to identify events in logs. # @return [String] # # @!attribute [rw] client_timestamp_millis # A timestamp set by the client of the date and time that the event # was sent to Amazon Lex V2. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/ConfigurationEvent AWS API Documentation # class ConfigurationEvent < Struct.new( :request_attributes, :response_content_type, :session_state, :welcome_messages, :disable_playback, :event_id, :client_timestamp_millis, :event_type) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] message # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/ConflictException AWS API Documentation # class ConflictException < Struct.new( :message, :event_type) SENSITIVE = [] include Aws::Structure end # A DTMF character sent from the client application. DTMF characters are # typically sent from a phone keypad to represent numbers. For example, # you can have Amazon Lex V2 process a credit card number input from a # phone. # # @!attribute [rw] input_character # The DTMF character that the user pressed. The allowed characters are # A - D, 0 - 9, # and *. # @return [String] # # @!attribute [rw] event_id # A unique identifier that your application assigns to the event. You # can use this to identify events in logs. # @return [String] # # @!attribute [rw] client_timestamp_millis # A timestamp set by the client of the date and time that the event # was sent to Amazon Lex V2. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/DTMFInputEvent AWS API Documentation # class DTMFInputEvent < Struct.new( :input_character, :event_id, :client_timestamp_millis, :event_type) SENSITIVE = [:input_character] include Aws::Structure end # @!attribute [rw] bot_id # The identifier of the bot that contains the session data. # @return [String] # # @!attribute [rw] bot_alias_id # The alias identifier in use for the bot that contains the session # data. # @return [String] # # @!attribute [rw] locale_id # The locale where the session is in use. # @return [String] # # @!attribute [rw] session_id # The identifier of the session to delete. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/DeleteSessionRequest AWS API Documentation # class DeleteSessionRequest < Struct.new( :bot_id, :bot_alias_id, :locale_id, :session_id) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] bot_id # The identifier of the bot that contained the session data. # @return [String] # # @!attribute [rw] bot_alias_id # The alias identifier in use for the bot that contained the session # data. # @return [String] # # @!attribute [rw] locale_id # The locale where the session was used. # @return [String] # # @!attribute [rw] session_id # The identifier of the deleted session. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/DeleteSessionResponse AWS API Documentation # class DeleteSessionResponse < Struct.new( :bot_id, :bot_alias_id, :locale_id, :session_id) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] message # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/DependencyFailedException AWS API Documentation # class DependencyFailedException < Struct.new( :message, :event_type) SENSITIVE = [] include Aws::Structure end # The next action that Amazon Lex V2 should take. # # @!attribute [rw] type # The next action that the bot should take in its interaction with the # user. The following values are possible: # # * `Close` – Indicates that there will not be a response from the # user. For example, the statement "Your order has been placed" # does not require a response. # # * `ConfirmIntent` – The next action is asking the user if the intent # is complete and ready to be fulfilled. This is a yes/no question # such as "Place the order?" # # * `Delegate` – The next action is determined by Amazon Lex V2. # # * `ElicitIntent` – The next action is to elicit an intent from the # user. # # * `ElicitSlot` – The next action is to elicit a slot value from the # user. # @return [String] # # @!attribute [rw] slot_to_elicit # The name of the slot that should be elicited from the user. # @return [String] # # @!attribute [rw] slot_elicitation_style # Configures the slot to use spell-by-letter or spell-by-word style. # When you use a style on a slot, users can spell out their input to # make it clear to your bot. # # * Spell by letter - "b" "o" "b" # # * Spell by word - "b as in boy" "o as in oscar" "b as in boy" # # For more information, see [ Using spelling to enter slot values # ][1]. # # # # [1]: https://docs.aws.amazon.com/lexv2/latest/dg/spelling-styles.html # @return [String] # # @!attribute [rw] sub_slot_to_elicit # The name of the constituent sub slot of the composite slot specified # in slotToElicit that should be elicited from the user. # @return [Types::ElicitSubSlot] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/DialogAction AWS API Documentation # class DialogAction < Struct.new( :type, :slot_to_elicit, :slot_elicitation_style, :sub_slot_to_elicit) SENSITIVE = [] include Aws::Structure end # A notification from the client that it is disconnecting from Amazon # Lex V2. Sending a `DisconnectionEvent` event is optional, but can help # identify a conversation in logs. # # @!attribute [rw] event_id # A unique identifier that your application assigns to the event. You # can use this to identify events in logs. # @return [String] # # @!attribute [rw] client_timestamp_millis # A timestamp set by the client of the date and time that the event # was sent to Amazon Lex V2. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/DisconnectionEvent AWS API Documentation # class DisconnectionEvent < Struct.new( :event_id, :client_timestamp_millis, :event_type) SENSITIVE = [] include Aws::Structure end # The specific constituent sub slot of the composite slot to elicit in # dialog action. # # @!attribute [rw] name # The name of the slot that should be elicited from the user. # @return [String] # # @!attribute [rw] sub_slot_to_elicit # The field is not supported. # @return [Types::ElicitSubSlot] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/ElicitSubSlot AWS API Documentation # class ElicitSubSlot < Struct.new( :name, :sub_slot_to_elicit) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] bot_id # The identifier of the bot that contains the session data. # @return [String] # # @!attribute [rw] bot_alias_id # The alias identifier in use for the bot that contains the session # data. # @return [String] # # @!attribute [rw] locale_id # The locale where the session is in use. # @return [String] # # @!attribute [rw] session_id # The identifier of the session to return. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/GetSessionRequest AWS API Documentation # class GetSessionRequest < Struct.new( :bot_id, :bot_alias_id, :locale_id, :session_id) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] session_id # The identifier of the returned session. # @return [String] # # @!attribute [rw] messages # A list of messages that were last sent to the user. The messages are # ordered based on the order that your returned the messages from your # Lambda function or the order that messages are defined in the bot. # @return [Array] # # @!attribute [rw] interpretations # A list of intents that Amazon Lex V2 determined might satisfy the # user's utterance. # # Each interpretation includes the intent, a score that indicates how # confident Amazon Lex V2 is that the interpretation is the correct # one, and an optional sentiment response that indicates the sentiment # expressed in the utterance. # @return [Array] # # @!attribute [rw] session_state # Represents the current state of the dialog between the user and the # bot. # # You can use this to determine the progress of the conversation and # what the next action might be. # @return [Types::SessionState] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/GetSessionResponse AWS API Documentation # class GetSessionResponse < Struct.new( :session_id, :messages, :interpretations, :session_state) SENSITIVE = [] include Aws::Structure end # Event that Amazon Lex V2 sends to indicate that the stream is still # open between the client application and Amazon Lex V2 # # @!attribute [rw] event_id # A unique identifier of the event sent by Amazon Lex V2. The # identifier is in the form `RESPONSE-N`, where N is a number starting # with one and incremented for each event sent by Amazon Lex V2 in the # current session. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/HeartbeatEvent AWS API Documentation # class HeartbeatEvent < Struct.new( :event_id, :event_type) SENSITIVE = [] include Aws::Structure end # A card that is shown to the user by a messaging platform. You define # the contents of the card, the card is displayed by the platform. # # When you use a response card, the response from the user is # constrained to the text associated with a button on the card. # # @!attribute [rw] title # The title to display on the response card. The format of the title # is determined by the platform displaying the response card. # @return [String] # # @!attribute [rw] subtitle # The subtitle to display on the response card. The format of the # subtitle is determined by the platform displaying the response card. # @return [String] # # @!attribute [rw] image_url # The URL of an image to display on the response card. The image URL # must be publicly available so that the platform displaying the # response card has access to the image. # @return [String] # # @!attribute [rw] buttons # A list of buttons that should be displayed on the response card. The # arrangement of the buttons is determined by the platform that # displays the button. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/ImageResponseCard AWS API Documentation # class ImageResponseCard < Struct.new( :title, :subtitle, :image_url, :buttons) SENSITIVE = [] include Aws::Structure end # The current intent that Amazon Lex V2 is attempting to fulfill. # # @!attribute [rw] name # The name of the intent. # @return [String] # # @!attribute [rw] slots # A map of all of the slots for the intent. The name of the slot maps # to the value of the slot. If a slot has not been filled, the value # is null. # @return [Hash] # # @!attribute [rw] state # Indicates the fulfillment state for the intent. The meanings of each # value are as follows: # # * `Failed` – The bot failed to fulfill the intent. # # * `Fulfilled` – The bot has completed fulfillment of the intent. # # * `FulfillmentInProgress` – The bot is in the middle of fulfilling # the intent. # # * `InProgress` – The bot is in the middle of eliciting the slot # values that are necessary to fulfill the intent. # # * `ReadyForFulfillment` – The bot has elicited all the slot values # for the intent and is ready to fulfill the intent. # # * `Waiting` – The bot is waiting for a response from the user # (limited to streaming conversations). # @return [String] # # @!attribute [rw] confirmation_state # Indicates whether the intent has been `Confirmed`, `Denied`, or # `None` if the confirmation stage has not yet been reached. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/Intent AWS API Documentation # class Intent < Struct.new( :name, :slots, :state, :confirmation_state) SENSITIVE = [] include Aws::Structure end # Contains the current state of the conversation between the client # application and Amazon Lex V2. # # @!attribute [rw] input_mode # Indicates whether the input to the operation was text, speech, or # from a touch-tone keypad. # @return [String] # # @!attribute [rw] interpretations # A list of intents that Amazon Lex V2 determined might satisfy the # user's utterance. # # Each interpretation includes the intent, a score that indicates how # confident Amazon Lex V2 is that the interpretation is the correct # one, and an optional sentiment response that indicates the sentiment # expressed in the utterance. # @return [Array] # # @!attribute [rw] session_state # The state of the user's session with Amazon Lex V2. # @return [Types::SessionState] # # @!attribute [rw] request_attributes # The attributes sent in the request. # @return [Hash] # # @!attribute [rw] session_id # The identifier of the session in use. # @return [String] # # @!attribute [rw] event_id # A unique identifier of the event sent by Amazon Lex V2. The # identifier is in the form `RESPONSE-N`, where N is a number starting # with one and incremented for each event sent by Amazon Lex V2 in the # current session. # @return [String] # # @!attribute [rw] recognized_bot_member # The bot member that is processing the intent. # @return [Types::RecognizedBotMember] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/IntentResultEvent AWS API Documentation # class IntentResultEvent < Struct.new( :input_mode, :interpretations, :session_state, :request_attributes, :session_id, :event_id, :recognized_bot_member, :event_type) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] message # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/InternalServerException AWS API Documentation # class InternalServerException < Struct.new( :message, :event_type) SENSITIVE = [] include Aws::Structure end # An object containing information about an intent that Amazon Lex V2 # determined might satisfy the user's utterance. The intents are # ordered by the confidence score. # # @!attribute [rw] nlu_confidence # Determines the threshold where Amazon Lex V2 will insert the # `AMAZON.FallbackIntent`, `AMAZON.KendraSearchIntent`, or both when # returning alternative intents in a response. `AMAZON.FallbackIntent` # and `AMAZON.KendraSearchIntent` are only inserted if they are # configured for the bot. # @return [Types::ConfidenceScore] # # @!attribute [rw] sentiment_response # The sentiment expressed in an utterance. # # When the bot is configured to send utterances to Amazon Comprehend # for sentiment analysis, this field contains the result of the # analysis. # @return [Types::SentimentResponse] # # @!attribute [rw] intent # A list of intents that might satisfy the user's utterance. The # intents are ordered by the confidence score. # @return [Types::Intent] # # @!attribute [rw] interpretation_source # Specifies the service that interpreted the input. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/Interpretation AWS API Documentation # class Interpretation < Struct.new( :nlu_confidence, :sentiment_response, :intent, :interpretation_source) SENSITIVE = [] include Aws::Structure end # Container for text that is returned to the customer.. # # @!attribute [rw] content # The text of the message. # @return [String] # # @!attribute [rw] content_type # Indicates the type of response. # @return [String] # # @!attribute [rw] image_response_card # A card that is shown to the user by a messaging platform. You define # the contents of the card, the card is displayed by the platform. # # When you use a response card, the response from the user is # constrained to the text associated with a button on the card. # @return [Types::ImageResponseCard] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/Message AWS API Documentation # class Message < Struct.new( :content, :content_type, :image_response_card) SENSITIVE = [:content] include Aws::Structure end # Event sent from the client application to Amazon Lex V2 to indicate # that playback of audio is complete and that Amazon Lex V2 should start # processing the user's input. # # @!attribute [rw] event_id # A unique identifier that your application assigns to the event. You # can use this to identify events in logs. # @return [String] # # @!attribute [rw] client_timestamp_millis # A timestamp set by the client of the date and time that the event # was sent to Amazon Lex V2. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/PlaybackCompletionEvent AWS API Documentation # class PlaybackCompletionEvent < Struct.new( :event_id, :client_timestamp_millis, :event_type) SENSITIVE = [] include Aws::Structure end # Event sent from Amazon Lex V2 to indicate to the client application # should stop playback of audio. For example, if the client is playing a # prompt that asks for the user's telephone number, the user might # start to say the phone number before the prompt is complete. Amazon # Lex V2 sends this event to the client application to indicate that the # user is responding and that Amazon Lex V2 is processing their input. # # @!attribute [rw] event_reason # Indicates the type of user input that Amazon Lex V2 detected. # @return [String] # # @!attribute [rw] caused_by_event_id # The identifier of the event that contained the audio, DTMF, or text # that caused the interruption. # @return [String] # # @!attribute [rw] event_id # A unique identifier of the event sent by Amazon Lex V2. The # identifier is in the form `RESPONSE-N`, where N is a number starting # with one and incremented for each event sent by Amazon Lex V2 in the # current session. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/PlaybackInterruptionEvent AWS API Documentation # class PlaybackInterruptionEvent < Struct.new( :event_reason, :caused_by_event_id, :event_id, :event_type) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] bot_id # The identifier of the bot that receives the session data. # @return [String] # # @!attribute [rw] bot_alias_id # The alias identifier of the bot that receives the session data. # @return [String] # # @!attribute [rw] locale_id # The locale where the session is in use. # @return [String] # # @!attribute [rw] session_id # The identifier of the session that receives the session data. # @return [String] # # @!attribute [rw] messages # A list of messages to send to the user. Messages are sent in the # order that they are defined in the list. # @return [Array] # # @!attribute [rw] session_state # Sets the state of the session with the user. You can use this to set # the current intent, attributes, context, and dialog action. Use the # dialog action to determine the next step that Amazon Lex V2 should # use in the conversation with the user. # @return [Types::SessionState] # # @!attribute [rw] request_attributes # Request-specific information passed between Amazon Lex V2 and the # client application. # # The namespace `x-amz-lex:` is reserved for special attributes. # Don't create any request attributes with the prefix `x-amz-lex:`. # @return [Hash] # # @!attribute [rw] response_content_type # The message that Amazon Lex V2 returns in the response can be either # text or speech depending on the value of this parameter. # # * If the value is `text/plain; charset=utf-8`, Amazon Lex V2 returns # text in the response. # # ^ # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/PutSessionRequest AWS API Documentation # class PutSessionRequest < Struct.new( :bot_id, :bot_alias_id, :locale_id, :session_id, :messages, :session_state, :request_attributes, :response_content_type) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] content_type # The type of response. Same as the type specified in the # `responseContentType` field in the request. # @return [String] # # @!attribute [rw] messages # A list of messages that were last sent to the user. The messages are # ordered based on how you return the messages from you Lambda # function or the order that the messages are defined in the bot. # @return [String] # # @!attribute [rw] session_state # A base-64-encoded gzipped field that represents the current state of # the dialog between the user and the bot. Use this to determine the # progress of the conversation and what the next action may be. # @return [String] # # @!attribute [rw] request_attributes # A base-64-encoded gzipped field that provides request-specific # information passed between the client application and Amazon Lex V2. # These are the same as the `requestAttribute` parameter in the call # to the `PutSession` operation. # @return [String] # # @!attribute [rw] session_id # The identifier of the session that received the data. # @return [String] # # @!attribute [rw] audio_stream # If the requested content type was audio, the audio version of the # message to convey to the user. # @return [IO] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/PutSessionResponse AWS API Documentation # class PutSessionResponse < Struct.new( :content_type, :messages, :session_state, :request_attributes, :session_id, :audio_stream) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] bot_id # The identifier of the bot that processes the request. # @return [String] # # @!attribute [rw] bot_alias_id # The alias identifier in use for the bot that processes the request. # @return [String] # # @!attribute [rw] locale_id # The locale where the session is in use. # @return [String] # # @!attribute [rw] session_id # The identifier of the user session that is having the conversation. # @return [String] # # @!attribute [rw] text # The text that the user entered. Amazon Lex V2 interprets this text. # @return [String] # # @!attribute [rw] session_state # The current state of the dialog between the user and the bot. # @return [Types::SessionState] # # @!attribute [rw] request_attributes # Request-specific information passed between the client application # and Amazon Lex V2 # # The namespace `x-amz-lex:` is reserved for special attributes. # Don't create any request attributes with the prefix `x-amz-lex:`. # @return [Hash] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/RecognizeTextRequest AWS API Documentation # class RecognizeTextRequest < Struct.new( :bot_id, :bot_alias_id, :locale_id, :session_id, :text, :session_state, :request_attributes) SENSITIVE = [:text] include Aws::Structure end # @!attribute [rw] messages # A list of messages last sent to the user. The messages are ordered # based on the order that you returned the messages from your Lambda # function or the order that the messages are defined in the bot. # @return [Array] # # @!attribute [rw] session_state # Represents the current state of the dialog between the user and the # bot. # # Use this to determine the progress of the conversation and what the # next action may be. # @return [Types::SessionState] # # @!attribute [rw] interpretations # A list of intents that Amazon Lex V2 determined might satisfy the # user's utterance. # # Each interpretation includes the intent, a score that indicates now # confident Amazon Lex V2 is that the interpretation is the correct # one, and an optional sentiment response that indicates the sentiment # expressed in the utterance. # @return [Array] # # @!attribute [rw] request_attributes # The attributes sent in the request. # @return [Hash] # # @!attribute [rw] session_id # The identifier of the session in use. # @return [String] # # @!attribute [rw] recognized_bot_member # The bot member that recognized the text. # @return [Types::RecognizedBotMember] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/RecognizeTextResponse AWS API Documentation # class RecognizeTextResponse < Struct.new( :messages, :session_state, :interpretations, :request_attributes, :session_id, :recognized_bot_member) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] bot_id # The identifier of the bot that should receive the request. # @return [String] # # @!attribute [rw] bot_alias_id # The alias identifier in use for the bot that should receive the # request. # @return [String] # # @!attribute [rw] locale_id # The locale where the session is in use. # @return [String] # # @!attribute [rw] session_id # The identifier of the session in use. # @return [String] # # @!attribute [rw] session_state # Sets the state of the session with the user. You can use this to set # the current intent, attributes, context, and dialog action. Use the # dialog action to determine the next step that Amazon Lex V2 should # use in the conversation with the user. # # The `sessionState` field must be compressed using gzip and then # base64 encoded before sending to Amazon Lex V2. # @return [String] # # @!attribute [rw] request_attributes # Request-specific information passed between the client application # and Amazon Lex V2 # # The namespace `x-amz-lex:` is reserved for special attributes. # Don't create any request attributes for prefix `x-amz-lex:`. # # The `requestAttributes` field must be compressed using gzip and then # base64 encoded before sending to Amazon Lex V2. # @return [String] # # @!attribute [rw] request_content_type # Indicates the format for audio input or that the content is text. # The header must start with one of the following prefixes: # # * PCM format, audio data must be in little-endian byte order. # # * audio/l16; rate=16000; channels=1 # # * audio/x-l16; sample-rate=16000; channel-count=1 # # * audio/lpcm; sample-rate=8000; sample-size-bits=16; # channel-count=1; is-big-endian=false # # * Opus format # # * audio/x-cbr-opus-with-preamble;preamble-size=0;bit-rate=256000;frame-size-milliseconds=4 # # ^ # # * Text format # # * text/plain; charset=utf-8 # # ^ # @return [String] # # @!attribute [rw] response_content_type # The message that Amazon Lex V2 returns in the response can be either # text or speech based on the `responseContentType` value. # # * If the value is `text/plain;charset=utf-8`, Amazon Lex V2 returns # text in the response. # # * If the value begins with `audio/`, Amazon Lex V2 returns speech in # the response. Amazon Lex V2 uses Amazon Polly to generate the # speech using the configuration that you specified in the # `responseContentType` parameter. For example, if you specify # `audio/mpeg` as the value, Amazon Lex V2 returns speech in the # MPEG format. # # * If the value is `audio/pcm`, the speech returned is `audio/pcm` at # 16 KHz in 16-bit, little-endian format. # # * The following are the accepted values: # # * audio/mpeg # # * audio/ogg # # * audio/pcm (16 KHz) # # * audio/* (defaults to mpeg) # # * text/plain; charset=utf-8 # @return [String] # # @!attribute [rw] input_stream # User input in PCM or Opus audio format or text format as described # in the `requestContentType` parameter. # @return [IO] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/RecognizeUtteranceRequest AWS API Documentation # class RecognizeUtteranceRequest < Struct.new( :bot_id, :bot_alias_id, :locale_id, :session_id, :session_state, :request_attributes, :request_content_type, :response_content_type, :input_stream) SENSITIVE = [:session_state, :request_attributes] include Aws::Structure end # @!attribute [rw] input_mode # Indicates whether the input mode to the operation was text, speech, # or from a touch-tone keypad. # @return [String] # # @!attribute [rw] content_type # Content type as specified in the `responseContentType` in the # request. # @return [String] # # @!attribute [rw] messages # A list of messages that were last sent to the user. The messages are # ordered based on the order that you returned the messages from your # Lambda function or the order that the messages are defined in the # bot. # # The `messages` field is compressed with gzip and then base64 # encoded. Before you can use the contents of the field, you must # decode and decompress the contents. See the example for a simple # function to decode and decompress the contents. # @return [String] # # @!attribute [rw] interpretations # A list of intents that Amazon Lex V2 determined might satisfy the # user's utterance. # # Each interpretation includes the intent, a score that indicates how # confident Amazon Lex V2 is that the interpretation is the correct # one, and an optional sentiment response that indicates the sentiment # expressed in the utterance. # # The `interpretations` field is compressed with gzip and then base64 # encoded. Before you can use the contents of the field, you must # decode and decompress the contents. See the example for a simple # function to decode and decompress the contents. # @return [String] # # @!attribute [rw] session_state # Represents the current state of the dialog between the user and the # bot. # # Use this to determine the progress of the conversation and what the # next action might be. # # The `sessionState` field is compressed with gzip and then base64 # encoded. Before you can use the contents of the field, you must # decode and decompress the contents. See the example for a simple # function to decode and decompress the contents. # @return [String] # # @!attribute [rw] request_attributes # The attributes sent in the request. # # The `requestAttributes` field is compressed with gzip and then # base64 encoded. Before you can use the contents of the field, you # must decode and decompress the contents. # @return [String] # # @!attribute [rw] session_id # The identifier of the session in use. # @return [String] # # @!attribute [rw] input_transcript # The text used to process the request. # # If the input was an audio stream, the `inputTranscript` field # contains the text extracted from the audio stream. This is the text # that is actually processed to recognize intents and slot values. You # can use this information to determine if Amazon Lex V2 is correctly # processing the audio that you send. # # The `inputTranscript` field is compressed with gzip and then base64 # encoded. Before you can use the contents of the field, you must # decode and decompress the contents. See the example for a simple # function to decode and decompress the contents. # @return [String] # # @!attribute [rw] audio_stream # The prompt or statement to send to the user. This is based on the # bot configuration and context. For example, if Amazon Lex V2 did not # understand the user intent, it sends the `clarificationPrompt` # configured for the bot. If the intent requires confirmation before # taking the fulfillment action, it sends the `confirmationPrompt`. # Another example: Suppose that the Lambda function successfully # fulfilled the intent, and sent a message to convey to the user. Then # Amazon Lex V2 sends that message in the response. # @return [IO] # # @!attribute [rw] recognized_bot_member # The bot member that recognized the utterance. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/RecognizeUtteranceResponse AWS API Documentation # class RecognizeUtteranceResponse < Struct.new( :input_mode, :content_type, :messages, :interpretations, :session_state, :request_attributes, :session_id, :input_transcript, :audio_stream, :recognized_bot_member) SENSITIVE = [] include Aws::Structure end # The bot member that processes the request. # # @!attribute [rw] bot_id # The identifier of the bot member that processes the request. # @return [String] # # @!attribute [rw] bot_name # The name of the bot member that processes the request. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/RecognizedBotMember AWS API Documentation # class RecognizedBotMember < Struct.new( :bot_id, :bot_name) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] message # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/ResourceNotFoundException AWS API Documentation # class ResourceNotFoundException < Struct.new( :message, :event_type) SENSITIVE = [] include Aws::Structure end # Provides an array of phrases that should be given preference when # resolving values for a slot. # # @!attribute [rw] runtime_hint_values # One or more strings that Amazon Lex V2 should look for in the input # to the bot. Each phrase is given preference when deciding on slot # values. # @return [Array] # # @!attribute [rw] sub_slot_hints # A map of constituent sub slot names inside a composite slot in the # intent and the phrases that should be added for each sub slot. # Inside each composite slot hints, this structure provides a # mechanism to add granular sub slot phrases. Only sub slot hints are # supported for composite slots. The intent name, composite slot name # and the constituent sub slot names must exist. # @return [Hash] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/RuntimeHintDetails AWS API Documentation # class RuntimeHintDetails < Struct.new( :runtime_hint_values, :sub_slot_hints) SENSITIVE = [] include Aws::Structure end # Provides the phrase that Amazon Lex V2 should look for in the user's # input to the bot. # # @!attribute [rw] phrase # The phrase that Amazon Lex V2 should look for in the user's input # to the bot. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/RuntimeHintValue AWS API Documentation # class RuntimeHintValue < Struct.new( :phrase) SENSITIVE = [] include Aws::Structure end # You can provide Amazon Lex V2 with hints to the phrases that a # customer is likely to use for a slot. When a slot with hints is # resolved, the phrases in the runtime hints are preferred in the # resolution. You can provide hints for a maximum of 100 intents. You # can provide a maximum of 100 slots. # # Before you can use runtime hints with an existing bot, you must first # rebuild the bot. # # For more information, see [Using runtime hints to improve recognition # of slot values][1]. # # # # [1]: https://docs.aws.amazon.com/lexv2/latest/dg/using-hints.html # # @!attribute [rw] slot_hints # A list of the slots in the intent that should have runtime hints # added, and the phrases that should be added for each slot. # # The first level of the `slotHints` map is the name of the intent. # The second level is the name of the slot within the intent. For more # information, see [Using hints to improve accuracy][1]. # # The intent name and slot name must exist. # # # # [1]: https://docs.aws.amazon.com/lexv2/latest/dg/using-hints.html # @return [Hash>] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/RuntimeHints AWS API Documentation # class RuntimeHints < Struct.new( :slot_hints) SENSITIVE = [] include Aws::Structure end # Provides information about the sentiment expressed in a user's # response in a conversation. Sentiments are determined using Amazon # Comprehend. Sentiments are only returned if they are enabled for the # bot. # # For more information, see [ Determine Sentiment ][1] in the *Amazon # Comprehend developer guide*. # # # # [1]: https://docs.aws.amazon.com/comprehend/latest/dg/how-sentiment.html # # @!attribute [rw] sentiment # The overall sentiment expressed in the user's response. This is the # sentiment most likely expressed by the user based on the analysis by # Amazon Comprehend. # @return [String] # # @!attribute [rw] sentiment_score # The individual sentiment responses for the utterance. # @return [Types::SentimentScore] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/SentimentResponse AWS API Documentation # class SentimentResponse < Struct.new( :sentiment, :sentiment_score) SENSITIVE = [] include Aws::Structure end # The individual sentiment responses for the utterance. # # @!attribute [rw] positive # The level of confidence that Amazon Comprehend has in the accuracy # of its detection of the `POSITIVE` sentiment. # @return [Float] # # @!attribute [rw] negative # The level of confidence that Amazon Comprehend has in the accuracy # of its detection of the `NEGATIVE` sentiment. # @return [Float] # # @!attribute [rw] neutral # The level of confidence that Amazon Comprehend has in the accuracy # of its detection of the `NEUTRAL` sentiment. # @return [Float] # # @!attribute [rw] mixed # The level of confidence that Amazon Comprehend has in the accuracy # of its detection of the `MIXED` sentiment. # @return [Float] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/SentimentScore AWS API Documentation # class SentimentScore < Struct.new( :positive, :negative, :neutral, :mixed) SENSITIVE = [] include Aws::Structure end # The state of the user's session with Amazon Lex V2. # # @!attribute [rw] dialog_action # The next step that Amazon Lex V2 should take in the conversation # with a user. # @return [Types::DialogAction] # # @!attribute [rw] intent # The active intent that Amazon Lex V2 is processing. # @return [Types::Intent] # # @!attribute [rw] active_contexts # One or more contexts that indicate to Amazon Lex V2 the context of a # request. When a context is active, Amazon Lex V2 considers intents # with the matching context as a trigger as the next intent in a # session. # @return [Array] # # @!attribute [rw] session_attributes # Map of key/value pairs representing session-specific context # information. It contains application information passed between # Amazon Lex V2 and a client application. # @return [Hash] # # @!attribute [rw] originating_request_id # A unique identifier for a specific request. # @return [String] # # @!attribute [rw] runtime_hints # Hints for phrases that a customer is likely to use for a slot. # Amazon Lex V2 uses the hints to help determine the correct value of # a slot. # @return [Types::RuntimeHints] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/SessionState AWS API Documentation # class SessionState < Struct.new( :dialog_action, :intent, :active_contexts, :session_attributes, :originating_request_id, :runtime_hints) SENSITIVE = [] include Aws::Structure end # A value that Amazon Lex V2 uses to fulfill an intent. # # @!attribute [rw] value # The current value of the slot. # @return [Types::Value] # # @!attribute [rw] shape # When the `shape` value is `List`, it indicates that the `values` # field contains a list of slot values. When the value is `Scalar`, it # indicates that the `value` field contains a single value. # @return [String] # # @!attribute [rw] values # A list of one or more values that the user provided for the slot. # For example, if a for a slot that elicits pizza toppings, the values # might be "pepperoni" and "pineapple." # @return [Array] # # @!attribute [rw] sub_slots # The constituent sub slots of a composite slot. # @return [Hash] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/Slot AWS API Documentation # class Slot < Struct.new( :value, :shape, :values, :sub_slots) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] bot_id # The identifier of the bot to process the request. # @return [String] # # @!attribute [rw] bot_alias_id # The alias identifier in use for the bot that processes the request. # @return [String] # # @!attribute [rw] locale_id # The locale where the session is in use. # @return [String] # # @!attribute [rw] session_id # The identifier of the user session that is having the conversation. # @return [String] # # @!attribute [rw] conversation_mode # The conversation type that you are using the Amazon Lex V2. If the # conversation mode is `AUDIO` you can send both audio and DTMF # information. If the mode is `TEXT` you can only send text. # @return [String] # # @!attribute [rw] request_event_stream # Represents the stream of events to Amazon Lex V2 from your # application. The events are encoded as HTTP/2 data frames. # @return [Types::StartConversationRequestEventStream] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/StartConversationRequest AWS API Documentation # class StartConversationRequest < Struct.new( :bot_id, :bot_alias_id, :locale_id, :session_id, :conversation_mode, :request_event_stream) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] response_event_stream # Represents the stream of events from Amazon Lex V2 to your # application. The events are encoded as HTTP/2 data frames. # @return [Types::StartConversationResponseEventStream] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/StartConversationResponse AWS API Documentation # class StartConversationResponse < Struct.new( :response_event_stream) SENSITIVE = [] include Aws::Structure end # The event sent from your client application to Amazon Lex V2 with text # input from the user. # # @!attribute [rw] text # The text from the user. Amazon Lex V2 processes this as a complete # statement. # @return [String] # # @!attribute [rw] event_id # A unique identifier that your application assigns to the event. You # can use this to identify events in logs. # @return [String] # # @!attribute [rw] client_timestamp_millis # A timestamp set by the client of the date and time that the event # was sent to Amazon Lex V2. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/TextInputEvent AWS API Documentation # class TextInputEvent < Struct.new( :text, :event_id, :client_timestamp_millis, :event_type) SENSITIVE = [:text] include Aws::Structure end # The event sent from Amazon Lex V2 to your application with text to # present to the user. # # @!attribute [rw] messages # A list of messages to send to the user. Messages are ordered based # on the order that you returned the messages from your Lambda # function or the order that the messages are defined in the bot. # @return [Array] # # @!attribute [rw] event_id # A unique identifier of the event sent by Amazon Lex V2. The # identifier is in the form `RESPONSE-N`, where N is a number starting # with one and incremented for each event sent by Amazon Lex V2 in the # current session. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/TextResponseEvent AWS API Documentation # class TextResponseEvent < Struct.new( :messages, :event_id, :event_type) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] message # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/ThrottlingException AWS API Documentation # class ThrottlingException < Struct.new( :message, :event_type) SENSITIVE = [] include Aws::Structure end # Event sent from Amazon Lex V2 to your client application that contains # a transcript of voice audio. # # @!attribute [rw] transcript # The transcript of the voice audio from the user. # @return [String] # # @!attribute [rw] event_id # A unique identifier of the event sent by Amazon Lex V2. The # identifier is in the form `RESPONSE-N`, where N is a number starting # with one and incremented for each event sent by Amazon Lex V2 in the # current session. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/TranscriptEvent AWS API Documentation # class TranscriptEvent < Struct.new( :transcript, :event_id, :event_type) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] message # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/ValidationException AWS API Documentation # class ValidationException < Struct.new( :message, :event_type) SENSITIVE = [] include Aws::Structure end # Information about the value provided for a slot and Amazon Lex V2's # interpretation. # # @!attribute [rw] original_value # The part of the user's response to the slot elicitation that Amazon # Lex V2 determines is relevant to the slot value. # @return [String] # # @!attribute [rw] interpreted_value # The value that Amazon Lex V2 determines for the slot, given the user # input. The actual value depends on the setting of the value # selection strategy for the bot. You can choose to use the value # entered by the user, or you can have Amazon Lex V2 choose the first # value in the `resolvedValues` list. # @return [String] # # @!attribute [rw] resolved_values # A list of values that Amazon Lex V2 determines are possible # resolutions for the user input. The first value matches the # `interpretedValue`. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/Value AWS API Documentation # class Value < Struct.new( :original_value, :interpreted_value, :resolved_values) SENSITIVE = [] include Aws::Structure end # Represents a stream of events between your application and Amazon Lex # V2. # # EventStream is an Enumerator of Events. # #event_types #=> Array, returns all modeled event types in the stream # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/StartConversationRequestEventStream AWS API Documentation # class StartConversationRequestEventStream < Enumerator def event_types [ :configuration_event, :audio_input_event, :dtmf_input_event, :text_input_event, :playback_completion_event, :disconnection_event ] end end # Represents a stream of events between Amazon Lex V2 and your # application. # # EventStream is an Enumerator of Events. # #event_types #=> Array, returns all modeled event types in the stream # # @see http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/StartConversationResponseEventStream AWS API Documentation # class StartConversationResponseEventStream < Enumerator def event_types [ :playback_interruption_event, :transcript_event, :intent_result_event, :text_response_event, :audio_response_event, :heartbeat_event, :access_denied_exception, :resource_not_found_exception, :validation_exception, :throttling_exception, :internal_server_exception, :conflict_exception, :dependency_failed_exception, :bad_gateway_exception ] end end end end