use crate::types::*;
/// Use this method to send audio files, if you want Telegram clients to display the file as a playable voice message. For this to work, your audio must be in an .ogg file encoded with OPUS (other formats may be sent as Audio or Document). On success, the sent Message is returned. Bots can currently send voice messages of up to 50 MB in size, this limit may be changed in the future.
#[derive(Debug, Serialize, TelegramApi, Setters, New)]
#[return_type = "Message"]
#[new(vis = "pub")]
#[set(vis = "pub")]
pub struct SendVoice {
/// Unique identifier for the target chat or username of the target channel (in the format @channelusername)
pub(crate) chat_id: ChatIdOrUsername,
/// Audio file to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More info on Sending Files ยป
pub(crate) voice: InputFileOrString,
/// Voice message caption, 0-1024 characters
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) caption: Option<String>,
/// Send Markdown or HTML, if you want Telegram apps to show bold, italic, fixed-width text or inline URLs in the media caption.
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) parse_mode: Option<String>,
/// Duration of the voice message in seconds
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) duration: Option<Integer>,
/// Sends the message silently. Users will receive a notification with no sound.
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) disable_notification: Option<bool>,
/// If the message is a reply, ID of the original message
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) reply_to_message_id: Option<Integer>,
/// Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) reply_markup: Option<ReplyMarkup>,
}