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}