webhook-line 1.0.1

Webhook event definition of the LINE Messaging API
Documentation
/*
 * Webhook Type Definition
 *
 * Webhook event definition of the LINE Messaging API
 *
 * The version of the OpenAPI document: 1.0.0
 *
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

use super::{
    AudioMessageContent, FileMessageContent, ImageMessageContent, LocationMessageContent,
    StickerMessageContent, TextMessageContent, VideoMessageContent,
};

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum MessageContent {
    #[serde(rename = "audio")]
    AudioMessageContent(AudioMessageContent),
    #[serde(rename = "file")]
    FileMessageContent(FileMessageContent),
    #[serde(rename = "image")]
    ImageMessageContent(ImageMessageContent),
    #[serde(rename = "location")]
    LocationMessageContent(LocationMessageContent),
    #[serde(rename = "sticker")]
    StickerMessageContent(StickerMessageContent),
    #[serde(rename = "text")]
    TextMessageContent(TextMessageContent),
    #[serde(rename = "video")]
    VideoMessageContent(VideoMessageContent),
}

impl Default for MessageContent {
    fn default() -> Self {
        Self::AudioMessageContent(AudioMessageContent::default())
    }
}