using System; using System.Collections.Generic; using System.Runtime.Serialization; namespace Amazon.Lambda.LexV2Events { /// /// This class represents the input event from Amazon Lex V2. It used as the input parameter /// for Lambda functions. /// https://docs.aws.amazon.com/lexv2/latest/dg/lambda.html#lambda-input-format /// public class LexV2Event { /// /// Message Version /// public string MessageVersion { get; set; } /// /// Indicates the action that called the Lambda function. When the source is DialogCodeHook, the Lambda function was called after input from the user. /// When the source is FulfillmentCodeHook the Lambda function was called after all required slots have been filled and the intent is ready for fulfillment. /// public string InvocationSource { get; set; } /// /// Input Mode. Could be one of DTMF, Speech or Text. /// public string InputMode { get; set; } /// /// Indicates the type of response. Could be one of CustomPayload, ImageResponseCard, PlainText or SSML. /// public string ResponseContentType { get; set; } /// /// The identifier of the session in use. /// public string SessionId { get; set; } /// /// The text that was used to process the input from the user. /// For text or DTMF input, this is the text that the user typed. /// For speech input, this is the text that was recognized from the speech. /// public string InputTranscript { get; set; } /// /// The LexV2 bot invoking the Lambda function. /// public LexV2Bot Bot { get; set; } /// /// One or more intents that Amazon Lex V2 considers possible matches to the user's utterance. /// public IList Interpretations { get; set; } /// /// The next state of the dialog between the user and the bot if the Lambda function doesn't change the flow. /// Only present when the invocationSource field is DialogCodeHook and when the predicted dialog action is ElicitSlot. /// public LexV2ProposedNextState ProposedNextState { get; set; } /// /// Request-specific attributes that the client sends in the request. Use request attributes to pass information /// that doesn't need to persist for the entire session. /// public IDictionary RequestAttributes { get; set; } /// /// The current state of the conversation between the user and your Amazon Lex V2 bot. /// public LexV2SessionState SessionState { get; set; } /// /// One or more transcriptions that Amazon Lex V2 considers possible matches to the user's audio utterance. /// public IList Transcriptions { get; set; } } }