using System.Collections.Generic;
using System.Runtime.Serialization;
namespace Amazon.Lambda.LexV2Events
{
///
/// The class that represents a value that Amazon Lex V2 uses to fulfill an intent.
/// https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_Slot.html
///
[DataContract]
public class LexV2Slot
{
///
/// 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.
///
[DataMember(Name = "shape", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("shape")]
public string Shape { get; set; }
///
/// The current value of the slot.
///
[DataMember(Name = "value", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("value")]
public LexV2SlotValue Value { get; set; }
///
/// The resolutions array contains a list of additional values recognized for the slot.
///
[DataMember(Name = "values", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("values")]
public IList Values { get; set; }
}
///
/// The class that represents the value of a slot.
/// https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_Value.html
///
[DataContract]
public class LexV2SlotValue
{
///
/// The value that Amazon Lex V2 determines for the slot. The actual value depends on the setting of the value selection strategy for the bot.
///
[DataMember(Name = "interpretedValue", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("interpretedValue")]
public string InterpretedValue { get; set; }
///
/// The text of the utterance from the user that was entered for the slot.
///
[DataMember(Name = "originalValue", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("originalValue")]
public string OriginalValue { get; set; }
///
/// A list of additional values that have been recognized for the slot.
///
[DataMember(Name = "resolvedValues", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("resolvedValues")]
public IList ResolvedValues { get; set; }
}
}