use crate::types::*;
/// Use this method to edit animation, audio, document, photo, or video messages. If a message is a part of a message album, then it can be edited only to a photo or a video. Otherwise, message type can be changed arbitrarily. When inline message is edited, new file can't be uploaded. Use previously uploaded file via its file_id or specify a URL. On success, if the edited message was sent by the bot, the edited Message is returned, otherwise True is returned.
#[derive(Debug, Serialize, TelegramApi, Setters, New)]
#[return_type = "MessageOrTrue"]
#[new(vis = "pub")]
#[set(vis = "pub")]
pub struct EditMessageMedia {
/// Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername)
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) chat_id: Option<ChatIdOrUsername>,
/// Required if inline_message_id is not specified. Identifier of the message to edit
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) message_id: Option<Integer>,
/// Required if chat_id and message_id are not specified. Identifier of the inline message
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) inline_message_id: Option<String>,
/// A JSON-serialized object for a new media content of the message
pub(crate) media: InputMedia,
/// A JSON-serialized object for a new inline keyboard.
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) reply_markup: Option<InlineKeyboardMarkup>,
}