using System.Collections.Generic;
using System.Runtime.Serialization;
namespace Amazon.Lambda.LexV2Events
{
///
/// Contains information about the contexts that a user is using in a session.
/// https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_ActiveContext.html
///
[DataContract]
public class LexV2ActiveContext
{
///
/// 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.
///
[DataMember(Name = "contextAttributes", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("contextAttributes")]
public IDictionary ContextAttributes { get; set; }
///
/// The name of the context.
///
[DataMember(Name = "name", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; }
///
/// 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.
///
[DataMember(Name = "timeToLive", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("timeToLive")]
public ActiveContextTimeToLive TimeToLive { get; set; }
///
/// The time that a context is active. You can specify the time to live in seconds or in conversation turns.
/// https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_ActiveContextTimeToLive.html
///
[DataContract]
public class ActiveContextTimeToLive
{
///
/// The number of seconds that the context is active. You can specify between 5 and 86400 seconds (24 hours).
///
[DataMember(Name = "timeToLiveInSeconds", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("timeToLiveInSeconds")]
public int TimeToLiveInSeconds { get; set; }
///
/// 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.
///
[DataMember(Name = "turnsToLive", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("turnsToLive")]
public int TurnsToLive { get; set; }
}
}
}