using System.Collections.Generic;
using System.Runtime.Serialization;
namespace Amazon.Lambda.LexV2Events
{
///
/// The class that represents the container for text that is returned to the customer.
/// https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_Message.html
///
[DataContract]
public class LexV2Message
{
///
/// The text of the message.
///
[DataMember(Name = "content", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("content")]
public string Content { get; set; }
///
/// Indicates the type of response. Could be one of CustomPayload, ImageResponseCard, PlainText or SSML.
///
[DataMember(Name = "contentType", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("contentType")]
public string ContentType { get; set; }
///
/// A card that is shown to the user by a messaging platform. You define the contents of the card, the card is displayed by the platform.
///
[DataMember(Name = "imageResponseCard", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("imageResponseCard")]
public LexV2ImageResponseCard ImageResponseCard { get; set; }
}
///
/// The class that represents a card that is shown to the user by a messaging platform.
/// https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_ImageResponseCard.html
///
[DataContract]
public class LexV2ImageResponseCard
{
///
/// A list of buttons that should be displayed on the response card. The arrangement of the buttons is determined by the platform that displays the button.
///
[DataMember(Name = "buttons", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("buttons")]
public IList Buttons { get; set; }
///
/// TheThe URL of an image to display on the response card. The image URL must be publicly available so that the platform displaying the response card has access to the image.
///
[DataMember(Name = "imageUrl", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("imageUrl")]
public string ImageUrl { get; set; }
///
/// The subtitle to display on the response card. The format of the subtitle is determined by the platform displaying the response card.
///
[DataMember(Name = "subtitle", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("subtitle")]
public string Subtitle { get; set; }
///
/// The title to display on the response card. The format of the title is determined by the platform displaying the response card.
///
[DataMember(Name = "title", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("title")]
public string Title { get; set; }
}
///
/// The class that represents a button that appears on a response card show to the user.
/// https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_Button.html
///
[DataContract]
public class LexV2Button
{
///
/// The text that is displayed on the button.
///
[DataMember(Name = "text", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("text")]
public string Text { get; set; }
///
/// The value returned to Amazon Lex V2 when a user chooses the button.
///
[DataMember(Name = "value", EmitDefaultValue = false)]
[System.Text.Json.Serialization.JsonPropertyName("value")]
public string Value { get; set; }
}
}