1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
// WARNING: THIS CODE IS AUTOGENERATED.
// DO NOT EDIT!!!
use crate::types::{InlineKeyboardMarkup, InputMessageContent, MessageEntity};
use serde::{Deserialize, Serialize};
/// Represents a link to a voice recording in an .OGG container encoded with OPUS. By default, this voice recording will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the the voice message.
/// Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.
/// <https://core.telegram.org/bots/api#inlinequeryresultvoice>
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct InlineQueryResultVoice {
/// Type of the result, must be voice
pub r#type: String,
/// Unique identifier for this result, 1-64 bytes
pub id: String,
/// A valid URL for the voice recording
pub voice_url: String,
/// Recording title
pub title: String,
/// Optional. Caption, 0-1024 characters after entities parsing
#[serde(skip_serializing_if = "Option::is_none")]
pub caption: Option<String>,
/// Optional. Mode for parsing entities in the voice message caption. See formatting options for more details.
#[serde(skip_serializing_if = "Option::is_none")]
pub parse_mode: Option<String>,
/// Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode
#[serde(skip_serializing_if = "Option::is_none")]
pub caption_entities: Option<Vec<MessageEntity>>,
/// Optional. Recording duration in seconds
#[serde(skip_serializing_if = "Option::is_none")]
pub voice_duration: Option<i64>,
/// Optional. Inline keyboard attached to the message
#[serde(skip_serializing_if = "Option::is_none")]
pub reply_markup: Option<InlineKeyboardMarkup>,
/// Optional. Content of the message to be sent instead of the voice recording
#[serde(skip_serializing_if = "Option::is_none")]
pub input_message_content: Option<InputMessageContent>,
}