using System.Collections.Generic; using System.Runtime.Serialization; namespace Amazon.Lambda.LexV2Events { /// /// The class that represents the state of the user's session with Amazon Lex V2. /// https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_SessionState.html /// [DataContract] public class LexV2SessionState { /// /// 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. /// [DataMember(Name = "activeContexts", EmitDefaultValue = false)] [System.Text.Json.Serialization.JsonPropertyName("activeContexts")] public IList ActiveContexts { get; set; } /// /// The next step that Amazon Lex V2 should take in the conversation with a user. /// [DataMember(Name = "dialogAction", EmitDefaultValue = false)] [System.Text.Json.Serialization.JsonPropertyName("dialogAction")] public LexV2DialogAction DialogAction { get; set; } /// /// The active intent that Amazon Lex V2 is processing. /// [DataMember(Name = "intent", EmitDefaultValue = false)] [System.Text.Json.Serialization.JsonPropertyName("intent")] public LexV2Intent Intent { get; set; } /// /// A unique identifier for a specific request. /// [DataMember(Name = "originatingRequestId", EmitDefaultValue = false)] [System.Text.Json.Serialization.JsonPropertyName("originatingRequestId")] public string OriginatingRequestId { get; set; } /// /// 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. /// [DataMember(Name = "runtimeHints", EmitDefaultValue = false)] [System.Text.Json.Serialization.JsonPropertyName("runtimeHints")] public LexV2RuntimeHints RuntimeHints { get; set; } /// /// Map of key/value pairs representing session-specific context information. It contains application information passed between Amazon Lex V2 and a client application. /// [DataMember(Name = "sessionAttributes", EmitDefaultValue = false)] [System.Text.Json.Serialization.JsonPropertyName("sessionAttributes")] public Dictionary SessionAttributes { get; set; } } /// /// The class that represents hints to the phrases which can be provided to Amazon Lex V2 that a customer is likely to use for a slot. /// https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_RuntimeHints.html /// [DataContract] public class LexV2RuntimeHints { /// /// A list of the slots in the intent that should have runtime hints added, and the phrases that should be added for each slot. /// [DataMember(Name = "slotHints", EmitDefaultValue = false)] [System.Text.Json.Serialization.JsonPropertyName("slotHints")] public IDictionary> SlotHints { get; set; } } /// /// Provides an array of phrases that should be given preference when resolving values for a slot. /// https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_RuntimeHintDetails.html /// [DataContract] public class RuntimeHintDetails { /// /// 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. /// [DataMember(Name = "runtimeHintValues", EmitDefaultValue = false)] [System.Text.Json.Serialization.JsonPropertyName("runtimeHintValues")] public IList RuntimeHintValues { get; set; } } /// /// Provides the phrase that Amazon Lex V2 should look for in the user's input to the bot. /// https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_RuntimeHintValue.html /// [DataContract] public class RuntimeHintValue { /// /// The phrase that Amazon Lex V2 should look for in the user's input to the bot. /// [DataMember(Name = "phrase", EmitDefaultValue = false)] [System.Text.Json.Serialization.JsonPropertyName("phrase")] public string Phrase { get; set; } } }