using System.Collections.Generic;
using System.Runtime.Serialization;
namespace Amazon.Lambda.LexV2Events
{
///
/// The class that represents the current intent that Amazon Lex V2 is attempting to fulfill.
/// https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_Intent.html
///
[DataContract]
public class LexV2Intent
{
///
/// Contains information about whether fulfillment of the intent has been confirmed. Could be one of Confirmed, Denied or None.
///
[DataMember(Name = "confirmationState", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("confirmationState")]
public string ConfirmationState { get; set; }
///
/// The name of the intent.
///
[DataMember(Name = "name", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; }
///
/// 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.
///
[DataMember(Name = "slots", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("slots")]
public IDictionary Slots { get; set; }
///
/// Contains fulfillment information for the intent. Could be one of Failed, Fulfilled, FulfillmentInProgress, InProgress, ReadyForFulfillment or Waiting.
///
[DataMember(Name = "state", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("state")]
public string State { get; set; }
///
/// Only present when intent is KendraSearchIntent.
///
[DataMember(Name = "kendraResponse", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("kendraResponse")]
public KendraResponse KendraResponse { get; set; }
}
}