Skip to main content

ronami_core/payloads/
send_audio.rs

1//! Generated by `codegen_payloads`, do not edit by hand.
2
3use serde::Serialize;
4
5use crate::types::BusinessConnectionId;
6use crate::types::EffectId;
7use crate::types::EphemeralMessageParameters;
8use crate::types::InputFile;
9use crate::types::Message;
10use crate::types::MessageEntity;
11use crate::types::ParseMode;
12use crate::types::Recipient;
13use crate::types::ReplyMarkup;
14use crate::types::ReplyParameters;
15use crate::types::SuggestedPostParameters;
16use crate::types::ThreadId;
17use crate::types::TopicId;
18
19impl_payload! {
20    @[multipart = audio, thumbnail]
21    /// Use this method to send audio files, if you want Telegram clients to display them in the music player. Your audio must be in the .MP3 or .M4A format. On success, the sent [`Message`] is returned. Bots can currently send audio files of up to 50 MB in size, this limit may be changed in the future.
22    ///
23    /// For sending voice messages, use the [`SendVoice`] method instead.
24    ///
25    /// [`Message`]: crate::types::Message
26    /// [`SendVoice`]: crate::payloads::SendVoice
27    #[derive(Debug, Clone, Serialize)]
28    pub SendAudio (SendAudioSetters) => Message {
29        required {
30            /// Unique identifier for the target chat or username of the target channel (in the format `@channelusername`)
31            pub chat_id: Recipient [into],
32            /// Audio file to send. Pass a file_id as FileId to send an audio file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an audio file from the Internet, or upload a new one using multipart/form-data. [More info on Sending Files »]
33            ///
34            /// [More info on Sending Files »]: crate::types::InputFile
35            pub audio: InputFile,
36        }
37        optional {
38            /// Unique identifier of the business connection on behalf of which the message will be sent
39            pub business_connection_id: BusinessConnectionId,
40            /// Unique identifier for the target message thread (topic) of the forum; for forum supergroups only
41            pub message_thread_id: ThreadId,
42            /// Identifier of the direct messages topic to which the message will be sent; required if the message is sent to a direct messages chat
43            pub direct_messages_topic_id: TopicId,
44            /// Audio caption, 0-1024 characters after entities parsing
45            pub caption: String [into],
46            /// Mode for parsing entities in the audio caption. See [formatting options] for more details.
47            ///
48            /// [formatting options]: https://core.telegram.org/bots/api#formatting-options
49            pub parse_mode: ParseMode,
50            /// List of special entities that appear in the photo caption, which can be specified instead of _parse\_mode_
51            pub caption_entities: Vec<MessageEntity> [collect],
52            /// Duration of the audio in seconds
53            pub duration: u32,
54            /// Performer
55            pub performer: String [into],
56            /// Track name
57            pub title: String [into],
58            /// Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. [More info on Sending Files »]
59            ///
60            /// [More info on Sending Files »]: crate::types::InputFile
61            pub thumbnail: InputFile,
62            /// Sends the message [silently]. Users will receive a notification with no sound.
63            ///
64            /// [silently]: https://telegram.org/blog/channels-2-0#silent-messages
65            pub disable_notification: bool,
66            /// Protects the contents of sent messages from forwarding and saving
67            pub protect_content: bool,
68            /// Pass `true` to allow up to 1000 messages per second, ignoring broadcasting limits for a fee of 0.1 Telegram Stars per message. The relevant Stars will be withdrawn from the bot's balance
69            pub allow_paid_broadcast: bool,
70            /// Unique identifier of the message effect to be added to the message; for private chats only
71            pub message_effect_id: EffectId,
72            /// An object containing the parameters of the suggested post to send; for direct messages chats only. If the message is sent as a reply to another suggested post, then that suggested post is automatically declined.
73            pub suggested_post_parameters: SuggestedPostParameters,
74            /// A JSON-serialized object containing the parameters of the ephemeral message to send
75            pub ephemeral_message_parameters: EphemeralMessageParameters,
76            /// Description of the message to reply to
77            pub reply_parameters: ReplyParameters,
78            /// Additional interface options. A JSON-serialized object for an [inline keyboard], [custom reply keyboard], instructions to remove a reply keyboard or to force a reply from the user. Not supported for messages sent on behalf of a business account.
79            ///
80            /// [inline keyboard]: https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating
81            /// [custom reply keyboard]: https://core.telegram.org/bots#keyboards
82            pub reply_markup: ReplyMarkup [into],
83        }
84    }
85}