From fbc1e68b742babd614243c9a19fbb98f27f96d1c Mon Sep 17 00:00:00 2001 From: Nikolay Matyushin Date: Sat, 13 Jun 2026 12:13:35 +0300 Subject: [PATCH 1/6] Update Bot API to 10.1.0.0 --- README.md | 2 +- .../Funogram.Generator.fsproj | 2 +- .../Methods/MethodsParser.fs | 1 + src/Funogram.Generator/RemapMethods.json | 6 + src/Funogram.Generator/RemapTypes.json | 59 + src/Funogram.Generator/Types/TypesParser.fs | 22 +- src/Funogram.Generator/out/methods.json | 1831 ++++-- src/Funogram.Generator/out/types.json | 5183 ++++++++++++++--- src/Funogram.Telegram/Directory.Build.props | 2 +- src/Funogram.Telegram/RequestsTypes.fs | 594 +- src/Funogram.Telegram/Types.fs | 3034 ++++++++-- src/Funogram.Tests/Constants.fs | 7 +- src/Funogram.Tests/Funogram.Tests.fsproj | 2 +- .../Funogram.Examples.AnonChat.fsproj | 2 +- .../Funogram.Examples.Banhammer.fsproj | 2 +- .../Funogram.Examples.HelloWorld.fsproj | 2 +- .../Funogram.Examples.WebSocket.fsproj | 2 +- .../Funogram.TestBot/Commands/Base.fs | 2 + .../Funogram.TestBot/Commands/TextMessages.fs | 256 +- .../Funogram.TestBot/Funogram.TestBot.fsproj | 2 +- 20 files changed, 9298 insertions(+), 1715 deletions(-) diff --git a/README.md b/README.md index 42e5fa0..bb84cbb 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ![.NET Core](https://github.com/Dolfik1/Funogram/workflows/.NET/badge.svg) [![NuGet](https://img.shields.io/nuget/v/Funogram.svg)](https://www.nuget.org/packages/Funogram/) [![NuGet](https://img.shields.io/nuget/v/Funogram.Telegram.svg)](https://www.nuget.org/packages/Funogram.Telegram/) -[![NuGet](https://img.shields.io/badge/Bot%20API-9.2-blue?logo=telegram)](https://www.nuget.org/packages/Funogram.Telegram/) +[![NuGet](https://img.shields.io/badge/Bot%20API-10.1-blue?logo=telegram)](https://www.nuget.org/packages/Funogram.Telegram/) Funogram Logo diff --git a/src/Funogram.Generator/Funogram.Generator.fsproj b/src/Funogram.Generator/Funogram.Generator.fsproj index 2a57474..ccf8ee3 100644 --- a/src/Funogram.Generator/Funogram.Generator.fsproj +++ b/src/Funogram.Generator/Funogram.Generator.fsproj @@ -2,7 +2,7 @@ Exe - net8.0 + net10.0 diff --git a/src/Funogram.Generator/Methods/MethodsParser.fs b/src/Funogram.Generator/Methods/MethodsParser.fs index 5add2f7..e0ffc82 100644 --- a/src/Funogram.Generator/Methods/MethodsParser.fs +++ b/src/Funogram.Generator/Methods/MethodsParser.fs @@ -63,6 +63,7 @@ let private returnTypeRegexes = Regex("([A|a]rray of \w+|\w+) is returned, otherwise ([A|a]rray of \w+|\w+)") Regex("[R|r]eturns a ([A|a]rray of \w+|\w+)\s") + Regex("[R|r]eturns the .+ as (?:an? )?([A|a]rray of \w+|\w+)") Regex("[R|r]eturns the uploaded (\w+)\s") Regex("[R|r]eturns the ([A|a]rray of \w+|\w+)\s") Regex("[R|r]eturns an ([A|a]rray of \w+|\w+)\s") diff --git a/src/Funogram.Generator/RemapMethods.json b/src/Funogram.Generator/RemapMethods.json index c8f2ae1..ac6d1ba 100644 --- a/src/Funogram.Generator/RemapMethods.json +++ b/src/Funogram.Generator/RemapMethods.json @@ -16,5 +16,11 @@ "ConvertedFieldType": "ParseMode" } ] + }, + { + "OriginalName": "sendMediaGroup", + "Fields": [ + { "OriginalName": "media", "ConvertedFieldType": "InputMedia[]" } + ] } ] \ No newline at end of file diff --git a/src/Funogram.Generator/RemapTypes.json b/src/Funogram.Generator/RemapTypes.json index 3a564f3..f0e4851 100644 --- a/src/Funogram.Generator/RemapTypes.json +++ b/src/Funogram.Generator/RemapTypes.json @@ -148,5 +148,64 @@ ] ] } + }, + { + "Name": "MaybeInaccessibleMessage", + "Kind": { + "Case": "Cases", + "Fields": [ + [ + { "CaseType": "Message", "Name": "Message" }, + { "CaseType": "InaccessibleMessage", "Name": "InaccessibleMessage" } + ] + ] + } + }, + { + "Name": "InputPollMedia", + "Kind": { + "Case": "Cases", + "Fields": [ + [ + { "CaseType": "InputMediaAnimation", "Name": "Animation" }, + { "CaseType": "InputMediaAudio", "Name": "Audio" }, + { "CaseType": "InputMediaDocument", "Name": "Document" }, + { "CaseType": "InputMediaLivePhoto", "Name": "LivePhoto" }, + { "CaseType": "InputMediaLocation", "Name": "Location" }, + { "CaseType": "InputMediaPhoto", "Name": "Photo" }, + { "CaseType": "InputMediaVenue", "Name": "Venue" }, + { "CaseType": "InputMediaVideo", "Name": "Video" } + ] + ] + } + }, + { + "Name": "InputPollOptionMedia", + "Kind": { + "Case": "Cases", + "Fields": [ + [ + { "CaseType": "InputMediaAnimation", "Name": "Animation" }, + { "CaseType": "InputMediaLink", "Name": "Link" }, + { "CaseType": "InputMediaLivePhoto", "Name": "LivePhoto" }, + { "CaseType": "InputMediaLocation", "Name": "Location" }, + { "CaseType": "InputMediaPhoto", "Name": "Photo" }, + { "CaseType": "InputMediaSticker", "Name": "Sticker" }, + { "CaseType": "InputMediaVenue", "Name": "Venue" }, + { "CaseType": "InputMediaVideo", "Name": "Video" } + ] + ] + } + }, + { + "Name": "RichText", + "Kind": { + "Case": "Cases", + "Fields": [ + [ + { "CaseType": "RichTextDateTime", "Name": "DateTimeText" } + ] + ] + } } ] \ No newline at end of file diff --git a/src/Funogram.Generator/Types/TypesParser.fs b/src/Funogram.Generator/Types/TypesParser.fs index 20d9adf..4db268b 100644 --- a/src/Funogram.Generator/Types/TypesParser.fs +++ b/src/Funogram.Generator/Types/TypesParser.fs @@ -47,11 +47,7 @@ let private splitCaseNameAndType (typeName: string) (nameAndType: string) = | "InputMessageContent" -> "Input" | _ -> typeName - match typeName, nameAndType with - | "MaybeInaccessibleMessage", "Message" -> "Message" - | "MaybeInaccessibleMessage", "InaccessibleMessage" -> "InaccessibleMessage" - | _ -> - try nameAndType.Substring(typeName.Length) with | _ -> "ERROR!" + try nameAndType.Substring(typeName.Length) with | _ -> $"ERROR({typeName}, {nameAndType})!" let private isValidTypeNode (typeNodeInfo: ApiTypeNodeInfo) = let name = Helpers.innerText typeNodeInfo.TypeName @@ -141,7 +137,21 @@ let private remap (remapTypes: ApiType[]) (types: ApiType[]) = { tp with Kind = ApiTypeKind.Fields fields } - | ApiTypeKind.Cases cases, ApiTypeKind.Cases remapCases -> tp + | ApiTypeKind.Cases cases, ApiTypeKind.Cases remapCases -> + let cases = + cases + |> Array.map (fun case -> + remapCases + |> Array.fold (fun case remapCase -> + let matched = not (String.IsNullOrEmpty remapCase.CaseType) && Helpers.compareWildcard remapCase.CaseType case.CaseType + if matched then + { case with + Name = remapCase.Name |> Option.ofObj |> Option.defaultValue case.Name } + else + case + ) case + ) + { tp with Kind = ApiTypeKind.Cases cases } | _ -> tp else tp diff --git a/src/Funogram.Generator/out/methods.json b/src/Funogram.Generator/out/methods.json index dfeae8b..fa39473 100644 --- a/src/Funogram.Generator/out/methods.json +++ b/src/Funogram.Generator/out/methods.json @@ -48,7 +48,7 @@ { "OriginalName": "url", "ConvertedName": "Url", - "Description": "HTTPS URL to send updates to. Use an empty string to remove webhook integration", + "Description": "HTTPS URL to send updates to. Use an empty string to remove webhook integration.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -170,7 +170,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -178,7 +178,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -242,7 +242,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -274,7 +274,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -291,7 +291,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -299,7 +299,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -315,7 +315,7 @@ { "OriginalName": "from_chat_id", "ConvertedName": "FromChatId", - "Description": "Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername)", + "Description": "Unique identifier for the chat where the original message was sent (or username of the target bot, supergroup or channel in the format @username)", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -344,6 +344,14 @@ "ConvertedFieldType": "bool", "Optional": true }, + { + "OriginalName": "message_effect_id", + "ConvertedName": "MessageEffectId", + "Description": "Unique identifier of the message effect to be added to the message; only available when forwarding to private chats", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, { "OriginalName": "suggested_post_parameters", "ConvertedName": "SuggestedPostParameters", @@ -372,7 +380,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -380,7 +388,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -396,7 +404,7 @@ { "OriginalName": "from_chat_id", "ConvertedName": "FromChatId", - "Description": "Unique identifier for the chat where the original messages were sent (or channel username in the format @channelusername)", + "Description": "Unique identifier for the chat where the original messages were sent (or username of the target bot, supergroup or channel in the format @username)", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -437,7 +445,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -445,7 +453,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -461,7 +469,7 @@ { "OriginalName": "from_chat_id", "ConvertedName": "FromChatId", - "Description": "Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername)", + "Description": "Unique identifier for the chat where the original message was sent (or username of the target bot, supergroup or channel in the format @username)", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -485,7 +493,7 @@ { "OriginalName": "caption", "ConvertedName": "Caption", - "Description": "New caption for media, 0-1024 characters after entities parsing. If not specified, the original caption is kept", + "Description": "New caption for media, 0-1024 characters after entities parsing. If not specified, the original caption is kept.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -533,11 +541,19 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true }, + { + "OriginalName": "message_effect_id", + "ConvertedName": "MessageEffectId", + "Description": "Unique identifier of the message effect to be added to the message; only available when copying to private chats", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, { "OriginalName": "suggested_post_parameters", "ConvertedName": "SuggestedPostParameters", @@ -557,7 +573,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -574,7 +590,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -582,7 +598,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -598,7 +614,7 @@ { "OriginalName": "from_chat_id", "ConvertedName": "FromChatId", - "Description": "Unique identifier for the chat where the original messages were sent (or channel username in the format @channelusername)", + "Description": "Unique identifier for the chat where the original messages were sent (or username of the target bot, supergroup or channel in the format @username)", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -655,7 +671,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -663,7 +679,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -743,7 +759,160 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "message_effect_id", + "ConvertedName": "MessageEffectId", + "Description": "Unique identifier of the message effect to be added to the message; for private chats only", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "suggested_post_parameters", + "ConvertedName": "SuggestedPostParameters", + "Description": "A JSON-serialized 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.", + "OriginalFieldType": "SuggestedPostParameters", + "ConvertedFieldType": "SuggestedPostParameters", + "Optional": true + }, + { + "OriginalName": "reply_parameters", + "ConvertedName": "ReplyParameters", + "Description": "Description of the message to reply to", + "OriginalFieldType": "ReplyParameters", + "ConvertedFieldType": "ReplyParameters", + "Optional": true + }, + { + "OriginalName": "reply_markup", + "ConvertedName": "ReplyMarkup", + "Description": "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.", + "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", + "ConvertedFieldType": "Markup", + "Optional": true + } + ], + "OriginalReturnType": "Message", + "ConvertedReturnType": "Message" + }, + { + "OriginalName": "sendLivePhoto", + "ConvertedName": "SendLivePhoto", + "Description": "Use this method to send live photos. On success, the sent Message is returned.", + "Fields": [ + { + "OriginalName": "business_connection_id", + "ConvertedName": "BusinessConnectionId", + "Description": "Unique identifier of the business connection on behalf of which the message will be sent", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "chat_id", + "ConvertedName": "ChatId", + "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "OriginalFieldType": "Integer or String", + "ConvertedFieldType": "ChatId", + "Optional": false + }, + { + "OriginalName": "message_thread_id", + "ConvertedName": "MessageThreadId", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "direct_messages_topic_id", + "ConvertedName": "DirectMessagesTopicId", + "Description": "Identifier of the direct messages topic to which the message will be sent; required if the message is sent to a direct messages chat", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "live_photo", + "ConvertedName": "LivePhoto", + "Description": "Live photo video to send. The video must be no longer than 10 seconds and must not exceed 10 MB in size. Pass a file_id as String to send a video that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. More information on Sending Files \u00BB. Sending live photos by a URL is currently unsupported.", + "OriginalFieldType": "InputFile or String", + "ConvertedFieldType": "InputFile", + "Optional": false + }, + { + "OriginalName": "photo", + "ConvertedName": "Photo", + "Description": "The static photo to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. More information on Sending Files \u00BB. Sending live photos by a URL is currently unsupported.", + "OriginalFieldType": "InputFile or String", + "ConvertedFieldType": "InputFile", + "Optional": false + }, + { + "OriginalName": "caption", + "ConvertedName": "Caption", + "Description": "Video caption (may also be used when resending videos by file_id), 0-1024 characters after entities parsing", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "parse_mode", + "ConvertedName": "ParseMode", + "Description": "Mode for parsing entities in the video caption. See formatting options for more details.", + "OriginalFieldType": "String", + "ConvertedFieldType": "ParseMode", + "Optional": true + }, + { + "OriginalName": "caption_entities", + "ConvertedName": "CaptionEntities", + "Description": "A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode", + "OriginalFieldType": "Array of MessageEntity", + "ConvertedFieldType": "MessageEntity[]", + "Optional": true + }, + { + "OriginalName": "show_caption_above_media", + "ConvertedName": "ShowCaptionAboveMedia", + "Description": "Pass True, if the caption must be shown above the message media", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "has_spoiler", + "ConvertedName": "HasSpoiler", + "Description": "Pass True if the video needs to be covered with a spoiler animation", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "disable_notification", + "ConvertedName": "DisableNotification", + "Description": "Sends the message silently. Users will receive a notification with no sound.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "protect_content", + "ConvertedName": "ProtectContent", + "Description": "Protects the contents of the sent message from forwarding and saving", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "allow_paid_broadcast", + "ConvertedName": "AllowPaidBroadcast", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -775,7 +944,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -800,7 +969,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -808,7 +977,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -904,7 +1073,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -936,7 +1105,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -961,7 +1130,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -969,7 +1138,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -1049,7 +1218,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -1081,7 +1250,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -1106,7 +1275,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -1114,7 +1283,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -1250,7 +1419,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -1282,7 +1451,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -1307,7 +1476,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -1315,7 +1484,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -1427,7 +1596,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -1459,7 +1628,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -1484,7 +1653,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -1492,7 +1661,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -1564,7 +1733,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -1596,7 +1765,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -1621,7 +1790,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -1629,7 +1798,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -1645,7 +1814,7 @@ { "OriginalName": "video_note", "ConvertedName": "VideoNote", - "Description": "Video note to send. Pass a file_id as String to send a video note that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. More information on Sending Files \u00BB. Sending video notes by a URL is currently unsupported", + "Description": "Video note to send. Pass a file_id as String to send a video note that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. More information on Sending Files \u00BB. Sending video notes by a URL is currently unsupported.", "OriginalFieldType": "InputFile or String", "ConvertedFieldType": "InputFile", "Optional": false @@ -1693,7 +1862,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -1725,7 +1894,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -1750,7 +1919,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername). If the chat is a channel, all Telegram Star proceeds from this media will be credited to the chat\u0027s balance. Otherwise, they will be credited to the bot\u0027s balance.", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username. If the chat is a channel, all Telegram Star proceeds from this media will be credited to the chat\u0027s balance. Otherwise, they will be credited to the bot\u0027s balance.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -1758,7 +1927,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -1774,7 +1943,7 @@ { "OriginalName": "star_count", "ConvertedName": "StarCount", - "Description": "The number of Telegram Stars that must be paid to buy access to the media; 1-10000", + "Description": "The number of Telegram Stars that must be paid to buy access to the media; 1-25000", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": false @@ -1846,7 +2015,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -1870,7 +2039,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -1882,7 +2051,7 @@ { "OriginalName": "sendMediaGroup", "ConvertedName": "SendMediaGroup", - "Description": "Use this method to send a group of photos, videos, documents or audios as an album. Documents and audio files can be only grouped in an album with messages of the same type. On success, an array of Message objects that were sent is returned.", + "Description": "Use this method to send a group of photos, live photos, videos, documents or audios as an album. Documents and audio files can be only grouped in an album with messages of the same type. On success, an array of Message objects that were sent is returned.", "Fields": [ { "OriginalName": "business_connection_id", @@ -1895,7 +2064,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -1903,7 +2072,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -1920,7 +2089,7 @@ "OriginalName": "media", "ConvertedName": "Media", "Description": "A JSON-serialized array describing messages to be sent, must include 2-10 items", - "OriginalFieldType": "Array of InputMediaAudio, InputMediaDocument, InputMediaPhoto and InputMediaVideo", + "OriginalFieldType": "Array of InputMediaAudio, InputMediaDocument, InputMediaLivePhoto, InputMediaPhoto and InputMediaVideo", "ConvertedFieldType": "InputMedia[]", "Optional": false }, @@ -1943,7 +2112,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -1984,7 +2153,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -1992,7 +2161,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -2032,7 +2201,7 @@ { "OriginalName": "live_period", "ConvertedName": "LivePeriod", - "Description": "Period in seconds during which the location will be updated (see Live Locations, should be between 60 and 86400, or 0x7FFFFFFF for live locations that can be edited indefinitely.", + "Description": "Period in seconds during which the location will be updated (see Live Locations, should be between 60 and 86400, or 0x7FFFFFFF for live locations that can be edited indefinitely", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -2072,7 +2241,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -2104,7 +2273,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -2129,7 +2298,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -2137,7 +2306,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -2233,7 +2402,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -2265,7 +2434,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -2290,7 +2459,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -2298,7 +2467,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -2362,7 +2531,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -2394,7 +2563,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -2419,7 +2588,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername). Polls can\u0027t be sent to channel direct messages chats.", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username. Polls can\u0027t be sent to channel direct messages chats.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -2427,7 +2596,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -2443,7 +2612,7 @@ { "OriginalName": "question_parse_mode", "ConvertedName": "QuestionParseMode", - "Description": "Mode for parsing entities in the question. See formatting options for more details. Currently, only custom emoji entities are allowed", + "Description": "Mode for parsing entities in the question. See formatting options for more details. Currently, only custom emoji entities are allowed.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -2451,7 +2620,7 @@ { "OriginalName": "question_entities", "ConvertedName": "QuestionEntities", - "Description": "A JSON-serialized list of special entities that appear in the poll question. It can be specified instead of question_parse_mode", + "Description": "A JSON-serialized list of special entities that appear in the poll question. It can be specified instead of question_parse_mode.", "OriginalFieldType": "Array of MessageEntity", "ConvertedFieldType": "MessageEntity[]", "Optional": true @@ -2459,7 +2628,7 @@ { "OriginalName": "options", "ConvertedName": "Options", - "Description": "A JSON-serialized list of 2-12 answer options", + "Description": "A JSON-serialized list of 1-12 answer options", "OriginalFieldType": "Array of InputPollOption", "ConvertedFieldType": "InputPollOption[]", "Optional": false @@ -2483,17 +2652,65 @@ { "OriginalName": "allows_multiple_answers", "ConvertedName": "AllowsMultipleAnswers", - "Description": "True, if the poll allows multiple answers, ignored for polls in quiz mode, defaults to False", + "Description": "Pass True, if the poll allows multiple answers, defaults to False", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true }, { - "OriginalName": "correct_option_id", - "ConvertedName": "CorrectOptionId", - "Description": "0-based identifier of the correct answer option, required for polls in quiz mode", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", + "OriginalName": "allows_revoting", + "ConvertedName": "AllowsRevoting", + "Description": "Pass True, if the poll allows to change chosen answer options, defaults to False for quizzes and to True for regular polls", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "shuffle_options", + "ConvertedName": "ShuffleOptions", + "Description": "Pass True, if the poll options must be shown in random order", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "allow_adding_options", + "ConvertedName": "AllowAddingOptions", + "Description": "Pass True, if answer options can be added to the poll after creation; not supported for anonymous polls and quizzes", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "hide_results_until_closes", + "ConvertedName": "HideResultsUntilCloses", + "Description": "Pass True, if poll results must be shown only after the poll closes", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "members_only", + "ConvertedName": "MembersOnly", + "Description": "Pass True, if voting is limited to users who have been members of the chat where the poll is being sent for more than 24 hours; for channel chats only", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "country_codes", + "ConvertedName": "CountryCodes", + "Description": "A JSON-serialized list of 0-12 two-letter ISO 3166-1 alpha-2 country codes indicating the countries from which users can vote in the poll; for channel chats only. Use \u201CFT\u201D as a country code to allow users with anonymous numbers to vote. If omitted or empty, then users from any country can participate in the poll.", + "OriginalFieldType": "Array of String", + "ConvertedFieldType": "string[]", + "Optional": true + }, + { + "OriginalName": "correct_option_ids", + "ConvertedName": "CorrectOptionIds", + "Description": "A JSON-serialized list of monotonically increasing 0-based identifiers of the correct answer options, required for polls in quiz mode", + "OriginalFieldType": "Array of Integer", + "ConvertedFieldType": "int64[]", "Optional": true }, { @@ -2515,15 +2732,23 @@ { "OriginalName": "explanation_entities", "ConvertedName": "ExplanationEntities", - "Description": "A JSON-serialized list of special entities that appear in the poll explanation. It can be specified instead of explanation_parse_mode", + "Description": "A JSON-serialized list of special entities that appear in the poll explanation. It can be specified instead of explanation_parse_mode.", "OriginalFieldType": "Array of MessageEntity", "ConvertedFieldType": "MessageEntity[]", "Optional": true }, + { + "OriginalName": "explanation_media", + "ConvertedName": "ExplanationMedia", + "Description": "Media added to the quiz explanation", + "OriginalFieldType": "InputPollMedia", + "ConvertedFieldType": "InputPollMedia", + "Optional": true + }, { "OriginalName": "open_period", "ConvertedName": "OpenPeriod", - "Description": "Amount of time in seconds the poll will be active after creation, 5-600. Can\u0027t be used together with close_date.", + "Description": "Amount of time in seconds the poll will be active after creation, 5-2628000. Can\u0027t be used together with close_date.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -2531,7 +2756,7 @@ { "OriginalName": "close_date", "ConvertedName": "CloseDate", - "Description": "Point in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 600 seconds in the future. Can\u0027t be used together with open_period.", + "Description": "Point in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 2628000 seconds in the future. Can\u0027t be used together with open_period.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -2544,6 +2769,38 @@ "ConvertedFieldType": "bool", "Optional": true }, + { + "OriginalName": "description", + "ConvertedName": "Description", + "Description": "Description of the poll to be sent, 0-1024 characters after entities parsing", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "description_parse_mode", + "ConvertedName": "DescriptionParseMode", + "Description": "Mode for parsing entities in the poll description. See formatting options for more details.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "description_entities", + "ConvertedName": "DescriptionEntities", + "Description": "A JSON-serialized list of special entities that appear in the poll description, which can be specified instead of description_parse_mode", + "OriginalFieldType": "Array of MessageEntity", + "ConvertedFieldType": "MessageEntity[]", + "Optional": true + }, + { + "OriginalName": "media", + "ConvertedName": "Media", + "Description": "Media added to the poll description", + "OriginalFieldType": "InputPollMedia", + "ConvertedFieldType": "InputPollMedia", + "Optional": true + }, { "OriginalName": "disable_notification", "ConvertedName": "DisableNotification", @@ -2563,7 +2820,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -2587,7 +2844,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -2612,9 +2869,9 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", + "Description": "Unique identifier for the target chat or username of the target bot in the format @username", + "OriginalFieldType": "Integer or String", + "ConvertedFieldType": "ChatId", "Optional": false }, { @@ -2685,7 +2942,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -2693,7 +2950,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -2709,7 +2966,7 @@ { "OriginalName": "emoji", "ConvertedName": "Emoji", - "Description": "Emoji on which the dice throw animation is based. Currently, must be one of \u201C\u201D, \u201C\u201D, \u201C\u201D, \u201C\u201D, \u201C\u201D, or \u201C\u201D. Dice can have values 1-6 for \u201C\u201D, \u201C\u201D and \u201C\u201D, values 1-5 for \u201C\u201D and \u201C\u201D, and values 1-64 for \u201C\u201D. Defaults to \u201C\u201D", + "Description": "Emoji on which the dice throw animation is based. Currently, must be one of \u201C\u201D, \u201C\u201D, \u201C\u201D, \u201C\u201D, \u201C\u201D, or \u201C\u201D. Dice can have values 1-6 for \u201C\u201D, \u201C\u201D and \u201C\u201D, values 1-5 for \u201C\u201D and \u201C\u201D, and values 1-64 for \u201C\u201D. Defaults to \u201C\u201D.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -2733,7 +2990,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -2765,7 +3022,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -2775,39 +3032,96 @@ "ConvertedReturnType": "Message" }, { - "OriginalName": "sendChatAction", - "ConvertedName": "SendChatAction", - "Description": "Use this method when you need to tell the user that something is happening on the bot\u0027s side. The status is set for 5 seconds or less (when a message arrives from your bot, Telegram clients clear its typing status). Returns True on success.", + "OriginalName": "sendMessageDraft", + "ConvertedName": "SendMessageDraft", + "Description": "Use this method to stream a partial message to a user while the message is being generated. Note that the streamed draft is ephemeral and acts as a temporary 30-second preview - once the output is finalized, you must call sendMessage with the complete message to persist it in the user\u0027s chat. Returns True on success.", "Fields": [ - { - "OriginalName": "business_connection_id", - "ConvertedName": "BusinessConnectionId", - "Description": "Unique identifier of the business connection on behalf of which the action will be sent", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", - "Optional": true - }, { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername). Channel chats and channel direct messages chats aren\u0027t supported.", - "OriginalFieldType": "Integer or String", - "ConvertedFieldType": "ChatId", + "Description": "Unique identifier for the target private chat", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", "Optional": false }, { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread; for supergroups only", + "Description": "Unique identifier for the target message thread", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true }, { - "OriginalName": "action", - "ConvertedName": "Action", - "Description": "Type of action to broadcast. Choose one, depending on what the user is about to receive: typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_voice or upload_voice for voice notes, upload_document for general files, choose_sticker for stickers, find_location for location data, record_video_note or upload_video_note for video notes.", - "OriginalFieldType": "String", + "OriginalName": "draft_id", + "ConvertedName": "DraftId", + "Description": "Unique identifier of the message draft; must be non-zero. Changes to drafts with the same identifier are animated.", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "Text of the message to be sent, 0-4096 characters after entities parsing. Pass an empty text to show a \u201CThinking\u2026\u201D placeholder.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "parse_mode", + "ConvertedName": "ParseMode", + "Description": "Mode for parsing entities in the message text. See formatting options for more details.", + "OriginalFieldType": "String", + "ConvertedFieldType": "ParseMode", + "Optional": true + }, + { + "OriginalName": "entities", + "ConvertedName": "Entities", + "Description": "A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode", + "OriginalFieldType": "Array of MessageEntity", + "ConvertedFieldType": "MessageEntity[]", + "Optional": true + } + ], + "OriginalReturnType": "True", + "ConvertedReturnType": "bool" + }, + { + "OriginalName": "sendChatAction", + "ConvertedName": "SendChatAction", + "Description": "Use this method when you need to tell the user that something is happening on the bot\u0027s side. The status is set for 5 seconds or less (when a message arrives from your bot, Telegram clients clear its typing status). Returns True on success.", + "Fields": [ + { + "OriginalName": "business_connection_id", + "ConvertedName": "BusinessConnectionId", + "Description": "Unique identifier of the business connection on behalf of which the action will be sent", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "chat_id", + "ConvertedName": "ChatId", + "Description": "Unique identifier for the target chat or username of the target bot or supergroup in the format @username. Channel chats and channel direct messages chats aren\u0027t supported.", + "OriginalFieldType": "Integer or String", + "ConvertedFieldType": "ChatId", + "Optional": false + }, + { + "OriginalName": "message_thread_id", + "ConvertedName": "MessageThreadId", + "Description": "Unique identifier for the target message thread or topic of a forum; for supergroups and private chats of bots with forum topic mode enabled only", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "action", + "ConvertedName": "Action", + "Description": "Type of action to broadcast. Choose one, depending on what the user is about to receive: typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_voice or upload_voice for voice notes, upload_document for general files, choose_sticker for stickers, find_location for location data, record_video_note or upload_video_note for video notes.", + "OriginalFieldType": "String", "ConvertedFieldType": "ChatAction", "Optional": false } @@ -2823,7 +3137,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -2889,6 +3203,39 @@ "OriginalReturnType": "UserProfilePhotos", "ConvertedReturnType": "UserProfilePhotos" }, + { + "OriginalName": "getUserProfileAudios", + "ConvertedName": "GetUserProfileAudios", + "Description": "Use this method to get a list of profile audios for a user. Returns a UserProfileAudios object.", + "Fields": [ + { + "OriginalName": "user_id", + "ConvertedName": "UserId", + "Description": "Unique identifier of the target user", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "offset", + "ConvertedName": "Offset", + "Description": "Sequential number of the first audio to be returned. By default, all audios are returned.", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "limit", + "ConvertedName": "Limit", + "Description": "Limits the number of audios to be retrieved. Values between 1-100 are accepted. Defaults to 100.", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + } + ], + "OriginalReturnType": "UserProfileAudios", + "ConvertedReturnType": "UserProfileAudios" + }, { "OriginalName": "setUserEmojiStatus", "ConvertedName": "SetUserEmojiStatus", @@ -2947,7 +3294,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target group or username of the target supergroup or channel (in the format @channelusername)", + "Description": "Unique identifier for the target group or username of the target supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -2988,7 +3335,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target group or username of the target supergroup or channel (in the format @channelusername)", + "Description": "Unique identifier for the target group or username of the target supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3021,7 +3368,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3053,7 +3400,7 @@ { "OriginalName": "until_date", "ConvertedName": "UntilDate", - "Description": "Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever", + "Description": "Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -3070,7 +3417,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3118,7 +3465,7 @@ { "OriginalName": "can_restrict_members", "ConvertedName": "CanRestrictMembers", - "Description": "Pass True if the administrator can restrict, ban or unban chat members, or access supergroup statistics", + "Description": "Pass True if the administrator can restrict, ban or unban chat members, or access supergroup statistics. For backward compatibility, defaults to True for promotions of channel administrators.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -3210,6 +3557,14 @@ "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true + }, + { + "OriginalName": "can_manage_tags", + "ConvertedName": "CanManageTags", + "Description": "Pass True if the administrator can edit the tags of regular members; for groups and supergroups only", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true } ], "OriginalReturnType": "True", @@ -3223,7 +3578,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3248,6 +3603,39 @@ "OriginalReturnType": "True", "ConvertedReturnType": "bool" }, + { + "OriginalName": "setChatMemberTag", + "ConvertedName": "SetChatMemberTag", + "Description": "Use this method to set a tag for a regular member in a group or a supergroup. The bot must be an administrator in the chat for this to work and must have the can_manage_tags administrator right. Returns True on success.", + "Fields": [ + { + "OriginalName": "chat_id", + "ConvertedName": "ChatId", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", + "OriginalFieldType": "Integer or String", + "ConvertedFieldType": "ChatId", + "Optional": false + }, + { + "OriginalName": "user_id", + "ConvertedName": "UserId", + "Description": "Unique identifier of the target user", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "tag", + "ConvertedName": "Tag", + "Description": "New tag for the member; 0-16 characters, emoji are not allowed", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + } + ], + "OriginalReturnType": "True", + "ConvertedReturnType": "bool" + }, { "OriginalName": "banChatSenderChat", "ConvertedName": "BanChatSenderChat", @@ -3256,7 +3644,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3281,7 +3669,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3306,7 +3694,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3339,7 +3727,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3356,7 +3744,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3388,7 +3776,7 @@ { "OriginalName": "creates_join_request", "ConvertedName": "CreatesJoinRequest", - "Description": "True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can\u0027t be specified", + "Description": "True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can\u0027t be specified.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -3405,7 +3793,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3445,7 +3833,7 @@ { "OriginalName": "creates_join_request", "ConvertedName": "CreatesJoinRequest", - "Description": "True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can\u0027t be specified", + "Description": "True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can\u0027t be specified.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -3462,7 +3850,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target channel chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target channel chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3503,7 +3891,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3536,7 +3924,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier of the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier of the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3561,7 +3949,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3586,7 +3974,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3603,6 +3991,56 @@ "OriginalReturnType": "True", "ConvertedReturnType": "bool" }, + { + "OriginalName": "answerChatJoinRequestQuery", + "ConvertedName": "AnswerChatJoinRequestQuery", + "Description": "Use this method to process a received chat join request query. Returns True on success.", + "Fields": [ + { + "OriginalName": "chat_join_request_query_id", + "ConvertedName": "ChatJoinRequestQueryId", + "Description": "Unique identifier of the join request query", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "result", + "ConvertedName": "Result", + "Description": "Result of the query. Must be either \u201Capprove\u201D to allow the user to join the chat, \u201Cdecline\u201D to disallow the user to join the chat, or \u201Cqueue\u201D to leave the decision to other administrators.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ], + "OriginalReturnType": "True", + "ConvertedReturnType": "bool" + }, + { + "OriginalName": "sendChatJoinRequestWebApp", + "ConvertedName": "SendChatJoinRequestWebApp", + "Description": "Use this method to process a received chat join request query by showing a Mini App to the user before deciding the outcome. Returns True on success.", + "Fields": [ + { + "OriginalName": "chat_join_request_query_id", + "ConvertedName": "ChatJoinRequestQueryId", + "Description": "Unique identifier of the join request query", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "web_app_url", + "ConvertedName": "WebAppUrl", + "Description": "The URL of the Mini App to be opened", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ], + "OriginalReturnType": "True", + "ConvertedReturnType": "bool" + }, { "OriginalName": "setChatPhoto", "ConvertedName": "SetChatPhoto", @@ -3611,7 +4049,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3636,7 +4074,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3653,7 +4091,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3678,7 +4116,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3711,7 +4149,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3752,7 +4190,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3777,7 +4215,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3794,7 +4232,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername). Channel direct messages chats aren\u0027t supported; leave the corresponding channel instead.", + "Description": "Unique identifier for the target chat or username of the target supergroup or channel in the format @username. Channel direct messages chats aren\u0027t supported; leave the corresponding channel instead.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3811,7 +4249,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3823,15 +4261,23 @@ { "OriginalName": "getChatAdministrators", "ConvertedName": "GetChatAdministrators", - "Description": "Use this method to get a list of administrators in a chat, which aren\u0027t bots. Returns an Array of ChatMember objects.", + "Description": "Use this method to get a list of administrators in a chat. Returns an Array of ChatMember objects.", "Fields": [ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false + }, + { + "OriginalName": "return_bots", + "ConvertedName": "ReturnBots", + "Description": "Pass True to additionally receive all bots that are administrators of the chat. By default, bots other than the current bot are omitted.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true } ], "OriginalReturnType": "Array of ChatMember", @@ -3845,7 +4291,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3862,7 +4308,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3879,6 +4325,31 @@ "OriginalReturnType": "ChatMember", "ConvertedReturnType": "ChatMember" }, + { + "OriginalName": "getUserPersonalChatMessages", + "ConvertedName": "GetUserPersonalChatMessages", + "Description": "Use this method to get the last messages from the personal chat (i.e., the chat currently added to their profile) of a given user. On success, an array of Message objects is returned.", + "Fields": [ + { + "OriginalName": "user_id", + "ConvertedName": "UserId", + "Description": "Unique identifier for the target user", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "limit", + "ConvertedName": "Limit", + "Description": "The maximum number of messages to return; 1-20", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + } + ], + "OriginalReturnType": "array of Message", + "ConvertedReturnType": "Message[]" + }, { "OriginalName": "setChatStickerSet", "ConvertedName": "SetChatStickerSet", @@ -3887,7 +4358,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3912,7 +4383,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3932,12 +4403,12 @@ { "OriginalName": "createForumTopic", "ConvertedName": "CreateForumTopic", - "Description": "Use this method to create a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns information about the created topic as a ForumTopic object.", + "Description": "Use this method to create a topic in a forum supergroup chat or a private chat with a user. In the case of a supergroup chat the bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator right. Returns information about the created topic as a ForumTopic object.", "Fields": [ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3953,7 +4424,7 @@ { "OriginalName": "icon_color", "ConvertedName": "IconColor", - "Description": "Color of the topic icon in RGB format. Currently, must be one of 7322096 (0x6FB9F0), 16766590 (0xFFD67E), 13338331 (0xCB86DB), 9367192 (0x8EEE98), 16749490 (0xFF93B2), or 16478047 (0xFB6F5F)", + "Description": "Color of the topic icon in RGB format. Currently, must be one of 7322096 (0x6FB9F0), 16766590 (0xFFD67E), 13338331 (0xCB86DB), 9367192 (0x8EEE98), 16749490 (0xFF93B2), or 16478047 (0xFB6F5F).", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -3973,12 +4444,12 @@ { "OriginalName": "editForumTopic", "ConvertedName": "EditForumTopic", - "Description": "Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success.", + "Description": "Use this method to edit name and icon of a topic in a forum supergroup chat or a private chat with a user. In the case of a supergroup chat the bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success.", "Fields": [ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -3994,7 +4465,7 @@ { "OriginalName": "name", "ConvertedName": "Name", - "Description": "New topic name, 0-128 characters. If not specified or empty, the current name of the topic will be kept", + "Description": "New topic name, 0-128 characters. If not specified or empty, the current name of the topic will be kept.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -4002,7 +4473,7 @@ { "OriginalName": "icon_custom_emoji_id", "ConvertedName": "IconCustomEmojiId", - "Description": "New unique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers. Pass an empty string to remove the icon. If not specified, the current icon will be kept", + "Description": "New unique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers. Pass an empty string to remove the icon. If not specified, the current icon will be kept.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -4019,7 +4490,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -4044,7 +4515,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -4064,12 +4535,12 @@ { "OriginalName": "deleteForumTopic", "ConvertedName": "DeleteForumTopic", - "Description": "Use this method to delete a forum topic along with all its messages in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_delete_messages administrator rights. Returns True on success.", + "Description": "Use this method to delete a forum topic along with all its messages in a forum supergroup chat or a private chat with a user. In the case of a supergroup chat the bot must be an administrator in the chat for this to work and must have the can_delete_messages administrator rights. Returns True on success.", "Fields": [ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -4089,12 +4560,12 @@ { "OriginalName": "unpinAllForumTopicMessages", "ConvertedName": "UnpinAllForumTopicMessages", - "Description": "Use this method to clear the list of pinned messages in a forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success.", + "Description": "Use this method to clear the list of pinned messages in a forum topic in a forum supergroup chat or a private chat with a user. In the case of a supergroup chat the bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success.", "Fields": [ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -4119,7 +4590,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -4144,7 +4615,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -4161,7 +4632,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -4178,7 +4649,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -4195,7 +4666,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -4212,7 +4683,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -4237,7 +4708,7 @@ { "OriginalName": "text", "ConvertedName": "Text", - "Description": "Text of the notification. If not specified, nothing will be shown to the user, 0-200 characters", + "Description": "Text of the notification. If not specified, nothing will be shown to the user, 0-200 characters.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -4270,6 +4741,31 @@ "OriginalReturnType": "True", "ConvertedReturnType": "bool" }, + { + "OriginalName": "answerGuestQuery", + "ConvertedName": "AnswerGuestQuery", + "Description": "Use this method to reply to a received guest message. On success, a SentGuestMessage object is returned.", + "Fields": [ + { + "OriginalName": "guest_query_id", + "ConvertedName": "GuestQueryId", + "Description": "Unique identifier for the query to be answered", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "result", + "ConvertedName": "Result", + "Description": "A JSON-serialized object describing the message to be sent", + "OriginalFieldType": "InlineQueryResult", + "ConvertedFieldType": "InlineQueryResult", + "Optional": false + } + ], + "OriginalReturnType": "SentGuestMessage", + "ConvertedReturnType": "SentGuestMessage" + }, { "OriginalName": "getUserChatBoosts", "ConvertedName": "GetUserChatBoosts", @@ -4278,7 +4774,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the chat or username of the channel (in the format @channelusername)", + "Description": "Unique identifier for the chat or username of the channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -4313,55 +4809,139 @@ "ConvertedReturnType": "BusinessConnection" }, { - "OriginalName": "setMyCommands", - "ConvertedName": "SetMyCommands", - "Description": "Use this method to change the list of the bot\u0027s commands. See this manual for more details about bot commands. Returns True on success.", + "OriginalName": "getManagedBotToken", + "ConvertedName": "GetManagedBotToken", + "Description": "Use this method to get the token of a managed bot. Returns the token as String on success.", "Fields": [ { - "OriginalName": "commands", - "ConvertedName": "Commands", - "Description": "A JSON-serialized list of bot commands to be set as the list of the bot\u0027s commands. At most 100 commands can be specified.", - "OriginalFieldType": "Array of BotCommand", - "ConvertedFieldType": "BotCommand[]", + "OriginalName": "user_id", + "ConvertedName": "UserId", + "Description": "User identifier of the managed bot whose token will be returned", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", "Optional": false - }, - { - "OriginalName": "scope", - "ConvertedName": "Scope", - "Description": "A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault.", - "OriginalFieldType": "BotCommandScope", - "ConvertedFieldType": "BotCommandScope", - "Optional": true - }, - { - "OriginalName": "language_code", - "ConvertedName": "LanguageCode", - "Description": "A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", - "Optional": true } ], - "OriginalReturnType": "True", - "ConvertedReturnType": "bool" + "OriginalReturnType": "String", + "ConvertedReturnType": "string" }, { - "OriginalName": "deleteMyCommands", - "ConvertedName": "DeleteMyCommands", - "Description": "Use this method to delete the list of the bot\u0027s commands for the given scope and user language. After deletion, higher level commands will be shown to affected users. Returns True on success.", + "OriginalName": "replaceManagedBotToken", + "ConvertedName": "ReplaceManagedBotToken", + "Description": "Use this method to revoke the current token of a managed bot and generate a new one. Returns the new token as String on success.", "Fields": [ { - "OriginalName": "scope", - "ConvertedName": "Scope", - "Description": "A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault.", - "OriginalFieldType": "BotCommandScope", - "ConvertedFieldType": "BotCommandScope", - "Optional": true - }, - { + "OriginalName": "user_id", + "ConvertedName": "UserId", + "Description": "User identifier of the managed bot whose token will be replaced", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + } + ], + "OriginalReturnType": "String", + "ConvertedReturnType": "string" + }, + { + "OriginalName": "getManagedBotAccessSettings", + "ConvertedName": "GetManagedBotAccessSettings", + "Description": "Use this method to get the access settings of a managed bot. Returns a BotAccessSettings object on success.", + "Fields": [ + { + "OriginalName": "user_id", + "ConvertedName": "UserId", + "Description": "User identifier of the managed bot whose access settings will be returned", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + } + ], + "OriginalReturnType": "BotAccessSettings", + "ConvertedReturnType": "BotAccessSettings" + }, + { + "OriginalName": "setManagedBotAccessSettings", + "ConvertedName": "SetManagedBotAccessSettings", + "Description": "Use this method to change the access settings of a managed bot. Returns True on success.", + "Fields": [ + { + "OriginalName": "user_id", + "ConvertedName": "UserId", + "Description": "User identifier of the managed bot whose access settings will be changed", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "is_access_restricted", + "ConvertedName": "IsAccessRestricted", + "Description": "Pass True, if only selected users can access the bot. The bot\u0027s owner can always access it.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": false + }, + { + "OriginalName": "added_user_ids", + "ConvertedName": "AddedUserIds", + "Description": "A JSON-serialized list of up to 10 identifiers of users who will have access to the bot in addition to its owner. Ignored if is_access_restricted is false.", + "OriginalFieldType": "Array of Integer", + "ConvertedFieldType": "int64[]", + "Optional": true + } + ], + "OriginalReturnType": "True", + "ConvertedReturnType": "bool" + }, + { + "OriginalName": "setMyCommands", + "ConvertedName": "SetMyCommands", + "Description": "Use this method to change the list of the bot\u0027s commands. See this manual for more details about bot commands. Returns True on success.", + "Fields": [ + { + "OriginalName": "commands", + "ConvertedName": "Commands", + "Description": "A JSON-serialized list of bot commands to be set as the list of the bot\u0027s commands. At most 100 commands can be specified.", + "OriginalFieldType": "Array of BotCommand", + "ConvertedFieldType": "BotCommand[]", + "Optional": false + }, + { + "OriginalName": "scope", + "ConvertedName": "Scope", + "Description": "A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault.", + "OriginalFieldType": "BotCommandScope", + "ConvertedFieldType": "BotCommandScope", + "Optional": true + }, + { "OriginalName": "language_code", "ConvertedName": "LanguageCode", - "Description": "A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands", + "Description": "A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + } + ], + "OriginalReturnType": "True", + "ConvertedReturnType": "bool" + }, + { + "OriginalName": "deleteMyCommands", + "ConvertedName": "DeleteMyCommands", + "Description": "Use this method to delete the list of the bot\u0027s commands for the given scope and user language. After deletion, higher level commands will be shown to affected users. Returns True on success.", + "Fields": [ + { + "OriginalName": "scope", + "ConvertedName": "Scope", + "Description": "A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault.", + "OriginalFieldType": "BotCommandScope", + "ConvertedFieldType": "BotCommandScope", + "Optional": true + }, + { + "OriginalName": "language_code", + "ConvertedName": "LanguageCode", + "Description": "A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -4521,6 +5101,31 @@ "OriginalReturnType": "BotShortDescription", "ConvertedReturnType": "BotShortDescription" }, + { + "OriginalName": "setMyProfilePhoto", + "ConvertedName": "SetMyProfilePhoto", + "Description": "Changes the profile photo of the bot. Returns True on success.", + "Fields": [ + { + "OriginalName": "photo", + "ConvertedName": "Photo", + "Description": "The new profile photo to set", + "OriginalFieldType": "InputProfilePhoto", + "ConvertedFieldType": "InputProfilePhoto", + "Optional": false + } + ], + "OriginalReturnType": "True", + "ConvertedReturnType": "bool" + }, + { + "OriginalName": "removeMyProfilePhoto", + "ConvertedName": "RemoveMyProfilePhoto", + "Description": "Removes the profile photo of the bot. Requires no parameters. Returns True on success.", + "Fields": [], + "OriginalReturnType": "True", + "ConvertedReturnType": "bool" + }, { "OriginalName": "setChatMenuButton", "ConvertedName": "SetChatMenuButton", @@ -4529,7 +5134,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target private chat. If not specified, default bot\u0027s menu button will be changed", + "Description": "Unique identifier for the target private chat. If not specified, the bot\u0027s default menu button will be changed.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -4537,7 +5142,7 @@ { "OriginalName": "menu_button", "ConvertedName": "MenuButton", - "Description": "A JSON-serialized object for the bot\u0027s new menu button. Defaults to MenuButtonDefault", + "Description": "A JSON-serialized object for the bot\u0027s new menu button. Defaults to MenuButtonDefault.", "OriginalFieldType": "MenuButton", "ConvertedFieldType": "MenuButton", "Optional": true @@ -4554,7 +5159,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target private chat. If not specified, default bot\u0027s menu button will be returned", + "Description": "Unique identifier for the target private chat. If not specified, the bot\u0027s default menu button will be returned.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -4629,7 +5234,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Required if user_id is not specified. Unique identifier for the chat or username of the channel (in the format @channelusername) that will receive the gift.", + "Description": "Required if user_id is not specified. Unique identifier for the chat or username of the channel (in the format @username) that will receive the gift.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": true @@ -4637,7 +5242,7 @@ { "OriginalName": "gift_id", "ConvertedName": "GiftId", - "Description": "Identifier of the gift", + "Description": "Identifier of the gift; limited gifts can\u0027t be sent to channel chats", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -4661,7 +5266,7 @@ { "OriginalName": "text_parse_mode", "ConvertedName": "TextParseMode", - "Description": "Mode for parsing entities in the text. See formatting options for more details. Entities other than \u201Cbold\u201D, \u201Citalic\u201D, \u201Cunderline\u201D, \u201Cstrikethrough\u201D, \u201Cspoiler\u201D, and \u201Ccustom_emoji\u201D are ignored.", + "Description": "Mode for parsing entities in the text. See formatting options for more details. Entities other than \u201Cbold\u201D, \u201Citalic\u201D, \u201Cunderline\u201D, \u201Cstrikethrough\u201D, \u201Cspoiler\u201D, \u201Ccustom_emoji\u201D, and \u201Cdate_time\u201D are ignored.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -4669,7 +5274,7 @@ { "OriginalName": "text_entities", "ConvertedName": "TextEntities", - "Description": "A JSON-serialized list of special entities that appear in the gift text. It can be specified instead of text_parse_mode. Entities other than \u201Cbold\u201D, \u201Citalic\u201D, \u201Cunderline\u201D, \u201Cstrikethrough\u201D, \u201Cspoiler\u201D, and \u201Ccustom_emoji\u201D are ignored.", + "Description": "A JSON-serialized list of special entities that appear in the gift text. It can be specified instead of text_parse_mode. Entities other than \u201Cbold\u201D, \u201Citalic\u201D, \u201Cunderline\u201D, \u201Cstrikethrough\u201D, \u201Cspoiler\u201D, \u201Ccustom_emoji\u201D, and \u201Cdate_time\u201D are ignored.", "OriginalFieldType": "Array of MessageEntity", "ConvertedFieldType": "MessageEntity[]", "Optional": true @@ -4718,7 +5323,7 @@ { "OriginalName": "text_parse_mode", "ConvertedName": "TextParseMode", - "Description": "Mode for parsing entities in the text. See formatting options for more details. Entities other than \u201Cbold\u201D, \u201Citalic\u201D, \u201Cunderline\u201D, \u201Cstrikethrough\u201D, \u201Cspoiler\u201D, and \u201Ccustom_emoji\u201D are ignored.", + "Description": "Mode for parsing entities in the text. See formatting options for more details. Entities other than \u201Cbold\u201D, \u201Citalic\u201D, \u201Cunderline\u201D, \u201Cstrikethrough\u201D, \u201Cspoiler\u201D, \u201Ccustom_emoji\u201D, and \u201Cdate_time\u201D are ignored.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -4726,7 +5331,7 @@ { "OriginalName": "text_entities", "ConvertedName": "TextEntities", - "Description": "A JSON-serialized list of special entities that appear in the gift text. It can be specified instead of text_parse_mode. Entities other than \u201Cbold\u201D, \u201Citalic\u201D, \u201Cunderline\u201D, \u201Cstrikethrough\u201D, \u201Cspoiler\u201D, and \u201Ccustom_emoji\u201D are ignored.", + "Description": "A JSON-serialized list of special entities that appear in the gift text. It can be specified instead of text_parse_mode. Entities other than \u201Cbold\u201D, \u201Citalic\u201D, \u201Cunderline\u201D, \u201Cstrikethrough\u201D, \u201Cspoiler\u201D, \u201Ccustom_emoji\u201D, and \u201Cdate_time\u201D are ignored.", "OriginalFieldType": "Array of MessageEntity", "ConvertedFieldType": "MessageEntity[]", "Optional": true @@ -4768,7 +5373,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername). Channel direct messages chats can\u0027t be verified.", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username. Channel direct messages chats can\u0027t be verified.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -4810,7 +5415,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -4868,7 +5473,7 @@ { "OriginalName": "message_ids", "ConvertedName": "MessageIds", - "Description": "A JSON-serialized list of 1-100 identifiers of messages to delete. All messages must be from the same chat. See deleteMessage for limitations on which messages can be deleted", + "Description": "A JSON-serialized list of 1-100 identifiers of messages to delete. All messages must be from the same chat. See deleteMessage for limitations on which messages can be deleted.", "OriginalFieldType": "Array of Integer", "ConvertedFieldType": "int64[]", "Optional": false @@ -5131,9 +5736,17 @@ "Optional": true }, { - "OriginalName": "exclude_limited", - "ConvertedName": "ExcludeLimited", - "Description": "Pass True to exclude gifts that can be purchased a limited number of times", + "OriginalName": "exclude_limited_upgradable", + "ConvertedName": "ExcludeLimitedUpgradable", + "Description": "Pass True to exclude gifts that can be purchased a limited number of times and can be upgraded to unique", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "exclude_limited_non_upgradable", + "ConvertedName": "ExcludeLimitedNonUpgradable", + "Description": "Pass True to exclude gifts that can be purchased a limited number of times and can\u0027t be upgraded to unique", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -5146,6 +5759,14 @@ "ConvertedFieldType": "bool", "Optional": true }, + { + "OriginalName": "exclude_from_blockchain", + "ConvertedName": "ExcludeFromBlockchain", + "Description": "Pass True to exclude gifts that were assigned from the TON blockchain and can\u0027t be resold or transferred in Telegram", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, { "OriginalName": "sort_by_price", "ConvertedName": "SortByPrice", @@ -5165,7 +5786,185 @@ { "OriginalName": "limit", "ConvertedName": "Limit", - "Description": "The maximum number of gifts to be returned; 1-100. Defaults to 100", + "Description": "The maximum number of gifts to be returned; 1-100. Defaults to 100.", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + } + ], + "OriginalReturnType": "OwnedGifts", + "ConvertedReturnType": "OwnedGifts" + }, + { + "OriginalName": "getUserGifts", + "ConvertedName": "GetUserGifts", + "Description": "Returns the gifts owned and hosted by a user. Returns OwnedGifts on success.", + "Fields": [ + { + "OriginalName": "user_id", + "ConvertedName": "UserId", + "Description": "Unique identifier of the user", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "exclude_unlimited", + "ConvertedName": "ExcludeUnlimited", + "Description": "Pass True to exclude gifts that can be purchased an unlimited number of times", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "exclude_limited_upgradable", + "ConvertedName": "ExcludeLimitedUpgradable", + "Description": "Pass True to exclude gifts that can be purchased a limited number of times and can be upgraded to unique", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "exclude_limited_non_upgradable", + "ConvertedName": "ExcludeLimitedNonUpgradable", + "Description": "Pass True to exclude gifts that can be purchased a limited number of times and can\u0027t be upgraded to unique", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "exclude_from_blockchain", + "ConvertedName": "ExcludeFromBlockchain", + "Description": "Pass True to exclude gifts that were assigned from the TON blockchain and can\u0027t be resold or transferred in Telegram", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "exclude_unique", + "ConvertedName": "ExcludeUnique", + "Description": "Pass True to exclude unique gifts", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "sort_by_price", + "ConvertedName": "SortByPrice", + "Description": "Pass True to sort results by gift price instead of send date. Sorting is applied before pagination.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "offset", + "ConvertedName": "Offset", + "Description": "Offset of the first entry to return as received from the previous request; use an empty string to get the first chunk of results", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "limit", + "ConvertedName": "Limit", + "Description": "The maximum number of gifts to be returned; 1-100. Defaults to 100.", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + } + ], + "OriginalReturnType": "OwnedGifts", + "ConvertedReturnType": "OwnedGifts" + }, + { + "OriginalName": "getChatGifts", + "ConvertedName": "GetChatGifts", + "Description": "Returns the gifts owned by a chat. Returns OwnedGifts on success.", + "Fields": [ + { + "OriginalName": "chat_id", + "ConvertedName": "ChatId", + "Description": "Unique identifier for the target chat or username of the target channel in the format @username", + "OriginalFieldType": "Integer or String", + "ConvertedFieldType": "ChatId", + "Optional": false + }, + { + "OriginalName": "exclude_unsaved", + "ConvertedName": "ExcludeUnsaved", + "Description": "Pass True to exclude gifts that aren\u0027t saved to the chat\u0027s profile page. Always True, unless the bot has the can_post_messages administrator right in the channel.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "exclude_saved", + "ConvertedName": "ExcludeSaved", + "Description": "Pass True to exclude gifts that are saved to the chat\u0027s profile page. Always False, unless the bot has the can_post_messages administrator right in the channel.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "exclude_unlimited", + "ConvertedName": "ExcludeUnlimited", + "Description": "Pass True to exclude gifts that can be purchased an unlimited number of times", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "exclude_limited_upgradable", + "ConvertedName": "ExcludeLimitedUpgradable", + "Description": "Pass True to exclude gifts that can be purchased a limited number of times and can be upgraded to unique", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "exclude_limited_non_upgradable", + "ConvertedName": "ExcludeLimitedNonUpgradable", + "Description": "Pass True to exclude gifts that can be purchased a limited number of times and can\u0027t be upgraded to unique", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "exclude_from_blockchain", + "ConvertedName": "ExcludeFromBlockchain", + "Description": "Pass True to exclude gifts that were assigned from the TON blockchain and can\u0027t be resold or transferred in Telegram", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "exclude_unique", + "ConvertedName": "ExcludeUnique", + "Description": "Pass True to exclude unique gifts", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "sort_by_price", + "ConvertedName": "SortByPrice", + "Description": "Pass True to sort results by gift price instead of send date. Sorting is applied before pagination.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "offset", + "ConvertedName": "Offset", + "Description": "Offset of the first entry to return as received from the previous request; use an empty string to get the first chunk of results", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "limit", + "ConvertedName": "Limit", + "Description": "The maximum number of gifts to be returned; 1-100. Defaults to 100.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -5362,6 +6161,63 @@ "OriginalReturnType": "Story", "ConvertedReturnType": "Story" }, + { + "OriginalName": "repostStory", + "ConvertedName": "RepostStory", + "Description": "Reposts a story on behalf of a business account from another business account. Both business accounts must be managed by the same bot, and the story on the source account must have been posted (or reposted) by the bot. Requires the can_manage_stories business bot right for both business accounts. Returns Story on success.", + "Fields": [ + { + "OriginalName": "business_connection_id", + "ConvertedName": "BusinessConnectionId", + "Description": "Unique identifier of the business connection", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "from_chat_id", + "ConvertedName": "FromChatId", + "Description": "Unique identifier of the chat which posted the story that should be reposted", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "from_story_id", + "ConvertedName": "FromStoryId", + "Description": "Unique identifier of the story that should be reposted", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "active_period", + "ConvertedName": "ActivePeriod", + "Description": "Period after which the story is moved to the archive, in seconds; must be one of 6 * 3600, 12 * 3600, 86400, or 2 * 86400", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "post_to_chat_page", + "ConvertedName": "PostToChatPage", + "Description": "Pass True to keep the story accessible after it expires", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "protect_content", + "ConvertedName": "ProtectContent", + "Description": "Pass True if the content of the story must be protected from forwarding and screenshotting", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + } + ], + "OriginalReturnType": "Story", + "ConvertedReturnType": "Story" + }, { "OriginalName": "editStory", "ConvertedName": "EditStory", @@ -5452,10 +6308,117 @@ "OriginalReturnType": "True", "ConvertedReturnType": "bool" }, + { + "OriginalName": "answerWebAppQuery", + "ConvertedName": "AnswerWebAppQuery", + "Description": "Use this method to set the result of an interaction with a Web App and send a corresponding message on behalf of the user to the chat from which the query originated. On success, a SentWebAppMessage object is returned.", + "Fields": [ + { + "OriginalName": "web_app_query_id", + "ConvertedName": "WebAppQueryId", + "Description": "Unique identifier for the query to be answered", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "result", + "ConvertedName": "Result", + "Description": "A JSON-serialized object describing the message to be sent", + "OriginalFieldType": "InlineQueryResult", + "ConvertedFieldType": "InlineQueryResult", + "Optional": false + } + ], + "OriginalReturnType": "SentWebAppMessage", + "ConvertedReturnType": "SentWebAppMessage" + }, + { + "OriginalName": "savePreparedInlineMessage", + "ConvertedName": "SavePreparedInlineMessage", + "Description": "Stores a message that can be sent by a user of a Mini App. Returns a PreparedInlineMessage object.", + "Fields": [ + { + "OriginalName": "user_id", + "ConvertedName": "UserId", + "Description": "Unique identifier of the target user that can use the prepared message", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "result", + "ConvertedName": "Result", + "Description": "A JSON-serialized object describing the message to be sent", + "OriginalFieldType": "InlineQueryResult", + "ConvertedFieldType": "InlineQueryResult", + "Optional": false + }, + { + "OriginalName": "allow_user_chats", + "ConvertedName": "AllowUserChats", + "Description": "Pass True if the message can be sent to private chats with users", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "allow_bot_chats", + "ConvertedName": "AllowBotChats", + "Description": "Pass True if the message can be sent to private chats with bots", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "allow_group_chats", + "ConvertedName": "AllowGroupChats", + "Description": "Pass True if the message can be sent to group and supergroup chats", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "allow_channel_chats", + "ConvertedName": "AllowChannelChats", + "Description": "Pass True if the message can be sent to channel chats", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + } + ], + "OriginalReturnType": "PreparedInlineMessage", + "ConvertedReturnType": "PreparedInlineMessage" + }, + { + "OriginalName": "savePreparedKeyboardButton", + "ConvertedName": "SavePreparedKeyboardButton", + "Description": "Stores a keyboard button that can be used by a user within a Mini App. Returns a PreparedKeyboardButton object.", + "Fields": [ + { + "OriginalName": "user_id", + "ConvertedName": "UserId", + "Description": "Unique identifier of the target user that can use the button", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "button", + "ConvertedName": "Button", + "Description": "A JSON-serialized object describing the button to be saved. The button must be of the type request_users, request_chat, or request_managed_bot.", + "OriginalFieldType": "KeyboardButton", + "ConvertedFieldType": "KeyboardButton", + "Optional": false + } + ], + "OriginalReturnType": "PreparedKeyboardButton", + "ConvertedReturnType": "PreparedKeyboardButton" + }, { "OriginalName": "editMessageText", "ConvertedName": "EditMessageText", - "Description": "Use this method to edit text and game messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.", + "Description": "Use this method to edit text, rich and game messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.", "Fields": [ { "OriginalName": "business_connection_id", @@ -5468,7 +6431,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": true @@ -5476,7 +6439,7 @@ { "OriginalName": "message_id", "ConvertedName": "MessageId", - "Description": "Required if inline_message_id is not specified. Identifier of the message to edit", + "Description": "Required if inline_message_id is not specified. Identifier of the message to edit.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -5484,7 +6447,7 @@ { "OriginalName": "inline_message_id", "ConvertedName": "InlineMessageId", - "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message", + "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -5492,10 +6455,10 @@ { "OriginalName": "text", "ConvertedName": "Text", - "Description": "New text of the message, 1-4096 characters after entities parsing", + "Description": "New text of the message, 1-4096 characters after entity parsing; required if rich_message isn\u0027t specified", "OriginalFieldType": "String", "ConvertedFieldType": "string", - "Optional": false + "Optional": true }, { "OriginalName": "parse_mode", @@ -5521,10 +6484,18 @@ "ConvertedFieldType": "LinkPreviewOptions", "Optional": true }, + { + "OriginalName": "rich_message", + "ConvertedName": "RichMessage", + "Description": "New rich content of the message; required if text isn\u0027t specified", + "OriginalFieldType": "InputRichMessage", + "ConvertedFieldType": "InputRichMessage", + "Optional": true + }, { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "A JSON-serialized object for an inline keyboard.", + "Description": "A JSON-serialized object for an inline keyboard", "OriginalFieldType": "InlineKeyboardMarkup", "ConvertedFieldType": "InlineKeyboardMarkup", "Optional": true @@ -5549,7 +6520,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": true @@ -5557,7 +6528,7 @@ { "OriginalName": "message_id", "ConvertedName": "MessageId", - "Description": "Required if inline_message_id is not specified. Identifier of the message to edit", + "Description": "Required if inline_message_id is not specified. Identifier of the message to edit.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -5565,7 +6536,7 @@ { "OriginalName": "inline_message_id", "ConvertedName": "InlineMessageId", - "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message", + "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -5605,7 +6576,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "A JSON-serialized object for an inline keyboard.", + "Description": "A JSON-serialized object for an inline keyboard", "OriginalFieldType": "InlineKeyboardMarkup", "ConvertedFieldType": "InlineKeyboardMarkup", "Optional": true @@ -5617,7 +6588,7 @@ { "OriginalName": "editMessageMedia", "ConvertedName": "EditMessageMedia", - "Description": "Use this method to edit animation, audio, document, photo, or video messages, or to add media to text messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can\u0027t be uploaded; use a previously uploaded file via its file_id or specify a URL. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.", + "Description": "Use this method to edit animation, audio, document, live photo, photo, or video messages, or to replace a text or a rich message with a media. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo, a live photo, or a video otherwise. When an inline message is edited, a new file can\u0027t be uploaded; use a previously uploaded file via its file_id or specify a URL. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned. Note that business messages that were not sent by the bot and do not contain an inline keyboard can only be edited within 48 hours from the time they were sent.", "Fields": [ { "OriginalName": "business_connection_id", @@ -5630,7 +6601,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": true @@ -5638,7 +6609,7 @@ { "OriginalName": "message_id", "ConvertedName": "MessageId", - "Description": "Required if inline_message_id is not specified. Identifier of the message to edit", + "Description": "Required if inline_message_id is not specified. Identifier of the message to edit.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -5646,7 +6617,7 @@ { "OriginalName": "inline_message_id", "ConvertedName": "InlineMessageId", - "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message", + "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -5662,7 +6633,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "A JSON-serialized object for a new inline keyboard.", + "Description": "A JSON-serialized object for a new inline keyboard", "OriginalFieldType": "InlineKeyboardMarkup", "ConvertedFieldType": "InlineKeyboardMarkup", "Optional": true @@ -5687,7 +6658,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": true @@ -5695,7 +6666,7 @@ { "OriginalName": "message_id", "ConvertedName": "MessageId", - "Description": "Required if inline_message_id is not specified. Identifier of the message to edit", + "Description": "Required if inline_message_id is not specified. Identifier of the message to edit.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -5703,7 +6674,7 @@ { "OriginalName": "inline_message_id", "ConvertedName": "InlineMessageId", - "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message", + "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -5727,7 +6698,7 @@ { "OriginalName": "live_period", "ConvertedName": "LivePeriod", - "Description": "New period in seconds during which the location can be updated, starting from the message send date. If 0x7FFFFFFF is specified, then the location can be updated forever. Otherwise, the new value must not exceed the current live_period by more than a day, and the live location expiration date must remain within the next 90 days. If not specified, then live_period remains unchanged", + "Description": "New period in seconds during which the location can be updated, starting from the message send date. If 0x7FFFFFFF is specified, then the location can be updated forever. Otherwise, the new value must not exceed the current live_period by more than a day, and the live location expiration date must remain within the next 90 days. If not specified, then live_period remains unchanged.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -5759,7 +6730,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "A JSON-serialized object for a new inline keyboard.", + "Description": "A JSON-serialized object for a new inline keyboard", "OriginalFieldType": "InlineKeyboardMarkup", "ConvertedFieldType": "InlineKeyboardMarkup", "Optional": true @@ -5784,7 +6755,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": true @@ -5792,7 +6763,7 @@ { "OriginalName": "message_id", "ConvertedName": "MessageId", - "Description": "Required if inline_message_id is not specified. Identifier of the message with live location to stop", + "Description": "Required if inline_message_id is not specified. Identifier of the message with live location to stop.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -5800,7 +6771,7 @@ { "OriginalName": "inline_message_id", "ConvertedName": "InlineMessageId", - "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message", + "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -5808,7 +6779,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "A JSON-serialized object for a new inline keyboard.", + "Description": "A JSON-serialized object for a new inline keyboard", "OriginalFieldType": "InlineKeyboardMarkup", "ConvertedFieldType": "InlineKeyboardMarkup", "Optional": true @@ -5833,9 +6804,9 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", + "Description": "Unique identifier for the target chat or username of the target bot in the format @username", + "OriginalFieldType": "Integer or String", + "ConvertedFieldType": "ChatId", "Optional": false }, { @@ -5882,7 +6853,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": true @@ -5890,7 +6861,7 @@ { "OriginalName": "message_id", "ConvertedName": "MessageId", - "Description": "Required if inline_message_id is not specified. Identifier of the message to edit", + "Description": "Required if inline_message_id is not specified. Identifier of the message to edit.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -5898,7 +6869,7 @@ { "OriginalName": "inline_message_id", "ConvertedName": "InlineMessageId", - "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message", + "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -5906,7 +6877,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "A JSON-serialized object for an inline keyboard.", + "Description": "A JSON-serialized object for an inline keyboard", "OriginalFieldType": "InlineKeyboardMarkup", "ConvertedFieldType": "InlineKeyboardMarkup", "Optional": true @@ -5931,7 +6902,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -5947,7 +6918,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "A JSON-serialized object for a new message inline keyboard.", + "Description": "A JSON-serialized object for a new message inline keyboard", "OriginalFieldType": "InlineKeyboardMarkup", "ConvertedFieldType": "InlineKeyboardMarkup", "Optional": true @@ -5980,7 +6951,7 @@ { "OriginalName": "send_date", "ConvertedName": "SendDate", - "Description": "Point in time (Unix timestamp) when the post is expected to be published; omit if the date has already been specified when the suggested post was created. If specified, then the date must be not more than 2678400 seconds (30 days) in the future", + "Description": "Point in time (Unix timestamp) when the post is expected to be published; omit if the date has already been specified when the suggested post was created. If specified, then the date must be not more than 2678400 seconds (30 days) in the future.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -6030,7 +7001,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -6055,7 +7026,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -6063,7 +7034,7 @@ { "OriginalName": "message_ids", "ConvertedName": "MessageIds", - "Description": "A JSON-serialized list of 1-100 identifiers of messages to delete. See deleteMessage for limitations on which messages can be deleted", + "Description": "A JSON-serialized list of 1-100 identifiers of messages to delete. See deleteMessage for limitations on which messages can be deleted.", "OriginalFieldType": "Array of Integer", "ConvertedFieldType": "int64[]", "Optional": false @@ -6072,6 +7043,80 @@ "OriginalReturnType": "True", "ConvertedReturnType": "bool" }, + { + "OriginalName": "deleteMessageReaction", + "ConvertedName": "DeleteMessageReaction", + "Description": "Use this method to remove a reaction from a message in a group or a supergroup chat. The bot must have the \u0027can_delete_messages\u0027 administrator right in the chat. Returns True on success.", + "Fields": [ + { + "OriginalName": "chat_id", + "ConvertedName": "ChatId", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", + "OriginalFieldType": "Integer or String", + "ConvertedFieldType": "ChatId", + "Optional": false + }, + { + "OriginalName": "message_id", + "ConvertedName": "MessageId", + "Description": "Identifier of the target message", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "user_id", + "ConvertedName": "UserId", + "Description": "Identifier of the user whose reaction will be removed, if the reaction was added by a user", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "actor_chat_id", + "ConvertedName": "ActorChatId", + "Description": "Identifier of the chat whose reaction will be removed, if the reaction was added by a chat", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + } + ], + "OriginalReturnType": "True", + "ConvertedReturnType": "bool" + }, + { + "OriginalName": "deleteAllMessageReactions", + "ConvertedName": "DeleteAllMessageReactions", + "Description": "Use this method to remove up to 10000 recent reactions in a group or a supergroup chat added by a given user or chat. The bot must have the \u0027can_delete_messages\u0027 administrator right in the chat. Returns True on success.", + "Fields": [ + { + "OriginalName": "chat_id", + "ConvertedName": "ChatId", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username", + "OriginalFieldType": "Integer or String", + "ConvertedFieldType": "ChatId", + "Optional": false + }, + { + "OriginalName": "user_id", + "ConvertedName": "UserId", + "Description": "Identifier of the user whose reactions will be removed, if the reactions were added by a user", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "actor_chat_id", + "ConvertedName": "ActorChatId", + "Description": "Identifier of the chat whose reactions will be removed, if the reactions were added by a chat", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + } + ], + "OriginalReturnType": "True", + "ConvertedReturnType": "bool" + }, { "OriginalName": "sendSticker", "ConvertedName": "SendSticker", @@ -6088,7 +7133,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -6096,7 +7141,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -6144,7 +7189,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -6176,7 +7221,7 @@ { "OriginalName": "reply_markup", "ConvertedName": "ReplyMarkup", - "Description": "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", + "Description": "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.", "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", "ConvertedFieldType": "Markup", "Optional": true @@ -6582,7 +7627,7 @@ { "OriginalName": "custom_emoji_id", "ConvertedName": "CustomEmojiId", - "Description": "Custom emoji identifier of a sticker from the sticker set; pass an empty string to drop the thumbnail and use the first sticker as the thumbnail.", + "Description": "Custom emoji identifier of a sticker from the sticker set; pass an empty string to drop the thumbnail and use the first sticker as the thumbnail", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -6609,143 +7654,207 @@ "ConvertedReturnType": "bool" }, { - "OriginalName": "answerInlineQuery", - "ConvertedName": "AnswerInlineQuery", - "Description": "Use this method to send answers to an inline query. On success, True is returned.\nNo more than 50 results per query are allowed.", + "OriginalName": "sendRichMessage", + "ConvertedName": "SendRichMessage", + "Description": "Use this method to send rich messages. If the message contains a block with a media element, then the bot must have the right to send the media to the chat. On success, the sent Message is returned.", "Fields": [ { - "OriginalName": "inline_query_id", - "ConvertedName": "InlineQueryId", - "Description": "Unique identifier for the answered query", + "OriginalName": "business_connection_id", + "ConvertedName": "BusinessConnectionId", + "Description": "Unique identifier of the business connection on behalf of which the message will be sent", "OriginalFieldType": "String", "ConvertedFieldType": "string", - "Optional": false + "Optional": true }, { - "OriginalName": "results", - "ConvertedName": "Results", - "Description": "A JSON-serialized array of results for the inline query", - "OriginalFieldType": "Array of InlineQueryResult", - "ConvertedFieldType": "InlineQueryResult[]", + "OriginalName": "chat_id", + "ConvertedName": "ChatId", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", + "OriginalFieldType": "Integer or String", + "ConvertedFieldType": "ChatId", "Optional": false }, { - "OriginalName": "cache_time", - "ConvertedName": "CacheTime", - "Description": "The maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300.", + "OriginalName": "message_thread_id", + "ConvertedName": "MessageThreadId", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true }, { - "OriginalName": "is_personal", - "ConvertedName": "IsPersonal", - "Description": "Pass True if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query.", + "OriginalName": "direct_messages_topic_id", + "ConvertedName": "DirectMessagesTopicId", + "Description": "Identifier of the direct messages topic to which the message will be sent; required if the message is sent to a direct messages chat", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "rich_message", + "ConvertedName": "RichMessage", + "Description": "The message to be sent", + "OriginalFieldType": "InputRichMessage", + "ConvertedFieldType": "InputRichMessage", + "Optional": false + }, + { + "OriginalName": "disable_notification", + "ConvertedName": "DisableNotification", + "Description": "Sends the message silently. Users will receive a notification with no sound.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true }, { - "OriginalName": "next_offset", - "ConvertedName": "NextOffset", - "Description": "Pass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don\u0027t support pagination. Offset length can\u0027t exceed 64 bytes.", + "OriginalName": "protect_content", + "ConvertedName": "ProtectContent", + "Description": "Protects the contents of the sent message from forwarding and saving", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "allow_paid_broadcast", + "ConvertedName": "AllowPaidBroadcast", + "Description": "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\u0027s balance.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "message_effect_id", + "ConvertedName": "MessageEffectId", + "Description": "Unique identifier of the message effect to be added to the message; for private chats only", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true }, { - "OriginalName": "button", - "ConvertedName": "Button", - "Description": "A JSON-serialized object describing a button to be shown above inline query results", - "OriginalFieldType": "InlineQueryResultsButton", - "ConvertedFieldType": "InlineQueryResultsButton", + "OriginalName": "suggested_post_parameters", + "ConvertedName": "SuggestedPostParameters", + "Description": "A JSON-serialized 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.", + "OriginalFieldType": "SuggestedPostParameters", + "ConvertedFieldType": "SuggestedPostParameters", + "Optional": true + }, + { + "OriginalName": "reply_parameters", + "ConvertedName": "ReplyParameters", + "Description": "Description of the message to reply to", + "OriginalFieldType": "ReplyParameters", + "ConvertedFieldType": "ReplyParameters", + "Optional": true + }, + { + "OriginalName": "reply_markup", + "ConvertedName": "ReplyMarkup", + "Description": "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.", + "OriginalFieldType": "InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply", + "ConvertedFieldType": "Markup", "Optional": true } ], - "OriginalReturnType": "True", - "ConvertedReturnType": "bool" + "OriginalReturnType": "Message", + "ConvertedReturnType": "Message" }, { - "OriginalName": "answerWebAppQuery", - "ConvertedName": "AnswerWebAppQuery", - "Description": "Use this method to set the result of an interaction with a Web App and send a corresponding message on behalf of the user to the chat from which the query originated. On success, a SentWebAppMessage object is returned.", + "OriginalName": "sendRichMessageDraft", + "ConvertedName": "SendRichMessageDraft", + "Description": "Use this method to stream a partial rich message to a user while the message is being generated. Note that the streamed draft is ephemeral and acts as a temporary 30-second preview - once the output is finalized, you must call sendRichMessage with the complete message to persist it in the user\u0027s chat. Returns True on success.", "Fields": [ { - "OriginalName": "web_app_query_id", - "ConvertedName": "WebAppQueryId", - "Description": "Unique identifier for the query to be answered", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", + "OriginalName": "chat_id", + "ConvertedName": "ChatId", + "Description": "Unique identifier for the target private chat", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", "Optional": false }, { - "OriginalName": "result", - "ConvertedName": "Result", - "Description": "A JSON-serialized object describing the message to be sent", - "OriginalFieldType": "InlineQueryResult", - "ConvertedFieldType": "InlineQueryResult", + "OriginalName": "message_thread_id", + "ConvertedName": "MessageThreadId", + "Description": "Unique identifier for the target message thread", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "draft_id", + "ConvertedName": "DraftId", + "Description": "Unique identifier of the message draft; must be non-zero. Changes to drafts with the same identifier are animated.", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "rich_message", + "ConvertedName": "RichMessage", + "Description": "The partial message to be streamed", + "OriginalFieldType": "InputRichMessage", + "ConvertedFieldType": "InputRichMessage", "Optional": false } ], - "OriginalReturnType": "SentWebAppMessage", - "ConvertedReturnType": "SentWebAppMessage" + "OriginalReturnType": "True", + "ConvertedReturnType": "bool" }, { - "OriginalName": "savePreparedInlineMessage", - "ConvertedName": "SavePreparedInlineMessage", - "Description": "Stores a message that can be sent by a user of a Mini App. Returns a PreparedInlineMessage object.", + "OriginalName": "answerInlineQuery", + "ConvertedName": "AnswerInlineQuery", + "Description": "Use this method to send answers to an inline query. On success, True is returned.\nNo more than 50 results per query are allowed.", "Fields": [ { - "OriginalName": "user_id", - "ConvertedName": "UserId", - "Description": "Unique identifier of the target user that can use the prepared message", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", + "OriginalName": "inline_query_id", + "ConvertedName": "InlineQueryId", + "Description": "Unique identifier for the answered query", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "result", - "ConvertedName": "Result", - "Description": "A JSON-serialized object describing the message to be sent", - "OriginalFieldType": "InlineQueryResult", - "ConvertedFieldType": "InlineQueryResult", + "OriginalName": "results", + "ConvertedName": "Results", + "Description": "A JSON-serialized array of results for the inline query", + "OriginalFieldType": "Array of InlineQueryResult", + "ConvertedFieldType": "InlineQueryResult[]", "Optional": false }, { - "OriginalName": "allow_user_chats", - "ConvertedName": "AllowUserChats", - "Description": "Pass True if the message can be sent to private chats with users", - "OriginalFieldType": "Boolean", - "ConvertedFieldType": "bool", + "OriginalName": "cache_time", + "ConvertedName": "CacheTime", + "Description": "The maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300.", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", "Optional": true }, { - "OriginalName": "allow_bot_chats", - "ConvertedName": "AllowBotChats", - "Description": "Pass True if the message can be sent to private chats with bots", + "OriginalName": "is_personal", + "ConvertedName": "IsPersonal", + "Description": "Pass True if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true }, { - "OriginalName": "allow_group_chats", - "ConvertedName": "AllowGroupChats", - "Description": "Pass True if the message can be sent to group and supergroup chats", - "OriginalFieldType": "Boolean", - "ConvertedFieldType": "bool", + "OriginalName": "next_offset", + "ConvertedName": "NextOffset", + "Description": "Pass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don\u0027t support pagination. Offset length can\u0027t exceed 64 bytes.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", "Optional": true }, { - "OriginalName": "allow_channel_chats", - "ConvertedName": "AllowChannelChats", - "Description": "Pass True if the message can be sent to channel chats", - "OriginalFieldType": "Boolean", - "ConvertedFieldType": "bool", + "OriginalName": "button", + "ConvertedName": "Button", + "Description": "A JSON-serialized object describing a button to be shown above inline query results", + "OriginalFieldType": "InlineQueryResultsButton", + "ConvertedFieldType": "InlineQueryResultsButton", "Optional": true } ], - "OriginalReturnType": "PreparedInlineMessage", - "ConvertedReturnType": "PreparedInlineMessage" + "OriginalReturnType": "True", + "ConvertedReturnType": "bool" }, { "OriginalName": "sendInvoice", @@ -6755,7 +7864,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target channel (in the format @channelusername)", + "Description": "Unique identifier for the target chat or username of the target bot, supergroup or channel in the format @username", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -6763,7 +7872,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -6843,7 +7952,7 @@ { "OriginalName": "start_parameter", "ConvertedName": "StartParameter", - "Description": "Unique deep-linking parameter. If left empty, forwarded copies of the sent message will have a Pay button, allowing multiple users to pay directly from the forwarded message, using the same invoice. If non-empty, forwarded copies of the sent message will have a URL button with a deep link to the bot (instead of a Pay button), with the value used as the start parameter", + "Description": "Unique deep-linking parameter. If left empty, forwarded copies of the sent message will have a Pay button, allowing multiple users to pay directly from the forwarded message, using the same invoice. If non-empty, forwarded copies of the sent message will have a URL button with a deep link to the bot (instead of a Pay button), with the value used as the start parameter.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -6963,7 +8072,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -7395,15 +8504,15 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat. Games can\u0027t be sent to channel direct messages chats and channel chats.", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", + "Description": "Unique identifier for the target chat or username of the target bot in the format @username. Games can\u0027t be sent to channel direct messages chats and channel chats.", + "OriginalFieldType": "Integer or String", + "ConvertedFieldType": "ChatId", "Optional": false }, { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier for the target message thread (topic) of the forum; for forum supergroups only", + "Description": "Unique identifier for the target message thread (topic) of a forum; for forum supergroups and private chats of bots with forum topic mode enabled only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -7435,7 +8544,7 @@ { "OriginalName": "allow_paid_broadcast", "ConvertedName": "AllowPaidBroadcast", - "Description": "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\u0027s balance", + "Description": "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\u0027s balance.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -7492,7 +8601,7 @@ { "OriginalName": "force", "ConvertedName": "Force", - "Description": "Pass True if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters", + "Description": "Pass True if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -7508,7 +8617,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat", + "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -7516,7 +8625,7 @@ { "OriginalName": "message_id", "ConvertedName": "MessageId", - "Description": "Required if inline_message_id is not specified. Identifier of the sent message", + "Description": "Required if inline_message_id is not specified. Identifier of the sent message.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -7524,7 +8633,7 @@ { "OriginalName": "inline_message_id", "ConvertedName": "InlineMessageId", - "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message", + "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -7549,7 +8658,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat", + "Description": "Required if inline_message_id is not specified. Unique identifier for the target chat.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -7557,7 +8666,7 @@ { "OriginalName": "message_id", "ConvertedName": "MessageId", - "Description": "Required if inline_message_id is not specified. Identifier of the sent message", + "Description": "Required if inline_message_id is not specified. Identifier of the sent message.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -7565,7 +8674,7 @@ { "OriginalName": "inline_message_id", "ConvertedName": "InlineMessageId", - "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message", + "Description": "Required if chat_id and message_id are not specified. Identifier of the inline message.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true diff --git a/src/Funogram.Generator/out/types.json b/src/Funogram.Generator/out/types.json index 36c871a..cc123ec 100644 --- a/src/Funogram.Generator/out/types.json +++ b/src/Funogram.Generator/out/types.json @@ -1,7 +1,7 @@ [ { "Name": "Update", - "Description": "This object represents an incoming update.\nAt most one of the optional parameters can be present in any given update.", + "Description": "This object represents an incoming update.\nAt most one of the optional fields can be present in any given update.", "Kind": { "Case": "Fields", "Fields": [ @@ -78,6 +78,14 @@ "ConvertedFieldType": "BusinessMessagesDeleted", "Optional": true }, + { + "OriginalName": "guest_message", + "ConvertedName": "GuestMessage", + "Description": "New guest message. The bot can use the field Message.guest_query_id and the method answerGuestQuery to send a message in response.", + "OriginalFieldType": "Message", + "ConvertedFieldType": "Message", + "Optional": true + }, { "OriginalName": "message_reaction", "ConvertedName": "MessageReaction", @@ -121,7 +129,7 @@ { "OriginalName": "shipping_query", "ConvertedName": "ShippingQuery", - "Description": "New incoming shipping query. Only for invoices with flexible price", + "Description": "New incoming shipping query. Only for invoices with flexible price.", "OriginalFieldType": "ShippingQuery", "ConvertedFieldType": "ShippingQuery", "Optional": true @@ -129,7 +137,7 @@ { "OriginalName": "pre_checkout_query", "ConvertedName": "PreCheckoutQuery", - "Description": "New incoming pre-checkout query. Contains full information about checkout", + "Description": "New incoming pre-checkout query. Contains full information about checkout.", "OriginalFieldType": "PreCheckoutQuery", "ConvertedFieldType": "PreCheckoutQuery", "Optional": true @@ -145,7 +153,7 @@ { "OriginalName": "poll", "ConvertedName": "Poll", - "Description": "New poll state. Bots receive only updates about manually stopped polls and polls, which are sent by the bot", + "Description": "New poll state. Bots receive only updates about manually stopped polls and polls, which are sent by the bot.", "OriginalFieldType": "Poll", "ConvertedFieldType": "Poll", "Optional": true @@ -197,6 +205,14 @@ "OriginalFieldType": "ChatBoostRemoved", "ConvertedFieldType": "ChatBoostRemoved", "Optional": true + }, + { + "OriginalName": "managed_bot", + "ConvertedName": "ManagedBot", + "Description": "A new bot was created to be managed by the bot, or token or owner of a managed bot was changed", + "OriginalFieldType": "ManagedBotUpdated", + "ConvertedFieldType": "ManagedBotUpdated", + "Optional": true } ] ] @@ -276,7 +292,7 @@ { "OriginalName": "allowed_updates", "ConvertedName": "AllowedUpdates", - "Description": "A list of update types the bot is subscribed to. Defaults to all update types except chat_member", + "Description": "A list of update types the bot is subscribed to. Defaults to all update types except chat_member, message_reaction, and message_reaction_count.", "OriginalFieldType": "Array of String", "ConvertedFieldType": "string[]", "Optional": true @@ -372,6 +388,14 @@ "ConvertedFieldType": "bool", "Optional": true }, + { + "OriginalName": "supports_guest_queries", + "ConvertedName": "SupportsGuestQueries", + "Description": "True, if the bot supports guest queries from chats it is not a member of. Returned only in getMe.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, { "OriginalName": "supports_inline_queries", "ConvertedName": "SupportsInlineQueries", @@ -383,7 +407,7 @@ { "OriginalName": "can_connect_to_business", "ConvertedName": "CanConnectToBusiness", - "Description": "True, if the bot can be connected to a Telegram Business account to receive its messages. Returned only in getMe.", + "Description": "True, if the bot can be connected to a user account to manage it. Returned only in getMe.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -395,6 +419,38 @@ "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true + }, + { + "OriginalName": "has_topics_enabled", + "ConvertedName": "HasTopicsEnabled", + "Description": "True, if the bot has forum topic mode enabled in private chats. Returned only in getMe.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "allows_users_to_create_topics", + "ConvertedName": "AllowsUsersToCreateTopics", + "Description": "True, if the bot allows users to create and delete topics in private chats. Returned only in getMe.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "can_manage_bots", + "ConvertedName": "CanManageBots", + "Description": "True, if other bots can be created to be controlled by the bot. Returned only in getMe.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "supports_join_request_queries", + "ConvertedName": "SupportsJoinRequestQueries", + "Description": "True, if the bot supports join request queries and can be assigned to process them. Returned only in getMe.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true } ] ] @@ -857,6 +913,46 @@ "OriginalFieldType": "ChatLocation", "ConvertedFieldType": "ChatLocation", "Optional": true + }, + { + "OriginalName": "rating", + "ConvertedName": "Rating", + "Description": "For private chats, the rating of the user if any", + "OriginalFieldType": "UserRating", + "ConvertedFieldType": "UserRating", + "Optional": true + }, + { + "OriginalName": "first_profile_audio", + "ConvertedName": "FirstProfileAudio", + "Description": "For private chats, the first audio added to the profile of the user", + "OriginalFieldType": "Audio", + "ConvertedFieldType": "Audio", + "Optional": true + }, + { + "OriginalName": "unique_gift_colors", + "ConvertedName": "UniqueGiftColors", + "Description": "The color scheme based on a unique gift that must be used for the chat\u0027s name, message replies and link previews", + "OriginalFieldType": "UniqueGiftColors", + "ConvertedFieldType": "UniqueGiftColors", + "Optional": true + }, + { + "OriginalName": "paid_message_star_count", + "ConvertedName": "PaidMessageStarCount", + "Description": "The number of Telegram Stars a general user has to pay to send a message to the chat", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "guard_bot", + "ConvertedName": "GuardBot", + "Description": "The bot that processes join request queries in the chat. The field is only available to chat administrators.", + "OriginalFieldType": "User", + "ConvertedFieldType": "User", + "Optional": true } ] ] @@ -872,7 +968,7 @@ { "OriginalName": "message_id", "ConvertedName": "MessageId", - "Description": "Unique message identifier inside this chat. In specific instances (e.g., message containing a video sent to a big chat), the server might automatically schedule a message instead of sending it immediately. In such cases, this field will be 0 and the relevant message will be unusable until it is actually sent", + "Description": "Unique message identifier inside this chat. In specific instances (e.g., message containing a video sent to a big chat), the server might automatically schedule a message instead of sending it immediately. In such cases, this field will be 0 and the relevant message will be unusable until it is actually sent.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": false @@ -880,7 +976,7 @@ { "OriginalName": "message_thread_id", "ConvertedName": "MessageThreadId", - "Description": "Unique identifier of a message thread to which the message belongs; for supergroups only", + "Description": "Unique identifier of a message thread or forum topic to which the message belongs; for supergroups and private chats only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -896,7 +992,7 @@ { "OriginalName": "from", "ConvertedName": "From", - "Description": "Sender of the message; may be empty for messages sent to channels. For backward compatibility, if the message was sent on behalf of a chat, the field contains a fake sender user in non-channel chats", + "Description": "Sender of the message; may be empty for messages sent to channels. For backward compatibility, if the message was sent on behalf of a chat, the field contains a fake sender user in non-channel chats.", "OriginalFieldType": "User", "ConvertedFieldType": "User", "Optional": true @@ -925,6 +1021,14 @@ "ConvertedFieldType": "User", "Optional": true }, + { + "OriginalName": "sender_tag", + "ConvertedName": "SenderTag", + "Description": "Tag or custom title of the sender of the message; for supergroups only", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, { "OriginalName": "date", "ConvertedName": "Date", @@ -933,6 +1037,14 @@ "ConvertedFieldType": "DateTime", "Optional": false }, + { + "OriginalName": "guest_query_id", + "ConvertedName": "GuestQueryId", + "Description": "The unique identifier for the guest query. Use this identifier with the method answerGuestQuery to send a response message. If non-empty, the message belongs to the chat where the guest bot was summoned, which may not coincide with other existing bot chats sharing the same identifier.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, { "OriginalName": "business_connection_id", "ConvertedName": "BusinessConnectionId", @@ -960,7 +1072,7 @@ { "OriginalName": "is_topic_message", "ConvertedName": "IsTopicMessage", - "Description": "True, if the message is sent to a forum topic", + "Description": "True, if the message is sent to a topic in a forum supergroup or a private chat with the bot", "OriginalFieldType": "True", "ConvertedFieldType": "bool", "Optional": true @@ -1013,6 +1125,14 @@ "ConvertedFieldType": "int64", "Optional": true }, + { + "OriginalName": "reply_to_poll_option_id", + "ConvertedName": "ReplyToPollOptionId", + "Description": "Persistent identifier of the specific poll option that is being replied to", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, { "OriginalName": "via_bot", "ConvertedName": "ViaBot", @@ -1021,6 +1141,22 @@ "ConvertedFieldType": "User", "Optional": true }, + { + "OriginalName": "guest_bot_caller_user", + "ConvertedName": "GuestBotCallerUser", + "Description": "For a message sent by a guest bot, this is the user whose original message triggered the bot\u0027s response", + "OriginalFieldType": "User", + "ConvertedFieldType": "User", + "Optional": true + }, + { + "OriginalName": "guest_bot_caller_chat", + "ConvertedName": "GuestBotCallerChat", + "Description": "For a message sent by a guest bot, this is the chat whose original message triggered the bot\u0027s response", + "OriginalFieldType": "Chat", + "ConvertedFieldType": "Chat", + "Optional": true + }, { "OriginalName": "edit_date", "ConvertedName": "EditDate", @@ -1056,7 +1192,7 @@ { "OriginalName": "media_group_id", "ConvertedName": "MediaGroupId", - "Description": "The unique identifier of a media message group this message belongs to", + "Description": "The unique identifier inside this chat of a media message group this message belongs to", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -1117,10 +1253,18 @@ "ConvertedFieldType": "string", "Optional": true }, + { + "OriginalName": "rich_message", + "ConvertedName": "RichMessage", + "Description": "Message is a rich formatted message", + "OriginalFieldType": "RichMessage", + "ConvertedFieldType": "RichMessage", + "Optional": true + }, { "OriginalName": "animation", "ConvertedName": "Animation", - "Description": "Message is an animation, information about the animation. For backward compatibility, when this field is set, the document field will also be set", + "Description": "Message is an animation, information about the animation. For backward compatibility, when this field is set, the document field will also be set.", "OriginalFieldType": "Animation", "ConvertedFieldType": "Animation", "Optional": true @@ -1141,6 +1285,14 @@ "ConvertedFieldType": "Document", "Optional": true }, + { + "OriginalName": "live_photo", + "ConvertedName": "LivePhoto", + "Description": "Message is a live photo, information about the live photo. For backward compatibility, when this field is set, the photo field will also be set.", + "OriginalFieldType": "LivePhoto", + "ConvertedFieldType": "LivePhoto", + "Optional": true + }, { "OriginalName": "paid_media", "ConvertedName": "PaidMedia", @@ -1272,7 +1424,7 @@ { "OriginalName": "venue", "ConvertedName": "Venue", - "Description": "Message is a venue, information about the venue. For backward compatibility, when this field is set, the location field will also be set", + "Description": "Message is a venue, information about the venue. For backward compatibility, when this field is set, the location field will also be set.", "OriginalFieldType": "Venue", "ConvertedFieldType": "Venue", "Optional": true @@ -1301,6 +1453,22 @@ "ConvertedFieldType": "User", "Optional": true }, + { + "OriginalName": "chat_owner_left", + "ConvertedName": "ChatOwnerLeft", + "Description": "Service message: chat owner has left", + "OriginalFieldType": "ChatOwnerLeft", + "ConvertedFieldType": "ChatOwnerLeft", + "Optional": true + }, + { + "OriginalName": "chat_owner_changed", + "ConvertedName": "ChatOwnerChanged", + "Description": "Service message: chat owner has changed", + "OriginalFieldType": "ChatOwnerChanged", + "ConvertedFieldType": "ChatOwnerChanged", + "Optional": true + }, { "OriginalName": "new_chat_title", "ConvertedName": "NewChatTitle", @@ -1437,6 +1605,14 @@ "ConvertedFieldType": "UniqueGiftInfo", "Optional": true }, + { + "OriginalName": "gift_upgrade_sent", + "ConvertedName": "GiftUpgradeSent", + "Description": "Service message: upgrade of a gift was purchased after the gift was sent", + "OriginalFieldType": "GiftInfo", + "ConvertedFieldType": "GiftInfo", + "Optional": true + }, { "OriginalName": "connected_website", "ConvertedName": "ConnectedWebsite", @@ -1589,6 +1765,14 @@ "ConvertedFieldType": "GiveawayCompleted", "Optional": true }, + { + "OriginalName": "managed_bot_created", + "ConvertedName": "ManagedBotCreated", + "Description": "Service message: user created a bot that will be managed by the current bot", + "OriginalFieldType": "ManagedBotCreated", + "ConvertedFieldType": "ManagedBotCreated", + "Optional": true + }, { "OriginalName": "paid_message_price_changed", "ConvertedName": "PaidMessagePriceChanged", @@ -1597,6 +1781,22 @@ "ConvertedFieldType": "PaidMessagePriceChanged", "Optional": true }, + { + "OriginalName": "poll_option_added", + "ConvertedName": "PollOptionAdded", + "Description": "Service message: answer option was added to a poll", + "OriginalFieldType": "PollOptionAdded", + "ConvertedFieldType": "PollOptionAdded", + "Optional": true + }, + { + "OriginalName": "poll_option_deleted", + "ConvertedName": "PollOptionDeleted", + "Description": "Service message: answer option was deleted from a poll", + "OriginalFieldType": "PollOptionDeleted", + "ConvertedFieldType": "PollOptionDeleted", + "Optional": true + }, { "OriginalName": "suggested_post_approved", "ConvertedName": "SuggestedPostApproved", @@ -1699,7 +1899,7 @@ { "OriginalName": "message_id", "ConvertedName": "MessageId", - "Description": "Unique message identifier. In specific instances (e.g., message containing a video sent to a big chat), the server might automatically schedule a message instead of sending it immediately. In such cases, this field will be 0 and the relevant message will be unusable until it is actually sent", + "Description": "Unique message identifier. In specific instances (e.g., message containing a video sent to a big chat), the server might automatically schedule a message instead of sending it immediately. In such cases, this field will be 0 and the relevant message will be unusable until it is actually sent.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": false @@ -1772,7 +1972,7 @@ { "OriginalName": "type", "ConvertedName": "Type", - "Description": "Type of the entity. Currently, can be \u201Cmention\u201D (@username), \u201Chashtag\u201D (#hashtag or #hashtag@chatusername), \u201Ccashtag\u201D ($USD or $USD@chatusername), \u201Cbot_command\u201D (/start@jobs_bot), \u201Curl\u201D (https://telegram.org), \u201Cemail\u201D (do-not-reply@telegram.org), \u201Cphone_number\u201D (\u002B1-212-555-0123), \u201Cbold\u201D (bold text), \u201Citalic\u201D (italic text), \u201Cunderline\u201D (underlined text), \u201Cstrikethrough\u201D (strikethrough text), \u201Cspoiler\u201D (spoiler message), \u201Cblockquote\u201D (block quotation), \u201Cexpandable_blockquote\u201D (collapsed-by-default block quotation), \u201Ccode\u201D (monowidth string), \u201Cpre\u201D (monowidth block), \u201Ctext_link\u201D (for clickable text URLs), \u201Ctext_mention\u201D (for users without usernames), \u201Ccustom_emoji\u201D (for inline custom emoji stickers)", + "Description": "Type of the entity. Currently, can be \u201Cmention\u201D (@username), \u201Chashtag\u201D (#hashtag or #hashtag@chatusername), \u201Ccashtag\u201D ($USD or $USD@chatusername), \u201Cbot_command\u201D (/start@jobs_bot), \u201Curl\u201D (https://telegram.org), \u201Cemail\u201D (do-not-reply@telegram.org), \u201Cphone_number\u201D (\u002B1-212-555-0123), \u201Cbold\u201D (bold text), \u201Citalic\u201D (italic text), \u201Cunderline\u201D (underlined text), \u201Cstrikethrough\u201D (strikethrough text), \u201Cspoiler\u201D (spoiler message), \u201Cblockquote\u201D (block quotation), \u201Cexpandable_blockquote\u201D (collapsed-by-default block quotation), \u201Ccode\u201D (monowidth string), \u201Cpre\u201D (monowidth block), \u201Ctext_link\u201D (for clickable text URLs), \u201Ctext_mention\u201D (for users without usernames), \u201Ccustom_emoji\u201D (for inline custom emoji stickers), or \u201Cdate_time\u201D (for formatted date and time).", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -1820,7 +2020,23 @@ { "OriginalName": "custom_emoji_id", "ConvertedName": "CustomEmojiId", - "Description": "For \u201Ccustom_emoji\u201D only, unique identifier of the custom emoji. Use getCustomEmojiStickers to get full information about the sticker", + "Description": "For \u201Ccustom_emoji\u201D only, unique identifier of the custom emoji. Use getCustomEmojiStickers to get full information about the sticker.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "unix_time", + "ConvertedName": "UnixTime", + "Description": "For \u201Cdate_time\u201D only, the Unix time associated with the entity", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "date_time_format", + "ConvertedName": "DateTimeFormat", + "Description": "For \u201Cdate_time\u201D only, the string that defines the formatting of the date and time. See date-time entity formatting for more details.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -1847,7 +2063,7 @@ { "OriginalName": "entities", "ConvertedName": "Entities", - "Description": "Special entities that appear in the quote. Currently, only bold, italic, underline, strikethrough, spoiler, and custom_emoji entities are kept in quotes.", + "Description": "Special entities that appear in the quote. Currently, only bold, italic, underline, strikethrough, spoiler, custom_emoji, and date_time entities are kept in quotes.", "OriginalFieldType": "Array of MessageEntity", "ConvertedFieldType": "MessageEntity[]", "Optional": true @@ -1935,6 +2151,14 @@ "ConvertedFieldType": "Document", "Optional": true }, + { + "OriginalName": "live_photo", + "ConvertedName": "LivePhoto", + "Description": "Message is a live photo, information about the live photo", + "OriginalFieldType": "LivePhoto", + "ConvertedFieldType": "LivePhoto", + "Optional": true + }, { "OriginalName": "paid_media", "ConvertedName": "PaidMedia", @@ -2101,7 +2325,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "If the message to be replied to is from a different chat, unique identifier for the chat or username of the channel (in the format @channelusername). Not supported for messages sent on behalf of a business account and messages from channel direct messages chats.", + "Description": "If the message to be replied to is from a different chat, unique identifier for the chat or username of the bot, supergroup or channel in the format @username. Not supported for messages sent on behalf of a business account and messages from channel direct messages chats.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": true @@ -2117,7 +2341,7 @@ { "OriginalName": "quote", "ConvertedName": "Quote", - "Description": "Quoted part of the message to be replied to; 0-1024 characters after entities parsing. The quote must be an exact substring of the message to be replied to, including bold, italic, underline, strikethrough, spoiler, and custom_emoji entities. The message will fail to send if the quote isn\u0027t found in the original message.", + "Description": "Quoted part of the message to be replied to; 0-1024 characters after entities parsing. The quote must be an exact substring of the message to be replied to, including bold, italic, underline, strikethrough, spoiler, custom_emoji, and date_time entities. The message will fail to send if the quote isn\u0027t found in the original message.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -2153,6 +2377,14 @@ "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true + }, + { + "OriginalName": "poll_option_id", + "ConvertedName": "PollOptionId", + "Description": "Persistent identifier of the specific poll option to be replied to", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true } ] ] @@ -2625,6 +2857,81 @@ ] } }, + { + "Name": "LivePhoto", + "Description": "This object represents a live photo.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "photo", + "ConvertedName": "Photo", + "Description": "Available sizes of the corresponding static photo", + "OriginalFieldType": "Array of PhotoSize", + "ConvertedFieldType": "PhotoSize[]", + "Optional": true + }, + { + "OriginalName": "file_id", + "ConvertedName": "FileId", + "Description": "Identifier for the video file which can be used to download or reuse the file", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "file_unique_id", + "ConvertedName": "FileUniqueId", + "Description": "Unique identifier for the video file which is supposed to be the same over time and for different bots. Can\u0027t be used to download or reuse the file.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "width", + "ConvertedName": "Width", + "Description": "Video width as defined by the sender", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "height", + "ConvertedName": "Height", + "Description": "Video height as defined by the sender", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "duration", + "ConvertedName": "Duration", + "Description": "Duration of the video in seconds as defined by the sender", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "mime_type", + "ConvertedName": "MimeType", + "Description": "MIME type of the file as defined by the sender", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "file_size", + "ConvertedName": "FileSize", + "Description": "File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value.", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + } + ] + ] + } + }, { "Name": "Story", "Description": "This object represents a story.", @@ -2652,6 +2959,65 @@ ] } }, + { + "Name": "VideoQuality", + "Description": "This object represents a video file of a specific quality.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "file_id", + "ConvertedName": "FileId", + "Description": "Identifier for this file, which can be used to download or reuse the file", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "file_unique_id", + "ConvertedName": "FileUniqueId", + "Description": "Unique identifier for this file, which is supposed to be the same over time and for different bots. Can\u0027t be used to download or reuse the file.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "width", + "ConvertedName": "Width", + "Description": "Video width", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "height", + "ConvertedName": "Height", + "Description": "Video height", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "codec", + "ConvertedName": "Codec", + "Description": "Codec that was used to encode the video, for example, \u201Ch264\u201D, \u201Ch265\u201D, or \u201Cav01\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "file_size", + "ConvertedName": "FileSize", + "Description": "File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value.", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + } + ] + ] + } + }, { "Name": "Video", "Description": "This object represents a video file.", @@ -2723,6 +3089,14 @@ "ConvertedFieldType": "int64", "Optional": true }, + { + "OriginalName": "qualities", + "ConvertedName": "Qualities", + "Description": "List of available qualities of the video", + "OriginalFieldType": "Array of VideoQuality", + "ConvertedFieldType": "VideoQuality[]", + "Optional": true + }, { "OriginalName": "file_name", "ConvertedName": "FileName", @@ -2896,24 +3270,28 @@ "Fields": [ [ { - "Name": "Preview", - "CaseType": "PaidMediaPreview" + "Name": "LivePhoto", + "CaseType": "PaidMediaLivePhoto" }, { "Name": "Photo", "CaseType": "PaidMediaPhoto" }, { - "Name": "Video", - "CaseType": "PaidMediaVideo" + "Name": "Preview", + "CaseType": "PaidMediaPreview" + }, + { + "Name": "Video", + "CaseType": "PaidMediaVideo" } ] ] } }, { - "Name": "PaidMediaPreview", - "Description": "The paid media isn\u0027t available before the payment.", + "Name": "PaidMediaLivePhoto", + "Description": "The paid media is a live photo.", "Kind": { "Case": "Fields", "Fields": [ @@ -2921,34 +3299,18 @@ { "OriginalName": "type", "ConvertedName": "Type", - "Description": "Type of the paid media, always \u201Cpreview\u201D", + "Description": "Type of the paid media, always \u201Clive_photo\u201D", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "width", - "ConvertedName": "Width", - "Description": "Media width as defined by the sender", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", - "Optional": true - }, - { - "OriginalName": "height", - "ConvertedName": "Height", - "Description": "Media height as defined by the sender", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", - "Optional": true - }, - { - "OriginalName": "duration", - "ConvertedName": "Duration", - "Description": "Duration of the media in seconds as defined by the sender", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", - "Optional": true + "OriginalName": "live_photo", + "ConvertedName": "LivePhoto", + "Description": "The photo", + "OriginalFieldType": "LivePhoto", + "ConvertedFieldType": "LivePhoto", + "Optional": false } ] ] @@ -2981,6 +3343,49 @@ ] } }, + { + "Name": "PaidMediaPreview", + "Description": "The paid media isn\u0027t available before the payment.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the paid media, always \u201Cpreview\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "width", + "ConvertedName": "Width", + "Description": "Media width as defined by the sender", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "height", + "ConvertedName": "Height", + "Description": "Media height as defined by the sender", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "duration", + "ConvertedName": "Duration", + "Description": "Duration of the media in seconds as defined by the sender", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + } + ] + ] + } + }, { "Name": "PaidMediaVideo", "Description": "The paid media is a video.", @@ -3087,69 +3492,109 @@ } }, { - "Name": "PollOption", - "Description": "This object contains information about one answer option in a poll.", + "Name": "Link", + "Description": "Represents an HTTP link.", "Kind": { "Case": "Fields", "Fields": [ [ { - "OriginalName": "text", - "ConvertedName": "Text", - "Description": "Option text, 1-100 characters", + "OriginalName": "url", + "ConvertedName": "Url", + "Description": "URL of the link", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false - }, - { - "OriginalName": "text_entities", - "ConvertedName": "TextEntities", - "Description": "Special entities that appear in the option text. Currently, only custom emoji entities are allowed in poll option texts", - "OriginalFieldType": "Array of MessageEntity", - "ConvertedFieldType": "MessageEntity[]", - "Optional": true - }, - { - "OriginalName": "voter_count", - "ConvertedName": "VoterCount", - "Description": "Number of users that voted for this option", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", - "Optional": false } ] ] } }, { - "Name": "InputPollOption", - "Description": "This object contains information about one answer option in a poll to be sent.", + "Name": "PollMedia", + "Description": "At most one of the optional fields can be present in any given object.", "Kind": { "Case": "Fields", "Fields": [ [ { - "OriginalName": "text", - "ConvertedName": "Text", - "Description": "Option text, 1-100 characters", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", - "Optional": false + "OriginalName": "animation", + "ConvertedName": "Animation", + "Description": "Media is an animation, information about the animation", + "OriginalFieldType": "Animation", + "ConvertedFieldType": "Animation", + "Optional": true }, { - "OriginalName": "text_parse_mode", - "ConvertedName": "TextParseMode", - "Description": "Mode for parsing entities in the text. See formatting options for more details. Currently, only custom emoji entities are allowed", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", + "OriginalName": "audio", + "ConvertedName": "Audio", + "Description": "Media is an audio file, information about the file; currently, can\u0027t be received in a poll option", + "OriginalFieldType": "Audio", + "ConvertedFieldType": "Audio", "Optional": true }, { - "OriginalName": "text_entities", - "ConvertedName": "TextEntities", - "Description": "A JSON-serialized list of special entities that appear in the poll option text. It can be specified instead of text_parse_mode", - "OriginalFieldType": "Array of MessageEntity", - "ConvertedFieldType": "MessageEntity[]", + "OriginalName": "document", + "ConvertedName": "Document", + "Description": "Media is a general file, information about the file; currently, can\u0027t be received in a poll option", + "OriginalFieldType": "Document", + "ConvertedFieldType": "Document", + "Optional": true + }, + { + "OriginalName": "link", + "ConvertedName": "Link", + "Description": "The HTTP link attached to the poll option", + "OriginalFieldType": "Link", + "ConvertedFieldType": "Link", + "Optional": true + }, + { + "OriginalName": "live_photo", + "ConvertedName": "LivePhoto", + "Description": "Media is a live photo, information about the live photo", + "OriginalFieldType": "LivePhoto", + "ConvertedFieldType": "LivePhoto", + "Optional": true + }, + { + "OriginalName": "location", + "ConvertedName": "Location", + "Description": "Media is a shared location, information about the location", + "OriginalFieldType": "Location", + "ConvertedFieldType": "Location", + "Optional": true + }, + { + "OriginalName": "photo", + "ConvertedName": "Photo", + "Description": "Media is a photo, available sizes of the photo", + "OriginalFieldType": "Array of PhotoSize", + "ConvertedFieldType": "PhotoSize[]", + "Optional": true + }, + { + "OriginalName": "sticker", + "ConvertedName": "Sticker", + "Description": "Media is a sticker, information about the sticker; currently, for poll options only", + "OriginalFieldType": "Sticker", + "ConvertedFieldType": "Sticker", + "Optional": true + }, + { + "OriginalName": "venue", + "ConvertedName": "Venue", + "Description": "Media is a venue, information about the venue", + "OriginalFieldType": "Venue", + "ConvertedFieldType": "Venue", + "Optional": true + }, + { + "OriginalName": "video", + "ConvertedName": "Video", + "Description": "Media is a video, information about the video", + "OriginalFieldType": "Video", + "ConvertedFieldType": "Video", "Optional": true } ] @@ -3157,94 +3602,306 @@ } }, { - "Name": "PollAnswer", - "Description": "This object represents an answer of a user in a non-anonymous poll.", + "Name": "InputPollMedia", + "Description": "This object represents the content of a poll description or a quiz explanation to be sent. It should be one of", "Kind": { - "Case": "Fields", + "Case": "Cases", "Fields": [ [ { - "OriginalName": "poll_id", - "ConvertedName": "PollId", - "Description": "Unique poll identifier", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", - "Optional": false + "Name": "Animation", + "CaseType": "InputMediaAnimation" }, { - "OriginalName": "voter_chat", - "ConvertedName": "VoterChat", - "Description": "The chat that changed the answer to the poll, if the voter is anonymous", - "OriginalFieldType": "Chat", - "ConvertedFieldType": "Chat", - "Optional": true + "Name": "Audio", + "CaseType": "InputMediaAudio" }, { - "OriginalName": "user", - "ConvertedName": "User", - "Description": "The user that changed the answer to the poll, if the voter isn\u0027t anonymous", - "OriginalFieldType": "User", - "ConvertedFieldType": "User", - "Optional": true + "Name": "Document", + "CaseType": "InputMediaDocument" }, { - "OriginalName": "option_ids", - "ConvertedName": "OptionIds", - "Description": "0-based identifiers of chosen answer options. May be empty if the vote was retracted.", - "OriginalFieldType": "Array of Integer", - "ConvertedFieldType": "int64[]", - "Optional": false + "Name": "LivePhoto", + "CaseType": "InputMediaLivePhoto" + }, + { + "Name": "Location", + "CaseType": "InputMediaLocation" + }, + { + "Name": "Photo", + "CaseType": "InputMediaPhoto" + }, + { + "Name": "Venue", + "CaseType": "InputMediaVenue" + }, + { + "Name": "Video", + "CaseType": "InputMediaVideo" } ] ] } }, { - "Name": "Poll", - "Description": "This object contains information about a poll.", + "Name": "InputPollOptionMedia", + "Description": "This object represents the content of a poll option to be sent. It should be one of", "Kind": { - "Case": "Fields", + "Case": "Cases", "Fields": [ [ { - "OriginalName": "id", - "ConvertedName": "Id", - "Description": "Unique poll identifier", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", - "Optional": false + "Name": "Animation", + "CaseType": "InputMediaAnimation" }, { - "OriginalName": "question", - "ConvertedName": "Question", - "Description": "Poll question, 1-300 characters", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", - "Optional": false + "Name": "Link", + "CaseType": "InputMediaLink" }, { - "OriginalName": "question_entities", - "ConvertedName": "QuestionEntities", - "Description": "Special entities that appear in the question. Currently, only custom emoji entities are allowed in poll questions", - "OriginalFieldType": "Array of MessageEntity", - "ConvertedFieldType": "MessageEntity[]", - "Optional": true + "Name": "LivePhoto", + "CaseType": "InputMediaLivePhoto" }, { - "OriginalName": "options", - "ConvertedName": "Options", - "Description": "List of poll options", - "OriginalFieldType": "Array of PollOption", - "ConvertedFieldType": "PollOption[]", - "Optional": false + "Name": "Location", + "CaseType": "InputMediaLocation" }, { - "OriginalName": "total_voter_count", - "ConvertedName": "TotalVoterCount", - "Description": "Total number of users that voted in the poll", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", - "Optional": false + "Name": "Photo", + "CaseType": "InputMediaPhoto" + }, + { + "Name": "Sticker", + "CaseType": "InputMediaSticker" + }, + { + "Name": "Venue", + "CaseType": "InputMediaVenue" + }, + { + "Name": "Video", + "CaseType": "InputMediaVideo" + } + ] + ] + } + }, + { + "Name": "PollOption", + "Description": "This object contains information about one answer option in a poll.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "persistent_id", + "ConvertedName": "PersistentId", + "Description": "Unique identifier of the option, persistent on option addition and deletion", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "Option text, 1-100 characters", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text_entities", + "ConvertedName": "TextEntities", + "Description": "Special entities that appear in the option text. Currently, only custom emoji entities are allowed in poll option texts", + "OriginalFieldType": "Array of MessageEntity", + "ConvertedFieldType": "MessageEntity[]", + "Optional": true + }, + { + "OriginalName": "media", + "ConvertedName": "Media", + "Description": "Media added to the poll option", + "OriginalFieldType": "PollMedia", + "ConvertedFieldType": "PollMedia", + "Optional": true + }, + { + "OriginalName": "voter_count", + "ConvertedName": "VoterCount", + "Description": "Number of users who voted for this option; may be 0 if unknown", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "added_by_user", + "ConvertedName": "AddedByUser", + "Description": "User who added the option; omitted if the option wasn\u0027t added by a user after poll creation", + "OriginalFieldType": "User", + "ConvertedFieldType": "User", + "Optional": true + }, + { + "OriginalName": "added_by_chat", + "ConvertedName": "AddedByChat", + "Description": "Chat that added the option; omitted if the option wasn\u0027t added by a chat after poll creation", + "OriginalFieldType": "Chat", + "ConvertedFieldType": "Chat", + "Optional": true + }, + { + "OriginalName": "addition_date", + "ConvertedName": "AdditionDate", + "Description": "Point in time (Unix timestamp) when the option was added; omitted if the option existed in the original poll", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + } + ] + ] + } + }, + { + "Name": "InputPollOption", + "Description": "This object contains information about one answer option in a poll to be sent.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "Option text, 1-100 characters", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text_parse_mode", + "ConvertedName": "TextParseMode", + "Description": "Mode for parsing entities in the text. See formatting options for more details. Currently, only custom emoji entities are allowed.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "text_entities", + "ConvertedName": "TextEntities", + "Description": "A JSON-serialized list of special entities that appear in the poll option text. It can be specified instead of text_parse_mode.", + "OriginalFieldType": "Array of MessageEntity", + "ConvertedFieldType": "MessageEntity[]", + "Optional": true + }, + { + "OriginalName": "media", + "ConvertedName": "Media", + "Description": "Media added to the poll option", + "OriginalFieldType": "InputPollOptionMedia", + "ConvertedFieldType": "InputPollOptionMedia", + "Optional": true + } + ] + ] + } + }, + { + "Name": "PollAnswer", + "Description": "This object represents an answer of a user in a non-anonymous poll.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "poll_id", + "ConvertedName": "PollId", + "Description": "Unique poll identifier", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "voter_chat", + "ConvertedName": "VoterChat", + "Description": "The chat that changed the answer to the poll, if the voter is anonymous", + "OriginalFieldType": "Chat", + "ConvertedFieldType": "Chat", + "Optional": true + }, + { + "OriginalName": "user", + "ConvertedName": "User", + "Description": "The user that changed the answer to the poll, if the voter isn\u0027t anonymous", + "OriginalFieldType": "User", + "ConvertedFieldType": "User", + "Optional": true + }, + { + "OriginalName": "option_ids", + "ConvertedName": "OptionIds", + "Description": "0-based identifiers of chosen answer options. May be empty if the vote was retracted.", + "OriginalFieldType": "Array of Integer", + "ConvertedFieldType": "int64[]", + "Optional": false + }, + { + "OriginalName": "option_persistent_ids", + "ConvertedName": "OptionPersistentIds", + "Description": "Persistent identifiers of the chosen answer options. May be empty if the vote was retracted.", + "OriginalFieldType": "Array of String", + "ConvertedFieldType": "string[]", + "Optional": false + } + ] + ] + } + }, + { + "Name": "Poll", + "Description": "This object contains information about a poll.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "id", + "ConvertedName": "Id", + "Description": "Unique poll identifier", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "question", + "ConvertedName": "Question", + "Description": "Poll question, 1-300 characters", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "question_entities", + "ConvertedName": "QuestionEntities", + "Description": "Special entities that appear in the question. Currently, only custom emoji entities are allowed in poll questions", + "OriginalFieldType": "Array of MessageEntity", + "ConvertedFieldType": "MessageEntity[]", + "Optional": true + }, + { + "OriginalName": "options", + "ConvertedName": "Options", + "Description": "List of poll options", + "OriginalFieldType": "Array of PollOption", + "ConvertedFieldType": "PollOption[]", + "Optional": false + }, + { + "OriginalName": "total_voter_count", + "ConvertedName": "TotalVoterCount", + "Description": "Total number of users that voted in the poll", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false }, { "OriginalName": "is_closed", @@ -3279,11 +3936,35 @@ "Optional": false }, { - "OriginalName": "correct_option_id", - "ConvertedName": "CorrectOptionId", - "Description": "0-based identifier of the correct answer option. Available only for polls in the quiz mode, which are closed, or was sent (not forwarded) by the bot or to the private chat with the bot.", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", + "OriginalName": "allows_revoting", + "ConvertedName": "AllowsRevoting", + "Description": "True, if the poll allows to change the chosen answer options", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": false + }, + { + "OriginalName": "members_only", + "ConvertedName": "MembersOnly", + "Description": "True if voting is limited to users who have been members of the chat where the poll was originally sent for more than 24 hours", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": false + }, + { + "OriginalName": "country_codes", + "ConvertedName": "CountryCodes", + "Description": "A list of two-letter ISO 3166-1 alpha-2 country codes indicating the countries from which users can vote in the poll. The country code \u201CFT\u201D is used for users with anonymous numbers. If omitted, then users from any country can participate in the poll.", + "OriginalFieldType": "Array of String", + "ConvertedFieldType": "string[]", + "Optional": true + }, + { + "OriginalName": "correct_option_ids", + "ConvertedName": "CorrectOptionIds", + "Description": "Array of 0-based identifiers of the correct answer options. Available only for polls in quiz mode which are closed or were sent (not forwarded) by the bot or to the private chat with the bot.", + "OriginalFieldType": "Array of Integer", + "ConvertedFieldType": "int64[]", "Optional": true }, { @@ -3302,6 +3983,14 @@ "ConvertedFieldType": "MessageEntity[]", "Optional": true }, + { + "OriginalName": "explanation_media", + "ConvertedName": "ExplanationMedia", + "Description": "Media added to the quiz explanation", + "OriginalFieldType": "PollMedia", + "ConvertedFieldType": "PollMedia", + "Optional": true + }, { "OriginalName": "open_period", "ConvertedName": "OpenPeriod", @@ -3317,6 +4006,30 @@ "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true + }, + { + "OriginalName": "description", + "ConvertedName": "Description", + "Description": "Description of the poll; for polls inside the Message object only", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "description_entities", + "ConvertedName": "DescriptionEntities", + "Description": "Special entities like usernames, URLs, bot commands, etc. that appear in the description", + "OriginalFieldType": "Array of MessageEntity", + "ConvertedFieldType": "MessageEntity[]", + "Optional": true + }, + { + "OriginalName": "media", + "ConvertedName": "Media", + "Description": "Media added to the poll description; for polls inside the Message object only", + "OriginalFieldType": "PollMedia", + "ConvertedFieldType": "PollMedia", + "Optional": true } ] ] @@ -3356,11 +4069,19 @@ { "OriginalName": "completed_by_user", "ConvertedName": "CompletedByUser", - "Description": "User that completed the task; omitted if the task wasn\u0027t completed", + "Description": "User that completed the task; omitted if the task wasn\u0027t completed by a user", "OriginalFieldType": "User", "ConvertedFieldType": "User", "Optional": true }, + { + "OriginalName": "completed_by_chat", + "ConvertedName": "CompletedByChat", + "Description": "Chat that completed the task; omitted if the task wasn\u0027t completed by a chat", + "OriginalFieldType": "Chat", + "ConvertedFieldType": "Chat", + "Optional": true + }, { "OriginalName": "completion_date", "ConvertedName": "CompletionDate", @@ -3458,7 +4179,7 @@ { "OriginalName": "text_entities", "ConvertedName": "TextEntities", - "Description": "List of special entities that appear in the text, which can be specified instead of parse_mode. Currently, only bold, italic, underline, strikethrough, spoiler, and custom_emoji entities are allowed.", + "Description": "List of special entities that appear in the text, which can be specified instead of parse_mode. Currently, only bold, italic, underline, strikethrough, spoiler, custom_emoji, and date_time entities are allowed.", "OriginalFieldType": "Array of MessageEntity", "ConvertedFieldType": "MessageEntity[]", "Optional": true @@ -3493,7 +4214,7 @@ { "OriginalName": "title_entities", "ConvertedName": "TitleEntities", - "Description": "List of special entities that appear in the title, which can be specified instead of parse_mode. Currently, only bold, italic, underline, strikethrough, spoiler, and custom_emoji entities are allowed.", + "Description": "List of special entities that appear in the title, which can be specified instead of parse_mode. Currently, only bold, italic, underline, strikethrough, spoiler, custom_emoji, and date_time entities are allowed.", "OriginalFieldType": "Array of MessageEntity", "ConvertedFieldType": "MessageEntity[]", "Optional": true @@ -3657,7 +4378,7 @@ { "OriginalName": "location", "ConvertedName": "Location", - "Description": "Venue location. Can\u0027t be a live location", + "Description": "Venue location. Can\u0027t be a live location.", "OriginalFieldType": "Location", "ConvertedFieldType": "Location", "Optional": false @@ -3796,16 +4517,148 @@ } }, { - "Name": "ChatBoostAdded", - "Description": "This object represents a service message about a user boosting a chat.", + "Name": "ManagedBotCreated", + "Description": "This object contains information about the bot that was created to be managed by the current bot.", "Kind": { "Case": "Fields", "Fields": [ [ { - "OriginalName": "boost_count", - "ConvertedName": "BoostCount", - "Description": "Number of boosts added by the user", + "OriginalName": "bot", + "ConvertedName": "Bot", + "Description": "Information about the bot. The bot\u0027s token can be fetched using the method getManagedBotToken.", + "OriginalFieldType": "User", + "ConvertedFieldType": "User", + "Optional": false + } + ] + ] + } + }, + { + "Name": "ManagedBotUpdated", + "Description": "This object contains information about the creation, token update, or owner update of a bot that is managed by the current bot.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "user", + "ConvertedName": "User", + "Description": "User that created the bot", + "OriginalFieldType": "User", + "ConvertedFieldType": "User", + "Optional": false + }, + { + "OriginalName": "bot", + "ConvertedName": "Bot", + "Description": "Information about the bot. Token of the bot can be fetched using the method getManagedBotToken.", + "OriginalFieldType": "User", + "ConvertedFieldType": "User", + "Optional": false + } + ] + ] + } + }, + { + "Name": "PollOptionAdded", + "Description": "Describes a service message about an option added to a poll.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "poll_message", + "ConvertedName": "PollMessage", + "Description": "Message containing the poll to which the option was added, if known. Note that the Message object in this field will not contain the reply_to_message field even if it itself is a reply.", + "OriginalFieldType": "MaybeInaccessibleMessage", + "ConvertedFieldType": "MaybeInaccessibleMessage", + "Optional": true + }, + { + "OriginalName": "option_persistent_id", + "ConvertedName": "OptionPersistentId", + "Description": "Unique identifier of the added option", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "option_text", + "ConvertedName": "OptionText", + "Description": "Option text", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "option_text_entities", + "ConvertedName": "OptionTextEntities", + "Description": "Special entities that appear in the option_text", + "OriginalFieldType": "Array of MessageEntity", + "ConvertedFieldType": "MessageEntity[]", + "Optional": true + } + ] + ] + } + }, + { + "Name": "PollOptionDeleted", + "Description": "Describes a service message about an option deleted from a poll.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "poll_message", + "ConvertedName": "PollMessage", + "Description": "Message containing the poll from which the option was deleted, if known. Note that the Message object in this field will not contain the reply_to_message field even if it itself is a reply.", + "OriginalFieldType": "MaybeInaccessibleMessage", + "ConvertedFieldType": "MaybeInaccessibleMessage", + "Optional": true + }, + { + "OriginalName": "option_persistent_id", + "ConvertedName": "OptionPersistentId", + "Description": "Unique identifier of the deleted option", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "option_text", + "ConvertedName": "OptionText", + "Description": "Option text", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "option_text_entities", + "ConvertedName": "OptionTextEntities", + "Description": "Special entities that appear in the option_text", + "OriginalFieldType": "Array of MessageEntity", + "ConvertedFieldType": "MessageEntity[]", + "Optional": true + } + ] + ] + } + }, + { + "Name": "ChatBoostAdded", + "Description": "This object represents a service message about a user boosting a chat.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "boost_count", + "ConvertedName": "BoostCount", + "Description": "Number of boosts added by the user", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": false @@ -4089,7 +4942,7 @@ { "OriginalName": "is_inverted", "ConvertedName": "IsInverted", - "Description": "True, if the background fill must be applied only to the pattern itself. All other pixels are black in this case. For dark themes only", + "Description": "True, if the background fill must be applied only to the pattern itself. All other pixels are black in this case. For dark themes only.", "OriginalFieldType": "True", "ConvertedFieldType": "bool", "Optional": true @@ -4182,6 +5035,14 @@ "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true + }, + { + "OriginalName": "is_name_implicit", + "ConvertedName": "IsNameImplicit", + "Description": "True, if the name of the topic wasn\u0027t specified explicitly by its creator and likely needs to be changed by the bot", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true } ] ] @@ -4311,7 +5172,7 @@ { "OriginalName": "users", "ConvertedName": "Users", - "Description": "Information about users shared with the bot.", + "Description": "Information about users shared with the bot", "OriginalFieldType": "Array of SharedUser", "ConvertedFieldType": "SharedUser[]", "Optional": false @@ -4346,7 +5207,7 @@ { "OriginalName": "title", "ConvertedName": "Title", - "Description": "Title of the chat, if the title was requested by the bot.", + "Description": "Title of the chat, if the title was requested by the bot", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -4354,7 +5215,7 @@ { "OriginalName": "username", "ConvertedName": "Username", - "Description": "Username of the chat, if the username was requested by the bot and available.", + "Description": "Username of the chat, if the username was requested by the bot and available", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -4623,7 +5484,7 @@ { "OriginalName": "currency", "ConvertedName": "Currency", - "Description": "Currency in which the payment was made. Currently, one of \u201CXTR\u201D for Telegram Stars or \u201CTON\u201D for toncoins", + "Description": "Currency in which the payment was made. Currently, one of \u201CXTR\u201D for Telegram Stars or \u201CTON\u201D for toncoins.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -4945,7 +5806,7 @@ { "OriginalName": "url", "ConvertedName": "Url", - "Description": "URL to use for the link preview. If empty, then the first URL found in the message text will be used", + "Description": "URL to use for the link preview. If empty, then the first URL found in the message text will be used.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -4980,7 +5841,7 @@ }, { "Name": "SuggestedPostPrice", - "Description": "Desribes price of a suggested post.", + "Description": "Describes the price of a suggested post.", "Kind": { "Case": "Fields", "Fields": [ @@ -4988,7 +5849,7 @@ { "OriginalName": "currency", "ConvertedName": "Currency", - "Description": "Currency in which the post will be paid. Currently, must be one of \u201CXTR\u201D for Telegram Stars or \u201CTON\u201D for toncoins", + "Description": "Currency in which the post will be paid. Currently, must be one of \u201CXTR\u201D for Telegram Stars or \u201CTON\u201D for toncoins.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -5077,7 +5938,7 @@ { "OriginalName": "topic_id", "ConvertedName": "TopicId", - "Description": "Unique identifier of the topic", + "Description": "Unique identifier of the topic. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": false @@ -5085,7 +5946,7 @@ { "OriginalName": "user", "ConvertedName": "User", - "Description": "Information about the user that created the topic. Currently, it is always present", + "Description": "Information about the user that created the topic. Currently, it is always present.", "OriginalFieldType": "User", "ConvertedFieldType": "User", "Optional": true @@ -5121,6 +5982,33 @@ ] } }, + { + "Name": "UserProfileAudios", + "Description": "This object represents the audios displayed on a user\u0027s profile.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "total_count", + "ConvertedName": "TotalCount", + "Description": "Total number of profile audios for the target user", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "audios", + "ConvertedName": "Audios", + "Description": "Requested profile audios", + "OriginalFieldType": "Array of Audio", + "ConvertedFieldType": "Audio[]", + "Optional": false + } + ] + ] + } + }, { "Name": "File", "Description": "This object represents a file ready to be downloaded. The file can be downloaded via the link https://api.telegram.org/file/bot\u003Ctoken\u003E/\u003Cfile_path\u003E. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile.", @@ -5185,7 +6073,7 @@ }, { "Name": "ReplyKeyboardMarkup", - "Description": "This object represents a custom keyboard with reply options (see Introduction to bots for details and examples). Not supported in channels and for messages sent on behalf of a Telegram Business account.", + "Description": "This object represents a custom keyboard with reply options (see Introduction to bots for details and examples). Not supported in channels and for messages sent on behalf of a business account.", "Kind": { "Case": "Fields", "Fields": [ @@ -5244,7 +6132,7 @@ }, { "Name": "KeyboardButton", - "Description": "This object represents one button of the reply keyboard. At most one of the optional fields must be used to specify type of the button. For simple text buttons, String can be used instead of this object to specify the button text.\nNote:request_users and request_chat options will only work in Telegram versions released after 3 February, 2023. Older clients will display unsupported message.", + "Description": "This object represents one button of the reply keyboard. At most one of the fields other than text, icon_custom_emoji_id, and style must be used to specify the type of the button. For simple text buttons, String can be used instead of this object to specify the button text.", "Kind": { "Case": "Fields", "Fields": [ @@ -5252,11 +6140,27 @@ { "OriginalName": "text", "ConvertedName": "Text", - "Description": "Text of the button. If none of the optional fields are used, it will be sent as a message when the button is pressed", + "Description": "Text of the button. If none of the fields other than text, icon_custom_emoji_id, and style are used, it will be sent as a message when the button is pressed.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false }, + { + "OriginalName": "icon_custom_emoji_id", + "ConvertedName": "IconCustomEmojiId", + "Description": "Unique identifier of the custom emoji shown before the text of the button. Can only be used by bots that purchased additional usernames on Fragment or in the messages directly sent by the bot to private, group and supergroup chats if the owner of the bot has a Telegram Premium subscription.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "style", + "ConvertedName": "Style", + "Description": "Style of the button. Must be one of \u201Cdanger\u201D (red), \u201Csuccess\u201D (green) or \u201Cprimary\u201D (blue). If omitted, then an app-specific style is used.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, { "OriginalName": "request_users", "ConvertedName": "RequestUsers", @@ -5273,6 +6177,14 @@ "ConvertedFieldType": "KeyboardButtonRequestChat", "Optional": true }, + { + "OriginalName": "request_managed_bot", + "ConvertedName": "RequestManagedBot", + "Description": "If specified, pressing the button will ask the user to create and share a bot that will be managed by the current bot. Available for bots that enabled management of other bots in the @BotFather Mini App. Available in private chats only.", + "OriginalFieldType": "KeyboardButtonRequestManagedBot", + "ConvertedFieldType": "KeyboardButtonRequestManagedBot", + "Optional": true + }, { "OriginalName": "request_contact", "ConvertedName": "RequestContact", @@ -5319,7 +6231,7 @@ { "OriginalName": "request_id", "ConvertedName": "RequestId", - "Description": "Signed 32-bit identifier of the request that will be received back in the UsersShared object. Must be unique within the message", + "Description": "Signed 32-bit identifier of the request that will be received back in the UsersShared object. Must be unique within the message.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": false @@ -5386,7 +6298,7 @@ { "OriginalName": "request_id", "ConvertedName": "RequestId", - "Description": "Signed 32-bit identifier of the request, which will be received back in the ChatShared object. Must be unique within the message", + "Description": "Signed 32-bit identifier of the request, which will be received back in the ChatShared object. Must be unique within the message.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": false @@ -5394,7 +6306,7 @@ { "OriginalName": "chat_is_channel", "ConvertedName": "ChatIsChannel", - "Description": "Pass True to request a channel chat, pass False to request a group or a supergroup chat.", + "Description": "Pass True to request a channel chat, pass False to request a group or a supergroup chat", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": false @@ -5475,6 +6387,41 @@ ] } }, + { + "Name": "KeyboardButtonRequestManagedBot", + "Description": "This object defines the parameters for the creation of a managed bot. Information about the created bot will be shared with the bot using the update managed_bot and a Message with the field managed_bot_created.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "request_id", + "ConvertedName": "RequestId", + "Description": "Signed 32-bit identifier of the request. Must be unique within the message.", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "suggested_name", + "ConvertedName": "SuggestedName", + "Description": "Suggested name for the bot", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "suggested_username", + "ConvertedName": "SuggestedUsername", + "Description": "Suggested username for the bot", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + } + ] + ] + } + }, { "Name": "KeyboardButtonPollType", "Description": "This object represents type of a poll, which is allowed to be created and sent when the corresponding button is pressed.", @@ -5496,7 +6443,7 @@ }, { "Name": "ReplyKeyboardRemove", - "Description": "Upon receiving a message with this object, Telegram clients will remove the current custom keyboard and display the default letter-keyboard. By default, custom keyboards are displayed until a new keyboard is sent by a bot. An exception is made for one-time keyboards that are hidden immediately after the user presses a button (see ReplyKeyboardMarkup). Not supported in channels and for messages sent on behalf of a Telegram Business account.", + "Description": "Upon receiving a message with this object, Telegram clients will remove the current custom keyboard and display the default letter-keyboard. By default, custom keyboards are displayed until a new keyboard is sent by a bot. An exception is made for one-time keyboards that are hidden immediately after the user presses a button (see ReplyKeyboardMarkup). Not supported in channels and for messages sent on behalf of a business account.", "Kind": { "Case": "Fields", "Fields": [ @@ -5542,7 +6489,7 @@ }, { "Name": "InlineKeyboardButton", - "Description": "This object represents one button of an inline keyboard. Exactly one of the optional fields must be used to specify type of the button.", + "Description": "This object represents one button of an inline keyboard. Exactly one of the fields other than text, icon_custom_emoji_id, and style must be used to specify the type of the button.", "Kind": { "Case": "Fields", "Fields": [ @@ -5555,6 +6502,22 @@ "ConvertedFieldType": "string", "Optional": false }, + { + "OriginalName": "icon_custom_emoji_id", + "ConvertedName": "IconCustomEmojiId", + "Description": "Unique identifier of the custom emoji shown before the text of the button. Can only be used by bots that purchased additional usernames on Fragment or in the messages directly sent by the bot to private, group and supergroup chats if the owner of the bot has a Telegram Premium subscription.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "style", + "ConvertedName": "Style", + "Description": "Style of the button. Must be one of \u201Cdanger\u201D (red), \u201Csuccess\u201D (green) or \u201Cprimary\u201D (blue). If omitted, then an app-specific style is used.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, { "OriginalName": "url", "ConvertedName": "Url", @@ -5574,7 +6537,7 @@ { "OriginalName": "web_app", "ConvertedName": "WebApp", - "Description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method answerWebAppQuery. Available only in private chats between a user and the bot. Not supported for messages sent on behalf of a Telegram Business account.", + "Description": "Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method answerWebAppQuery. Available only in private chats between a user and the bot. Not supported for messages sent on behalf of a business account.", "OriginalFieldType": "WebAppInfo", "ConvertedFieldType": "WebAppInfo", "Optional": true @@ -5590,7 +6553,7 @@ { "OriginalName": "switch_inline_query", "ConvertedName": "SwitchInlineQuery", - "Description": "If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot\u0027s username and the specified inline query in the input field. May be empty, in which case just the bot\u0027s username will be inserted. Not supported for messages sent in channel direct messages chats and on behalf of a Telegram Business account.", + "Description": "If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot\u0027s username and the specified inline query in the input field. May be empty, in which case just the bot\u0027s username will be inserted. Not supported for messages sent in channel direct messages chats and on behalf of a business account.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -5598,7 +6561,7 @@ { "OriginalName": "switch_inline_query_current_chat", "ConvertedName": "SwitchInlineQueryCurrentChat", - "Description": "If set, pressing the button will insert the bot\u0027s username and the specified inline query in the current chat\u0027s input field. May be empty, in which case only the bot\u0027s username will be inserted.\n\nThis offers a quick way for the user to open your bot in inline mode in the same chat - good for selecting something from multiple options. Not supported in channels and for messages sent in channel direct messages chats and on behalf of a Telegram Business account.", + "Description": "If set, pressing the button will insert the bot\u0027s username and the specified inline query in the current chat\u0027s input field. May be empty, in which case only the bot\u0027s username will be inserted.\n\nThis offers a quick way for the user to open your bot in inline mode in the same chat - good for selecting something from multiple options. Not supported in channels and for messages sent in channel direct messages chats and on behalf of a business account.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -5606,7 +6569,7 @@ { "OriginalName": "switch_inline_query_chosen_chat", "ConvertedName": "SwitchInlineQueryChosenChat", - "Description": "If set, pressing the button will prompt the user to select one of their chats of the specified type, open that chat and insert the bot\u0027s username and the specified inline query in the input field. Not supported for messages sent in channel direct messages chats and on behalf of a Telegram Business account.", + "Description": "If set, pressing the button will prompt the user to select one of their chats of the specified type, open that chat and insert the bot\u0027s username and the specified inline query in the input field. Not supported for messages sent in channel direct messages chats and on behalf of a business account.", "OriginalFieldType": "SwitchInlineQueryChosenChat", "ConvertedFieldType": "SwitchInlineQueryChosenChat", "Optional": true @@ -5614,7 +6577,7 @@ { "OriginalName": "copy_text", "ConvertedName": "CopyText", - "Description": "Description of the button that copies the specified text to the clipboard.", + "Description": "Description of the button that copies the specified text to the clipboard", "OriginalFieldType": "CopyTextButton", "ConvertedFieldType": "CopyTextButton", "Optional": true @@ -5657,7 +6620,7 @@ { "OriginalName": "forward_text", "ConvertedName": "ForwardText", - "Description": "New text of the button in forwarded messages.", + "Description": "New text of the button in forwarded messages", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -5673,7 +6636,7 @@ { "OriginalName": "request_write_access", "ConvertedName": "RequestWriteAccess", - "Description": "Pass True to request the permission for your bot to send messages to the user.", + "Description": "Pass True to request the permission for your bot to send messages to the user", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -5692,7 +6655,7 @@ { "OriginalName": "query", "ConvertedName": "Query", - "Description": "The default inline query to be inserted in the input field. If left empty, only the bot\u0027s username will be inserted", + "Description": "The default inline query to be inserted in the input field. If left empty, only the bot\u0027s username will be inserted.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -5786,7 +6749,7 @@ { "OriginalName": "inline_message_id", "ConvertedName": "InlineMessageId", - "Description": "Identifier of the message sent via the bot in inline mode, that originated the query.", + "Description": "Identifier of the message sent via the bot in inline mode, that originated the query", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -5821,7 +6784,7 @@ }, { "Name": "ForceReply", - "Description": "Upon receiving a message with this object, Telegram clients will display a reply interface to the user (act as if the user has selected the bot\u0027s message and tapped \u0027Reply\u0027). This can be extremely useful if you want to create user-friendly step-by-step interfaces without having to sacrifice privacy mode. Not supported in channels and for messages sent on behalf of a Telegram Business account.", + "Description": "Upon receiving a message with this object, Telegram clients will display a reply interface to the user (act as if the user has selected the bot\u0027s message and tapped \u0027Reply\u0027). This can be extremely useful if you want to create user-friendly step-by-step interfaces without having to sacrifice privacy mode. Not supported in channels and for messages sent on behalf of a user account.", "Kind": { "Case": "Fields", "Fields": [ @@ -6131,6 +7094,14 @@ "ConvertedFieldType": "bool", "Optional": true }, + { + "OriginalName": "can_manage_tags", + "ConvertedName": "CanManageTags", + "Description": "True, if the administrator can edit the tags of regular members; for groups and supergroups only. If omitted defaults to the value of can_pin_messages.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, { "OriginalName": "can_manage_voice_chats", "ConvertedName": "CanManageVoiceChats", @@ -6193,7 +7164,7 @@ { "OriginalName": "invite_link", "ConvertedName": "InviteLink", - "Description": "Chat invite link, which was used by the user to join the chat; for joining by invite link events only.", + "Description": "Chat invite link, which was used by the user to join the chat; for joining by invite link events only", "OriginalFieldType": "ChatInviteLink", "ConvertedFieldType": "ChatInviteLink", "Optional": true @@ -6455,6 +7426,14 @@ "ConvertedFieldType": "bool", "Optional": true }, + { + "OriginalName": "can_manage_tags", + "ConvertedName": "CanManageTags", + "Description": "True, if the administrator can edit the tags of regular members; for groups and supergroups only. If omitted defaults to the value of can_pin_messages.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, { "OriginalName": "custom_title", "ConvertedName": "CustomTitle", @@ -6490,6 +7469,14 @@ "ConvertedFieldType": "string", "Optional": false }, + { + "OriginalName": "tag", + "ConvertedName": "Tag", + "Description": "Tag of the member", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, { "OriginalName": "user", "ConvertedName": "User", @@ -6525,6 +7512,14 @@ "ConvertedFieldType": "string", "Optional": false }, + { + "OriginalName": "tag", + "ConvertedName": "Tag", + "Description": "Tag of the member", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, { "OriginalName": "user", "ConvertedName": "User", @@ -6544,7 +7539,7 @@ { "OriginalName": "can_send_messages", "ConvertedName": "CanSendMessages", - "Description": "True, if the user is allowed to send text messages, contacts, giveaways, giveaway winners, invoices, locations and venues", + "Description": "True, if the user is allowed to send text messages, rich messages, contacts, giveaways, giveaway winners, invoices, locations and venues", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": false @@ -6621,6 +7616,22 @@ "ConvertedFieldType": "bool", "Optional": false }, + { + "OriginalName": "can_react_to_messages", + "ConvertedName": "CanReactToMessages", + "Description": "True, if the user is allowed to react to messages", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": false + }, + { + "OriginalName": "can_edit_tag", + "ConvertedName": "CanEditTag", + "Description": "True, if the user is allowed to edit their own tag", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": false + }, { "OriginalName": "can_change_info", "ConvertedName": "CanChangeInfo", @@ -6656,7 +7667,7 @@ { "OriginalName": "until_date", "ConvertedName": "UntilDate", - "Description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is restricted forever", + "Description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is restricted forever.", "OriginalFieldType": "Integer", "ConvertedFieldType": "DateTime", "Optional": false @@ -6718,7 +7729,7 @@ { "OriginalName": "until_date", "ConvertedName": "UntilDate", - "Description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is banned forever", + "Description": "Date when restrictions will be lifted for this user; Unix time. If 0, then the user is banned forever.", "OriginalFieldType": "Integer", "ConvertedFieldType": "DateTime", "Optional": false @@ -6769,7 +7780,7 @@ { "OriginalName": "bio", "ConvertedName": "Bio", - "Description": "Bio of the user.", + "Description": "Bio of the user", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -6781,6 +7792,14 @@ "OriginalFieldType": "ChatInviteLink", "ConvertedFieldType": "ChatInviteLink", "Optional": true + }, + { + "OriginalName": "query_id", + "ConvertedName": "QueryId", + "Description": "Identifier of the join request query. If present, then the bot must call sendChatJoinRequestWebApp or directly call answerChatJoinRequestQuery within 10 seconds.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true } ] ] @@ -6796,7 +7815,7 @@ { "OriginalName": "can_send_messages", "ConvertedName": "CanSendMessages", - "Description": "True, if the user is allowed to send text messages, contacts, giveaways, giveaway winners, invoices, locations and venues", + "Description": "True, if the user is allowed to send text messages, rich messages, contacts, giveaways, giveaway winners, invoices, locations and venues", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -6873,10 +7892,26 @@ "ConvertedFieldType": "bool", "Optional": true }, + { + "OriginalName": "can_react_to_messages", + "ConvertedName": "CanReactToMessages", + "Description": "True, if the user is allowed to react to messages. If omitted, defaults to the value of can_send_messages.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "can_edit_tag", + "ConvertedName": "CanEditTag", + "Description": "True, if the user is allowed to edit their own tag. If omitted, defaults to the value of can_pin_messages.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, { "OriginalName": "can_change_info", "ConvertedName": "CanChangeInfo", - "Description": "True, if the user is allowed to change the chat title, photo and other settings. Ignored in public supergroups", + "Description": "True, if the user is allowed to change the chat title, photo and other settings. Ignored in public supergroups.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -6892,7 +7927,7 @@ { "OriginalName": "can_pin_messages", "ConvertedName": "CanPinMessages", - "Description": "True, if the user is allowed to pin messages. Ignored in public supergroups", + "Description": "True, if the user is allowed to pin messages. Ignored in public supergroups.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -6900,7 +7935,7 @@ { "OriginalName": "can_manage_topics", "ConvertedName": "CanManageTopics", - "Description": "True, if the user is allowed to create forum topics. If omitted defaults to the value of can_pin_messages", + "Description": "True, if the user is allowed to create forum topics. If omitted defaults to the value of can_pin_messages.", "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": true @@ -7060,6 +8095,49 @@ ] } }, + { + "Name": "UserRating", + "Description": "This object describes the rating of a user based on their Telegram Star spendings.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "level", + "ConvertedName": "Level", + "Description": "Current level of the user, indicating their reliability when purchasing digital goods and services. A higher level suggests a more trustworthy customer; a negative level is likely reason for concern.", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "rating", + "ConvertedName": "Rating", + "Description": "Numerical value of the user\u0027s rating; the higher the rating, the better", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "current_level_rating", + "ConvertedName": "CurrentLevelRating", + "Description": "The rating value required to get the current level", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "next_level_rating", + "ConvertedName": "NextLevelRating", + "Description": "The rating value required to get to the next level; omitted if the maximum level was reached", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + } + ] + ] + } + }, { "Name": "StoryAreaPosition", "Description": "Describes the position of a clickable area within a story.", @@ -7471,7 +8549,7 @@ { "OriginalName": "emoji", "ConvertedName": "Emoji", - "Description": "Reaction emoji. Currently, it can be one of \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022", + "Description": "Reaction emoji. Currently, it can be one of \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022, \u0022\u0022.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -7701,14 +8779,57 @@ "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true + }, + { + "OriginalName": "is_name_implicit", + "ConvertedName": "IsNameImplicit", + "Description": "True, if the name of the topic wasn\u0027t specified explicitly by its creator and likely needs to be changed by the bot", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true } ] ] } }, { - "Name": "Gift", - "Description": "This object represents a gift that can be sent by the bot.", + "Name": "GiftBackground", + "Description": "This object describes the background of a gift.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "center_color", + "ConvertedName": "CenterColor", + "Description": "Center color of the background in RGB format", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "edge_color", + "ConvertedName": "EdgeColor", + "Description": "Edge color of the background in RGB format", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "text_color", + "ConvertedName": "TextColor", + "Description": "Text color of the background in RGB format", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + } + ] + ] + } + }, + { + "Name": "Gift", + "Description": "This object represents a gift that can be sent by the bot.", "Kind": { "Case": "Fields", "Fields": [ @@ -7745,10 +8866,26 @@ "ConvertedFieldType": "int64", "Optional": true }, + { + "OriginalName": "is_premium", + "ConvertedName": "IsPremium", + "Description": "True, if the gift can only be purchased by Telegram Premium subscribers", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "has_colors", + "ConvertedName": "HasColors", + "Description": "True, if the gift can be used (after being upgraded) to customize a user\u0027s appearance", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true + }, { "OriginalName": "total_count", "ConvertedName": "TotalCount", - "Description": "The total number of the gifts of this type that can be sent; for limited gifts only", + "Description": "The total number of gifts of this type that can be sent by all users; for limited gifts only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -7756,7 +8893,39 @@ { "OriginalName": "remaining_count", "ConvertedName": "RemainingCount", - "Description": "The number of remaining gifts of this type that can be sent; for limited gifts only", + "Description": "The number of remaining gifts of this type that can be sent by all users; for limited gifts only", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "personal_total_count", + "ConvertedName": "PersonalTotalCount", + "Description": "The total number of gifts of this type that can be sent by the bot; for limited gifts only", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "personal_remaining_count", + "ConvertedName": "PersonalRemainingCount", + "Description": "The number of remaining gifts of this type that can be sent by the bot; for limited gifts only", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "background", + "ConvertedName": "Background", + "Description": "Background of the gift", + "OriginalFieldType": "GiftBackground", + "ConvertedFieldType": "GiftBackground", + "Optional": true + }, + { + "OriginalName": "unique_gift_variant_count", + "ConvertedName": "UniqueGiftVariantCount", + "Description": "The total number of different unique gifts that can be obtained by upgrading the gift", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -7818,10 +8987,18 @@ { "OriginalName": "rarity_per_mille", "ConvertedName": "RarityPerMille", - "Description": "The number of unique gifts that receive this model for every 1000 gifts upgraded", + "Description": "The number of unique gifts that receive this model for every 1000 gift upgrades. Always 0 for crafted gifts.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": false + }, + { + "OriginalName": "rarity", + "ConvertedName": "Rarity", + "Description": "Rarity of the model if it is a crafted model. Currently, can be \u201Cuncommon\u201D, \u201Crare\u201D, \u201Cepic\u201D, or \u201Clegendary\u201D.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true } ] ] @@ -7940,6 +9117,65 @@ ] } }, + { + "Name": "UniqueGiftColors", + "Description": "This object contains information about the color scheme for a user\u0027s name, message replies and link previews based on a unique gift.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "model_custom_emoji_id", + "ConvertedName": "ModelCustomEmojiId", + "Description": "Custom emoji identifier of the unique gift\u0027s model", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "symbol_custom_emoji_id", + "ConvertedName": "SymbolCustomEmojiId", + "Description": "Custom emoji identifier of the unique gift\u0027s symbol", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "light_theme_main_color", + "ConvertedName": "LightThemeMainColor", + "Description": "Main color used in light themes; RGB format", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "light_theme_other_colors", + "ConvertedName": "LightThemeOtherColors", + "Description": "List of 1-3 additional colors used in light themes; RGB format", + "OriginalFieldType": "Array of Integer", + "ConvertedFieldType": "int64[]", + "Optional": false + }, + { + "OriginalName": "dark_theme_main_color", + "ConvertedName": "DarkThemeMainColor", + "Description": "Main color used in dark themes; RGB format", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "dark_theme_other_colors", + "ConvertedName": "DarkThemeOtherColors", + "Description": "List of 1-3 additional colors used in dark themes; RGB format", + "OriginalFieldType": "Array of Integer", + "ConvertedFieldType": "int64[]", + "Optional": false + } + ] + ] + } + }, { "Name": "UniqueGift", "Description": "This object describes a unique gift that was upgraded from a regular gift.", @@ -7947,6 +9183,14 @@ "Case": "Fields", "Fields": [ [ + { + "OriginalName": "gift_id", + "ConvertedName": "GiftId", + "Description": "Identifier of the regular gift from which the gift was upgraded", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, { "OriginalName": "base_name", "ConvertedName": "BaseName", @@ -7958,7 +9202,7 @@ { "OriginalName": "name", "ConvertedName": "Name", - "Description": "Unique name of the gift. This name can be used in https://t.me/nft/... links and story areas", + "Description": "Unique name of the gift. This name can be used in https://t.me/nft/... links and story areas.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -7995,6 +9239,38 @@ "ConvertedFieldType": "UniqueGiftBackdrop", "Optional": false }, + { + "OriginalName": "is_premium", + "ConvertedName": "IsPremium", + "Description": "True, if the original regular gift was exclusively purchaseable by Telegram Premium subscribers", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "is_burned", + "ConvertedName": "IsBurned", + "Description": "True, if the gift was used to craft another gift and isn\u0027t available anymore", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "is_from_blockchain", + "ConvertedName": "IsFromBlockchain", + "Description": "True, if the gift is assigned from the TON blockchain and can\u0027t be resold or transferred in Telegram", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "colors", + "ConvertedName": "Colors", + "Description": "The color scheme that can be used by the gift\u0027s owner for the chat\u0027s name, replies to messages and link previews; for business account gifts and gifts that are currently on sale only", + "OriginalFieldType": "UniqueGiftColors", + "ConvertedFieldType": "UniqueGiftColors", + "Optional": true + }, { "OriginalName": "publisher_chat", "ConvertedName": "PublisherChat", @@ -8041,11 +9317,19 @@ { "OriginalName": "prepaid_upgrade_star_count", "ConvertedName": "PrepaidUpgradeStarCount", - "Description": "Number of Telegram Stars that were prepaid by the sender for the ability to upgrade the gift", + "Description": "Number of Telegram Stars that were prepaid for the ability to upgrade the gift", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true }, + { + "OriginalName": "is_upgrade_separate", + "ConvertedName": "IsUpgradeSeparate", + "Description": "True, if the gift\u0027s upgrade was purchased after the gift was sent", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true + }, { "OriginalName": "can_be_upgraded", "ConvertedName": "CanBeUpgraded", @@ -8077,6 +9361,14 @@ "OriginalFieldType": "True", "ConvertedFieldType": "bool", "Optional": true + }, + { + "OriginalName": "unique_gift_number", + "ConvertedName": "UniqueGiftNumber", + "Description": "Unique number reserved for this gift when upgraded. See the number field in UniqueGift.", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true } ] ] @@ -8100,15 +9392,23 @@ { "OriginalName": "origin", "ConvertedName": "Origin", - "Description": "Origin of the gift. Currently, either \u201Cupgrade\u201D for gifts upgraded from regular gifts, \u201Ctransfer\u201D for gifts transferred from other users or channels, or \u201Cresale\u201D for gifts bought from other users", + "Description": "Origin of the gift. Currently, either \u201Cupgrade\u201D for gifts upgraded from regular gifts, \u201Ctransfer\u201D for gifts transferred from other users or channels, \u201Cresale\u201D for gifts bought from other users, \u201Cgifted_upgrade\u201D for upgrades purchased after the gift was sent, or \u201Coffer\u201D for gifts bought or sold through gift purchase offers.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "last_resale_star_count", - "ConvertedName": "LastResaleStarCount", - "Description": "For gifts bought from other users, the price paid for the gift", + "OriginalName": "last_resale_currency", + "ConvertedName": "LastResaleCurrency", + "Description": "For gifts bought from other users, the currency in which the payment for the gift was done. Currently, one of \u201CXTR\u201D for Telegram Stars or \u201CTON\u201D for toncoins.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "last_resale_amount", + "ConvertedName": "LastResaleAmount", + "Description": "For gifts bought from other users, the price paid for the gift in either Telegram Stars or nanotoncoins", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -8132,7 +9432,7 @@ { "OriginalName": "next_transfer_date", "ConvertedName": "NextTransferDate", - "Description": "Point in time (Unix timestamp) when the gift can be transferred. If it is in the past, then the gift can be transferred now", + "Description": "Point in time (Unix timestamp) when the gift can be transferred. If it is in the past, then the gift can be transferred now.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -8258,7 +9558,7 @@ { "OriginalName": "convert_star_count", "ConvertedName": "ConvertStarCount", - "Description": "Number of Telegram Stars that can be claimed by the receiver instead of the gift; omitted if the gift cannot be converted to Telegram Stars", + "Description": "Number of Telegram Stars that can be claimed by the receiver instead of the gift; omitted if the gift cannot be converted to Telegram Stars; for gifts received on behalf of business accounts only", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -8266,7 +9566,23 @@ { "OriginalName": "prepaid_upgrade_star_count", "ConvertedName": "PrepaidUpgradeStarCount", - "Description": "Number of Telegram Stars that were paid by the sender for the ability to upgrade the gift", + "Description": "Number of Telegram Stars that were paid for the ability to upgrade the gift", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "is_upgrade_separate", + "ConvertedName": "IsUpgradeSeparate", + "Description": "True, if the gift\u0027s upgrade was purchased after the gift was sent; for gifts received on behalf of business accounts only", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "unique_gift_number", + "ConvertedName": "UniqueGiftNumber", + "Description": "Unique number reserved for this gift when upgraded. See the number field in UniqueGift.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -8349,7 +9665,7 @@ { "OriginalName": "next_transfer_date", "ConvertedName": "NextTransferDate", - "Description": "Point in time (Unix timestamp) when the gift can be transferred. If it is in the past, then the gift can be transferred now", + "Description": "Point in time (Unix timestamp) when the gift can be transferred. If it is in the past, then the gift can be transferred now.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -8384,7 +9700,7 @@ { "OriginalName": "next_offset", "ConvertedName": "NextOffset", - "Description": "Offset for the next request. If empty, then there are no more results", + "Description": "Offset for the next request. If empty, then there are no more results.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -8393,6 +9709,33 @@ ] } }, + { + "Name": "BotAccessSettings", + "Description": "This object describes the access settings of a bot.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "is_access_restricted", + "ConvertedName": "IsAccessRestricted", + "Description": "True, if only selected users can access the bot. The bot\u0027s owner can always access it.", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": false + }, + { + "OriginalName": "added_users", + "ConvertedName": "AddedUsers", + "Description": "The list of other users who have access to the bot if the access is restricted", + "OriginalFieldType": "Array of User", + "ConvertedFieldType": "User[]", + "Optional": true + } + ] + ] + } + }, { "Name": "AcceptedGiftTypes", "Description": "This object describes the types of gifts that can be gifted to a user or a chat.", @@ -8431,6 +9774,14 @@ "OriginalFieldType": "Boolean", "ConvertedFieldType": "bool", "Optional": false + }, + { + "OriginalName": "gifts_from_channels", + "ConvertedName": "GiftsFromChannels", + "Description": "True, if transfers of unique gifts from channels are accepted", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": false } ] ] @@ -8481,7 +9832,7 @@ { "OriginalName": "description", "ConvertedName": "Description", - "Description": "Description of the command; 1-256 characters.", + "Description": "Description of the command; 1-256 characters", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -8623,7 +9974,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername). Channel direct messages chats and channel chats aren\u0027t supported.", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username. Channel direct messages chats and channel chats aren\u0027t supported.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -8650,7 +10001,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername). Channel direct messages chats and channel chats aren\u0027t supported.", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username. Channel direct messages chats and channel chats aren\u0027t supported.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -8677,7 +10028,7 @@ { "OriginalName": "chat_id", "ConvertedName": "ChatId", - "Description": "Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername). Channel direct messages chats and channel chats aren\u0027t supported.", + "Description": "Unique identifier for the target chat or username of the target supergroup in the format @username. Channel direct messages chats and channel chats aren\u0027t supported.", "OriginalFieldType": "Integer or String", "ConvertedFieldType": "ChatId", "Optional": false @@ -9088,6 +10439,44 @@ ] } }, + { + "Name": "ChatOwnerLeft", + "Description": "Describes a service message about the chat owner leaving the chat.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "new_owner", + "ConvertedName": "NewOwner", + "Description": "The user who will become the new owner of the chat if the previous owner does not return to the chat", + "OriginalFieldType": "User", + "ConvertedFieldType": "User", + "Optional": true + } + ] + ] + } + }, + { + "Name": "ChatOwnerChanged", + "Description": "Describes a service message about an ownership change in the chat.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "new_owner", + "ConvertedName": "NewOwner", + "Description": "The new owner of the chat", + "OriginalFieldType": "User", + "ConvertedFieldType": "User", + "Optional": false + } + ] + ] + } + }, { "Name": "UserChatBoosts", "Description": "This object represents a list of boosts added to a chat by a user.", @@ -9325,26 +10714,18 @@ } }, { - "Name": "ResponseParameters", - "Description": "Describes why a request was unsuccessful.", + "Name": "SentWebAppMessage", + "Description": "Describes an inline message sent by a Web App on behalf of a user.", "Kind": { "Case": "Fields", "Fields": [ [ { - "OriginalName": "migrate_to_chat_id", - "ConvertedName": "MigrateToChatId", - "Description": "The group has been migrated to a supergroup with the specified identifier. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this identifier.", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", - "Optional": true - }, - { - "OriginalName": "retry_after", - "ConvertedName": "RetryAfter", - "Description": "In case of exceeding flood control, the number of seconds left to wait before the request can be repeated", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", + "OriginalName": "inline_message_id", + "ConvertedName": "InlineMessageId", + "Description": "Identifier of the sent inline message. Available only if there is an inline keyboard attached to the message.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", "Optional": true } ] @@ -9352,221 +10733,127 @@ } }, { - "Name": "InputMedia", - "Description": "This object represents the content of a media message to be sent. It should be one of", + "Name": "SentGuestMessage", + "Description": "Describes an inline message sent by a guest bot.", "Kind": { - "Case": "Cases", + "Case": "Fields", "Fields": [ [ { - "Name": "Animation", - "CaseType": "InputMediaAnimation" - }, + "OriginalName": "inline_message_id", + "ConvertedName": "InlineMessageId", + "Description": "Identifier of the sent inline message", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "PreparedInlineMessage", + "Description": "Describes an inline message to be sent by a user of a Mini App.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ { - "Name": "Document", - "CaseType": "InputMediaDocument" - }, - { - "Name": "Audio", - "CaseType": "InputMediaAudio" - }, - { - "Name": "Photo", - "CaseType": "InputMediaPhoto" + "OriginalName": "id", + "ConvertedName": "Id", + "Description": "Unique identifier of the prepared message", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false }, { - "Name": "Video", - "CaseType": "InputMediaVideo" + "OriginalName": "expiration_date", + "ConvertedName": "ExpirationDate", + "Description": "Expiration date of the prepared message, in Unix time. Expired prepared messages can no longer be used.", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false } ] ] } }, { - "Name": "InputMediaPhoto", - "Description": "Represents a photo to be sent.", + "Name": "PreparedKeyboardButton", + "Description": "Describes a keyboard button to be used by a user of a Mini App.", "Kind": { "Case": "Fields", "Fields": [ [ { - "OriginalName": "type", - "ConvertedName": "Type", - "Description": "Type of the result, must be photo", + "OriginalName": "id", + "ConvertedName": "Id", + "Description": "Unique identifier of the keyboard button", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false - }, - { - "OriginalName": "media", - "ConvertedName": "Media", - "Description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new one using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB", - "OriginalFieldType": "String", - "ConvertedFieldType": "InputFile", - "Optional": false - }, - { - "OriginalName": "caption", - "ConvertedName": "Caption", - "Description": "Caption of the photo to be sent, 0-1024 characters after entities parsing", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", - "Optional": true - }, - { - "OriginalName": "parse_mode", - "ConvertedName": "ParseMode", - "Description": "Mode for parsing entities in the photo caption. See formatting options for more details.", - "OriginalFieldType": "String", - "ConvertedFieldType": "ParseMode", - "Optional": true - }, - { - "OriginalName": "caption_entities", - "ConvertedName": "CaptionEntities", - "Description": "List of special entities that appear in the caption, which can be specified instead of parse_mode", - "OriginalFieldType": "Array of MessageEntity", - "ConvertedFieldType": "MessageEntity[]", - "Optional": true - }, - { - "OriginalName": "show_caption_above_media", - "ConvertedName": "ShowCaptionAboveMedia", - "Description": "Pass True, if the caption must be shown above the message media", - "OriginalFieldType": "Boolean", - "ConvertedFieldType": "bool", - "Optional": true - }, - { - "OriginalName": "has_spoiler", - "ConvertedName": "HasSpoiler", - "Description": "Pass True if the photo needs to be covered with a spoiler animation", - "OriginalFieldType": "Boolean", - "ConvertedFieldType": "bool", - "Optional": true } ] ] } }, { - "Name": "InputMediaVideo", - "Description": "Represents a video to be sent.", + "Name": "ResponseParameters", + "Description": "Describes why a request was unsuccessful.", "Kind": { "Case": "Fields", "Fields": [ [ { - "OriginalName": "type", - "ConvertedName": "Type", - "Description": "Type of the result, must be video", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", - "Optional": false - }, - { - "OriginalName": "media", - "ConvertedName": "Media", - "Description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new one using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB", - "OriginalFieldType": "String", - "ConvertedFieldType": "InputFile", - "Optional": false - }, - { - "OriginalName": "thumbnail", - "ConvertedName": "Thumbnail", - "Description": "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\u0027s width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can\u0027t be reused and can be only uploaded as a new file, so you can pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D if the thumbnail was uploaded using multipart/form-data under \u003Cfile_attach_name\u003E. More information on Sending Files \u00BB", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", - "Optional": true - }, - { - "OriginalName": "cover", - "ConvertedName": "Cover", - "Description": "Cover for the video in the message. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new one using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", - "Optional": true - }, - { - "OriginalName": "start_timestamp", - "ConvertedName": "StartTimestamp", - "Description": "Start timestamp for the video in the message", + "OriginalName": "migrate_to_chat_id", + "ConvertedName": "MigrateToChatId", + "Description": "The group has been migrated to a supergroup with the specified identifier. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this identifier.", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true }, { - "OriginalName": "caption", - "ConvertedName": "Caption", - "Description": "Caption of the video to be sent, 0-1024 characters after entities parsing", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", - "Optional": true - }, - { - "OriginalName": "parse_mode", - "ConvertedName": "ParseMode", - "Description": "Mode for parsing entities in the video caption. See formatting options for more details.", - "OriginalFieldType": "String", - "ConvertedFieldType": "ParseMode", - "Optional": true - }, - { - "OriginalName": "caption_entities", - "ConvertedName": "CaptionEntities", - "Description": "List of special entities that appear in the caption, which can be specified instead of parse_mode", - "OriginalFieldType": "Array of MessageEntity", - "ConvertedFieldType": "MessageEntity[]", + "OriginalName": "retry_after", + "ConvertedName": "RetryAfter", + "Description": "In case of exceeding flood control, the number of seconds left to wait before the request can be repeated", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", "Optional": true - }, + } + ] + ] + } + }, + { + "Name": "InputMedia", + "Description": "This object represents the content of a media message to be sent. It should be one of", + "Kind": { + "Case": "Cases", + "Fields": [ + [ { - "OriginalName": "show_caption_above_media", - "ConvertedName": "ShowCaptionAboveMedia", - "Description": "Pass True, if the caption must be shown above the message media", - "OriginalFieldType": "Boolean", - "ConvertedFieldType": "bool", - "Optional": true + "Name": "Animation", + "CaseType": "InputMediaAnimation" }, { - "OriginalName": "width", - "ConvertedName": "Width", - "Description": "Video width", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", - "Optional": true + "Name": "Audio", + "CaseType": "InputMediaAudio" }, { - "OriginalName": "height", - "ConvertedName": "Height", - "Description": "Video height", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", - "Optional": true + "Name": "Document", + "CaseType": "InputMediaDocument" }, { - "OriginalName": "duration", - "ConvertedName": "Duration", - "Description": "Video duration in seconds", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", - "Optional": true + "Name": "LivePhoto", + "CaseType": "InputMediaLivePhoto" }, { - "OriginalName": "supports_streaming", - "ConvertedName": "SupportsStreaming", - "Description": "Pass True if the uploaded video is suitable for streaming", - "OriginalFieldType": "Boolean", - "ConvertedFieldType": "bool", - "Optional": true + "Name": "Photo", + "CaseType": "InputMediaPhoto" }, { - "OriginalName": "has_spoiler", - "ConvertedName": "HasSpoiler", - "Description": "Pass True if the video needs to be covered with a spoiler animation", - "OriginalFieldType": "Boolean", - "ConvertedFieldType": "bool", - "Optional": true + "Name": "Video", + "CaseType": "InputMediaVideo" } ] ] @@ -9582,7 +10869,7 @@ { "OriginalName": "type", "ConvertedName": "Type", - "Description": "Type of the result, must be animation", + "Description": "Type of the media, must be animation", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -9681,7 +10968,7 @@ { "OriginalName": "type", "ConvertedName": "Type", - "Description": "Type of the result, must be audio", + "Description": "Type of the media, must be audio", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -9764,7 +11051,7 @@ { "OriginalName": "type", "ConvertedName": "Type", - "Description": "Type of the result, must be document", + "Description": "Type of the media, must be document", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -9822,34 +11109,8 @@ } }, { - "Name": "InputFile", - "Description": "This object represents the contents of a file to be uploaded. Must be posted using multipart/form-data in the usual way that files are uploaded via the browser.", - "Kind": { - "Case": "Stub" - } - }, - { - "Name": "InputPaidMedia", - "Description": "This object describes the paid media to be sent. Currently, it can be one of", - "Kind": { - "Case": "Cases", - "Fields": [ - [ - { - "Name": "Photo", - "CaseType": "InputPaidMediaPhoto" - }, - { - "Name": "Video", - "CaseType": "InputPaidMediaVideo" - } - ] - ] - } - }, - { - "Name": "InputPaidMediaPhoto", - "Description": "The paid media to send is a photo.", + "Name": "InputMediaLink", + "Description": "Represents an HTTP link to be sent.", "Kind": { "Case": "Fields", "Fields": [ @@ -9857,17 +11118,17 @@ { "OriginalName": "type", "ConvertedName": "Type", - "Description": "Type of the media, must be photo", + "Description": "Type of the media, must be link", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "media", - "ConvertedName": "Media", - "Description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new one using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB", + "OriginalName": "url", + "ConvertedName": "Url", + "Description": "HTTP URL of the link", "OriginalFieldType": "String", - "ConvertedFieldType": "InputFile", + "ConvertedFieldType": "string", "Optional": false } ] @@ -9875,8 +11136,8 @@ } }, { - "Name": "InputPaidMediaVideo", - "Description": "The paid media to send is a video.", + "Name": "InputMediaLivePhoto", + "Description": "Represents a live photo to be sent.", "Kind": { "Case": "Fields", "Fields": [ @@ -9884,7 +11145,7 @@ { "OriginalName": "type", "ConvertedName": "Type", - "Description": "Type of the media, must be video", + "Description": "Type of the media, must be live_photo", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -9892,18 +11153,536 @@ { "OriginalName": "media", "ConvertedName": "Media", - "Description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new one using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB", + "Description": "Video of the live photo to send. Pass a file_id to send a file that exists on the Telegram servers (recommended) or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new one using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB. Sending live photos by a URL is currently unsupported.", "OriginalFieldType": "String", - "ConvertedFieldType": "InputFile", + "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "thumbnail", - "ConvertedName": "Thumbnail", - "Description": "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\u0027s width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can\u0027t be reused and can be only uploaded as a new file, so you can pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D if the thumbnail was uploaded using multipart/form-data under \u003Cfile_attach_name\u003E. More information on Sending Files \u00BB", + "OriginalName": "photo", + "ConvertedName": "Photo", + "Description": "The static photo to send. Pass a file_id to send a file that exists on the Telegram servers (recommended) or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new one using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB. Sending live photos by a URL is currently unsupported.", "OriginalFieldType": "String", "ConvertedFieldType": "string", - "Optional": true + "Optional": false + }, + { + "OriginalName": "caption", + "ConvertedName": "Caption", + "Description": "Caption of the live photo to be sent, 0-1024 characters after entities parsing", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "parse_mode", + "ConvertedName": "ParseMode", + "Description": "Mode for parsing entities in the live photo caption. See formatting options for more details.", + "OriginalFieldType": "String", + "ConvertedFieldType": "ParseMode", + "Optional": true + }, + { + "OriginalName": "caption_entities", + "ConvertedName": "CaptionEntities", + "Description": "List of special entities that appear in the caption, which can be specified instead of parse_mode", + "OriginalFieldType": "Array of MessageEntity", + "ConvertedFieldType": "MessageEntity[]", + "Optional": true + }, + { + "OriginalName": "show_caption_above_media", + "ConvertedName": "ShowCaptionAboveMedia", + "Description": "Pass True, if the caption must be shown above the message media", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "has_spoiler", + "ConvertedName": "HasSpoiler", + "Description": "Pass True if the live photo needs to be covered with a spoiler animation", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + } + ] + ] + } + }, + { + "Name": "InputMediaLocation", + "Description": "Represents a location to be sent.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the media, must be location", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "latitude", + "ConvertedName": "Latitude", + "Description": "Latitude of the location", + "OriginalFieldType": "Float", + "ConvertedFieldType": "float", + "Optional": false + }, + { + "OriginalName": "longitude", + "ConvertedName": "Longitude", + "Description": "Longitude of the location", + "OriginalFieldType": "Float", + "ConvertedFieldType": "float", + "Optional": false + }, + { + "OriginalName": "horizontal_accuracy", + "ConvertedName": "HorizontalAccuracy", + "Description": "The radius of uncertainty for the location, measured in meters; 0-1500", + "OriginalFieldType": "Float", + "ConvertedFieldType": "float", + "Optional": true + } + ] + ] + } + }, + { + "Name": "InputMediaPhoto", + "Description": "Represents a photo to be sent.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the media, must be photo", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "media", + "ConvertedName": "Media", + "Description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new one using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB", + "OriginalFieldType": "String", + "ConvertedFieldType": "InputFile", + "Optional": false + }, + { + "OriginalName": "caption", + "ConvertedName": "Caption", + "Description": "Caption of the photo to be sent, 0-1024 characters after entities parsing", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "parse_mode", + "ConvertedName": "ParseMode", + "Description": "Mode for parsing entities in the photo caption. See formatting options for more details.", + "OriginalFieldType": "String", + "ConvertedFieldType": "ParseMode", + "Optional": true + }, + { + "OriginalName": "caption_entities", + "ConvertedName": "CaptionEntities", + "Description": "List of special entities that appear in the caption, which can be specified instead of parse_mode", + "OriginalFieldType": "Array of MessageEntity", + "ConvertedFieldType": "MessageEntity[]", + "Optional": true + }, + { + "OriginalName": "show_caption_above_media", + "ConvertedName": "ShowCaptionAboveMedia", + "Description": "Pass True, if the caption must be shown above the message media", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "has_spoiler", + "ConvertedName": "HasSpoiler", + "Description": "Pass True if the photo needs to be covered with a spoiler animation", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + } + ] + ] + } + }, + { + "Name": "InputMediaSticker", + "Description": "Represents a sticker file to be sent.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the media, must be sticker", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "media", + "ConvertedName": "Media", + "Description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a .WEBP sticker from the Internet, or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new .WEBP, .TGS, or .WEBM sticker using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB", + "OriginalFieldType": "String", + "ConvertedFieldType": "InputFile", + "Optional": false + }, + { + "OriginalName": "emoji", + "ConvertedName": "Emoji", + "Description": "Emoji associated with the sticker; only for just uploaded stickers", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + } + ] + ] + } + }, + { + "Name": "InputMediaVenue", + "Description": "Represents a venue to be sent.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the media, must be venue", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "latitude", + "ConvertedName": "Latitude", + "Description": "Latitude of the location", + "OriginalFieldType": "Float", + "ConvertedFieldType": "float", + "Optional": false + }, + { + "OriginalName": "longitude", + "ConvertedName": "Longitude", + "Description": "Longitude of the location", + "OriginalFieldType": "Float", + "ConvertedFieldType": "float", + "Optional": false + }, + { + "OriginalName": "title", + "ConvertedName": "Title", + "Description": "Name of the venue", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "address", + "ConvertedName": "Address", + "Description": "Address of the venue", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "foursquare_id", + "ConvertedName": "FoursquareId", + "Description": "Foursquare identifier of the venue", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "foursquare_type", + "ConvertedName": "FoursquareType", + "Description": "Foursquare type of the venue, if known. (For example, \u201Carts_entertainment/default\u201D, \u201Carts_entertainment/aquarium\u201D or \u201Cfood/icecream\u201D.)", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "google_place_id", + "ConvertedName": "GooglePlaceId", + "Description": "Google Places identifier of the venue", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "google_place_type", + "ConvertedName": "GooglePlaceType", + "Description": "Google Places type of the venue. (See supported types.)", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + } + ] + ] + } + }, + { + "Name": "InputMediaVideo", + "Description": "Represents a video to be sent.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the media, must be video", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "media", + "ConvertedName": "Media", + "Description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new one using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB", + "OriginalFieldType": "String", + "ConvertedFieldType": "InputFile", + "Optional": false + }, + { + "OriginalName": "thumbnail", + "ConvertedName": "Thumbnail", + "Description": "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\u0027s width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can\u0027t be reused and can be only uploaded as a new file, so you can pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D if the thumbnail was uploaded using multipart/form-data under \u003Cfile_attach_name\u003E. More information on Sending Files \u00BB", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "cover", + "ConvertedName": "Cover", + "Description": "Cover for the video in the message. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new one using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "start_timestamp", + "ConvertedName": "StartTimestamp", + "Description": "Start timestamp for the video in the message", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "caption", + "ConvertedName": "Caption", + "Description": "Caption of the video to be sent, 0-1024 characters after entities parsing", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "parse_mode", + "ConvertedName": "ParseMode", + "Description": "Mode for parsing entities in the video caption. See formatting options for more details.", + "OriginalFieldType": "String", + "ConvertedFieldType": "ParseMode", + "Optional": true + }, + { + "OriginalName": "caption_entities", + "ConvertedName": "CaptionEntities", + "Description": "List of special entities that appear in the caption, which can be specified instead of parse_mode", + "OriginalFieldType": "Array of MessageEntity", + "ConvertedFieldType": "MessageEntity[]", + "Optional": true + }, + { + "OriginalName": "show_caption_above_media", + "ConvertedName": "ShowCaptionAboveMedia", + "Description": "Pass True, if the caption must be shown above the message media", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "width", + "ConvertedName": "Width", + "Description": "Video width", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "height", + "ConvertedName": "Height", + "Description": "Video height", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "duration", + "ConvertedName": "Duration", + "Description": "Video duration in seconds", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "supports_streaming", + "ConvertedName": "SupportsStreaming", + "Description": "Pass True if the uploaded video is suitable for streaming", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "has_spoiler", + "ConvertedName": "HasSpoiler", + "Description": "Pass True if the video needs to be covered with a spoiler animation", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + } + ] + ] + } + }, + { + "Name": "InputFile", + "Description": "This object represents the contents of a file to be uploaded. Must be posted using multipart/form-data in the usual way that files are uploaded via the browser.", + "Kind": { + "Case": "Stub" + } + }, + { + "Name": "InputPaidMedia", + "Description": "This object describes the paid media to be sent. Currently, it can be one of", + "Kind": { + "Case": "Cases", + "Fields": [ + [ + { + "Name": "LivePhoto", + "CaseType": "InputPaidMediaLivePhoto" + }, + { + "Name": "Photo", + "CaseType": "InputPaidMediaPhoto" + }, + { + "Name": "Video", + "CaseType": "InputPaidMediaVideo" + } + ] + ] + } + }, + { + "Name": "InputPaidMediaLivePhoto", + "Description": "The paid media to send is a live photo.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the media, must be live_photo", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "media", + "ConvertedName": "Media", + "Description": "Video of the live photo to send. Pass a file_id to send a file that exists on the Telegram servers (recommended) or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new one using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB. Sending live photos by a URL is currently unsupported.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "photo", + "ConvertedName": "Photo", + "Description": "The static photo to send. Pass a file_id to send a file that exists on the Telegram servers (recommended) or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new one using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB. Sending live photos by a URL is currently unsupported.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "InputPaidMediaPhoto", + "Description": "The paid media to send is a photo.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the media, must be photo", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "media", + "ConvertedName": "Media", + "Description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new one using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB", + "OriginalFieldType": "String", + "ConvertedFieldType": "InputFile", + "Optional": false + } + ] + ] + } + }, + { + "Name": "InputPaidMediaVideo", + "Description": "The paid media to send is a video.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the media, must be video", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "media", + "ConvertedName": "Media", + "Description": "File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new one using multipart/form-data under \u003Cfile_attach_name\u003E name. More information on Sending Files \u00BB", + "OriginalFieldType": "String", + "ConvertedFieldType": "InputFile", + "Optional": false + }, + { + "OriginalName": "thumbnail", + "ConvertedName": "Thumbnail", + "Description": "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\u0027s width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can\u0027t be reused and can be only uploaded as a new file, so you can pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D if the thumbnail was uploaded using multipart/form-data under \u003Cfile_attach_name\u003E. More information on Sending Files \u00BB", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true }, { "OriginalName": "cover", @@ -9914,43 +11693,1810 @@ "Optional": true }, { - "OriginalName": "start_timestamp", - "ConvertedName": "StartTimestamp", - "Description": "Start timestamp for the video in the message", + "OriginalName": "start_timestamp", + "ConvertedName": "StartTimestamp", + "Description": "Start timestamp for the video in the message", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "width", + "ConvertedName": "Width", + "Description": "Video width", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "height", + "ConvertedName": "Height", + "Description": "Video height", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "duration", + "ConvertedName": "Duration", + "Description": "Video duration in seconds", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + }, + { + "OriginalName": "supports_streaming", + "ConvertedName": "SupportsStreaming", + "Description": "Pass True if the uploaded video is suitable for streaming", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + } + ] + ] + } + }, + { + "Name": "InputProfilePhoto", + "Description": "This object describes a profile photo to set. Currently, it can be one of", + "Kind": { + "Case": "Cases", + "Fields": [ + [ + { + "Name": "Static", + "CaseType": "InputProfilePhotoStatic" + }, + { + "Name": "Animated", + "CaseType": "InputProfilePhotoAnimated" + } + ] + ] + } + }, + { + "Name": "InputProfilePhotoStatic", + "Description": "A static profile photo in the .JPG format.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the profile photo, must be static", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "photo", + "ConvertedName": "Photo", + "Description": "The static profile photo. Profile photos can\u0027t be reused and can only be uploaded as a new file, so you can pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D if the photo was uploaded using multipart/form-data under \u003Cfile_attach_name\u003E. More information on Sending Files \u00BB", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "InputProfilePhotoAnimated", + "Description": "An animated profile photo in the MPEG4 format.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the profile photo, must be animated", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "animation", + "ConvertedName": "Animation", + "Description": "The animated profile photo. Profile photos can\u0027t be reused and can only be uploaded as a new file, so you can pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D if the photo was uploaded using multipart/form-data under \u003Cfile_attach_name\u003E. More information on Sending Files \u00BB", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "main_frame_timestamp", + "ConvertedName": "MainFrameTimestamp", + "Description": "Timestamp in seconds of the frame that will be used as the static profile photo. Defaults to 0.0.", + "OriginalFieldType": "Float", + "ConvertedFieldType": "float", + "Optional": true + } + ] + ] + } + }, + { + "Name": "InputStoryContent", + "Description": "This object describes the content of a story to post. Currently, it can be one of", + "Kind": { + "Case": "Cases", + "Fields": [ + [ + { + "Name": "Photo", + "CaseType": "InputStoryContentPhoto" + }, + { + "Name": "Video", + "CaseType": "InputStoryContentVideo" + } + ] + ] + } + }, + { + "Name": "InputStoryContentPhoto", + "Description": "Describes a photo to post as a story.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the content, must be photo", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "photo", + "ConvertedName": "Photo", + "Description": "The photo to post as a story. The photo must be of the size 1080x1920 and must not exceed 10 MB. The photo can\u0027t be reused and can only be uploaded as a new file, so you can pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D if the photo was uploaded using multipart/form-data under \u003Cfile_attach_name\u003E. More information on Sending Files \u00BB", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "InputStoryContentVideo", + "Description": "Describes a video to post as a story.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the content, must be video", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "video", + "ConvertedName": "Video", + "Description": "The video to post as a story. The video must be of the size 720x1280, streamable, encoded with H.265 codec, with key frames added each second in the MPEG4 format, and must not exceed 30 MB. The video can\u0027t be reused and can only be uploaded as a new file, so you can pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D if the video was uploaded using multipart/form-data under \u003Cfile_attach_name\u003E. More information on Sending Files \u00BB", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "duration", + "ConvertedName": "Duration", + "Description": "Precise duration of the video in seconds; 0-60", + "OriginalFieldType": "Float", + "ConvertedFieldType": "float", + "Optional": true + }, + { + "OriginalName": "cover_frame_timestamp", + "ConvertedName": "CoverFrameTimestamp", + "Description": "Timestamp in seconds of the frame that will be used as the static cover for the story. Defaults to 0.0.", + "OriginalFieldType": "Float", + "ConvertedFieldType": "float", + "Optional": true + }, + { + "OriginalName": "is_animation", + "ConvertedName": "IsAnimation", + "Description": "Pass True if the video has no sound", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + } + ] + ] + } + }, + { + "Name": "Sticker", + "Description": "This object represents a sticker.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "file_id", + "ConvertedName": "FileId", + "Description": "Identifier for this file, which can be used to download or reuse the file", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "file_unique_id", + "ConvertedName": "FileUniqueId", + "Description": "Unique identifier for this file, which is supposed to be the same over time and for different bots. Can\u0027t be used to download or reuse the file.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the sticker, currently one of \u201Cregular\u201D, \u201Cmask\u201D, \u201Ccustom_emoji\u201D. The type of the sticker is independent from its format, which is determined by the fields is_animated and is_video.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "width", + "ConvertedName": "Width", + "Description": "Sticker width", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "height", + "ConvertedName": "Height", + "Description": "Sticker height", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "is_animated", + "ConvertedName": "IsAnimated", + "Description": "True, if the sticker is animated", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": false + }, + { + "OriginalName": "is_video", + "ConvertedName": "IsVideo", + "Description": "True, if the sticker is a video sticker", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": false + }, + { + "OriginalName": "thumbnail", + "ConvertedName": "Thumbnail", + "Description": "Sticker thumbnail in the .WEBP or .JPG format", + "OriginalFieldType": "PhotoSize", + "ConvertedFieldType": "PhotoSize", + "Optional": true + }, + { + "OriginalName": "emoji", + "ConvertedName": "Emoji", + "Description": "Emoji associated with the sticker", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "set_name", + "ConvertedName": "SetName", + "Description": "Name of the sticker set to which the sticker belongs", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "premium_animation", + "ConvertedName": "PremiumAnimation", + "Description": "For premium regular stickers, premium animation for the sticker", + "OriginalFieldType": "File", + "ConvertedFieldType": "File", + "Optional": true + }, + { + "OriginalName": "mask_position", + "ConvertedName": "MaskPosition", + "Description": "For mask stickers, the position where the mask should be placed", + "OriginalFieldType": "MaskPosition", + "ConvertedFieldType": "MaskPosition", + "Optional": true + }, + { + "OriginalName": "custom_emoji_id", + "ConvertedName": "CustomEmojiId", + "Description": "For custom emoji stickers, unique identifier of the custom emoji", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "needs_repainting", + "ConvertedName": "NeedsRepainting", + "Description": "True, if the sticker must be repainted to a text color in messages, the color of the Telegram Premium badge in emoji status, white color on chat photos, or another appropriate color in other places", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "file_size", + "ConvertedName": "FileSize", + "Description": "File size in bytes", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": true + } + ] + ] + } + }, + { + "Name": "StickerSet", + "Description": "This object represents a sticker set.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "name", + "ConvertedName": "Name", + "Description": "Sticker set name", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "title", + "ConvertedName": "Title", + "Description": "Sticker set title", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "sticker_type", + "ConvertedName": "StickerType", + "Description": "Type of stickers in the set, currently one of \u201Cregular\u201D, \u201Cmask\u201D, \u201Ccustom_emoji\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "stickers", + "ConvertedName": "Stickers", + "Description": "List of all set stickers", + "OriginalFieldType": "Array of Sticker", + "ConvertedFieldType": "Sticker[]", + "Optional": false + }, + { + "OriginalName": "thumbnail", + "ConvertedName": "Thumbnail", + "Description": "Sticker set thumbnail in the .WEBP, .TGS, or .WEBM format", + "OriginalFieldType": "PhotoSize", + "ConvertedFieldType": "PhotoSize", + "Optional": true + } + ] + ] + } + }, + { + "Name": "MaskPosition", + "Description": "This object describes the position on faces where a mask should be placed by default.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "point", + "ConvertedName": "Point", + "Description": "The part of the face relative to which the mask should be placed. One of \u201Cforehead\u201D, \u201Ceyes\u201D, \u201Cmouth\u201D, or \u201Cchin\u201D.", + "OriginalFieldType": "String", + "ConvertedFieldType": "MaskPoint", + "Optional": false + }, + { + "OriginalName": "x_shift", + "ConvertedName": "XShift", + "Description": "Shift by X-axis measured in widths of the mask scaled to the face size, from left to right. For example, choosing -1.0 will place mask just to the left of the default mask position.", + "OriginalFieldType": "Float", + "ConvertedFieldType": "float", + "Optional": false + }, + { + "OriginalName": "y_shift", + "ConvertedName": "YShift", + "Description": "Shift by Y-axis measured in heights of the mask scaled to the face size, from top to bottom. For example, 1.0 will place the mask just below the default mask position.", + "OriginalFieldType": "Float", + "ConvertedFieldType": "float", + "Optional": false + }, + { + "OriginalName": "scale", + "ConvertedName": "Scale", + "Description": "Mask scaling coefficient. For example, 2.0 means double size.", + "OriginalFieldType": "Float", + "ConvertedFieldType": "float", + "Optional": false + } + ] + ] + } + }, + { + "Name": "InputSticker", + "Description": "This object describes a sticker to be added to a sticker set.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "sticker", + "ConvertedName": "Sticker", + "Description": "The added sticker. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new file using multipart/form-data under \u003Cfile_attach_name\u003E name. Animated and video stickers can\u0027t be uploaded via HTTP URL. More information on Sending Files \u00BB", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "format", + "ConvertedName": "Format", + "Description": "Format of the added sticker, must be one of \u201Cstatic\u201D for a .WEBP or .PNG image, \u201Canimated\u201D for a .TGS animation, \u201Cvideo\u201D for a .WEBM video", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "emoji_list", + "ConvertedName": "EmojiList", + "Description": "List of 1-20 emoji associated with the sticker", + "OriginalFieldType": "Array of String", + "ConvertedFieldType": "string[]", + "Optional": false + }, + { + "OriginalName": "mask_position", + "ConvertedName": "MaskPosition", + "Description": "Position where the mask should be placed on faces. For \u201Cmask\u201D stickers only.", + "OriginalFieldType": "MaskPosition", + "ConvertedFieldType": "MaskPosition", + "Optional": true + }, + { + "OriginalName": "keywords", + "ConvertedName": "Keywords", + "Description": "List of 0-20 search keywords for the sticker with total length of up to 64 characters. For \u201Cregular\u201D and \u201Ccustom_emoji\u201D stickers only.", + "OriginalFieldType": "Array of String", + "ConvertedFieldType": "string[]", + "Optional": true + } + ] + ] + } + }, + { + "Name": "RichMessage", + "Description": "Rich formatted message.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "blocks", + "ConvertedName": "Blocks", + "Description": "Content of the message", + "OriginalFieldType": "Array of RichBlock", + "ConvertedFieldType": "RichBlock[]", + "Optional": false + }, + { + "OriginalName": "is_rtl", + "ConvertedName": "IsRtl", + "Description": "True, if the rich message must be shown right-to-left", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + } + ] + ] + } + }, + { + "Name": "InputRichMessage", + "Description": "Describes a rich message to be sent. Exactly one of the fields html or markdown must be used.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "html", + "ConvertedName": "Html", + "Description": "Content of the rich message to send described using HTML formatting. See rich message formatting options for more details.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "markdown", + "ConvertedName": "Markdown", + "Description": "Content of the rich message to send described using Markdown formatting. See rich message formatting options for more details.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + }, + { + "OriginalName": "is_rtl", + "ConvertedName": "IsRtl", + "Description": "Pass True if the rich message must be shown right-to-left", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "skip_entity_detection", + "ConvertedName": "SkipEntityDetection", + "Description": "Pass True to skip automatic detection of entities (e.g., URLs, email addresses, username mentions, hashtags, cashtags, bot commands, or phone numbers) in the text", + "OriginalFieldType": "Boolean", + "ConvertedFieldType": "bool", + "Optional": true + } + ] + ] + } + }, + { + "Name": "RichText", + "Description": "This object represents a rich formatted text. Currently, it can be either a String for plain text, an Array of RichText, or any of the following types:", + "Kind": { + "Case": "Cases", + "Fields": [ + [ + { + "Name": "Bold", + "CaseType": "RichTextBold" + }, + { + "Name": "Italic", + "CaseType": "RichTextItalic" + }, + { + "Name": "Underline", + "CaseType": "RichTextUnderline" + }, + { + "Name": "Strikethrough", + "CaseType": "RichTextStrikethrough" + }, + { + "Name": "Spoiler", + "CaseType": "RichTextSpoiler" + }, + { + "Name": "DateTimeText", + "CaseType": "RichTextDateTime" + }, + { + "Name": "TextMention", + "CaseType": "RichTextTextMention" + }, + { + "Name": "Subscript", + "CaseType": "RichTextSubscript" + }, + { + "Name": "Superscript", + "CaseType": "RichTextSuperscript" + }, + { + "Name": "Marked", + "CaseType": "RichTextMarked" + }, + { + "Name": "Code", + "CaseType": "RichTextCode" + }, + { + "Name": "CustomEmoji", + "CaseType": "RichTextCustomEmoji" + }, + { + "Name": "MathematicalExpression", + "CaseType": "RichTextMathematicalExpression" + }, + { + "Name": "Url", + "CaseType": "RichTextUrl" + }, + { + "Name": "EmailAddress", + "CaseType": "RichTextEmailAddress" + }, + { + "Name": "PhoneNumber", + "CaseType": "RichTextPhoneNumber" + }, + { + "Name": "BankCardNumber", + "CaseType": "RichTextBankCardNumber" + }, + { + "Name": "Mention", + "CaseType": "RichTextMention" + }, + { + "Name": "Hashtag", + "CaseType": "RichTextHashtag" + }, + { + "Name": "Cashtag", + "CaseType": "RichTextCashtag" + }, + { + "Name": "BotCommand", + "CaseType": "RichTextBotCommand" + }, + { + "Name": "Anchor", + "CaseType": "RichTextAnchor" + }, + { + "Name": "AnchorLink", + "CaseType": "RichTextAnchorLink" + }, + { + "Name": "Reference", + "CaseType": "RichTextReference" + }, + { + "Name": "ReferenceLink", + "CaseType": "RichTextReferenceLink" + } + ] + ] + } + }, + { + "Name": "RichTextBold", + "Description": "A bold text.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Cbold\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextItalic", + "Description": "An italicized text.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Citalic\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextUnderline", + "Description": "An underlined text.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Cunderline\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextStrikethrough", + "Description": "A strikethrough text.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Cstrikethrough\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextSpoiler", + "Description": "A text covered by a spoiler.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Cspoiler\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextDateTime", + "Description": "Formatted date and time.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Cdate_time\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "unix_time", + "ConvertedName": "UnixTime", + "Description": "The Unix time associated with the entity", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "date_time_format", + "ConvertedName": "DateTimeFormat", + "Description": "The string that defines the formatting of the date and time. See date-time entity formatting for more details.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextTextMention", + "Description": "A mention of a Telegram user by their identifier.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Ctext_mention\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "user", + "ConvertedName": "User", + "Description": "The mentioned user", + "OriginalFieldType": "User", + "ConvertedFieldType": "User", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextSubscript", + "Description": "A subscript text.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Csubscript\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextSuperscript", + "Description": "A superscript text.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Csuperscript\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextMarked", + "Description": "A marked text.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Cmarked\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextCode", + "Description": "A monowidth text.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Ccode\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextCustomEmoji", + "Description": "A custom emoji.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Ccustom_emoji\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "custom_emoji_id", + "ConvertedName": "CustomEmojiId", + "Description": "Unique identifier of the custom emoji. Use getCustomEmojiStickers to get full information about the sticker.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "alternative_text", + "ConvertedName": "AlternativeText", + "Description": "Alternative emoji for the custom emoji", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextMathematicalExpression", + "Description": "A mathematical expression.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Cmathematical_expression\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "expression", + "ConvertedName": "Expression", + "Description": "The expression in LaTeX format", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextUrl", + "Description": "A text with a link.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Curl\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "url", + "ConvertedName": "Url", + "Description": "URL of the link", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextEmailAddress", + "Description": "A text with an email address.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Cemail_address\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "email_address", + "ConvertedName": "EmailAddress", + "Description": "The email address", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextPhoneNumber", + "Description": "A text with a phone number.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Cphone_number\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "phone_number", + "ConvertedName": "PhoneNumber", + "Description": "The phone number", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextBankCardNumber", + "Description": "A text with a bank card number.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Cbank_card_number\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "bank_card_number", + "ConvertedName": "BankCardNumber", + "Description": "The bank card number", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextMention", + "Description": "A mention by a username.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Cmention\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "username", + "ConvertedName": "Username", + "Description": "The username", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextHashtag", + "Description": "A hashtag.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Chashtag\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "hashtag", + "ConvertedName": "Hashtag", + "Description": "The hashtag", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextCashtag", + "Description": "A cashtag.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Ccashtag\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "cashtag", + "ConvertedName": "Cashtag", + "Description": "The cashtag", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextBotCommand", + "Description": "A bot command.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Cbot_command\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "bot_command", + "ConvertedName": "BotCommand", + "Description": "The bot command", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextAnchor", + "Description": "An anchor.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Canchor\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "name", + "ConvertedName": "Name", + "Description": "The name of the anchor", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextAnchorLink", + "Description": "A link to an anchor.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Canchor_link\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The link text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "anchor_name", + "ConvertedName": "AnchorName", + "Description": "The name of the anchor. If the name is empty, then the link brings back to the top of the message.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextReference", + "Description": "A reference.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Creference\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "Text of the reference", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "name", + "ConvertedName": "Name", + "Description": "The name of the reference", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichTextReferenceLink", + "Description": "A link to a reference.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the rich text, always \u201Creference_link\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "The link text", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "reference_name", + "ConvertedName": "ReferenceName", + "Description": "The name of the reference", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichBlockCaption", + "Description": "Caption of a rich formatted block.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "Block caption", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "credit", + "ConvertedName": "Credit", + "Description": "Block credit which corresponds to the HTML tag \u003Ccite\u003E", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": true + } + ] + ] + } + }, + { + "Name": "RichBlockTableCell", + "Description": "Cell in a table.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "Text in the cell. If omitted, then the cell is invisible.", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": true + }, + { + "OriginalName": "is_header", + "ConvertedName": "IsHeader", + "Description": "True, if the cell is a header cell", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "colspan", + "ConvertedName": "Colspan", + "Description": "The number of columns the cell spans if it is bigger than 1", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true }, { - "OriginalName": "width", - "ConvertedName": "Width", - "Description": "Video width", + "OriginalName": "rowspan", + "ConvertedName": "Rowspan", + "Description": "The number of rows the cell spans if it is bigger than 1", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true }, { - "OriginalName": "height", - "ConvertedName": "Height", - "Description": "Video height", + "OriginalName": "align", + "ConvertedName": "Align", + "Description": "Horizontal cell content alignment. Currently, must be one of \u201Cleft\u201D, \u201Ccenter\u201D, or \u201Cright\u201D.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "valign", + "ConvertedName": "Valign", + "Description": "Vertical cell content alignment. Currently, must be one of \u201Ctop\u201D, \u201Cmiddle\u201D, or \u201Cbottom\u201D.", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichBlockListItem", + "Description": "An item of a list.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "label", + "ConvertedName": "Label", + "Description": "Label of the item", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "blocks", + "ConvertedName": "Blocks", + "Description": "The content of the item", + "OriginalFieldType": "Array of RichBlock", + "ConvertedFieldType": "RichBlock[]", + "Optional": false + }, + { + "OriginalName": "has_checkbox", + "ConvertedName": "HasCheckbox", + "Description": "True, if the item has a checkbox", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "is_checked", + "ConvertedName": "IsChecked", + "Description": "True, if the item has a checked checkbox", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "value", + "ConvertedName": "Value", + "Description": "For ordered lists, the numeric value of the item label", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true }, { - "OriginalName": "duration", - "ConvertedName": "Duration", - "Description": "Video duration in seconds", + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "For ordered lists, the type of the item label; must be one of \u201Ca\u201D for lowercase letters, \u201CA\u201D for uppercase letters, \u201Ci\u201D for lowercase Roman numerals, \u201CI\u201D for uppercase Roman numerals, or \u201C1\u201D for decimal numbers", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": true + } + ] + ] + } + }, + { + "Name": "RichBlock", + "Description": "This object represents a block in a rich formatted message. Currently, it can be any of the following types:", + "Kind": { + "Case": "Cases", + "Fields": [ + [ + { + "Name": "Paragraph", + "CaseType": "RichBlockParagraph" + }, + { + "Name": "SectionHeading", + "CaseType": "RichBlockSectionHeading" + }, + { + "Name": "Preformatted", + "CaseType": "RichBlockPreformatted" + }, + { + "Name": "Footer", + "CaseType": "RichBlockFooter" + }, + { + "Name": "Divider", + "CaseType": "RichBlockDivider" + }, + { + "Name": "MathematicalExpression", + "CaseType": "RichBlockMathematicalExpression" + }, + { + "Name": "Anchor", + "CaseType": "RichBlockAnchor" + }, + { + "Name": "List", + "CaseType": "RichBlockList" + }, + { + "Name": "BlockQuotation", + "CaseType": "RichBlockBlockQuotation" + }, + { + "Name": "PullQuotation", + "CaseType": "RichBlockPullQuotation" + }, + { + "Name": "Collage", + "CaseType": "RichBlockCollage" + }, + { + "Name": "Slideshow", + "CaseType": "RichBlockSlideshow" + }, + { + "Name": "Table", + "CaseType": "RichBlockTable" + }, + { + "Name": "Details", + "CaseType": "RichBlockDetails" + }, + { + "Name": "Map", + "CaseType": "RichBlockMap" + }, + { + "Name": "Animation", + "CaseType": "RichBlockAnimation" + }, + { + "Name": "Audio", + "CaseType": "RichBlockAudio" + }, + { + "Name": "Photo", + "CaseType": "RichBlockPhoto" + }, + { + "Name": "Video", + "CaseType": "RichBlockVideo" + }, + { + "Name": "VoiceNote", + "CaseType": "RichBlockVoiceNote" + }, + { + "Name": "Thinking", + "CaseType": "RichBlockThinking" + } + ] + ] + } + }, + { + "Name": "RichBlockParagraph", + "Description": "A text paragraph, corresponding to the HTML tag \u003Cp\u003E.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Cparagraph\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "Text of the block", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichBlockSectionHeading", + "Description": "A section heading, corresponding to the HTML tags \u003Ch1\u003E, \u003Ch2\u003E, \u003Ch3\u003E, \u003Ch4\u003E, \u003Ch5\u003E, or \u003Ch6\u003E.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Cheading\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + }, + { + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "Text of the block", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "size", + "ConvertedName": "Size", + "Description": "Relative size of the text font; 1-6, 1 is the largest, 6 is the smallest", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", - "Optional": true + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichBlockPreformatted", + "Description": "A preformatted text block, corresponding to the nested HTML tags \u003Cpre\u003E and \u003Ccode\u003E.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Cpre\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false }, { - "OriginalName": "supports_streaming", - "ConvertedName": "SupportsStreaming", - "Description": "Pass True if the uploaded video is suitable for streaming", - "OriginalFieldType": "Boolean", - "ConvertedFieldType": "bool", + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "Text of the block", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false + }, + { + "OriginalName": "language", + "ConvertedName": "Language", + "Description": "The programming language of the text", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", "Optional": true } ] @@ -9958,27 +13504,35 @@ } }, { - "Name": "InputProfilePhoto", - "Description": "This object describes a profile photo to set. Currently, it can be one of", + "Name": "RichBlockFooter", + "Description": "A footer, corresponding to the HTML tag \u003Cfooter\u003E.", "Kind": { - "Case": "Cases", + "Case": "Fields", "Fields": [ [ { - "Name": "Static", - "CaseType": "InputProfilePhotoStatic" + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Cfooter\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false }, { - "Name": "Animated", - "CaseType": "InputProfilePhotoAnimated" + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "Text of the block", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false } ] ] } }, { - "Name": "InputProfilePhotoStatic", - "Description": "A static profile photo in the .JPG format.", + "Name": "RichBlockDivider", + "Description": "A divider, corresponding to the HTML tag \u003Chr/\u003E.", "Kind": { "Case": "Fields", "Fields": [ @@ -9986,15 +13540,34 @@ { "OriginalName": "type", "ConvertedName": "Type", - "Description": "Type of the profile photo, must be static", + "Description": "Type of the block, always \u201Cdivider\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false + } + ] + ] + } + }, + { + "Name": "RichBlockMathematicalExpression", + "Description": "A block with a mathematical expression in LaTeX format, corresponding to the custom HTML tag \u003Ctg-math-block\u003E.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Cmathematical_expression\u201D", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "photo", - "ConvertedName": "Photo", - "Description": "The static profile photo. Profile photos can\u0027t be reused and can only be uploaded as a new file, so you can pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D if the photo was uploaded using multipart/form-data under \u003Cfile_attach_name\u003E. More information on Sending Files \u00BB", + "OriginalName": "expression", + "ConvertedName": "Expression", + "Description": "The mathematical expression in LaTeX format", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -10004,8 +13577,8 @@ } }, { - "Name": "InputProfilePhotoAnimated", - "Description": "An animated profile photo in the MPEG4 format.", + "Name": "RichBlockAnchor", + "Description": "A block with an anchor, corresponding to the HTML tag \u003Ca\u003E with the attribute name.", "Kind": { "Case": "Fields", "Fields": [ @@ -10013,53 +13586,53 @@ { "OriginalName": "type", "ConvertedName": "Type", - "Description": "Type of the profile photo, must be animated", + "Description": "Type of the block, always \u201Canchor\u201D", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "animation", - "ConvertedName": "Animation", - "Description": "The animated profile photo. Profile photos can\u0027t be reused and can only be uploaded as a new file, so you can pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D if the photo was uploaded using multipart/form-data under \u003Cfile_attach_name\u003E. More information on Sending Files \u00BB", + "OriginalName": "name", + "ConvertedName": "Name", + "Description": "The name of the anchor", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false - }, - { - "OriginalName": "main_frame_timestamp", - "ConvertedName": "MainFrameTimestamp", - "Description": "Timestamp in seconds of the frame that will be used as the static profile photo. Defaults to 0.0.", - "OriginalFieldType": "Float", - "ConvertedFieldType": "float", - "Optional": true } ] ] } }, { - "Name": "InputStoryContent", - "Description": "This object describes the content of a story to post. Currently, it can be one of", + "Name": "RichBlockList", + "Description": "A list of blocks, corresponding to the HTML tag \u003Cul\u003E or \u003Col\u003E with multiple nested tags \u003Cli\u003E.", "Kind": { - "Case": "Cases", + "Case": "Fields", "Fields": [ [ { - "Name": "Photo", - "CaseType": "InputStoryContentPhoto" + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Clist\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false }, { - "Name": "Video", - "CaseType": "InputStoryContentVideo" + "OriginalName": "items", + "ConvertedName": "Items", + "Description": "Items of the list", + "OriginalFieldType": "Array of RichBlockListItem", + "ConvertedFieldType": "RichBlockListItem[]", + "Optional": false } ] ] } }, { - "Name": "InputStoryContentPhoto", - "Description": "Describes a photo to post as a story.", + "Name": "RichBlockBlockQuotation", + "Description": "A block quotation, corresponding to the HTML tag \u003Cblockquote\u003E.", "Kind": { "Case": "Fields", "Fields": [ @@ -10067,26 +13640,34 @@ { "OriginalName": "type", "ConvertedName": "Type", - "Description": "Type of the content, must be photo", + "Description": "Type of the block, always \u201Cblockquote\u201D", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "photo", - "ConvertedName": "Photo", - "Description": "The photo to post as a story. The photo must be of the size 1080x1920 and must not exceed 10 MB. The photo can\u0027t be reused and can only be uploaded as a new file, so you can pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D if the photo was uploaded using multipart/form-data under \u003Cfile_attach_name\u003E. More information on Sending Files \u00BB", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", + "OriginalName": "blocks", + "ConvertedName": "Blocks", + "Description": "Content of the block", + "OriginalFieldType": "Array of RichBlock", + "ConvertedFieldType": "RichBlock[]", "Optional": false + }, + { + "OriginalName": "credit", + "ConvertedName": "Credit", + "Description": "Credit of the block", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": true } ] ] } }, { - "Name": "InputStoryContentVideo", - "Description": "Describes a video to post as a story.", + "Name": "RichBlockPullQuotation", + "Description": "A quotation with centered text, loosely corresponding to the HTML tag \u003Caside\u003E.", "Kind": { "Case": "Fields", "Fields": [ @@ -10094,41 +13675,60 @@ { "OriginalName": "type", "ConvertedName": "Type", - "Description": "Type of the content, must be video", + "Description": "Type of the block, always \u201Cpullquote\u201D", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "video", - "ConvertedName": "Video", - "Description": "The video to post as a story. The video must be of the size 720x1280, streamable, encoded with H.265 codec, with key frames added each second in the MPEG4 format, and must not exceed 30 MB. The video can\u0027t be reused and can only be uploaded as a new file, so you can pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D if the video was uploaded using multipart/form-data under \u003Cfile_attach_name\u003E. More information on Sending Files \u00BB", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "Text of the block", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", "Optional": false }, { - "OriginalName": "duration", - "ConvertedName": "Duration", - "Description": "Precise duration of the video in seconds; 0-60", - "OriginalFieldType": "Float", - "ConvertedFieldType": "float", + "OriginalName": "credit", + "ConvertedName": "Credit", + "Description": "Credit of the block", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", "Optional": true + } + ] + ] + } + }, + { + "Name": "RichBlockCollage", + "Description": "A collage, corresponding to the custom HTML tag \u003Ctg-collage\u003E.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Ccollage\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false }, { - "OriginalName": "cover_frame_timestamp", - "ConvertedName": "CoverFrameTimestamp", - "Description": "Timestamp in seconds of the frame that will be used as the static cover for the story. Defaults to 0.0.", - "OriginalFieldType": "Float", - "ConvertedFieldType": "float", - "Optional": true + "OriginalName": "blocks", + "ConvertedName": "Blocks", + "Description": "Elements of the collage", + "OriginalFieldType": "Array of RichBlock", + "ConvertedFieldType": "RichBlock[]", + "Optional": false }, { - "OriginalName": "is_animation", - "ConvertedName": "IsAnimation", - "Description": "Pass True if the video has no sound", - "OriginalFieldType": "Boolean", - "ConvertedFieldType": "bool", + "OriginalName": "caption", + "ConvertedName": "Caption", + "Description": "Caption of the block", + "OriginalFieldType": "RichBlockCaption", + "ConvertedFieldType": "RichBlockCaption", "Optional": true } ] @@ -10136,130 +13736,230 @@ } }, { - "Name": "Sticker", - "Description": "This object represents a sticker.", + "Name": "RichBlockSlideshow", + "Description": "A slideshow, corresponding to the custom HTML tag \u003Ctg-slideshow\u003E.", "Kind": { "Case": "Fields", "Fields": [ [ { - "OriginalName": "file_id", - "ConvertedName": "FileId", - "Description": "Identifier for this file, which can be used to download or reuse the file", + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Cslideshow\u201D", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "file_unique_id", - "ConvertedName": "FileUniqueId", - "Description": "Unique identifier for this file, which is supposed to be the same over time and for different bots. Can\u0027t be used to download or reuse the file.", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", + "OriginalName": "blocks", + "ConvertedName": "Blocks", + "Description": "Elements of the slideshow", + "OriginalFieldType": "Array of RichBlock", + "ConvertedFieldType": "RichBlock[]", "Optional": false }, + { + "OriginalName": "caption", + "ConvertedName": "Caption", + "Description": "Caption of the block", + "OriginalFieldType": "RichBlockCaption", + "ConvertedFieldType": "RichBlockCaption", + "Optional": true + } + ] + ] + } + }, + { + "Name": "RichBlockTable", + "Description": "A table, corresponding to the HTML tag \u003Ctable\u003E.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ { "OriginalName": "type", "ConvertedName": "Type", - "Description": "Type of the sticker, currently one of \u201Cregular\u201D, \u201Cmask\u201D, \u201Ccustom_emoji\u201D. The type of the sticker is independent from its format, which is determined by the fields is_animated and is_video.", + "Description": "Type of the block, always \u201Ctable\u201D", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "width", - "ConvertedName": "Width", - "Description": "Sticker width", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", + "OriginalName": "cells", + "ConvertedName": "Cells", + "Description": "Cells of the table", + "OriginalFieldType": "Array of Array of RichBlockTableCell", + "ConvertedFieldType": "RichBlockTableCell[][]", "Optional": false }, { - "OriginalName": "height", - "ConvertedName": "Height", - "Description": "Sticker height", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", - "Optional": false + "OriginalName": "is_bordered", + "ConvertedName": "IsBordered", + "Description": "True, if the table has borders", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true }, { - "OriginalName": "is_animated", - "ConvertedName": "IsAnimated", - "Description": "True, if the sticker is animated", - "OriginalFieldType": "Boolean", + "OriginalName": "is_striped", + "ConvertedName": "IsStriped", + "Description": "True, if the table is striped", + "OriginalFieldType": "True", "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "caption", + "ConvertedName": "Caption", + "Description": "Caption of the table", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": true + } + ] + ] + } + }, + { + "Name": "RichBlockDetails", + "Description": "An expandable block for details disclosure, corresponding to the HTML tag \u003Cdetails\u003E.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Cdetails\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "is_video", - "ConvertedName": "IsVideo", - "Description": "True, if the sticker is a video sticker", - "OriginalFieldType": "Boolean", - "ConvertedFieldType": "bool", + "OriginalName": "summary", + "ConvertedName": "Summary", + "Description": "Always shown summary of the block", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", "Optional": false }, { - "OriginalName": "thumbnail", - "ConvertedName": "Thumbnail", - "Description": "Sticker thumbnail in the .WEBP or .JPG format", - "OriginalFieldType": "PhotoSize", - "ConvertedFieldType": "PhotoSize", - "Optional": true + "OriginalName": "blocks", + "ConvertedName": "Blocks", + "Description": "Content of the block", + "OriginalFieldType": "Array of RichBlock", + "ConvertedFieldType": "RichBlock[]", + "Optional": false }, { - "OriginalName": "emoji", - "ConvertedName": "Emoji", - "Description": "Emoji associated with the sticker", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", + "OriginalName": "is_open", + "ConvertedName": "IsOpen", + "Description": "True, if the content of the block is visible by default", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", "Optional": true - }, + } + ] + ] + } + }, + { + "Name": "RichBlockMap", + "Description": "A block with a map, corresponding to the custom HTML tag \u003Ctg-map\u003E.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ { - "OriginalName": "set_name", - "ConvertedName": "SetName", - "Description": "Name of the sticker set to which the sticker belongs", + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Cmap\u201D", "OriginalFieldType": "String", "ConvertedFieldType": "string", - "Optional": true + "Optional": false }, { - "OriginalName": "premium_animation", - "ConvertedName": "PremiumAnimation", - "Description": "For premium regular stickers, premium animation for the sticker", - "OriginalFieldType": "File", - "ConvertedFieldType": "File", - "Optional": true + "OriginalName": "location", + "ConvertedName": "Location", + "Description": "Location of the center of the map", + "OriginalFieldType": "Location", + "ConvertedFieldType": "Location", + "Optional": false + }, + { + "OriginalName": "zoom", + "ConvertedName": "Zoom", + "Description": "Map zoom level; 13-20", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "width", + "ConvertedName": "Width", + "Description": "Expected width of the map", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false + }, + { + "OriginalName": "height", + "ConvertedName": "Height", + "Description": "Expected height of the map", + "OriginalFieldType": "Integer", + "ConvertedFieldType": "int64", + "Optional": false }, { - "OriginalName": "mask_position", - "ConvertedName": "MaskPosition", - "Description": "For mask stickers, the position where the mask should be placed", - "OriginalFieldType": "MaskPosition", - "ConvertedFieldType": "MaskPosition", + "OriginalName": "caption", + "ConvertedName": "Caption", + "Description": "Caption of the block", + "OriginalFieldType": "RichBlockCaption", + "ConvertedFieldType": "RichBlockCaption", "Optional": true - }, + } + ] + ] + } + }, + { + "Name": "RichBlockAnimation", + "Description": "A block with an animation, corresponding to the HTML tag \u003Cvideo\u003E.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ { - "OriginalName": "custom_emoji_id", - "ConvertedName": "CustomEmojiId", - "Description": "For custom emoji stickers, unique identifier of the custom emoji", + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Canimation\u201D", "OriginalFieldType": "String", "ConvertedFieldType": "string", - "Optional": true + "Optional": false }, { - "OriginalName": "needs_repainting", - "ConvertedName": "NeedsRepainting", - "Description": "True, if the sticker must be repainted to a text color in messages, the color of the Telegram Premium badge in emoji status, white color on chat photos, or another appropriate color in other places", + "OriginalName": "animation", + "ConvertedName": "Animation", + "Description": "The animation", + "OriginalFieldType": "Animation", + "ConvertedFieldType": "Animation", + "Optional": false + }, + { + "OriginalName": "has_spoiler", + "ConvertedName": "HasSpoiler", + "Description": "True, if the media preview is covered by a spoiler animation", "OriginalFieldType": "True", "ConvertedFieldType": "bool", "Optional": true }, { - "OriginalName": "file_size", - "ConvertedName": "FileSize", - "Description": "File size in bytes", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", + "OriginalName": "caption", + "ConvertedName": "Caption", + "Description": "Caption of the block", + "OriginalFieldType": "RichBlockCaption", + "ConvertedFieldType": "RichBlockCaption", "Optional": true } ] @@ -10267,50 +13967,77 @@ } }, { - "Name": "StickerSet", - "Description": "This object represents a sticker set.", + "Name": "RichBlockAudio", + "Description": "A block with a music file, corresponding to the HTML tag \u003Caudio\u003E.", "Kind": { "Case": "Fields", "Fields": [ [ { - "OriginalName": "name", - "ConvertedName": "Name", - "Description": "Sticker set name", + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Caudio\u201D", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "title", - "ConvertedName": "Title", - "Description": "Sticker set title", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", + "OriginalName": "audio", + "ConvertedName": "Audio", + "Description": "The audio", + "OriginalFieldType": "Audio", + "ConvertedFieldType": "Audio", "Optional": false }, { - "OriginalName": "sticker_type", - "ConvertedName": "StickerType", - "Description": "Type of stickers in the set, currently one of \u201Cregular\u201D, \u201Cmask\u201D, \u201Ccustom_emoji\u201D", + "OriginalName": "caption", + "ConvertedName": "Caption", + "Description": "Caption of the block", + "OriginalFieldType": "RichBlockCaption", + "ConvertedFieldType": "RichBlockCaption", + "Optional": true + } + ] + ] + } + }, + { + "Name": "RichBlockPhoto", + "Description": "A block with a photo, corresponding to the HTML tag \u003Cphoto\u003E.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Cphoto\u201D", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "stickers", - "ConvertedName": "Stickers", - "Description": "List of all set stickers", - "OriginalFieldType": "Array of Sticker", - "ConvertedFieldType": "Sticker[]", + "OriginalName": "photo", + "ConvertedName": "Photo", + "Description": "Available sizes of the photo", + "OriginalFieldType": "Array of PhotoSize", + "ConvertedFieldType": "PhotoSize[]", "Optional": false }, { - "OriginalName": "thumbnail", - "ConvertedName": "Thumbnail", - "Description": "Sticker set thumbnail in the .WEBP, .TGS, or .WEBM format", - "OriginalFieldType": "PhotoSize", - "ConvertedFieldType": "PhotoSize", + "OriginalName": "has_spoiler", + "ConvertedName": "HasSpoiler", + "Description": "True, if the media preview is covered by a spoiler animation", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true + }, + { + "OriginalName": "caption", + "ConvertedName": "Caption", + "Description": "Caption of the block", + "OriginalFieldType": "RichBlockCaption", + "ConvertedFieldType": "RichBlockCaption", "Optional": true } ] @@ -10318,94 +14045,105 @@ } }, { - "Name": "MaskPosition", - "Description": "This object describes the position on faces where a mask should be placed by default.", + "Name": "RichBlockVideo", + "Description": "A block with a video, corresponding to the HTML tag \u003Cvideo\u003E.", "Kind": { "Case": "Fields", "Fields": [ [ { - "OriginalName": "point", - "ConvertedName": "Point", - "Description": "The part of the face relative to which the mask should be placed. One of \u201Cforehead\u201D, \u201Ceyes\u201D, \u201Cmouth\u201D, or \u201Cchin\u201D.", + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Cvideo\u201D", "OriginalFieldType": "String", - "ConvertedFieldType": "MaskPoint", + "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "x_shift", - "ConvertedName": "XShift", - "Description": "Shift by X-axis measured in widths of the mask scaled to the face size, from left to right. For example, choosing -1.0 will place mask just to the left of the default mask position.", - "OriginalFieldType": "Float", - "ConvertedFieldType": "float", + "OriginalName": "video", + "ConvertedName": "Video", + "Description": "The video", + "OriginalFieldType": "Video", + "ConvertedFieldType": "Video", "Optional": false }, { - "OriginalName": "y_shift", - "ConvertedName": "YShift", - "Description": "Shift by Y-axis measured in heights of the mask scaled to the face size, from top to bottom. For example, 1.0 will place the mask just below the default mask position.", - "OriginalFieldType": "Float", - "ConvertedFieldType": "float", - "Optional": false + "OriginalName": "has_spoiler", + "ConvertedName": "HasSpoiler", + "Description": "True, if the media preview is covered by a spoiler animation", + "OriginalFieldType": "True", + "ConvertedFieldType": "bool", + "Optional": true }, { - "OriginalName": "scale", - "ConvertedName": "Scale", - "Description": "Mask scaling coefficient. For example, 2.0 means double size.", - "OriginalFieldType": "Float", - "ConvertedFieldType": "float", - "Optional": false + "OriginalName": "caption", + "ConvertedName": "Caption", + "Description": "Caption of the block", + "OriginalFieldType": "RichBlockCaption", + "ConvertedFieldType": "RichBlockCaption", + "Optional": true } ] ] } }, { - "Name": "InputSticker", - "Description": "This object describes a sticker to be added to a sticker set.", + "Name": "RichBlockVoiceNote", + "Description": "A block with a voice note, corresponding to the HTML tag \u003Caudio\u003E.", "Kind": { "Case": "Fields", "Fields": [ [ { - "OriginalName": "sticker", - "ConvertedName": "Sticker", - "Description": "The added sticker. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or pass \u201Cattach://\u003Cfile_attach_name\u003E\u201D to upload a new file using multipart/form-data under \u003Cfile_attach_name\u003E name. Animated and video stickers can\u0027t be uploaded via HTTP URL. More information on Sending Files \u00BB", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", - "Optional": false - }, - { - "OriginalName": "format", - "ConvertedName": "Format", - "Description": "Format of the added sticker, must be one of \u201Cstatic\u201D for a .WEBP or .PNG image, \u201Canimated\u201D for a .TGS animation, \u201Cvideo\u201D for a .WEBM video", + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Cvoice_note\u201D", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false }, { - "OriginalName": "emoji_list", - "ConvertedName": "EmojiList", - "Description": "List of 1-20 emoji associated with the sticker", - "OriginalFieldType": "Array of String", - "ConvertedFieldType": "string[]", + "OriginalName": "voice_note", + "ConvertedName": "VoiceNote", + "Description": "The voice note", + "OriginalFieldType": "Voice", + "ConvertedFieldType": "Voice", "Optional": false }, { - "OriginalName": "mask_position", - "ConvertedName": "MaskPosition", - "Description": "Position where the mask should be placed on faces. For \u201Cmask\u201D stickers only.", - "OriginalFieldType": "MaskPosition", - "ConvertedFieldType": "MaskPosition", + "OriginalName": "caption", + "ConvertedName": "Caption", + "Description": "Caption of the block", + "OriginalFieldType": "RichBlockCaption", + "ConvertedFieldType": "RichBlockCaption", "Optional": true + } + ] + ] + } + }, + { + "Name": "RichBlockThinking", + "Description": "A block with a \u201CThinking\u2026\u201D placeholder, corresponding to the custom HTML tag \u003Ctg-thinking\u003E. The block may be used only in sendRichMessageDraft, therefore it can\u0027t be received in messages. See https://t.me/addemoji/AIActions for examples of custom emoji, which are recommended for usage in the block.\nThe following methods and objects allow your bot to work in inline mode.\nPlease see our Introduction to Inline bots for more details.\nTo enable this option, send the /setinline command to @BotFather and provide the placeholder text that the user will see in the input field after typing your bot\u0027s name.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "type", + "ConvertedName": "Type", + "Description": "Type of the block, always \u201Cthinking\u201D", + "OriginalFieldType": "String", + "ConvertedFieldType": "string", + "Optional": false }, { - "OriginalName": "keywords", - "ConvertedName": "Keywords", - "Description": "List of 0-20 search keywords for the sticker with total length of up to 64 characters. For \u201Cregular\u201D and \u201Ccustom_emoji\u201D stickers only.", - "OriginalFieldType": "Array of String", - "ConvertedFieldType": "string[]", - "Optional": true + "OriginalName": "text", + "ConvertedName": "Text", + "Description": "Text of the block. See https://t.me/addemoji/AIActions for examples of custom emoji, which are recommended for usage in the block.", + "OriginalFieldType": "RichText", + "ConvertedFieldType": "RichText", + "Optional": false } ] ] @@ -10453,7 +14191,7 @@ { "OriginalName": "chat_type", "ConvertedName": "ChatType", - "Description": "Type of the chat from which the inline query was sent. Can be either \u201Csender\u201D for a private chat with the inline query sender, \u201Cprivate\u201D, \u201Cgroup\u201D, \u201Csupergroup\u201D, or \u201Cchannel\u201D. The chat type should be always known for requests sent from official clients and most third-party clients, unless the request was sent from a secret chat", + "Description": "Type of the chat from which the inline query was sent. Can be either \u201Csender\u201D for a private chat with the inline query sender, \u201Cprivate\u201D, \u201Cgroup\u201D, \u201Csupergroup\u201D, or \u201Cchannel\u201D. The chat type should be always known for requests sent from official clients and most third-party clients, unless the request was sent from a secret chat.", "OriginalFieldType": "String", "ConvertedFieldType": "ChatType", "Optional": true @@ -10713,7 +14451,7 @@ { "OriginalName": "photo_url", "ConvertedName": "PhotoUrl", - "Description": "A valid URL of the photo. Photo must be in JPEG format. Photo size must not exceed 5MB", + "Description": "A valid URL of the photo. Photo must be in JPEG format. Photo size must not exceed 5MB.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -10876,7 +14614,7 @@ { "OriginalName": "thumbnail_mime_type", "ConvertedName": "ThumbnailMimeType", - "Description": "MIME type of the thumbnail, must be one of \u201Cimage/jpeg\u201D, \u201Cimage/gif\u201D, or \u201Cvideo/mp4\u201D. Defaults to \u201Cimage/jpeg\u201D", + "Description": "MIME type of the thumbnail, must be one of \u201Cimage/jpeg\u201D, \u201Cimage/gif\u201D, or \u201Cvideo/mp4\u201D. Defaults to \u201Cimage/jpeg\u201D.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -11007,7 +14745,7 @@ { "OriginalName": "thumbnail_mime_type", "ConvertedName": "ThumbnailMimeType", - "Description": "MIME type of the thumbnail, must be one of \u201Cimage/jpeg\u201D, \u201Cimage/gif\u201D, or \u201Cvideo/mp4\u201D. Defaults to \u201Cimage/jpeg\u201D", + "Description": "MIME type of the thumbnail, must be one of \u201Cimage/jpeg\u201D, \u201Cimage/gif\u201D, or \u201Cvideo/mp4\u201D. Defaults to \u201Cimage/jpeg\u201D.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": true @@ -11582,7 +15320,7 @@ { "OriginalName": "live_period", "ConvertedName": "LivePeriod", - "Description": "Period in seconds during which the location can be updated, should be between 60 and 86400, or 0x7FFFFFFF for live locations that can be edited indefinitely.", + "Description": "Period in seconds during which the location can be updated, must be between 60 and 86400, or 0x7FFFFFFF for live locations that can be edited indefinitely", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -12602,7 +16340,7 @@ }, { "Name": "InputMessageContent", - "Description": "This object represents the content of a message to be sent as a result of an inline query. Telegram clients currently support the following 5 types:", + "Description": "This object represents the content of a message to be sent as a result of an inline query. Telegram clients currently support the following types:", "Kind": { "Case": "Cases", "Fields": [ @@ -12611,6 +16349,10 @@ "Name": "TextMessageContent", "CaseType": "InputTextMessageContent" }, + { + "Name": "RichMessageContent", + "CaseType": "InputRichMessageContent" + }, { "Name": "LocationMessageContent", "CaseType": "InputLocationMessageContent" @@ -12674,6 +16416,25 @@ ] } }, + { + "Name": "InputRichMessageContent", + "Description": "Represents the content of a rich message to be sent as the result of an inline query.", + "Kind": { + "Case": "Fields", + "Fields": [ + [ + { + "OriginalName": "rich_message", + "ConvertedName": "RichMessage", + "Description": "The message to be sent", + "OriginalFieldType": "InputRichMessage", + "ConvertedFieldType": "InputRichMessage", + "Optional": false + } + ] + ] + } + }, { "Name": "InputLocationMessageContent", "Description": "Represents the content of a location message to be sent as the result of an inline query.", @@ -12708,7 +16469,7 @@ { "OriginalName": "live_period", "ConvertedName": "LivePeriod", - "Description": "Period in seconds during which the location can be updated, should be between 60 and 86400, or 0x7FFFFFFF for live locations that can be edited indefinitely.", + "Description": "Period in seconds during which the location can be updated, must be between 60 and 86400, or 0x7FFFFFFF for live locations that can be edited indefinitely", "OriginalFieldType": "Integer", "ConvertedFieldType": "int64", "Optional": true @@ -13024,7 +16785,7 @@ }, { "Name": "ChosenInlineResult", - "Description": "Represents a result of an inline query that was chosen by the user and sent to their chat partner.\nNote: It is necessary to enable inline feedback via @BotFather in order to receive these objects in updates.", + "Description": "Represents a result of an inline query that was chosen by the user and sent to their chat partner.\nNote: It is necessary to enable inline feedback via @BotFather in order to receive these objects in updates.\nYour bot can accept payments from Telegram users. Please see the introduction to payments for more details on the process and how to set up payments for your bot.", "Kind": { "Case": "Fields", "Fields": [ @@ -13073,52 +16834,6 @@ ] } }, - { - "Name": "SentWebAppMessage", - "Description": "Describes an inline message sent by a Web App on behalf of a user.", - "Kind": { - "Case": "Fields", - "Fields": [ - [ - { - "OriginalName": "inline_message_id", - "ConvertedName": "InlineMessageId", - "Description": "Identifier of the sent inline message. Available only if there is an inline keyboard attached to the message.", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", - "Optional": true - } - ] - ] - } - }, - { - "Name": "PreparedInlineMessage", - "Description": "Describes an inline message to be sent by a user of a Mini App.\nYour bot can accept payments from Telegram users. Please see the introduction to payments for more details on the process and how to set up payments for your bot.", - "Kind": { - "Case": "Fields", - "Fields": [ - [ - { - "OriginalName": "id", - "ConvertedName": "Id", - "Description": "Unique identifier of the prepared message", - "OriginalFieldType": "String", - "ConvertedFieldType": "string", - "Optional": false - }, - { - "OriginalName": "expiration_date", - "ConvertedName": "ExpirationDate", - "Description": "Expiration date of the prepared message, in Unix time. Expired prepared messages can no longer be used", - "OriginalFieldType": "Integer", - "ConvertedFieldType": "int64", - "Optional": false - } - ] - ] - } - }, { "Name": "LabeledPrice", "Description": "This object represents a portion of the price for goods or services.", @@ -13435,7 +17150,7 @@ { "OriginalName": "currency", "ConvertedName": "Currency", - "Description": "Three-letter ISO 4217 currency code, or \u201CXTR\u201D for payments in Telegram Stars. Currently, always \u201CXTR\u201D", + "Description": "Three-letter ISO 4217 currency code, or \u201CXTR\u201D for payments in Telegram Stars. Currently, always \u201CXTR\u201D.", "OriginalFieldType": "String", "ConvertedFieldType": "string", "Optional": false @@ -14094,7 +17809,7 @@ { "OriginalName": "source", "ConvertedName": "Source", - "Description": "Source of an incoming transaction (e.g., a user purchasing goods or services, Fragment refunding a failed withdrawal). Only for incoming transactions", + "Description": "Source of an incoming transaction (e.g., a user purchasing goods or services, Fragment refunding a failed withdrawal). Only for incoming transactions.", "OriginalFieldType": "TransactionPartner", "ConvertedFieldType": "TransactionPartner", "Optional": true @@ -14102,7 +17817,7 @@ { "OriginalName": "receiver", "ConvertedName": "Receiver", - "Description": "Receiver of an outgoing transaction (e.g., a user for a purchase refund, Fragment for a withdrawal). Only for outgoing transactions", + "Description": "Receiver of an outgoing transaction (e.g., a user for a purchase refund, Fragment for a withdrawal). Only for outgoing transactions.", "OriginalFieldType": "TransactionPartner", "ConvertedFieldType": "TransactionPartner", "Optional": true @@ -14794,7 +18509,7 @@ { "OriginalName": "photo", "ConvertedName": "Photo", - "Description": "Photo that will be displayed in the game message in chats.", + "Description": "Photo that will be displayed in the game message in chats", "OriginalFieldType": "Array of PhotoSize", "ConvertedFieldType": "PhotoSize[]", "Optional": false @@ -14818,7 +18533,7 @@ { "OriginalName": "animation", "ConvertedName": "Animation", - "Description": "Animation that will be displayed in the game message in chats. Upload via BotFather", + "Description": "Animation that will be displayed in the game message in chats. Upload via BotFather.", "OriginalFieldType": "Animation", "ConvertedFieldType": "Animation", "Optional": true diff --git a/src/Funogram.Telegram/Directory.Build.props b/src/Funogram.Telegram/Directory.Build.props index a582d56..fd14ca1 100644 --- a/src/Funogram.Telegram/Directory.Build.props +++ b/src/Funogram.Telegram/Directory.Build.props @@ -1,7 +1,7 @@  - 9.2.0.0 + 10.1.0.0 Nikolay Matyushin Funogram.Telegram Funogram.Telegram diff --git a/src/Funogram.Telegram/RequestsTypes.fs b/src/Funogram.Telegram/RequestsTypes.fs index f69500d..05db81f 100644 --- a/src/Funogram.Telegram/RequestsTypes.fs +++ b/src/Funogram.Telegram/RequestsTypes.fs @@ -128,10 +128,11 @@ type ForwardMessage = VideoStartTimestamp: int64 option DisableNotification: bool option ProtectContent: bool option + MessageEffectId: string option SuggestedPostParameters: SuggestedPostParameters option MessageId: int64 } - static member Make(chatId: ChatId, fromChatId: ChatId, messageId: int64, ?messageThreadId: int64, ?directMessagesTopicId: int64, ?videoStartTimestamp: int64, ?disableNotification: bool, ?protectContent: bool, ?suggestedPostParameters: SuggestedPostParameters) = + static member Make(chatId: ChatId, fromChatId: ChatId, messageId: int64, ?messageThreadId: int64, ?directMessagesTopicId: int64, ?videoStartTimestamp: int64, ?disableNotification: bool, ?protectContent: bool, ?messageEffectId: string, ?suggestedPostParameters: SuggestedPostParameters) = { ChatId = chatId MessageThreadId = messageThreadId @@ -140,13 +141,14 @@ type ForwardMessage = VideoStartTimestamp = videoStartTimestamp DisableNotification = disableNotification ProtectContent = protectContent + MessageEffectId = messageEffectId SuggestedPostParameters = suggestedPostParameters MessageId = messageId } - static member Make(chatId: int64, fromChatId: int64, messageId: int64, ?messageThreadId: int64, ?directMessagesTopicId: int64, ?videoStartTimestamp: int64, ?disableNotification: bool, ?protectContent: bool, ?suggestedPostParameters: SuggestedPostParameters) = - ForwardMessage.Make(ChatId.Int chatId, ChatId.Int fromChatId, messageId, ?messageThreadId = messageThreadId, ?directMessagesTopicId = directMessagesTopicId, ?videoStartTimestamp = videoStartTimestamp, ?disableNotification = disableNotification, ?protectContent = protectContent, ?suggestedPostParameters = suggestedPostParameters) - static member Make(chatId: string, fromChatId: string, messageId: int64, ?messageThreadId: int64, ?directMessagesTopicId: int64, ?videoStartTimestamp: int64, ?disableNotification: bool, ?protectContent: bool, ?suggestedPostParameters: SuggestedPostParameters) = - ForwardMessage.Make(ChatId.String chatId, ChatId.String fromChatId, messageId, ?messageThreadId = messageThreadId, ?directMessagesTopicId = directMessagesTopicId, ?videoStartTimestamp = videoStartTimestamp, ?disableNotification = disableNotification, ?protectContent = protectContent, ?suggestedPostParameters = suggestedPostParameters) + static member Make(chatId: int64, fromChatId: int64, messageId: int64, ?messageThreadId: int64, ?directMessagesTopicId: int64, ?videoStartTimestamp: int64, ?disableNotification: bool, ?protectContent: bool, ?messageEffectId: string, ?suggestedPostParameters: SuggestedPostParameters) = + ForwardMessage.Make(ChatId.Int chatId, ChatId.Int fromChatId, messageId, ?messageThreadId = messageThreadId, ?directMessagesTopicId = directMessagesTopicId, ?videoStartTimestamp = videoStartTimestamp, ?disableNotification = disableNotification, ?protectContent = protectContent, ?messageEffectId = messageEffectId, ?suggestedPostParameters = suggestedPostParameters) + static member Make(chatId: string, fromChatId: string, messageId: int64, ?messageThreadId: int64, ?directMessagesTopicId: int64, ?videoStartTimestamp: int64, ?disableNotification: bool, ?protectContent: bool, ?messageEffectId: string, ?suggestedPostParameters: SuggestedPostParameters) = + ForwardMessage.Make(ChatId.String chatId, ChatId.String fromChatId, messageId, ?messageThreadId = messageThreadId, ?directMessagesTopicId = directMessagesTopicId, ?videoStartTimestamp = videoStartTimestamp, ?disableNotification = disableNotification, ?protectContent = protectContent, ?messageEffectId = messageEffectId, ?suggestedPostParameters = suggestedPostParameters) interface IRequestBase with member _.MethodName = "forwardMessage" @@ -192,11 +194,12 @@ type CopyMessage = DisableNotification: bool option ProtectContent: bool option AllowPaidBroadcast: bool option + MessageEffectId: string option SuggestedPostParameters: SuggestedPostParameters option ReplyParameters: ReplyParameters option ReplyMarkup: Markup option } - static member Make(chatId: ChatId, fromChatId: ChatId, messageId: int64, ?messageThreadId: int64, ?directMessagesTopicId: int64, ?videoStartTimestamp: int64, ?caption: string, ?parseMode: ParseMode, ?captionEntities: MessageEntity[], ?showCaptionAboveMedia: bool, ?disableNotification: bool, ?protectContent: bool, ?allowPaidBroadcast: bool, ?suggestedPostParameters: SuggestedPostParameters, ?replyParameters: ReplyParameters, ?replyMarkup: Markup) = + static member Make(chatId: ChatId, fromChatId: ChatId, messageId: int64, ?suggestedPostParameters: SuggestedPostParameters, ?messageEffectId: string, ?allowPaidBroadcast: bool, ?protectContent: bool, ?disableNotification: bool, ?showCaptionAboveMedia: bool, ?captionEntities: MessageEntity[], ?parseMode: ParseMode, ?caption: string, ?videoStartTimestamp: int64, ?directMessagesTopicId: int64, ?messageThreadId: int64, ?replyParameters: ReplyParameters, ?replyMarkup: Markup) = { ChatId = chatId MessageThreadId = messageThreadId @@ -211,14 +214,15 @@ type CopyMessage = DisableNotification = disableNotification ProtectContent = protectContent AllowPaidBroadcast = allowPaidBroadcast + MessageEffectId = messageEffectId SuggestedPostParameters = suggestedPostParameters ReplyParameters = replyParameters ReplyMarkup = replyMarkup } - static member Make(chatId: int64, fromChatId: int64, messageId: int64, ?messageThreadId: int64, ?directMessagesTopicId: int64, ?videoStartTimestamp: int64, ?caption: string, ?parseMode: ParseMode, ?captionEntities: MessageEntity[], ?showCaptionAboveMedia: bool, ?disableNotification: bool, ?protectContent: bool, ?allowPaidBroadcast: bool, ?suggestedPostParameters: SuggestedPostParameters, ?replyParameters: ReplyParameters, ?replyMarkup: Markup) = - CopyMessage.Make(ChatId.Int chatId, ChatId.Int fromChatId, messageId, ?messageThreadId = messageThreadId, ?directMessagesTopicId = directMessagesTopicId, ?videoStartTimestamp = videoStartTimestamp, ?caption = caption, ?parseMode = parseMode, ?captionEntities = captionEntities, ?showCaptionAboveMedia = showCaptionAboveMedia, ?disableNotification = disableNotification, ?protectContent = protectContent, ?allowPaidBroadcast = allowPaidBroadcast, ?suggestedPostParameters = suggestedPostParameters, ?replyParameters = replyParameters, ?replyMarkup = replyMarkup) - static member Make(chatId: string, fromChatId: string, messageId: int64, ?messageThreadId: int64, ?directMessagesTopicId: int64, ?videoStartTimestamp: int64, ?caption: string, ?parseMode: ParseMode, ?captionEntities: MessageEntity[], ?showCaptionAboveMedia: bool, ?disableNotification: bool, ?protectContent: bool, ?allowPaidBroadcast: bool, ?suggestedPostParameters: SuggestedPostParameters, ?replyParameters: ReplyParameters, ?replyMarkup: Markup) = - CopyMessage.Make(ChatId.String chatId, ChatId.String fromChatId, messageId, ?messageThreadId = messageThreadId, ?directMessagesTopicId = directMessagesTopicId, ?videoStartTimestamp = videoStartTimestamp, ?caption = caption, ?parseMode = parseMode, ?captionEntities = captionEntities, ?showCaptionAboveMedia = showCaptionAboveMedia, ?disableNotification = disableNotification, ?protectContent = protectContent, ?allowPaidBroadcast = allowPaidBroadcast, ?suggestedPostParameters = suggestedPostParameters, ?replyParameters = replyParameters, ?replyMarkup = replyMarkup) + static member Make(chatId: int64, fromChatId: int64, messageId: int64, ?suggestedPostParameters: SuggestedPostParameters, ?messageEffectId: string, ?allowPaidBroadcast: bool, ?protectContent: bool, ?disableNotification: bool, ?showCaptionAboveMedia: bool, ?captionEntities: MessageEntity[], ?parseMode: ParseMode, ?caption: string, ?videoStartTimestamp: int64, ?directMessagesTopicId: int64, ?messageThreadId: int64, ?replyParameters: ReplyParameters, ?replyMarkup: Markup) = + CopyMessage.Make(ChatId.Int chatId, ChatId.Int fromChatId, messageId, ?suggestedPostParameters = suggestedPostParameters, ?messageEffectId = messageEffectId, ?allowPaidBroadcast = allowPaidBroadcast, ?protectContent = protectContent, ?disableNotification = disableNotification, ?showCaptionAboveMedia = showCaptionAboveMedia, ?captionEntities = captionEntities, ?parseMode = parseMode, ?caption = caption, ?videoStartTimestamp = videoStartTimestamp, ?directMessagesTopicId = directMessagesTopicId, ?messageThreadId = messageThreadId, ?replyParameters = replyParameters, ?replyMarkup = replyMarkup) + static member Make(chatId: string, fromChatId: string, messageId: int64, ?suggestedPostParameters: SuggestedPostParameters, ?messageEffectId: string, ?allowPaidBroadcast: bool, ?protectContent: bool, ?disableNotification: bool, ?showCaptionAboveMedia: bool, ?captionEntities: MessageEntity[], ?parseMode: ParseMode, ?caption: string, ?videoStartTimestamp: int64, ?directMessagesTopicId: int64, ?messageThreadId: int64, ?replyParameters: ReplyParameters, ?replyMarkup: Markup) = + CopyMessage.Make(ChatId.String chatId, ChatId.String fromChatId, messageId, ?suggestedPostParameters = suggestedPostParameters, ?messageEffectId = messageEffectId, ?allowPaidBroadcast = allowPaidBroadcast, ?protectContent = protectContent, ?disableNotification = disableNotification, ?showCaptionAboveMedia = showCaptionAboveMedia, ?captionEntities = captionEntities, ?parseMode = parseMode, ?caption = caption, ?videoStartTimestamp = videoStartTimestamp, ?directMessagesTopicId = directMessagesTopicId, ?messageThreadId = messageThreadId, ?replyParameters = replyParameters, ?replyMarkup = replyMarkup) interface IRequestBase with member _.MethodName = "copyMessage" @@ -298,6 +302,55 @@ type SendPhoto = interface IRequestBase with member _.MethodName = "sendPhoto" +type SendLivePhoto = + { + BusinessConnectionId: string option + ChatId: ChatId + MessageThreadId: int64 option + DirectMessagesTopicId: int64 option + LivePhoto: InputFile + Photo: InputFile + Caption: string option + ParseMode: ParseMode option + CaptionEntities: MessageEntity[] option + ShowCaptionAboveMedia: bool option + HasSpoiler: bool option + DisableNotification: bool option + ProtectContent: bool option + AllowPaidBroadcast: bool option + MessageEffectId: string option + SuggestedPostParameters: SuggestedPostParameters option + ReplyParameters: ReplyParameters option + ReplyMarkup: Markup option + } + static member Make(chatId: ChatId, livePhoto: InputFile, photo: InputFile, ?businessConnectionId: string, ?suggestedPostParameters: SuggestedPostParameters, ?messageEffectId: string, ?allowPaidBroadcast: bool, ?protectContent: bool, ?disableNotification: bool, ?hasSpoiler: bool, ?captionEntities: MessageEntity[], ?replyParameters: ReplyParameters, ?parseMode: ParseMode, ?caption: string, ?directMessagesTopicId: int64, ?messageThreadId: int64, ?showCaptionAboveMedia: bool, ?replyMarkup: Markup) = + { + BusinessConnectionId = businessConnectionId + ChatId = chatId + MessageThreadId = messageThreadId + DirectMessagesTopicId = directMessagesTopicId + LivePhoto = livePhoto + Photo = photo + Caption = caption + ParseMode = parseMode + CaptionEntities = captionEntities + ShowCaptionAboveMedia = showCaptionAboveMedia + HasSpoiler = hasSpoiler + DisableNotification = disableNotification + ProtectContent = protectContent + AllowPaidBroadcast = allowPaidBroadcast + MessageEffectId = messageEffectId + SuggestedPostParameters = suggestedPostParameters + ReplyParameters = replyParameters + ReplyMarkup = replyMarkup + } + static member Make(chatId: int64, livePhoto: InputFile, photo: InputFile, ?businessConnectionId: string, ?suggestedPostParameters: SuggestedPostParameters, ?messageEffectId: string, ?allowPaidBroadcast: bool, ?protectContent: bool, ?disableNotification: bool, ?hasSpoiler: bool, ?captionEntities: MessageEntity[], ?replyParameters: ReplyParameters, ?parseMode: ParseMode, ?caption: string, ?directMessagesTopicId: int64, ?messageThreadId: int64, ?showCaptionAboveMedia: bool, ?replyMarkup: Markup) = + SendLivePhoto.Make(ChatId.Int chatId, livePhoto, photo, ?businessConnectionId = businessConnectionId, ?suggestedPostParameters = suggestedPostParameters, ?messageEffectId = messageEffectId, ?allowPaidBroadcast = allowPaidBroadcast, ?protectContent = protectContent, ?disableNotification = disableNotification, ?hasSpoiler = hasSpoiler, ?captionEntities = captionEntities, ?replyParameters = replyParameters, ?parseMode = parseMode, ?caption = caption, ?directMessagesTopicId = directMessagesTopicId, ?messageThreadId = messageThreadId, ?showCaptionAboveMedia = showCaptionAboveMedia, ?replyMarkup = replyMarkup) + static member Make(chatId: string, livePhoto: InputFile, photo: InputFile, ?businessConnectionId: string, ?suggestedPostParameters: SuggestedPostParameters, ?messageEffectId: string, ?allowPaidBroadcast: bool, ?protectContent: bool, ?disableNotification: bool, ?hasSpoiler: bool, ?captionEntities: MessageEntity[], ?replyParameters: ReplyParameters, ?parseMode: ParseMode, ?caption: string, ?directMessagesTopicId: int64, ?messageThreadId: int64, ?showCaptionAboveMedia: bool, ?replyMarkup: Markup) = + SendLivePhoto.Make(ChatId.String chatId, livePhoto, photo, ?businessConnectionId = businessConnectionId, ?suggestedPostParameters = suggestedPostParameters, ?messageEffectId = messageEffectId, ?allowPaidBroadcast = allowPaidBroadcast, ?protectContent = protectContent, ?disableNotification = disableNotification, ?hasSpoiler = hasSpoiler, ?captionEntities = captionEntities, ?replyParameters = replyParameters, ?parseMode = parseMode, ?caption = caption, ?directMessagesTopicId = directMessagesTopicId, ?messageThreadId = messageThreadId, ?showCaptionAboveMedia = showCaptionAboveMedia, ?replyMarkup = replyMarkup) + interface IRequestBase with + member _.MethodName = "sendLivePhoto" + type SendAudio = { BusinessConnectionId: string option @@ -833,13 +886,24 @@ type SendPoll = IsAnonymous: bool option Type: string option AllowsMultipleAnswers: bool option - CorrectOptionId: int64 option + AllowsRevoting: bool option + ShuffleOptions: bool option + AllowAddingOptions: bool option + HideResultsUntilCloses: bool option + MembersOnly: bool option + CountryCodes: string[] option + CorrectOptionIds: int64[] option Explanation: string option ExplanationParseMode: string option ExplanationEntities: MessageEntity[] option + ExplanationMedia: InputPollMedia option OpenPeriod: int64 option CloseDate: int64 option IsClosed: bool option + Description: string option + DescriptionParseMode: string option + DescriptionEntities: MessageEntity[] option + Media: InputPollMedia option DisableNotification: bool option ProtectContent: bool option AllowPaidBroadcast: bool option @@ -847,7 +911,7 @@ type SendPoll = ReplyParameters: ReplyParameters option ReplyMarkup: Markup option } - static member Make(chatId: ChatId, question: string, options: InputPollOption[], ?businessConnectionId: string, ?messageEffectId: string, ?allowPaidBroadcast: bool, ?protectContent: bool, ?disableNotification: bool, ?isClosed: bool, ?closeDate: int64, ?openPeriod: int64, ?explanationEntities: MessageEntity[], ?explanation: string, ?replyParameters: ReplyParameters, ?correctOptionId: int64, ?allowsMultipleAnswers: bool, ?``type``: string, ?isAnonymous: bool, ?questionEntities: MessageEntity[], ?questionParseMode: string, ?messageThreadId: int64, ?explanationParseMode: string, ?replyMarkup: Markup) = + static member Make(chatId: ChatId, question: string, options: InputPollOption[], ?businessConnectionId: string, ?explanationMedia: InputPollMedia, ?openPeriod: int64, ?closeDate: int64, ?isClosed: bool, ?description: string, ?descriptionParseMode: string, ?media: InputPollMedia, ?explanationEntities: MessageEntity[], ?disableNotification: bool, ?protectContent: bool, ?allowPaidBroadcast: bool, ?messageEffectId: string, ?descriptionEntities: MessageEntity[], ?explanationParseMode: string, ?correctOptionIds: int64[], ?replyParameters: ReplyParameters, ?countryCodes: string[], ?membersOnly: bool, ?hideResultsUntilCloses: bool, ?allowAddingOptions: bool, ?shuffleOptions: bool, ?allowsRevoting: bool, ?allowsMultipleAnswers: bool, ?``type``: string, ?isAnonymous: bool, ?questionEntities: MessageEntity[], ?questionParseMode: string, ?messageThreadId: int64, ?explanation: string, ?replyMarkup: Markup) = { BusinessConnectionId = businessConnectionId ChatId = chatId @@ -859,13 +923,24 @@ type SendPoll = IsAnonymous = isAnonymous Type = ``type`` AllowsMultipleAnswers = allowsMultipleAnswers - CorrectOptionId = correctOptionId + AllowsRevoting = allowsRevoting + ShuffleOptions = shuffleOptions + AllowAddingOptions = allowAddingOptions + HideResultsUntilCloses = hideResultsUntilCloses + MembersOnly = membersOnly + CountryCodes = countryCodes + CorrectOptionIds = correctOptionIds Explanation = explanation ExplanationParseMode = explanationParseMode ExplanationEntities = explanationEntities + ExplanationMedia = explanationMedia OpenPeriod = openPeriod CloseDate = closeDate IsClosed = isClosed + Description = description + DescriptionParseMode = descriptionParseMode + DescriptionEntities = descriptionEntities + Media = media DisableNotification = disableNotification ProtectContent = protectContent AllowPaidBroadcast = allowPaidBroadcast @@ -873,17 +948,17 @@ type SendPoll = ReplyParameters = replyParameters ReplyMarkup = replyMarkup } - static member Make(chatId: int64, question: string, options: InputPollOption[], ?businessConnectionId: string, ?messageEffectId: string, ?allowPaidBroadcast: bool, ?protectContent: bool, ?disableNotification: bool, ?isClosed: bool, ?closeDate: int64, ?openPeriod: int64, ?explanationEntities: MessageEntity[], ?explanation: string, ?replyParameters: ReplyParameters, ?correctOptionId: int64, ?allowsMultipleAnswers: bool, ?``type``: string, ?isAnonymous: bool, ?questionEntities: MessageEntity[], ?questionParseMode: string, ?messageThreadId: int64, ?explanationParseMode: string, ?replyMarkup: Markup) = - SendPoll.Make(ChatId.Int chatId, question, options, ?businessConnectionId = businessConnectionId, ?messageEffectId = messageEffectId, ?allowPaidBroadcast = allowPaidBroadcast, ?protectContent = protectContent, ?disableNotification = disableNotification, ?isClosed = isClosed, ?closeDate = closeDate, ?openPeriod = openPeriod, ?explanationEntities = explanationEntities, ?explanation = explanation, ?replyParameters = replyParameters, ?correctOptionId = correctOptionId, ?allowsMultipleAnswers = allowsMultipleAnswers, ?``type`` = ``type``, ?isAnonymous = isAnonymous, ?questionEntities = questionEntities, ?questionParseMode = questionParseMode, ?messageThreadId = messageThreadId, ?explanationParseMode = explanationParseMode, ?replyMarkup = replyMarkup) - static member Make(chatId: string, question: string, options: InputPollOption[], ?businessConnectionId: string, ?messageEffectId: string, ?allowPaidBroadcast: bool, ?protectContent: bool, ?disableNotification: bool, ?isClosed: bool, ?closeDate: int64, ?openPeriod: int64, ?explanationEntities: MessageEntity[], ?explanation: string, ?replyParameters: ReplyParameters, ?correctOptionId: int64, ?allowsMultipleAnswers: bool, ?``type``: string, ?isAnonymous: bool, ?questionEntities: MessageEntity[], ?questionParseMode: string, ?messageThreadId: int64, ?explanationParseMode: string, ?replyMarkup: Markup) = - SendPoll.Make(ChatId.String chatId, question, options, ?businessConnectionId = businessConnectionId, ?messageEffectId = messageEffectId, ?allowPaidBroadcast = allowPaidBroadcast, ?protectContent = protectContent, ?disableNotification = disableNotification, ?isClosed = isClosed, ?closeDate = closeDate, ?openPeriod = openPeriod, ?explanationEntities = explanationEntities, ?explanation = explanation, ?replyParameters = replyParameters, ?correctOptionId = correctOptionId, ?allowsMultipleAnswers = allowsMultipleAnswers, ?``type`` = ``type``, ?isAnonymous = isAnonymous, ?questionEntities = questionEntities, ?questionParseMode = questionParseMode, ?messageThreadId = messageThreadId, ?explanationParseMode = explanationParseMode, ?replyMarkup = replyMarkup) + static member Make(chatId: int64, question: string, options: InputPollOption[], ?businessConnectionId: string, ?explanationMedia: InputPollMedia, ?openPeriod: int64, ?closeDate: int64, ?isClosed: bool, ?description: string, ?descriptionParseMode: string, ?media: InputPollMedia, ?explanationEntities: MessageEntity[], ?disableNotification: bool, ?protectContent: bool, ?allowPaidBroadcast: bool, ?messageEffectId: string, ?descriptionEntities: MessageEntity[], ?explanationParseMode: string, ?correctOptionIds: int64[], ?replyParameters: ReplyParameters, ?countryCodes: string[], ?membersOnly: bool, ?hideResultsUntilCloses: bool, ?allowAddingOptions: bool, ?shuffleOptions: bool, ?allowsRevoting: bool, ?allowsMultipleAnswers: bool, ?``type``: string, ?isAnonymous: bool, ?questionEntities: MessageEntity[], ?questionParseMode: string, ?messageThreadId: int64, ?explanation: string, ?replyMarkup: Markup) = + SendPoll.Make(ChatId.Int chatId, question, options, ?businessConnectionId = businessConnectionId, ?explanationMedia = explanationMedia, ?openPeriod = openPeriod, ?closeDate = closeDate, ?isClosed = isClosed, ?description = description, ?descriptionParseMode = descriptionParseMode, ?media = media, ?explanationEntities = explanationEntities, ?disableNotification = disableNotification, ?protectContent = protectContent, ?allowPaidBroadcast = allowPaidBroadcast, ?messageEffectId = messageEffectId, ?descriptionEntities = descriptionEntities, ?explanationParseMode = explanationParseMode, ?correctOptionIds = correctOptionIds, ?replyParameters = replyParameters, ?countryCodes = countryCodes, ?membersOnly = membersOnly, ?hideResultsUntilCloses = hideResultsUntilCloses, ?allowAddingOptions = allowAddingOptions, ?shuffleOptions = shuffleOptions, ?allowsRevoting = allowsRevoting, ?allowsMultipleAnswers = allowsMultipleAnswers, ?``type`` = ``type``, ?isAnonymous = isAnonymous, ?questionEntities = questionEntities, ?questionParseMode = questionParseMode, ?messageThreadId = messageThreadId, ?explanation = explanation, ?replyMarkup = replyMarkup) + static member Make(chatId: string, question: string, options: InputPollOption[], ?businessConnectionId: string, ?explanationMedia: InputPollMedia, ?openPeriod: int64, ?closeDate: int64, ?isClosed: bool, ?description: string, ?descriptionParseMode: string, ?media: InputPollMedia, ?explanationEntities: MessageEntity[], ?disableNotification: bool, ?protectContent: bool, ?allowPaidBroadcast: bool, ?messageEffectId: string, ?descriptionEntities: MessageEntity[], ?explanationParseMode: string, ?correctOptionIds: int64[], ?replyParameters: ReplyParameters, ?countryCodes: string[], ?membersOnly: bool, ?hideResultsUntilCloses: bool, ?allowAddingOptions: bool, ?shuffleOptions: bool, ?allowsRevoting: bool, ?allowsMultipleAnswers: bool, ?``type``: string, ?isAnonymous: bool, ?questionEntities: MessageEntity[], ?questionParseMode: string, ?messageThreadId: int64, ?explanation: string, ?replyMarkup: Markup) = + SendPoll.Make(ChatId.String chatId, question, options, ?businessConnectionId = businessConnectionId, ?explanationMedia = explanationMedia, ?openPeriod = openPeriod, ?closeDate = closeDate, ?isClosed = isClosed, ?description = description, ?descriptionParseMode = descriptionParseMode, ?media = media, ?explanationEntities = explanationEntities, ?disableNotification = disableNotification, ?protectContent = protectContent, ?allowPaidBroadcast = allowPaidBroadcast, ?messageEffectId = messageEffectId, ?descriptionEntities = descriptionEntities, ?explanationParseMode = explanationParseMode, ?correctOptionIds = correctOptionIds, ?replyParameters = replyParameters, ?countryCodes = countryCodes, ?membersOnly = membersOnly, ?hideResultsUntilCloses = hideResultsUntilCloses, ?allowAddingOptions = allowAddingOptions, ?shuffleOptions = shuffleOptions, ?allowsRevoting = allowsRevoting, ?allowsMultipleAnswers = allowsMultipleAnswers, ?``type`` = ``type``, ?isAnonymous = isAnonymous, ?questionEntities = questionEntities, ?questionParseMode = questionParseMode, ?messageThreadId = messageThreadId, ?explanation = explanation, ?replyMarkup = replyMarkup) interface IRequestBase with member _.MethodName = "sendPoll" type SendChecklist = { BusinessConnectionId: string - ChatId: int64 + ChatId: ChatId Checklist: InputChecklist DisableNotification: bool option ProtectContent: bool option @@ -891,7 +966,7 @@ type SendChecklist = ReplyParameters: ReplyParameters option ReplyMarkup: InlineKeyboardMarkup option } - static member Make(businessConnectionId: string, chatId: int64, checklist: InputChecklist, ?disableNotification: bool, ?protectContent: bool, ?messageEffectId: string, ?replyParameters: ReplyParameters, ?replyMarkup: InlineKeyboardMarkup) = + static member Make(businessConnectionId: string, chatId: ChatId, checklist: InputChecklist, ?disableNotification: bool, ?protectContent: bool, ?messageEffectId: string, ?replyParameters: ReplyParameters, ?replyMarkup: InlineKeyboardMarkup) = { BusinessConnectionId = businessConnectionId ChatId = chatId @@ -942,6 +1017,27 @@ type SendDice = interface IRequestBase with member _.MethodName = "sendDice" +type SendMessageDraft = + { + ChatId: int64 + MessageThreadId: int64 option + DraftId: int64 + Text: string option + ParseMode: ParseMode option + Entities: MessageEntity[] option + } + static member Make(chatId: int64, draftId: int64, ?messageThreadId: int64, ?text: string, ?parseMode: ParseMode, ?entities: MessageEntity[]) = + { + ChatId = chatId + MessageThreadId = messageThreadId + DraftId = draftId + Text = text + ParseMode = parseMode + Entities = entities + } + interface IRequestBase with + member _.MethodName = "sendMessageDraft" + type SendChatAction = { BusinessConnectionId: string option @@ -999,6 +1095,21 @@ type GetUserProfilePhotos = interface IRequestBase with member _.MethodName = "getUserProfilePhotos" +type GetUserProfileAudios = + { + UserId: int64 + Offset: int64 option + Limit: int64 option + } + static member Make(userId: int64, ?offset: int64, ?limit: int64) = + { + UserId = userId + Offset = offset + Limit = limit + } + interface IRequestBase with + member _.MethodName = "getUserProfileAudios" + type SetUserEmojiStatus = { UserId: int64 @@ -1108,8 +1219,9 @@ type PromoteChatMember = CanPinMessages: bool option CanManageTopics: bool option CanManageDirectMessages: bool option + CanManageTags: bool option } - static member Make(chatId: ChatId, userId: int64, ?canPinMessages: bool, ?canEditMessages: bool, ?canPostMessages: bool, ?canDeleteStories: bool, ?canEditStories: bool, ?canPostStories: bool, ?canInviteUsers: bool, ?canChangeInfo: bool, ?canPromoteMembers: bool, ?canRestrictMembers: bool, ?canManageVideoChats: bool, ?canDeleteMessages: bool, ?canManageChat: bool, ?isAnonymous: bool, ?canManageTopics: bool, ?canManageDirectMessages: bool) = + static member Make(chatId: ChatId, userId: int64, ?canManageTopics: bool, ?canPinMessages: bool, ?canEditMessages: bool, ?canPostMessages: bool, ?canDeleteStories: bool, ?canEditStories: bool, ?canPostStories: bool, ?canInviteUsers: bool, ?canChangeInfo: bool, ?canPromoteMembers: bool, ?canRestrictMembers: bool, ?canManageVideoChats: bool, ?canDeleteMessages: bool, ?canManageChat: bool, ?isAnonymous: bool, ?canManageDirectMessages: bool, ?canManageTags: bool) = { ChatId = chatId UserId = userId @@ -1129,11 +1241,12 @@ type PromoteChatMember = CanPinMessages = canPinMessages CanManageTopics = canManageTopics CanManageDirectMessages = canManageDirectMessages + CanManageTags = canManageTags } - static member Make(chatId: int64, userId: int64, ?canPinMessages: bool, ?canEditMessages: bool, ?canPostMessages: bool, ?canDeleteStories: bool, ?canEditStories: bool, ?canPostStories: bool, ?canInviteUsers: bool, ?canChangeInfo: bool, ?canPromoteMembers: bool, ?canRestrictMembers: bool, ?canManageVideoChats: bool, ?canDeleteMessages: bool, ?canManageChat: bool, ?isAnonymous: bool, ?canManageTopics: bool, ?canManageDirectMessages: bool) = - PromoteChatMember.Make(ChatId.Int chatId, userId, ?canPinMessages = canPinMessages, ?canEditMessages = canEditMessages, ?canPostMessages = canPostMessages, ?canDeleteStories = canDeleteStories, ?canEditStories = canEditStories, ?canPostStories = canPostStories, ?canInviteUsers = canInviteUsers, ?canChangeInfo = canChangeInfo, ?canPromoteMembers = canPromoteMembers, ?canRestrictMembers = canRestrictMembers, ?canManageVideoChats = canManageVideoChats, ?canDeleteMessages = canDeleteMessages, ?canManageChat = canManageChat, ?isAnonymous = isAnonymous, ?canManageTopics = canManageTopics, ?canManageDirectMessages = canManageDirectMessages) - static member Make(chatId: string, userId: int64, ?canPinMessages: bool, ?canEditMessages: bool, ?canPostMessages: bool, ?canDeleteStories: bool, ?canEditStories: bool, ?canPostStories: bool, ?canInviteUsers: bool, ?canChangeInfo: bool, ?canPromoteMembers: bool, ?canRestrictMembers: bool, ?canManageVideoChats: bool, ?canDeleteMessages: bool, ?canManageChat: bool, ?isAnonymous: bool, ?canManageTopics: bool, ?canManageDirectMessages: bool) = - PromoteChatMember.Make(ChatId.String chatId, userId, ?canPinMessages = canPinMessages, ?canEditMessages = canEditMessages, ?canPostMessages = canPostMessages, ?canDeleteStories = canDeleteStories, ?canEditStories = canEditStories, ?canPostStories = canPostStories, ?canInviteUsers = canInviteUsers, ?canChangeInfo = canChangeInfo, ?canPromoteMembers = canPromoteMembers, ?canRestrictMembers = canRestrictMembers, ?canManageVideoChats = canManageVideoChats, ?canDeleteMessages = canDeleteMessages, ?canManageChat = canManageChat, ?isAnonymous = isAnonymous, ?canManageTopics = canManageTopics, ?canManageDirectMessages = canManageDirectMessages) + static member Make(chatId: int64, userId: int64, ?canManageTopics: bool, ?canPinMessages: bool, ?canEditMessages: bool, ?canPostMessages: bool, ?canDeleteStories: bool, ?canEditStories: bool, ?canPostStories: bool, ?canInviteUsers: bool, ?canChangeInfo: bool, ?canPromoteMembers: bool, ?canRestrictMembers: bool, ?canManageVideoChats: bool, ?canDeleteMessages: bool, ?canManageChat: bool, ?isAnonymous: bool, ?canManageDirectMessages: bool, ?canManageTags: bool) = + PromoteChatMember.Make(ChatId.Int chatId, userId, ?canManageTopics = canManageTopics, ?canPinMessages = canPinMessages, ?canEditMessages = canEditMessages, ?canPostMessages = canPostMessages, ?canDeleteStories = canDeleteStories, ?canEditStories = canEditStories, ?canPostStories = canPostStories, ?canInviteUsers = canInviteUsers, ?canChangeInfo = canChangeInfo, ?canPromoteMembers = canPromoteMembers, ?canRestrictMembers = canRestrictMembers, ?canManageVideoChats = canManageVideoChats, ?canDeleteMessages = canDeleteMessages, ?canManageChat = canManageChat, ?isAnonymous = isAnonymous, ?canManageDirectMessages = canManageDirectMessages, ?canManageTags = canManageTags) + static member Make(chatId: string, userId: int64, ?canManageTopics: bool, ?canPinMessages: bool, ?canEditMessages: bool, ?canPostMessages: bool, ?canDeleteStories: bool, ?canEditStories: bool, ?canPostStories: bool, ?canInviteUsers: bool, ?canChangeInfo: bool, ?canPromoteMembers: bool, ?canRestrictMembers: bool, ?canManageVideoChats: bool, ?canDeleteMessages: bool, ?canManageChat: bool, ?isAnonymous: bool, ?canManageDirectMessages: bool, ?canManageTags: bool) = + PromoteChatMember.Make(ChatId.String chatId, userId, ?canManageTopics = canManageTopics, ?canPinMessages = canPinMessages, ?canEditMessages = canEditMessages, ?canPostMessages = canPostMessages, ?canDeleteStories = canDeleteStories, ?canEditStories = canEditStories, ?canPostStories = canPostStories, ?canInviteUsers = canInviteUsers, ?canChangeInfo = canChangeInfo, ?canPromoteMembers = canPromoteMembers, ?canRestrictMembers = canRestrictMembers, ?canManageVideoChats = canManageVideoChats, ?canDeleteMessages = canDeleteMessages, ?canManageChat = canManageChat, ?isAnonymous = isAnonymous, ?canManageDirectMessages = canManageDirectMessages, ?canManageTags = canManageTags) interface IRequestBase with member _.MethodName = "promoteChatMember" @@ -1156,6 +1269,25 @@ type SetChatAdministratorCustomTitle = interface IRequestBase with member _.MethodName = "setChatAdministratorCustomTitle" +type SetChatMemberTag = + { + ChatId: ChatId + UserId: int64 + Tag: string option + } + static member Make(chatId: ChatId, userId: int64, ?tag: string) = + { + ChatId = chatId + UserId = userId + Tag = tag + } + static member Make(chatId: int64, userId: int64, ?tag: string) = + SetChatMemberTag.Make(ChatId.Int chatId, userId, ?tag = tag) + static member Make(chatId: string, userId: int64, ?tag: string) = + SetChatMemberTag.Make(ChatId.String chatId, userId, ?tag = tag) + interface IRequestBase with + member _.MethodName = "setChatMemberTag" + type BanChatSenderChat = { ChatId: ChatId @@ -1363,6 +1495,32 @@ type DeclineChatJoinRequest = interface IRequestBase with member _.MethodName = "declineChatJoinRequest" +type AnswerChatJoinRequestQuery = + { + ChatJoinRequestQueryId: string + Result: string + } + static member Make(chatJoinRequestQueryId: string, result: string) = + { + ChatJoinRequestQueryId = chatJoinRequestQueryId + Result = result + } + interface IRequestBase with + member _.MethodName = "answerChatJoinRequestQuery" + +type SendChatJoinRequestWebApp = + { + ChatJoinRequestQueryId: string + WebAppUrl: string + } + static member Make(chatJoinRequestQueryId: string, webAppUrl: string) = + { + ChatJoinRequestQueryId = chatJoinRequestQueryId + WebAppUrl = webAppUrl + } + interface IRequestBase with + member _.MethodName = "sendChatJoinRequestWebApp" + type SetChatPhoto = { ChatId: ChatId @@ -1517,15 +1675,17 @@ type GetChat = type GetChatAdministrators = { ChatId: ChatId + ReturnBots: bool option } - static member Make(chatId: ChatId) = + static member Make(chatId: ChatId, ?returnBots: bool) = { ChatId = chatId + ReturnBots = returnBots } - static member Make(chatId: int64) = - GetChatAdministrators.Make(ChatId.Int chatId) - static member Make(chatId: string) = - GetChatAdministrators.Make(ChatId.String chatId) + static member Make(chatId: int64, ?returnBots: bool) = + GetChatAdministrators.Make(ChatId.Int chatId, ?returnBots = returnBots) + static member Make(chatId: string, ?returnBots: bool) = + GetChatAdministrators.Make(ChatId.String chatId, ?returnBots = returnBots) interface IRequestBase with member _.MethodName = "getChatAdministrators" @@ -1561,6 +1721,19 @@ type GetChatMember = interface IRequestBase with member _.MethodName = "getChatMember" +type GetUserPersonalChatMessages = + { + UserId: int64 + Limit: int64 + } + static member Make(userId: int64, limit: int64) = + { + UserId = userId + Limit = limit + } + interface IRequestBase with + member _.MethodName = "getUserPersonalChatMessages" + type SetChatStickerSet = { ChatId: ChatId @@ -1819,6 +1992,19 @@ type AnswerCallbackQuery = interface IRequestBase with member _.MethodName = "answerCallbackQuery" +type AnswerGuestQuery = + { + GuestQueryId: string + Result: InlineQueryResult + } + static member Make(guestQueryId: string, result: InlineQueryResult) = + { + GuestQueryId = guestQueryId + Result = result + } + interface IRequestBase with + member _.MethodName = "answerGuestQuery" + type GetUserChatBoosts = { ChatId: ChatId @@ -1847,6 +2033,54 @@ type GetBusinessConnection = interface IRequestBase with member _.MethodName = "getBusinessConnection" +type GetManagedBotToken = + { + UserId: int64 + } + static member Make(userId: int64) = + { + UserId = userId + } + interface IRequestBase with + member _.MethodName = "getManagedBotToken" + +type ReplaceManagedBotToken = + { + UserId: int64 + } + static member Make(userId: int64) = + { + UserId = userId + } + interface IRequestBase with + member _.MethodName = "replaceManagedBotToken" + +type GetManagedBotAccessSettings = + { + UserId: int64 + } + static member Make(userId: int64) = + { + UserId = userId + } + interface IRequestBase with + member _.MethodName = "getManagedBotAccessSettings" + +type SetManagedBotAccessSettings = + { + UserId: int64 + IsAccessRestricted: bool + AddedUserIds: int64[] option + } + static member Make(userId: int64, isAccessRestricted: bool, ?addedUserIds: int64[]) = + { + UserId = userId + IsAccessRestricted = isAccessRestricted + AddedUserIds = addedUserIds + } + interface IRequestBase with + member _.MethodName = "setManagedBotAccessSettings" + type SetMyCommands = { Commands: BotCommand[] @@ -1960,6 +2194,22 @@ type GetMyShortDescription = interface IRequestBase with member _.MethodName = "getMyShortDescription" +type SetMyProfilePhoto = + { + Photo: InputProfilePhoto + } + static member Make(photo: InputProfilePhoto) = + { + Photo = photo + } + interface IRequestBase with + member _.MethodName = "setMyProfilePhoto" + +type RemoveMyProfilePhoto() = + static member Make() = RemoveMyProfilePhoto() + interface IRequestBase with + member _.MethodName = "removeMyProfilePhoto" + type SetChatMenuButton = { ChatId: int64 option @@ -2255,20 +2505,24 @@ type GetBusinessAccountGifts = ExcludeUnsaved: bool option ExcludeSaved: bool option ExcludeUnlimited: bool option - ExcludeLimited: bool option + ExcludeLimitedUpgradable: bool option + ExcludeLimitedNonUpgradable: bool option ExcludeUnique: bool option + ExcludeFromBlockchain: bool option SortByPrice: bool option Offset: string option Limit: int64 option } - static member Make(businessConnectionId: string, ?excludeUnsaved: bool, ?excludeSaved: bool, ?excludeUnlimited: bool, ?excludeLimited: bool, ?excludeUnique: bool, ?sortByPrice: bool, ?offset: string, ?limit: int64) = + static member Make(businessConnectionId: string, ?excludeUnsaved: bool, ?excludeSaved: bool, ?excludeUnlimited: bool, ?excludeLimitedUpgradable: bool, ?excludeLimitedNonUpgradable: bool, ?excludeUnique: bool, ?excludeFromBlockchain: bool, ?sortByPrice: bool, ?offset: string, ?limit: int64) = { BusinessConnectionId = businessConnectionId ExcludeUnsaved = excludeUnsaved ExcludeSaved = excludeSaved ExcludeUnlimited = excludeUnlimited - ExcludeLimited = excludeLimited + ExcludeLimitedUpgradable = excludeLimitedUpgradable + ExcludeLimitedNonUpgradable = excludeLimitedNonUpgradable ExcludeUnique = excludeUnique + ExcludeFromBlockchain = excludeFromBlockchain SortByPrice = sortByPrice Offset = offset Limit = limit @@ -2276,6 +2530,68 @@ type GetBusinessAccountGifts = interface IRequestBase with member _.MethodName = "getBusinessAccountGifts" +type GetUserGifts = + { + UserId: int64 + ExcludeUnlimited: bool option + ExcludeLimitedUpgradable: bool option + ExcludeLimitedNonUpgradable: bool option + ExcludeFromBlockchain: bool option + ExcludeUnique: bool option + SortByPrice: bool option + Offset: string option + Limit: int64 option + } + static member Make(userId: int64, ?excludeUnlimited: bool, ?excludeLimitedUpgradable: bool, ?excludeLimitedNonUpgradable: bool, ?excludeFromBlockchain: bool, ?excludeUnique: bool, ?sortByPrice: bool, ?offset: string, ?limit: int64) = + { + UserId = userId + ExcludeUnlimited = excludeUnlimited + ExcludeLimitedUpgradable = excludeLimitedUpgradable + ExcludeLimitedNonUpgradable = excludeLimitedNonUpgradable + ExcludeFromBlockchain = excludeFromBlockchain + ExcludeUnique = excludeUnique + SortByPrice = sortByPrice + Offset = offset + Limit = limit + } + interface IRequestBase with + member _.MethodName = "getUserGifts" + +type GetChatGifts = + { + ChatId: ChatId + ExcludeUnsaved: bool option + ExcludeSaved: bool option + ExcludeUnlimited: bool option + ExcludeLimitedUpgradable: bool option + ExcludeLimitedNonUpgradable: bool option + ExcludeFromBlockchain: bool option + ExcludeUnique: bool option + SortByPrice: bool option + Offset: string option + Limit: int64 option + } + static member Make(chatId: ChatId, ?excludeUnsaved: bool, ?excludeSaved: bool, ?excludeUnlimited: bool, ?excludeLimitedUpgradable: bool, ?excludeLimitedNonUpgradable: bool, ?excludeFromBlockchain: bool, ?excludeUnique: bool, ?sortByPrice: bool, ?offset: string, ?limit: int64) = + { + ChatId = chatId + ExcludeUnsaved = excludeUnsaved + ExcludeSaved = excludeSaved + ExcludeUnlimited = excludeUnlimited + ExcludeLimitedUpgradable = excludeLimitedUpgradable + ExcludeLimitedNonUpgradable = excludeLimitedNonUpgradable + ExcludeFromBlockchain = excludeFromBlockchain + ExcludeUnique = excludeUnique + SortByPrice = sortByPrice + Offset = offset + Limit = limit + } + static member Make(chatId: int64, ?excludeUnsaved: bool, ?excludeSaved: bool, ?excludeUnlimited: bool, ?excludeLimitedUpgradable: bool, ?excludeLimitedNonUpgradable: bool, ?excludeFromBlockchain: bool, ?excludeUnique: bool, ?sortByPrice: bool, ?offset: string, ?limit: int64) = + GetChatGifts.Make(ChatId.Int chatId, ?excludeUnsaved = excludeUnsaved, ?excludeSaved = excludeSaved, ?excludeUnlimited = excludeUnlimited, ?excludeLimitedUpgradable = excludeLimitedUpgradable, ?excludeLimitedNonUpgradable = excludeLimitedNonUpgradable, ?excludeFromBlockchain = excludeFromBlockchain, ?excludeUnique = excludeUnique, ?sortByPrice = sortByPrice, ?offset = offset, ?limit = limit) + static member Make(chatId: string, ?excludeUnsaved: bool, ?excludeSaved: bool, ?excludeUnlimited: bool, ?excludeLimitedUpgradable: bool, ?excludeLimitedNonUpgradable: bool, ?excludeFromBlockchain: bool, ?excludeUnique: bool, ?sortByPrice: bool, ?offset: string, ?limit: int64) = + GetChatGifts.Make(ChatId.String chatId, ?excludeUnsaved = excludeUnsaved, ?excludeSaved = excludeSaved, ?excludeUnlimited = excludeUnlimited, ?excludeLimitedUpgradable = excludeLimitedUpgradable, ?excludeLimitedNonUpgradable = excludeLimitedNonUpgradable, ?excludeFromBlockchain = excludeFromBlockchain, ?excludeUnique = excludeUnique, ?sortByPrice = sortByPrice, ?offset = offset, ?limit = limit) + interface IRequestBase with + member _.MethodName = "getChatGifts" + type ConvertGiftToStars = { BusinessConnectionId: string @@ -2350,6 +2666,27 @@ type PostStory = interface IRequestBase with member _.MethodName = "postStory" +type RepostStory = + { + BusinessConnectionId: string + FromChatId: int64 + FromStoryId: int64 + ActivePeriod: int64 + PostToChatPage: bool option + ProtectContent: bool option + } + static member Make(businessConnectionId: string, fromChatId: int64, fromStoryId: int64, activePeriod: int64, ?postToChatPage: bool, ?protectContent: bool) = + { + BusinessConnectionId = businessConnectionId + FromChatId = fromChatId + FromStoryId = fromStoryId + ActivePeriod = activePeriod + PostToChatPage = postToChatPage + ProtectContent = protectContent + } + interface IRequestBase with + member _.MethodName = "repostStory" + type EditStory = { BusinessConnectionId: string @@ -2386,19 +2723,67 @@ type DeleteStory = interface IRequestBase with member _.MethodName = "deleteStory" +type AnswerWebAppQuery = + { + WebAppQueryId: string + Result: InlineQueryResult + } + static member Make(webAppQueryId: string, result: InlineQueryResult) = + { + WebAppQueryId = webAppQueryId + Result = result + } + interface IRequestBase with + member _.MethodName = "answerWebAppQuery" + +type SavePreparedInlineMessage = + { + UserId: int64 + Result: InlineQueryResult + AllowUserChats: bool option + AllowBotChats: bool option + AllowGroupChats: bool option + AllowChannelChats: bool option + } + static member Make(userId: int64, result: InlineQueryResult, ?allowUserChats: bool, ?allowBotChats: bool, ?allowGroupChats: bool, ?allowChannelChats: bool) = + { + UserId = userId + Result = result + AllowUserChats = allowUserChats + AllowBotChats = allowBotChats + AllowGroupChats = allowGroupChats + AllowChannelChats = allowChannelChats + } + interface IRequestBase with + member _.MethodName = "savePreparedInlineMessage" + +type SavePreparedKeyboardButton = + { + UserId: int64 + Button: KeyboardButton + } + static member Make(userId: int64, button: KeyboardButton) = + { + UserId = userId + Button = button + } + interface IRequestBase with + member _.MethodName = "savePreparedKeyboardButton" + type EditMessageText = { BusinessConnectionId: string option ChatId: ChatId option MessageId: int64 option InlineMessageId: string option - Text: string + Text: string option ParseMode: ParseMode option Entities: MessageEntity[] option LinkPreviewOptions: LinkPreviewOptions option + RichMessage: InputRichMessage option ReplyMarkup: InlineKeyboardMarkup option } - static member Make(text: string, ?businessConnectionId: string, ?chatId: ChatId, ?messageId: int64, ?inlineMessageId: string, ?parseMode: ParseMode, ?entities: MessageEntity[], ?linkPreviewOptions: LinkPreviewOptions, ?replyMarkup: InlineKeyboardMarkup) = + static member Make(?businessConnectionId: string, ?chatId: ChatId, ?messageId: int64, ?inlineMessageId: string, ?text: string, ?parseMode: ParseMode, ?entities: MessageEntity[], ?linkPreviewOptions: LinkPreviewOptions, ?richMessage: InputRichMessage, ?replyMarkup: InlineKeyboardMarkup) = { BusinessConnectionId = businessConnectionId ChatId = chatId @@ -2408,6 +2793,7 @@ type EditMessageText = ParseMode = parseMode Entities = entities LinkPreviewOptions = linkPreviewOptions + RichMessage = richMessage ReplyMarkup = replyMarkup } interface IRequestBase with @@ -2514,12 +2900,12 @@ type StopMessageLiveLocation = type EditMessageChecklist = { BusinessConnectionId: string - ChatId: int64 + ChatId: ChatId MessageId: int64 Checklist: InputChecklist ReplyMarkup: InlineKeyboardMarkup option } - static member Make(businessConnectionId: string, chatId: int64, messageId: int64, checklist: InputChecklist, ?replyMarkup: InlineKeyboardMarkup) = + static member Make(businessConnectionId: string, chatId: ChatId, messageId: int64, checklist: InputChecklist, ?replyMarkup: InlineKeyboardMarkup) = { BusinessConnectionId = businessConnectionId ChatId = chatId @@ -2634,6 +3020,46 @@ type DeleteMessages = interface IRequestBase with member _.MethodName = "deleteMessages" +type DeleteMessageReaction = + { + ChatId: ChatId + MessageId: int64 + UserId: int64 option + ActorChatId: int64 option + } + static member Make(chatId: ChatId, messageId: int64, ?userId: int64, ?actorChatId: int64) = + { + ChatId = chatId + MessageId = messageId + UserId = userId + ActorChatId = actorChatId + } + static member Make(chatId: int64, messageId: int64, ?userId: int64, ?actorChatId: int64) = + DeleteMessageReaction.Make(ChatId.Int chatId, messageId, ?userId = userId, ?actorChatId = actorChatId) + static member Make(chatId: string, messageId: int64, ?userId: int64, ?actorChatId: int64) = + DeleteMessageReaction.Make(ChatId.String chatId, messageId, ?userId = userId, ?actorChatId = actorChatId) + interface IRequestBase with + member _.MethodName = "deleteMessageReaction" + +type DeleteAllMessageReactions = + { + ChatId: ChatId + UserId: int64 option + ActorChatId: int64 option + } + static member Make(chatId: ChatId, ?userId: int64, ?actorChatId: int64) = + { + ChatId = chatId + UserId = userId + ActorChatId = actorChatId + } + static member Make(chatId: int64, ?userId: int64, ?actorChatId: int64) = + DeleteAllMessageReactions.Make(ChatId.Int chatId, ?userId = userId, ?actorChatId = actorChatId) + static member Make(chatId: string, ?userId: int64, ?actorChatId: int64) = + DeleteAllMessageReactions.Make(ChatId.String chatId, ?userId = userId, ?actorChatId = actorChatId) + interface IRequestBase with + member _.MethodName = "deleteAllMessageReactions" + type SendSticker = { BusinessConnectionId: string option @@ -2880,6 +3306,60 @@ type DeleteStickerSet = interface IRequestBase with member _.MethodName = "deleteStickerSet" +type SendRichMessage = + { + BusinessConnectionId: string option + ChatId: ChatId + MessageThreadId: int64 option + DirectMessagesTopicId: int64 option + RichMessage: InputRichMessage + DisableNotification: bool option + ProtectContent: bool option + AllowPaidBroadcast: bool option + MessageEffectId: string option + SuggestedPostParameters: SuggestedPostParameters option + ReplyParameters: ReplyParameters option + ReplyMarkup: Markup option + } + static member Make(chatId: ChatId, richMessage: InputRichMessage, ?businessConnectionId: string, ?messageThreadId: int64, ?directMessagesTopicId: int64, ?disableNotification: bool, ?protectContent: bool, ?allowPaidBroadcast: bool, ?messageEffectId: string, ?suggestedPostParameters: SuggestedPostParameters, ?replyParameters: ReplyParameters, ?replyMarkup: Markup) = + { + BusinessConnectionId = businessConnectionId + ChatId = chatId + MessageThreadId = messageThreadId + DirectMessagesTopicId = directMessagesTopicId + RichMessage = richMessage + DisableNotification = disableNotification + ProtectContent = protectContent + AllowPaidBroadcast = allowPaidBroadcast + MessageEffectId = messageEffectId + SuggestedPostParameters = suggestedPostParameters + ReplyParameters = replyParameters + ReplyMarkup = replyMarkup + } + static member Make(chatId: int64, richMessage: InputRichMessage, ?businessConnectionId: string, ?messageThreadId: int64, ?directMessagesTopicId: int64, ?disableNotification: bool, ?protectContent: bool, ?allowPaidBroadcast: bool, ?messageEffectId: string, ?suggestedPostParameters: SuggestedPostParameters, ?replyParameters: ReplyParameters, ?replyMarkup: Markup) = + SendRichMessage.Make(ChatId.Int chatId, richMessage, ?businessConnectionId = businessConnectionId, ?messageThreadId = messageThreadId, ?directMessagesTopicId = directMessagesTopicId, ?disableNotification = disableNotification, ?protectContent = protectContent, ?allowPaidBroadcast = allowPaidBroadcast, ?messageEffectId = messageEffectId, ?suggestedPostParameters = suggestedPostParameters, ?replyParameters = replyParameters, ?replyMarkup = replyMarkup) + static member Make(chatId: string, richMessage: InputRichMessage, ?businessConnectionId: string, ?messageThreadId: int64, ?directMessagesTopicId: int64, ?disableNotification: bool, ?protectContent: bool, ?allowPaidBroadcast: bool, ?messageEffectId: string, ?suggestedPostParameters: SuggestedPostParameters, ?replyParameters: ReplyParameters, ?replyMarkup: Markup) = + SendRichMessage.Make(ChatId.String chatId, richMessage, ?businessConnectionId = businessConnectionId, ?messageThreadId = messageThreadId, ?directMessagesTopicId = directMessagesTopicId, ?disableNotification = disableNotification, ?protectContent = protectContent, ?allowPaidBroadcast = allowPaidBroadcast, ?messageEffectId = messageEffectId, ?suggestedPostParameters = suggestedPostParameters, ?replyParameters = replyParameters, ?replyMarkup = replyMarkup) + interface IRequestBase with + member _.MethodName = "sendRichMessage" + +type SendRichMessageDraft = + { + ChatId: int64 + MessageThreadId: int64 option + DraftId: int64 + RichMessage: InputRichMessage + } + static member Make(chatId: int64, draftId: int64, richMessage: InputRichMessage, ?messageThreadId: int64) = + { + ChatId = chatId + MessageThreadId = messageThreadId + DraftId = draftId + RichMessage = richMessage + } + interface IRequestBase with + member _.MethodName = "sendRichMessageDraft" + type AnswerInlineQuery = { InlineQueryId: string @@ -2901,40 +3381,6 @@ type AnswerInlineQuery = interface IRequestBase with member _.MethodName = "answerInlineQuery" -type AnswerWebAppQuery = - { - WebAppQueryId: string - Result: InlineQueryResult - } - static member Make(webAppQueryId: string, result: InlineQueryResult) = - { - WebAppQueryId = webAppQueryId - Result = result - } - interface IRequestBase with - member _.MethodName = "answerWebAppQuery" - -type SavePreparedInlineMessage = - { - UserId: int64 - Result: InlineQueryResult - AllowUserChats: bool option - AllowBotChats: bool option - AllowGroupChats: bool option - AllowChannelChats: bool option - } - static member Make(userId: int64, result: InlineQueryResult, ?allowUserChats: bool, ?allowBotChats: bool, ?allowGroupChats: bool, ?allowChannelChats: bool) = - { - UserId = userId - Result = result - AllowUserChats = allowUserChats - AllowBotChats = allowBotChats - AllowGroupChats = allowGroupChats - AllowChannelChats = allowChannelChats - } - interface IRequestBase with - member _.MethodName = "savePreparedInlineMessage" - type SendInvoice = { ChatId: ChatId @@ -3157,7 +3603,7 @@ type SetPassportDataErrors = type SendGame = { BusinessConnectionId: string option - ChatId: int64 + ChatId: ChatId MessageThreadId: int64 option GameShortName: string DisableNotification: bool option @@ -3167,7 +3613,7 @@ type SendGame = ReplyParameters: ReplyParameters option ReplyMarkup: InlineKeyboardMarkup option } - static member Make(chatId: int64, gameShortName: string, ?businessConnectionId: string, ?messageThreadId: int64, ?disableNotification: bool, ?protectContent: bool, ?allowPaidBroadcast: bool, ?messageEffectId: string, ?replyParameters: ReplyParameters, ?replyMarkup: InlineKeyboardMarkup) = + static member Make(chatId: ChatId, gameShortName: string, ?businessConnectionId: string, ?messageThreadId: int64, ?disableNotification: bool, ?protectContent: bool, ?allowPaidBroadcast: bool, ?messageEffectId: string, ?replyParameters: ReplyParameters, ?replyMarkup: InlineKeyboardMarkup) = { BusinessConnectionId = businessConnectionId ChatId = chatId @@ -3180,6 +3626,10 @@ type SendGame = ReplyParameters = replyParameters ReplyMarkup = replyMarkup } + static member Make(chatId: int64, gameShortName: string, ?businessConnectionId: string, ?messageThreadId: int64, ?disableNotification: bool, ?protectContent: bool, ?allowPaidBroadcast: bool, ?messageEffectId: string, ?replyParameters: ReplyParameters, ?replyMarkup: InlineKeyboardMarkup) = + SendGame.Make(ChatId.Int chatId, gameShortName, ?businessConnectionId = businessConnectionId, ?messageThreadId = messageThreadId, ?disableNotification = disableNotification, ?protectContent = protectContent, ?allowPaidBroadcast = allowPaidBroadcast, ?messageEffectId = messageEffectId, ?replyParameters = replyParameters, ?replyMarkup = replyMarkup) + static member Make(chatId: string, gameShortName: string, ?businessConnectionId: string, ?messageThreadId: int64, ?disableNotification: bool, ?protectContent: bool, ?allowPaidBroadcast: bool, ?messageEffectId: string, ?replyParameters: ReplyParameters, ?replyMarkup: InlineKeyboardMarkup) = + SendGame.Make(ChatId.String chatId, gameShortName, ?businessConnectionId = businessConnectionId, ?messageThreadId = messageThreadId, ?disableNotification = disableNotification, ?protectContent = protectContent, ?allowPaidBroadcast = allowPaidBroadcast, ?messageEffectId = messageEffectId, ?replyParameters = replyParameters, ?replyMarkup = replyMarkup) interface IRequestBase with member _.MethodName = "sendGame" diff --git a/src/Funogram.Telegram/Types.fs b/src/Funogram.Telegram/Types.fs index f3b5e72..4ba23a1 100644 --- a/src/Funogram.Telegram/Types.fs +++ b/src/Funogram.Telegram/Types.fs @@ -74,7 +74,7 @@ and EditMessageResult = | Success of bool /// This object represents an incoming update. -/// At most one of the optional parameters can be present in any given update. +/// At most one of the optional fields can be present in any given update. and [] Update = { /// The update's unique identifier. Update identifiers start from a certain positive number and increase sequentially. This identifier becomes especially handy if you're using webhooks, since it allows you to ignore repeated updates or to restore the correct update sequence, should they get out of order. If there are no new updates for at least a week, then identifier of the next update will be chosen randomly instead of sequentially. @@ -104,6 +104,9 @@ and [] Update = /// Messages were deleted from a connected business account [] DeletedBusinessMessages: BusinessMessagesDeleted option + /// New guest message. The bot can use the field Message.guest_query_id and the method answerGuestQuery to send a message in response. + [] + GuestMessage: Message option /// A reaction to a message was changed by a user. The bot must be an administrator in the chat and must explicitly specify "message_reaction" in the list of allowed_updates to receive these updates. The update isn't received for reactions set by bots. [] MessageReaction: MessageReactionUpdated option @@ -119,16 +122,16 @@ and [] Update = /// New incoming callback query [] CallbackQuery: CallbackQuery option - /// New incoming shipping query. Only for invoices with flexible price + /// New incoming shipping query. Only for invoices with flexible price. [] ShippingQuery: ShippingQuery option - /// New incoming pre-checkout query. Contains full information about checkout + /// New incoming pre-checkout query. Contains full information about checkout. [] PreCheckoutQuery: PreCheckoutQuery option /// A user purchased paid media with a non-empty payload sent by the bot in a non-channel chat [] PurchasedPaidMedia: PaidMediaPurchased option - /// New poll state. Bots receive only updates about manually stopped polls and polls, which are sent by the bot + /// New poll state. Bots receive only updates about manually stopped polls and polls, which are sent by the bot. [] Poll: Poll option /// A user changed their answer in a non-anonymous poll. Bots receive new votes only in polls that were sent by the bot itself. @@ -149,10 +152,14 @@ and [] Update = /// A boost was removed from a chat. The bot must be an administrator in the chat to receive these updates. [] RemovedChatBoost: ChatBoostRemoved option + /// A new bot was created to be managed by the bot, or token or owner of a managed bot was changed + [] + ManagedBot: ManagedBotUpdated option } - static member Create(updateId: int64, ?chatJoinRequest: ChatJoinRequest, ?chatMember: ChatMemberUpdated, ?myChatMember: ChatMemberUpdated, ?pollAnswer: PollAnswer, ?poll: Poll, ?purchasedPaidMedia: PaidMediaPurchased, ?preCheckoutQuery: PreCheckoutQuery, ?shippingQuery: ShippingQuery, ?callbackQuery: CallbackQuery, ?chosenInlineResult: ChosenInlineResult, ?inlineQuery: InlineQuery, ?messageReactionCount: MessageReactionCountUpdated, ?messageReaction: MessageReactionUpdated, ?deletedBusinessMessages: BusinessMessagesDeleted, ?editedBusinessMessage: Message, ?businessMessage: Message, ?businessConnection: BusinessConnection, ?editedChannelPost: Message, ?channelPost: Message, ?editedMessage: Message, ?message: Message, ?chatBoost: ChatBoostUpdated, ?removedChatBoost: ChatBoostRemoved) = + static member Create(updateId: int64, ?chatBoost: ChatBoostUpdated, ?chatJoinRequest: ChatJoinRequest, ?chatMember: ChatMemberUpdated, ?myChatMember: ChatMemberUpdated, ?pollAnswer: PollAnswer, ?poll: Poll, ?purchasedPaidMedia: PaidMediaPurchased, ?preCheckoutQuery: PreCheckoutQuery, ?shippingQuery: ShippingQuery, ?callbackQuery: CallbackQuery, ?chosenInlineResult: ChosenInlineResult, ?inlineQuery: InlineQuery, ?messageReactionCount: MessageReactionCountUpdated, ?messageReaction: MessageReactionUpdated, ?guestMessage: Message, ?deletedBusinessMessages: BusinessMessagesDeleted, ?editedBusinessMessage: Message, ?businessMessage: Message, ?businessConnection: BusinessConnection, ?editedChannelPost: Message, ?channelPost: Message, ?editedMessage: Message, ?message: Message, ?removedChatBoost: ChatBoostRemoved, ?managedBot: ManagedBotUpdated) = { UpdateId = updateId + ChatBoost = chatBoost ChatJoinRequest = chatJoinRequest ChatMember = chatMember MyChatMember = myChatMember @@ -166,6 +173,7 @@ and [] Update = InlineQuery = inlineQuery MessageReactionCount = messageReactionCount MessageReaction = messageReaction + GuestMessage = guestMessage DeletedBusinessMessages = deletedBusinessMessages EditedBusinessMessage = editedBusinessMessage BusinessMessage = businessMessage @@ -174,8 +182,8 @@ and [] Update = ChannelPost = channelPost EditedMessage = editedMessage Message = message - ChatBoost = chatBoost RemovedChatBoost = removedChatBoost + ManagedBot = managedBot } /// Describes the current status of a webhook. @@ -207,7 +215,7 @@ and [] WebhookInfo = /// The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery [] MaxConnections: int64 option - /// A list of update types the bot is subscribed to. Defaults to all update types except chat_member + /// A list of update types the bot is subscribed to. Defaults to all update types except chat_member, message_reaction, and message_reaction_count. [] AllowedUpdates: string[] option } @@ -257,31 +265,51 @@ and [] User = /// True, if privacy mode is disabled for the bot. Returned only in getMe. [] CanReadAllGroupMessages: bool option + /// True, if the bot supports guest queries from chats it is not a member of. Returned only in getMe. + [] + SupportsGuestQueries: bool option /// True, if the bot supports inline queries. Returned only in getMe. [] SupportsInlineQueries: bool option - /// True, if the bot can be connected to a Telegram Business account to receive its messages. Returned only in getMe. + /// True, if the bot can be connected to a user account to manage it. Returned only in getMe. [] CanConnectToBusiness: bool option /// True, if the bot has a main Web App. Returned only in getMe. [] HasMainWebApp: bool option - } - static member Create(id: int64, isBot: bool, firstName: string, ?lastName: string, ?username: string, ?languageCode: string, ?isPremium: bool, ?addedToAttachmentMenu: bool, ?canJoinGroups: bool, ?canReadAllGroupMessages: bool, ?supportsInlineQueries: bool, ?canConnectToBusiness: bool, ?hasMainWebApp: bool) = + /// True, if the bot has forum topic mode enabled in private chats. Returned only in getMe. + [] + HasTopicsEnabled: bool option + /// True, if the bot allows users to create and delete topics in private chats. Returned only in getMe. + [] + AllowsUsersToCreateTopics: bool option + /// True, if other bots can be created to be controlled by the bot. Returned only in getMe. + [] + CanManageBots: bool option + /// True, if the bot supports join request queries and can be assigned to process them. Returned only in getMe. + [] + SupportsJoinRequestQueries: bool option + } + static member Create(id: int64, isBot: bool, firstName: string, ?allowsUsersToCreateTopics: bool, ?hasTopicsEnabled: bool, ?hasMainWebApp: bool, ?canConnectToBusiness: bool, ?supportsInlineQueries: bool, ?supportsGuestQueries: bool, ?canJoinGroups: bool, ?canManageBots: bool, ?addedToAttachmentMenu: bool, ?isPremium: bool, ?languageCode: string, ?username: string, ?lastName: string, ?canReadAllGroupMessages: bool, ?supportsJoinRequestQueries: bool) = { Id = id IsBot = isBot FirstName = firstName - LastName = lastName - Username = username - LanguageCode = languageCode - IsPremium = isPremium - AddedToAttachmentMenu = addedToAttachmentMenu + AllowsUsersToCreateTopics = allowsUsersToCreateTopics + HasTopicsEnabled = hasTopicsEnabled + HasMainWebApp = hasMainWebApp + CanConnectToBusiness = canConnectToBusiness + SupportsInlineQueries = supportsInlineQueries + SupportsGuestQueries = supportsGuestQueries CanJoinGroups = canJoinGroups + CanManageBots = canManageBots + AddedToAttachmentMenu = addedToAttachmentMenu + IsPremium = isPremium + LanguageCode = languageCode + Username = username + LastName = lastName CanReadAllGroupMessages = canReadAllGroupMessages - SupportsInlineQueries = supportsInlineQueries - CanConnectToBusiness = canConnectToBusiness - HasMainWebApp = hasMainWebApp + SupportsJoinRequestQueries = supportsJoinRequestQueries } /// This object represents a chat. @@ -468,35 +496,53 @@ and [] ChatFullInfo = /// For supergroups, the location to which the supergroup is connected [] Location: ChatLocation option + /// For private chats, the rating of the user if any + [] + Rating: UserRating option + /// For private chats, the first audio added to the profile of the user + [] + FirstProfileAudio: Audio option + /// The color scheme based on a unique gift that must be used for the chat's name, message replies and link previews + [] + UniqueGiftColors: UniqueGiftColors option + /// The number of Telegram Stars a general user has to pay to send a message to the chat + [] + PaidMessageStarCount: int64 option + /// The bot that processes join request queries in the chat. The field is only available to chat administrators. + [] + GuardBot: User option } - static member Create(id: int64, ``type``: string, accentColorId: int64, maxReactionCount: int64, acceptedGiftTypes: AcceptedGiftTypes, ?joinToSendMessages: bool, ?joinByRequest: bool, ?description: string, ?inviteLink: string, ?pinnedMessage: Message, ?permissions: ChatPermissions, ?canSendPaidMedia: bool, ?slowModeDelay: int64, ?messageAutoDeleteTime: int64, ?hasRestrictedVoiceAndVideoMessages: bool, ?hasAggressiveAntiSpamEnabled: bool, ?hasHiddenMembers: bool, ?hasProtectedContent: bool, ?hasVisibleHistory: bool, ?stickerSetName: string, ?canSetStickerSet: bool, ?customEmojiStickerSetName: string, ?unrestrictBoostCount: int64, ?hasPrivateForwards: bool, ?emojiStatusExpirationDate: int64, ?linkedChatId: int64, ?title: string, ?username: string, ?firstName: string, ?lastName: string, ?isForum: bool, ?isDirectMessages: bool, ?photo: ChatPhoto, ?activeUsernames: string[], ?birthdate: Birthdate, ?businessIntro: BusinessIntro, ?businessLocation: BusinessLocation, ?businessOpeningHours: BusinessOpeningHours, ?personalChat: Chat, ?parentChat: Chat, ?availableReactions: ReactionType[], ?backgroundCustomEmojiId: string, ?profileAccentColorId: int64, ?profileBackgroundCustomEmojiId: string, ?emojiStatusCustomEmojiId: string, ?bio: string, ?location: ChatLocation) = + static member Create(id: int64, ``type``: string, acceptedGiftTypes: AcceptedGiftTypes, accentColorId: int64, maxReactionCount: int64, ?description: string, ?inviteLink: string, ?pinnedMessage: Message, ?permissions: ChatPermissions, ?canSendPaidMedia: bool, ?slowModeDelay: int64, ?unrestrictBoostCount: int64, ?messageAutoDeleteTime: int64, ?hasAggressiveAntiSpamEnabled: bool, ?hasProtectedContent: bool, ?joinByRequest: bool, ?hasVisibleHistory: bool, ?stickerSetName: string, ?canSetStickerSet: bool, ?customEmojiStickerSetName: string, ?linkedChatId: int64, ?location: ChatLocation, ?rating: UserRating, ?firstProfileAudio: Audio, ?uniqueGiftColors: UniqueGiftColors, ?hasHiddenMembers: bool, ?joinToSendMessages: bool, ?hasPrivateForwards: bool, ?paidMessageStarCount: int64, ?title: string, ?username: string, ?firstName: string, ?lastName: string, ?isForum: bool, ?isDirectMessages: bool, ?photo: ChatPhoto, ?activeUsernames: string[], ?birthdate: Birthdate, ?businessIntro: BusinessIntro, ?businessLocation: BusinessLocation, ?businessOpeningHours: BusinessOpeningHours, ?personalChat: Chat, ?parentChat: Chat, ?availableReactions: ReactionType[], ?backgroundCustomEmojiId: string, ?profileAccentColorId: int64, ?profileBackgroundCustomEmojiId: string, ?emojiStatusCustomEmojiId: string, ?emojiStatusExpirationDate: int64, ?bio: string, ?hasRestrictedVoiceAndVideoMessages: bool, ?guardBot: User) = { Id = id Type = ``type`` + AcceptedGiftTypes = acceptedGiftTypes AccentColorId = accentColorId MaxReactionCount = maxReactionCount - AcceptedGiftTypes = acceptedGiftTypes - JoinToSendMessages = joinToSendMessages - JoinByRequest = joinByRequest Description = description InviteLink = inviteLink PinnedMessage = pinnedMessage Permissions = permissions CanSendPaidMedia = canSendPaidMedia SlowModeDelay = slowModeDelay + UnrestrictBoostCount = unrestrictBoostCount MessageAutoDeleteTime = messageAutoDeleteTime - HasRestrictedVoiceAndVideoMessages = hasRestrictedVoiceAndVideoMessages HasAggressiveAntiSpamEnabled = hasAggressiveAntiSpamEnabled - HasHiddenMembers = hasHiddenMembers HasProtectedContent = hasProtectedContent + JoinByRequest = joinByRequest HasVisibleHistory = hasVisibleHistory StickerSetName = stickerSetName CanSetStickerSet = canSetStickerSet CustomEmojiStickerSetName = customEmojiStickerSetName - UnrestrictBoostCount = unrestrictBoostCount - HasPrivateForwards = hasPrivateForwards - EmojiStatusExpirationDate = emojiStatusExpirationDate LinkedChatId = linkedChatId + Location = location + Rating = rating + FirstProfileAudio = firstProfileAudio + UniqueGiftColors = uniqueGiftColors + HasHiddenMembers = hasHiddenMembers + JoinToSendMessages = joinToSendMessages + HasPrivateForwards = hasPrivateForwards + PaidMessageStarCount = paidMessageStarCount Title = title Username = username FirstName = firstName @@ -516,23 +562,25 @@ and [] ChatFullInfo = ProfileAccentColorId = profileAccentColorId ProfileBackgroundCustomEmojiId = profileBackgroundCustomEmojiId EmojiStatusCustomEmojiId = emojiStatusCustomEmojiId + EmojiStatusExpirationDate = emojiStatusExpirationDate Bio = bio - Location = location + HasRestrictedVoiceAndVideoMessages = hasRestrictedVoiceAndVideoMessages + GuardBot = guardBot } /// This object represents a message. and [] Message = { - /// Unique message identifier inside this chat. In specific instances (e.g., message containing a video sent to a big chat), the server might automatically schedule a message instead of sending it immediately. In such cases, this field will be 0 and the relevant message will be unusable until it is actually sent + /// Unique message identifier inside this chat. In specific instances (e.g., message containing a video sent to a big chat), the server might automatically schedule a message instead of sending it immediately. In such cases, this field will be 0 and the relevant message will be unusable until it is actually sent. [] MessageId: int64 - /// Unique identifier of a message thread to which the message belongs; for supergroups only + /// Unique identifier of a message thread or forum topic to which the message belongs; for supergroups and private chats only [] MessageThreadId: int64 option /// Information about the direct messages chat topic that contains the message [] DirectMessagesTopic: DirectMessagesTopic option - /// Sender of the message; may be empty for messages sent to channels. For backward compatibility, if the message was sent on behalf of a chat, the field contains a fake sender user in non-channel chats + /// Sender of the message; may be empty for messages sent to channels. For backward compatibility, if the message was sent on behalf of a chat, the field contains a fake sender user in non-channel chats. [] From: User option /// Sender of the message when sent on behalf of a chat. For example, the supergroup itself for messages sent by its anonymous administrators or a linked channel for messages automatically forwarded to the channel's discussion group. For backward compatibility, if the message was sent on behalf of a chat, the field from contains a fake sender user in non-channel chats. @@ -544,9 +592,15 @@ and [] Message = /// The bot that actually sent the message on behalf of the business account. Available only for outgoing messages sent on behalf of the connected business account. [] SenderBusinessBot: User option + /// Tag or custom title of the sender of the message; for supergroups only + [] + SenderTag: string option /// Date the message was sent in Unix time. It is always a positive number, representing a valid date. [] Date: DateTime + /// The unique identifier for the guest query. Use this identifier with the method answerGuestQuery to send a response message. If non-empty, the message belongs to the chat where the guest bot was summoned, which may not coincide with other existing bot chats sharing the same identifier. + [] + GuestQueryId: string option /// Unique identifier of the business connection from which the message was received. If non-empty, the message belongs to a chat of the corresponding business account that is independent from any potential bot chat which might share the same identifier. [] BusinessConnectionId: string option @@ -556,7 +610,7 @@ and [] Message = /// Information about the original message for forwarded messages [] ForwardOrigin: MessageOrigin option - /// True, if the message is sent to a forum topic + /// True, if the message is sent to a topic in a forum supergroup or a private chat with the bot [] IsTopicMessage: bool option /// True, if the message is a channel post that was automatically forwarded to the connected discussion group @@ -577,9 +631,18 @@ and [] Message = /// Identifier of the specific checklist task that is being replied to [] ReplyToChecklistTaskId: int64 option + /// Persistent identifier of the specific poll option that is being replied to + [] + ReplyToPollOptionId: string option /// Bot through which the message was sent [] ViaBot: User option + /// For a message sent by a guest bot, this is the user whose original message triggered the bot's response + [] + GuestBotCallerUser: User option + /// For a message sent by a guest bot, this is the chat whose original message triggered the bot's response + [] + GuestBotCallerChat: Chat option /// Date the message was last edited in Unix time [] EditDate: int64 option @@ -592,7 +655,7 @@ and [] Message = /// True, if the message is a paid post. Note that such posts must not be deleted for 24 hours to receive the payment and can't be edited. [] IsPaidPost: bool option - /// The unique identifier of a media message group this message belongs to + /// The unique identifier inside this chat of a media message group this message belongs to [] MediaGroupId: string option /// Signature of the post author for messages in channels, or the custom title of an anonymous group administrator @@ -616,7 +679,10 @@ and [] Message = /// Unique identifier of the message effect added to the message [] EffectId: string option - /// Message is an animation, information about the animation. For backward compatibility, when this field is set, the document field will also be set + /// Message is a rich formatted message + [] + RichMessage: RichMessage option + /// Message is an animation, information about the animation. For backward compatibility, when this field is set, the document field will also be set. [] Animation: Animation option /// Message is an audio file, information about the file @@ -625,6 +691,9 @@ and [] Message = /// Message is a general file, information about the file [] Document: Document option + /// Message is a live photo, information about the live photo. For backward compatibility, when this field is set, the photo field will also be set. + [] + LivePhoto: LivePhoto option /// Message contains paid media; information about the paid media [] PaidMedia: PaidMediaInfo option @@ -673,7 +742,7 @@ and [] Message = /// Message is a native poll, information about the poll [] Poll: Poll option - /// Message is a venue, information about the venue. For backward compatibility, when this field is set, the location field will also be set + /// Message is a venue, information about the venue. For backward compatibility, when this field is set, the location field will also be set. [] Venue: Venue option /// Message is a shared location, information about the location @@ -685,6 +754,12 @@ and [] Message = /// A member was removed from the group, information about them (this member may be the bot itself) [] LeftChatMember: User option + /// Service message: chat owner has left + [] + ChatOwnerLeft: ChatOwnerLeft option + /// Service message: chat owner has changed + [] + ChatOwnerChanged: ChatOwnerChanged option /// A chat title was changed to this value [] NewChatTitle: string option @@ -736,6 +811,9 @@ and [] Message = /// Service message: a unique gift was sent or received [] UniqueGift: UniqueGiftInfo option + /// Service message: upgrade of a gift was purchased after the gift was sent + [] + GiftUpgradeSent: GiftInfo option /// The domain name of the website on which the user has logged in. More about Telegram Login » [] ConnectedWebsite: string option @@ -793,9 +871,18 @@ and [] Message = /// Service message: a giveaway without public winners was completed [] GiveawayCompleted: GiveawayCompleted option + /// Service message: user created a bot that will be managed by the current bot + [] + ManagedBotCreated: ManagedBotCreated option /// Service message: the price for paid messages has changed in the chat [] PaidMessagePriceChanged: PaidMessagePriceChanged option + /// Service message: answer option was added to a poll + [] + PollOptionAdded: PollOptionAdded option + /// Service message: answer option was deleted from a poll + [] + PollOptionDeleted: PollOptionDeleted option /// Service message: a suggested post was approved [] SuggestedPostApproved: SuggestedPostApproved option @@ -830,23 +917,23 @@ and [] Message = [] ReplyMarkup: InlineKeyboardMarkup option } - static member Create(messageId: int64, date: DateTime, chat: Chat, ?proximityAlertTriggered: ProximityAlertTriggered, ?passportData: PassportData, ?writeAccessAllowed: WriteAccessAllowed, ?connectedWebsite: string, ?uniqueGift: UniqueGiftInfo, ?gift: GiftInfo, ?chatShared: ChatShared, ?usersShared: UsersShared, ?refundedPayment: RefundedPayment, ?successfulPayment: SuccessfulPayment, ?pinnedMessage: MaybeInaccessibleMessage, ?boostAdded: ChatBoostAdded, ?migrateFromChatId: int64, ?migrateToChatId: int64, ?messageAutoDeleteTimerChanged: MessageAutoDeleteTimerChanged, ?channelChatCreated: bool, ?supergroupChatCreated: bool, ?groupChatCreated: bool, ?deleteChatPhoto: bool, ?newChatPhoto: PhotoSize[], ?newChatTitle: string, ?invoice: Invoice, ?chatBackgroundSet: ChatBackground, ?checklistTasksDone: ChecklistTasksDone, ?checklistTasksAdded: ChecklistTasksAdded, ?videoChatParticipantsInvited: VideoChatParticipantsInvited, ?videoChatEnded: VideoChatEnded, ?videoChatStarted: VideoChatStarted, ?videoChatScheduled: VideoChatScheduled, ?suggestedPostRefunded: SuggestedPostRefunded, ?suggestedPostPaid: SuggestedPostPaid, ?suggestedPostDeclined: SuggestedPostDeclined, ?suggestedPostApprovalFailed: SuggestedPostApprovalFailed, ?suggestedPostApproved: SuggestedPostApproved, ?paidMessagePriceChanged: PaidMessagePriceChanged, ?giveawayCompleted: GiveawayCompleted, ?giveawayWinners: GiveawayWinners, ?giveaway: Giveaway, ?giveawayCreated: GiveawayCreated, ?generalForumTopicUnhidden: GeneralForumTopicUnhidden, ?generalForumTopicHidden: GeneralForumTopicHidden, ?forumTopicReopened: ForumTopicReopened, ?forumTopicClosed: ForumTopicClosed, ?forumTopicEdited: ForumTopicEdited, ?forumTopicCreated: ForumTopicCreated, ?directMessagePriceChanged: DirectMessagePriceChanged, ?leftChatMember: User, ?newChatMembers: User[], ?venue: Venue, ?webAppData: WebAppData, ?mediaGroupId: string, ?isPaidPost: bool, ?isFromOffline: bool, ?hasProtectedContent: bool, ?editDate: int64, ?viaBot: User, ?replyToChecklistTaskId: int64, ?replyToStory: Story, ?quote: TextQuote, ?externalReply: ExternalReplyInfo, ?replyToMessage: Message, ?isAutomaticForward: bool, ?isTopicMessage: bool, ?forwardOrigin: MessageOrigin, ?businessConnectionId: string, ?senderBusinessBot: User, ?senderBoostCount: int64, ?senderChat: Chat, ?from: User, ?directMessagesTopic: DirectMessagesTopic, ?messageThreadId: int64, ?authorSignature: string, ?paidStarCount: int64, ?text: string, ?entities: MessageEntity[], ?poll: Poll, ?game: Game, ?dice: Dice, ?contact: Contact, ?checklist: Checklist, ?hasMediaSpoiler: bool, ?showCaptionAboveMedia: bool, ?captionEntities: MessageEntity[], ?caption: string, ?voice: Voice, ?location: Location, ?videoNote: VideoNote, ?story: Story, ?sticker: Sticker, ?photo: PhotoSize[], ?paidMedia: PaidMediaInfo, ?document: Document, ?audio: Audio, ?animation: Animation, ?effectId: string, ?suggestedPostInfo: SuggestedPostInfo, ?linkPreviewOptions: LinkPreviewOptions, ?video: Video, ?replyMarkup: InlineKeyboardMarkup) = + static member Create(messageId: int64, date: DateTime, chat: Chat, ?passportData: PassportData, ?writeAccessAllowed: WriteAccessAllowed, ?connectedWebsite: string, ?giftUpgradeSent: GiftInfo, ?uniqueGift: UniqueGiftInfo, ?gift: GiftInfo, ?chatShared: ChatShared, ?usersShared: UsersShared, ?refundedPayment: RefundedPayment, ?successfulPayment: SuccessfulPayment, ?invoice: Invoice, ?pinnedMessage: MaybeInaccessibleMessage, ?migrateFromChatId: int64, ?migrateToChatId: int64, ?messageAutoDeleteTimerChanged: MessageAutoDeleteTimerChanged, ?channelChatCreated: bool, ?supergroupChatCreated: bool, ?groupChatCreated: bool, ?deleteChatPhoto: bool, ?newChatPhoto: PhotoSize[], ?newChatTitle: string, ?chatOwnerChanged: ChatOwnerChanged, ?chatOwnerLeft: ChatOwnerLeft, ?leftChatMember: User, ?proximityAlertTriggered: ProximityAlertTriggered, ?boostAdded: ChatBoostAdded, ?checklistTasksDone: ChecklistTasksDone, ?newChatMembers: User[], ?videoChatParticipantsInvited: VideoChatParticipantsInvited, ?videoChatEnded: VideoChatEnded, ?videoChatStarted: VideoChatStarted, ?videoChatScheduled: VideoChatScheduled, ?suggestedPostRefunded: SuggestedPostRefunded, ?suggestedPostPaid: SuggestedPostPaid, ?suggestedPostDeclined: SuggestedPostDeclined, ?suggestedPostApprovalFailed: SuggestedPostApprovalFailed, ?suggestedPostApproved: SuggestedPostApproved, ?pollOptionDeleted: PollOptionDeleted, ?pollOptionAdded: PollOptionAdded, ?paidMessagePriceChanged: PaidMessagePriceChanged, ?managedBotCreated: ManagedBotCreated, ?giveawayCompleted: GiveawayCompleted, ?giveawayWinners: GiveawayWinners, ?giveaway: Giveaway, ?giveawayCreated: GiveawayCreated, ?generalForumTopicUnhidden: GeneralForumTopicUnhidden, ?generalForumTopicHidden: GeneralForumTopicHidden, ?forumTopicReopened: ForumTopicReopened, ?forumTopicClosed: ForumTopicClosed, ?forumTopicEdited: ForumTopicEdited, ?forumTopicCreated: ForumTopicCreated, ?directMessagePriceChanged: DirectMessagePriceChanged, ?checklistTasksAdded: ChecklistTasksAdded, ?chatBackgroundSet: ChatBackground, ?location: Location, ?venue: Venue, ?poll: Poll, ?isFromOffline: bool, ?hasProtectedContent: bool, ?editDate: int64, ?guestBotCallerChat: Chat, ?guestBotCallerUser: User, ?viaBot: User, ?replyToPollOptionId: string, ?replyToChecklistTaskId: int64, ?replyToStory: Story, ?quote: TextQuote, ?externalReply: ExternalReplyInfo, ?isPaidPost: bool, ?replyToMessage: Message, ?isTopicMessage: bool, ?forwardOrigin: MessageOrigin, ?businessConnectionId: string, ?guestQueryId: string, ?senderTag: string, ?senderBusinessBot: User, ?senderBoostCount: int64, ?senderChat: Chat, ?from: User, ?directMessagesTopic: DirectMessagesTopic, ?messageThreadId: int64, ?isAutomaticForward: bool, ?mediaGroupId: string, ?authorSignature: string, ?paidStarCount: int64, ?game: Game, ?dice: Dice, ?contact: Contact, ?checklist: Checklist, ?hasMediaSpoiler: bool, ?showCaptionAboveMedia: bool, ?captionEntities: MessageEntity[], ?caption: string, ?voice: Voice, ?videoNote: VideoNote, ?video: Video, ?story: Story, ?sticker: Sticker, ?photo: PhotoSize[], ?paidMedia: PaidMediaInfo, ?livePhoto: LivePhoto, ?document: Document, ?audio: Audio, ?animation: Animation, ?richMessage: RichMessage, ?effectId: string, ?suggestedPostInfo: SuggestedPostInfo, ?linkPreviewOptions: LinkPreviewOptions, ?entities: MessageEntity[], ?text: string, ?webAppData: WebAppData, ?replyMarkup: InlineKeyboardMarkup) = { MessageId = messageId Date = date Chat = chat - ProximityAlertTriggered = proximityAlertTriggered PassportData = passportData WriteAccessAllowed = writeAccessAllowed ConnectedWebsite = connectedWebsite + GiftUpgradeSent = giftUpgradeSent UniqueGift = uniqueGift Gift = gift ChatShared = chatShared UsersShared = usersShared RefundedPayment = refundedPayment SuccessfulPayment = successfulPayment + Invoice = invoice PinnedMessage = pinnedMessage - BoostAdded = boostAdded MigrateFromChatId = migrateFromChatId MigrateToChatId = migrateToChatId MessageAutoDeleteTimerChanged = messageAutoDeleteTimerChanged @@ -856,10 +943,13 @@ and [] Message = DeleteChatPhoto = deleteChatPhoto NewChatPhoto = newChatPhoto NewChatTitle = newChatTitle - Invoice = invoice - ChatBackgroundSet = chatBackgroundSet + ChatOwnerChanged = chatOwnerChanged + ChatOwnerLeft = chatOwnerLeft + LeftChatMember = leftChatMember + ProximityAlertTriggered = proximityAlertTriggered + BoostAdded = boostAdded ChecklistTasksDone = checklistTasksDone - ChecklistTasksAdded = checklistTasksAdded + NewChatMembers = newChatMembers VideoChatParticipantsInvited = videoChatParticipantsInvited VideoChatEnded = videoChatEnded VideoChatStarted = videoChatStarted @@ -869,7 +959,10 @@ and [] Message = SuggestedPostDeclined = suggestedPostDeclined SuggestedPostApprovalFailed = suggestedPostApprovalFailed SuggestedPostApproved = suggestedPostApproved + PollOptionDeleted = pollOptionDeleted + PollOptionAdded = pollOptionAdded PaidMessagePriceChanged = paidMessagePriceChanged + ManagedBotCreated = managedBotCreated GiveawayCompleted = giveawayCompleted GiveawayWinners = giveawayWinners Giveaway = giveaway @@ -881,36 +974,39 @@ and [] Message = ForumTopicEdited = forumTopicEdited ForumTopicCreated = forumTopicCreated DirectMessagePriceChanged = directMessagePriceChanged - LeftChatMember = leftChatMember - NewChatMembers = newChatMembers + ChecklistTasksAdded = checklistTasksAdded + ChatBackgroundSet = chatBackgroundSet + Location = location Venue = venue - WebAppData = webAppData - MediaGroupId = mediaGroupId - IsPaidPost = isPaidPost + Poll = poll IsFromOffline = isFromOffline HasProtectedContent = hasProtectedContent EditDate = editDate + GuestBotCallerChat = guestBotCallerChat + GuestBotCallerUser = guestBotCallerUser ViaBot = viaBot + ReplyToPollOptionId = replyToPollOptionId ReplyToChecklistTaskId = replyToChecklistTaskId ReplyToStory = replyToStory Quote = quote ExternalReply = externalReply + IsPaidPost = isPaidPost ReplyToMessage = replyToMessage - IsAutomaticForward = isAutomaticForward IsTopicMessage = isTopicMessage ForwardOrigin = forwardOrigin BusinessConnectionId = businessConnectionId + GuestQueryId = guestQueryId + SenderTag = senderTag SenderBusinessBot = senderBusinessBot SenderBoostCount = senderBoostCount SenderChat = senderChat From = from DirectMessagesTopic = directMessagesTopic MessageThreadId = messageThreadId + IsAutomaticForward = isAutomaticForward + MediaGroupId = mediaGroupId AuthorSignature = authorSignature PaidStarCount = paidStarCount - Text = text - Entities = entities - Poll = poll Game = game Dice = dice Contact = contact @@ -920,26 +1016,30 @@ and [] Message = CaptionEntities = captionEntities Caption = caption Voice = voice - Location = location VideoNote = videoNote + Video = video Story = story Sticker = sticker Photo = photo PaidMedia = paidMedia + LivePhoto = livePhoto Document = document Audio = audio Animation = animation + RichMessage = richMessage EffectId = effectId SuggestedPostInfo = suggestedPostInfo LinkPreviewOptions = linkPreviewOptions - Video = video + Entities = entities + Text = text + WebAppData = webAppData ReplyMarkup = replyMarkup } /// This object represents a unique message identifier. and [] MessageId = { - /// Unique message identifier. In specific instances (e.g., message containing a video sent to a big chat), the server might automatically schedule a message instead of sending it immediately. In such cases, this field will be 0 and the relevant message will be unusable until it is actually sent + /// Unique message identifier. In specific instances (e.g., message containing a video sent to a big chat), the server might automatically schedule a message instead of sending it immediately. In such cases, this field will be 0 and the relevant message will be unusable until it is actually sent. [] MessageId: int64 } @@ -976,7 +1076,7 @@ and MaybeInaccessibleMessage = /// This object represents one special entity in a text message. For example, hashtags, usernames, URLs, etc. and [] MessageEntity = { - /// Type of the entity. Currently, can be “mention” (@username), “hashtag” (#hashtag or #hashtag@chatusername), “cashtag” ($USD or $USD@chatusername), “bot_command” (/start@jobs_bot), “url” (https://telegram.org), “email” (do-not-reply@telegram.org), “phone_number” (+1-212-555-0123), “bold” (bold text), “italic” (italic text), “underline” (underlined text), “strikethrough” (strikethrough text), “spoiler” (spoiler message), “blockquote” (block quotation), “expandable_blockquote” (collapsed-by-default block quotation), “code” (monowidth string), “pre” (monowidth block), “text_link” (for clickable text URLs), “text_mention” (for users without usernames), “custom_emoji” (for inline custom emoji stickers) + /// Type of the entity. Currently, can be “mention” (@username), “hashtag” (#hashtag or #hashtag@chatusername), “cashtag” ($USD or $USD@chatusername), “bot_command” (/start@jobs_bot), “url” (https://telegram.org), “email” (do-not-reply@telegram.org), “phone_number” (+1-212-555-0123), “bold” (bold text), “italic” (italic text), “underline” (underlined text), “strikethrough” (strikethrough text), “spoiler” (spoiler message), “blockquote” (block quotation), “expandable_blockquote” (collapsed-by-default block quotation), “code” (monowidth string), “pre” (monowidth block), “text_link” (for clickable text URLs), “text_mention” (for users without usernames), “custom_emoji” (for inline custom emoji stickers), or “date_time” (for formatted date and time). [] Type: string /// Offset in UTF-16 code units to the start of the entity @@ -994,11 +1094,17 @@ and [] MessageEntity = /// For “pre” only, the programming language of the entity text [] Language: string option - /// For “custom_emoji” only, unique identifier of the custom emoji. Use getCustomEmojiStickers to get full information about the sticker + /// For “custom_emoji” only, unique identifier of the custom emoji. Use getCustomEmojiStickers to get full information about the sticker. [] CustomEmojiId: string option + /// For “date_time” only, the Unix time associated with the entity + [] + UnixTime: int64 option + /// For “date_time” only, the string that defines the formatting of the date and time. See date-time entity formatting for more details. + [] + DateTimeFormat: string option } - static member Create(``type``: string, offset: int64, length: int64, ?url: string, ?user: User, ?language: string, ?customEmojiId: string) = + static member Create(``type``: string, offset: int64, length: int64, ?url: string, ?user: User, ?language: string, ?customEmojiId: string, ?unixTime: int64, ?dateTimeFormat: string) = { Type = ``type`` Offset = offset @@ -1007,6 +1113,8 @@ and [] MessageEntity = User = user Language = language CustomEmojiId = customEmojiId + UnixTime = unixTime + DateTimeFormat = dateTimeFormat } /// This object contains information about the quoted part of a message that is replied to by the given message. @@ -1015,7 +1123,7 @@ and [] TextQuote = /// Text of the quoted part of a message that is replied to by the given message [] Text: string - /// Special entities that appear in the quote. Currently, only bold, italic, underline, strikethrough, spoiler, and custom_emoji entities are kept in quotes. + /// Special entities that appear in the quote. Currently, only bold, italic, underline, strikethrough, spoiler, custom_emoji, and date_time entities are kept in quotes. [] Entities: MessageEntity[] option /// Approximate quote position in the original message in UTF-16 code units as specified by the sender @@ -1057,6 +1165,9 @@ and [] ExternalReplyInfo = /// Message is a general file, information about the file [] Document: Document option + /// Message is a live photo, information about the live photo + [] + LivePhoto: LivePhoto option /// Message contains paid media; information about the paid media [] PaidMedia: PaidMediaInfo option @@ -1112,7 +1223,7 @@ and [] ExternalReplyInfo = [] Venue: Venue option } - static member Create(origin: MessageOrigin, ?location: Location, ?invoice: Invoice, ?giveawayWinners: GiveawayWinners, ?giveaway: Giveaway, ?game: Game, ?dice: Dice, ?contact: Contact, ?checklist: Checklist, ?hasMediaSpoiler: bool, ?voice: Voice, ?poll: Poll, ?videoNote: VideoNote, ?story: Story, ?sticker: Sticker, ?photo: PhotoSize[], ?paidMedia: PaidMediaInfo, ?document: Document, ?audio: Audio, ?animation: Animation, ?linkPreviewOptions: LinkPreviewOptions, ?messageId: int64, ?chat: Chat, ?video: Video, ?venue: Venue) = + static member Create(origin: MessageOrigin, ?location: Location, ?invoice: Invoice, ?giveawayWinners: GiveawayWinners, ?giveaway: Giveaway, ?game: Game, ?dice: Dice, ?contact: Contact, ?checklist: Checklist, ?hasMediaSpoiler: bool, ?voice: Voice, ?videoNote: VideoNote, ?video: Video, ?story: Story, ?sticker: Sticker, ?photo: PhotoSize[], ?paidMedia: PaidMediaInfo, ?livePhoto: LivePhoto, ?document: Document, ?audio: Audio, ?animation: Animation, ?linkPreviewOptions: LinkPreviewOptions, ?messageId: int64, ?chat: Chat, ?poll: Poll, ?venue: Venue) = { Origin = origin Location = location @@ -1125,19 +1236,20 @@ and [] ExternalReplyInfo = Checklist = checklist HasMediaSpoiler = hasMediaSpoiler Voice = voice - Poll = poll VideoNote = videoNote + Video = video Story = story Sticker = sticker Photo = photo PaidMedia = paidMedia + LivePhoto = livePhoto Document = document Audio = audio Animation = animation LinkPreviewOptions = linkPreviewOptions MessageId = messageId Chat = chat - Video = video + Poll = poll Venue = venue } @@ -1147,13 +1259,13 @@ and [] ReplyParameters = /// Identifier of the message that will be replied to in the current chat, or in the chat chat_id if it is specified [] MessageId: int64 - /// If the message to be replied to is from a different chat, unique identifier for the chat or username of the channel (in the format @channelusername). Not supported for messages sent on behalf of a business account and messages from channel direct messages chats. + /// If the message to be replied to is from a different chat, unique identifier for the chat or username of the bot, supergroup or channel in the format @username. Not supported for messages sent on behalf of a business account and messages from channel direct messages chats. [] ChatId: ChatId option /// Pass True if the message should be sent even if the specified message to be replied to is not found. Always False for replies in another chat or forum topic. Always True for messages sent on behalf of a business account. [] AllowSendingWithoutReply: bool option - /// Quoted part of the message to be replied to; 0-1024 characters after entities parsing. The quote must be an exact substring of the message to be replied to, including bold, italic, underline, strikethrough, spoiler, and custom_emoji entities. The message will fail to send if the quote isn't found in the original message. + /// Quoted part of the message to be replied to; 0-1024 characters after entities parsing. The quote must be an exact substring of the message to be replied to, including bold, italic, underline, strikethrough, spoiler, custom_emoji, and date_time entities. The message will fail to send if the quote isn't found in the original message. [] Quote: string option /// Mode for parsing entities in the quote. See formatting options for more details. @@ -1168,8 +1280,11 @@ and [] ReplyParameters = /// Identifier of the specific checklist task to be replied to [] ChecklistTaskId: int64 option + /// Persistent identifier of the specific poll option to be replied to + [] + PollOptionId: string option } - static member Create(messageId: int64, ?chatId: ChatId, ?allowSendingWithoutReply: bool, ?quote: string, ?quoteParseMode: string, ?quoteEntities: MessageEntity[], ?quotePosition: int64, ?checklistTaskId: int64) = + static member Create(messageId: int64, ?chatId: ChatId, ?allowSendingWithoutReply: bool, ?quote: string, ?quoteParseMode: string, ?quoteEntities: MessageEntity[], ?quotePosition: int64, ?checklistTaskId: int64, ?pollOptionId: string) = { MessageId = messageId ChatId = chatId @@ -1179,6 +1294,7 @@ and [] ReplyParameters = QuoteEntities = quoteEntities QuotePosition = quotePosition ChecklistTaskId = checklistTaskId + PollOptionId = pollOptionId } /// This object describes the origin of a message. It can be one of @@ -1428,6 +1544,46 @@ and [] Document = FileSize = fileSize } +/// This object represents a live photo. +and [] LivePhoto = + { + /// Available sizes of the corresponding static photo + [] + Photo: PhotoSize[] option + /// Identifier for the video file which can be used to download or reuse the file + [] + FileId: string + /// Unique identifier for the video file which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + [] + FileUniqueId: string + /// Video width as defined by the sender + [] + Width: int64 + /// Video height as defined by the sender + [] + Height: int64 + /// Duration of the video in seconds as defined by the sender + [] + Duration: int64 + /// MIME type of the file as defined by the sender + [] + MimeType: string option + /// File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value. + [] + FileSize: int64 option + } + static member Create(fileId: string, fileUniqueId: string, width: int64, height: int64, duration: int64, ?photo: PhotoSize[], ?mimeType: string, ?fileSize: int64) = + { + FileId = fileId + FileUniqueId = fileUniqueId + Width = width + Height = height + Duration = duration + Photo = photo + MimeType = mimeType + FileSize = fileSize + } + /// This object represents a story. and [] Story = { @@ -1444,6 +1600,38 @@ and [] Story = Id = id } +/// This object represents a video file of a specific quality. +and [] VideoQuality = + { + /// Identifier for this file, which can be used to download or reuse the file + [] + FileId: string + /// Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + [] + FileUniqueId: string + /// Video width + [] + Width: int64 + /// Video height + [] + Height: int64 + /// Codec that was used to encode the video, for example, “h264”, “h265”, or “av01” + [] + Codec: string + /// File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value. + [] + FileSize: int64 option + } + static member Create(fileId: string, fileUniqueId: string, width: int64, height: int64, codec: string, ?fileSize: int64) = + { + FileId = fileId + FileUniqueId = fileUniqueId + Width = width + Height = height + Codec = codec + FileSize = fileSize + } + /// This object represents a video file. and [] Video = { @@ -1471,6 +1659,9 @@ and [] Video = /// Timestamp in seconds from which the video will play in the message [] StartTimestamp: int64 option + /// List of available qualities of the video + [] + Qualities: VideoQuality[] option /// Original filename as defined by the sender [] FileName: string option @@ -1481,7 +1672,7 @@ and [] Video = [] FileSize: int64 option } - static member Create(fileId: string, fileUniqueId: string, width: int64, height: int64, duration: int64, ?thumbnail: PhotoSize, ?cover: PhotoSize[], ?startTimestamp: int64, ?fileName: string, ?mimeType: string, ?fileSize: int64) = + static member Create(fileId: string, fileUniqueId: string, width: int64, height: int64, duration: int64, ?thumbnail: PhotoSize, ?cover: PhotoSize[], ?startTimestamp: int64, ?qualities: VideoQuality[], ?fileName: string, ?mimeType: string, ?fileSize: int64) = { FileId = fileId FileUniqueId = fileUniqueId @@ -1491,6 +1682,7 @@ and [] Video = Thumbnail = thumbnail Cover = cover StartTimestamp = startTimestamp + Qualities = qualities FileName = fileName MimeType = mimeType FileSize = fileSize @@ -1574,32 +1766,25 @@ and [] PaidMediaInfo = /// This object describes paid media. Currently, it can be one of and PaidMedia = - | Preview of PaidMediaPreview + | LivePhoto of PaidMediaLivePhoto | Photo of PaidMediaPhoto + | Preview of PaidMediaPreview | Video of PaidMediaVideo -/// The paid media isn't available before the payment. -and [] PaidMediaPreview = +/// The paid media is a live photo. +and [] PaidMediaLivePhoto = { - /// Type of the paid media, always “preview” + /// Type of the paid media, always “live_photo” [] Type: string - /// Media width as defined by the sender - [] - Width: int64 option - /// Media height as defined by the sender - [] - Height: int64 option - /// Duration of the media in seconds as defined by the sender - [] - Duration: int64 option + /// The photo + [] + LivePhoto: LivePhoto } - static member Create(``type``: string, ?width: int64, ?height: int64, ?duration: int64) = + static member Create(``type``: string, livePhoto: LivePhoto) = { Type = ``type`` - Width = width - Height = height - Duration = duration + LivePhoto = livePhoto } /// The paid media is a photo. @@ -1618,6 +1803,30 @@ and [] PaidMediaPhoto = Photo = photo } +/// The paid media isn't available before the payment. +and [] PaidMediaPreview = + { + /// Type of the paid media, always “preview” + [] + Type: string + /// Media width as defined by the sender + [] + Width: int64 option + /// Media height as defined by the sender + [] + Height: int64 option + /// Duration of the media in seconds as defined by the sender + [] + Duration: int64 option + } + static member Create(``type``: string, ?width: int64, ?height: int64, ?duration: int64) = + { + Type = ``type`` + Width = width + Height = height + Duration = duration + } + /// The paid media is a video. and [] PaidMediaVideo = { @@ -1678,24 +1887,126 @@ and [] Dice = Value = value } +/// Represents an HTTP link. +and [] Link = + { + /// URL of the link + [] + Url: string + } + static member Create(url: string) = + { + Url = url + } + +/// At most one of the optional fields can be present in any given object. +and [] PollMedia = + { + /// Media is an animation, information about the animation + [] + Animation: Animation option + /// Media is an audio file, information about the file; currently, can't be received in a poll option + [] + Audio: Audio option + /// Media is a general file, information about the file; currently, can't be received in a poll option + [] + Document: Document option + /// The HTTP link attached to the poll option + [] + Link: Link option + /// Media is a live photo, information about the live photo + [] + LivePhoto: LivePhoto option + /// Media is a shared location, information about the location + [] + Location: Location option + /// Media is a photo, available sizes of the photo + [] + Photo: PhotoSize[] option + /// Media is a sticker, information about the sticker; currently, for poll options only + [] + Sticker: Sticker option + /// Media is a venue, information about the venue + [] + Venue: Venue option + /// Media is a video, information about the video + [] + Video: Video option + } + static member Create(?animation: Animation, ?audio: Audio, ?document: Document, ?link: Link, ?livePhoto: LivePhoto, ?location: Location, ?photo: PhotoSize[], ?sticker: Sticker, ?venue: Venue, ?video: Video) = + { + Animation = animation + Audio = audio + Document = document + Link = link + LivePhoto = livePhoto + Location = location + Photo = photo + Sticker = sticker + Venue = venue + Video = video + } + +/// This object represents the content of a poll description or a quiz explanation to be sent. It should be one of +and InputPollMedia = + | Animation of InputMediaAnimation + | Audio of InputMediaAudio + | Document of InputMediaDocument + | LivePhoto of InputMediaLivePhoto + | Location of InputMediaLocation + | Photo of InputMediaPhoto + | Venue of InputMediaVenue + | Video of InputMediaVideo + +/// This object represents the content of a poll option to be sent. It should be one of +and InputPollOptionMedia = + | Animation of InputMediaAnimation + | Link of InputMediaLink + | LivePhoto of InputMediaLivePhoto + | Location of InputMediaLocation + | Photo of InputMediaPhoto + | Sticker of InputMediaSticker + | Venue of InputMediaVenue + | Video of InputMediaVideo + /// This object contains information about one answer option in a poll. and [] PollOption = { + /// Unique identifier of the option, persistent on option addition and deletion + [] + PersistentId: string /// Option text, 1-100 characters [] Text: string /// Special entities that appear in the option text. Currently, only custom emoji entities are allowed in poll option texts [] TextEntities: MessageEntity[] option - /// Number of users that voted for this option + /// Media added to the poll option + [] + Media: PollMedia option + /// Number of users who voted for this option; may be 0 if unknown [] VoterCount: int64 - } - static member Create(text: string, voterCount: int64, ?textEntities: MessageEntity[]) = - { + /// User who added the option; omitted if the option wasn't added by a user after poll creation + [] + AddedByUser: User option + /// Chat that added the option; omitted if the option wasn't added by a chat after poll creation + [] + AddedByChat: Chat option + /// Point in time (Unix timestamp) when the option was added; omitted if the option existed in the original poll + [] + AdditionDate: int64 option + } + static member Create(persistentId: string, text: string, voterCount: int64, ?textEntities: MessageEntity[], ?media: PollMedia, ?addedByUser: User, ?addedByChat: Chat, ?additionDate: int64) = + { + PersistentId = persistentId Text = text VoterCount = voterCount TextEntities = textEntities + Media = media + AddedByUser = addedByUser + AddedByChat = addedByChat + AdditionDate = additionDate } /// This object contains information about one answer option in a poll to be sent. @@ -1704,18 +2015,22 @@ and [] InputPollOption = /// Option text, 1-100 characters [] Text: string - /// Mode for parsing entities in the text. See formatting options for more details. Currently, only custom emoji entities are allowed + /// Mode for parsing entities in the text. See formatting options for more details. Currently, only custom emoji entities are allowed. [] TextParseMode: string option - /// A JSON-serialized list of special entities that appear in the poll option text. It can be specified instead of text_parse_mode + /// A JSON-serialized list of special entities that appear in the poll option text. It can be specified instead of text_parse_mode. [] TextEntities: MessageEntity[] option + /// Media added to the poll option + [] + Media: InputPollOptionMedia option } - static member Create(text: string, ?textParseMode: string, ?textEntities: MessageEntity[]) = + static member Create(text: string, ?textParseMode: string, ?textEntities: MessageEntity[], ?media: InputPollOptionMedia) = { Text = text TextParseMode = textParseMode TextEntities = textEntities + Media = media } /// This object represents an answer of a user in a non-anonymous poll. @@ -1733,11 +2048,15 @@ and [] PollAnswer = /// 0-based identifiers of chosen answer options. May be empty if the vote was retracted. [] OptionIds: int64[] + /// Persistent identifiers of the chosen answer options. May be empty if the vote was retracted. + [] + OptionPersistentIds: string[] } - static member Create(pollId: string, optionIds: int64[], ?voterChat: Chat, ?user: User) = + static member Create(pollId: string, optionIds: int64[], optionPersistentIds: string[], ?voterChat: Chat, ?user: User) = { PollId = pollId OptionIds = optionIds + OptionPersistentIds = optionPersistentIds VoterChat = voterChat User = user } @@ -1772,38 +2091,66 @@ and [] Poll = /// True, if the poll allows multiple answers [] AllowsMultipleAnswers: bool - /// 0-based identifier of the correct answer option. Available only for polls in the quiz mode, which are closed, or was sent (not forwarded) by the bot or to the private chat with the bot. - [] - CorrectOptionId: int64 option + /// True, if the poll allows to change the chosen answer options + [] + AllowsRevoting: bool + /// True if voting is limited to users who have been members of the chat where the poll was originally sent for more than 24 hours + [] + MembersOnly: bool + /// A list of two-letter ISO 3166-1 alpha-2 country codes indicating the countries from which users can vote in the poll. The country code “FT” is used for users with anonymous numbers. If omitted, then users from any country can participate in the poll. + [] + CountryCodes: string[] option + /// Array of 0-based identifiers of the correct answer options. Available only for polls in quiz mode which are closed or were sent (not forwarded) by the bot or to the private chat with the bot. + [] + CorrectOptionIds: int64[] option /// Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters [] Explanation: string option /// Special entities like usernames, URLs, bot commands, etc. that appear in the explanation [] ExplanationEntities: MessageEntity[] option + /// Media added to the quiz explanation + [] + ExplanationMedia: PollMedia option /// Amount of time in seconds the poll will be active after creation [] OpenPeriod: int64 option /// Point in time (Unix timestamp) when the poll will be automatically closed [] CloseDate: int64 option + /// Description of the poll; for polls inside the Message object only + [] + Description: string option + /// Special entities like usernames, URLs, bot commands, etc. that appear in the description + [] + DescriptionEntities: MessageEntity[] option + /// Media added to the poll description; for polls inside the Message object only + [] + Media: PollMedia option } - static member Create(id: string, question: string, options: PollOption[], totalVoterCount: int64, isClosed: bool, isAnonymous: bool, ``type``: string, allowsMultipleAnswers: bool, ?questionEntities: MessageEntity[], ?correctOptionId: int64, ?explanation: string, ?explanationEntities: MessageEntity[], ?openPeriod: int64, ?closeDate: int64) = + static member Create(id: string, allowsRevoting: bool, allowsMultipleAnswers: bool, ``type``: string, isAnonymous: bool, membersOnly: bool, totalVoterCount: int64, options: PollOption[], question: string, isClosed: bool, ?questionEntities: MessageEntity[], ?descriptionEntities: MessageEntity[], ?countryCodes: string[], ?correctOptionIds: int64[], ?explanation: string, ?explanationEntities: MessageEntity[], ?explanationMedia: PollMedia, ?openPeriod: int64, ?closeDate: int64, ?description: string, ?media: PollMedia) = { Id = id - Question = question - Options = options + AllowsRevoting = allowsRevoting + AllowsMultipleAnswers = allowsMultipleAnswers + Type = ``type`` + IsAnonymous = isAnonymous + MembersOnly = membersOnly TotalVoterCount = totalVoterCount + Options = options + Question = question IsClosed = isClosed - IsAnonymous = isAnonymous - Type = ``type`` - AllowsMultipleAnswers = allowsMultipleAnswers QuestionEntities = questionEntities - CorrectOptionId = correctOptionId + DescriptionEntities = descriptionEntities + CountryCodes = countryCodes + CorrectOptionIds = correctOptionIds Explanation = explanation ExplanationEntities = explanationEntities + ExplanationMedia = explanationMedia OpenPeriod = openPeriod CloseDate = closeDate + Description = description + Media = media } /// Describes a task in a checklist. @@ -1818,19 +2165,23 @@ and [] ChecklistTask = /// Special entities that appear in the task text [] TextEntities: MessageEntity[] option - /// User that completed the task; omitted if the task wasn't completed + /// User that completed the task; omitted if the task wasn't completed by a user [] CompletedByUser: User option + /// Chat that completed the task; omitted if the task wasn't completed by a chat + [] + CompletedByChat: Chat option /// Point in time (Unix timestamp) when the task was completed; 0 if the task wasn't completed [] CompletionDate: int64 option } - static member Create(id: int64, text: string, ?textEntities: MessageEntity[], ?completedByUser: User, ?completionDate: int64) = + static member Create(id: int64, text: string, ?textEntities: MessageEntity[], ?completedByUser: User, ?completedByChat: Chat, ?completionDate: int64) = { Id = id Text = text TextEntities = textEntities CompletedByUser = completedByUser + CompletedByChat = completedByChat CompletionDate = completionDate } @@ -1874,7 +2225,7 @@ and [] InputChecklistTask = /// Mode for parsing entities in the text. See formatting options for more details. [] ParseMode: ParseMode option - /// List of special entities that appear in the text, which can be specified instead of parse_mode. Currently, only bold, italic, underline, strikethrough, spoiler, and custom_emoji entities are allowed. + /// List of special entities that appear in the text, which can be specified instead of parse_mode. Currently, only bold, italic, underline, strikethrough, spoiler, custom_emoji, and date_time entities are allowed. [] TextEntities: MessageEntity[] option } @@ -1895,7 +2246,7 @@ and [] InputChecklist = /// Mode for parsing entities in the title. See formatting options for more details. [] ParseMode: ParseMode option - /// List of special entities that appear in the title, which can be specified instead of parse_mode. Currently, only bold, italic, underline, strikethrough, spoiler, and custom_emoji entities are allowed. + /// List of special entities that appear in the title, which can be specified instead of parse_mode. Currently, only bold, italic, underline, strikethrough, spoiler, custom_emoji, and date_time entities are allowed. [] TitleEntities: MessageEntity[] option /// List of 1-30 tasks in the checklist @@ -1989,7 +2340,7 @@ and [] Location = /// This object represents a venue. and [] Venue = { - /// Venue location. Can't be a live location + /// Venue location. Can't be a live location. [] Location: Location /// Name of the venue @@ -2070,16 +2421,92 @@ and [] MessageAutoDeleteTimerChanged = MessageAutoDeleteTime = messageAutoDeleteTime } -/// This object represents a service message about a user boosting a chat. -and [] ChatBoostAdded = +/// This object contains information about the bot that was created to be managed by the current bot. +and [] ManagedBotCreated = { - /// Number of boosts added by the user - [] - BoostCount: int64 + /// Information about the bot. The bot's token can be fetched using the method getManagedBotToken. + [] + Bot: User } - static member Create(boostCount: int64) = + static member Create(bot: User) = { - BoostCount = boostCount + Bot = bot + } + +/// This object contains information about the creation, token update, or owner update of a bot that is managed by the current bot. +and [] ManagedBotUpdated = + { + /// User that created the bot + [] + User: User + /// Information about the bot. Token of the bot can be fetched using the method getManagedBotToken. + [] + Bot: User + } + static member Create(user: User, bot: User) = + { + User = user + Bot = bot + } + +/// Describes a service message about an option added to a poll. +and [] PollOptionAdded = + { + /// Message containing the poll to which the option was added, if known. Note that the Message object in this field will not contain the reply_to_message field even if it itself is a reply. + [] + PollMessage: MaybeInaccessibleMessage option + /// Unique identifier of the added option + [] + OptionPersistentId: string + /// Option text + [] + OptionText: string + /// Special entities that appear in the option_text + [] + OptionTextEntities: MessageEntity[] option + } + static member Create(optionPersistentId: string, optionText: string, ?pollMessage: MaybeInaccessibleMessage, ?optionTextEntities: MessageEntity[]) = + { + OptionPersistentId = optionPersistentId + OptionText = optionText + PollMessage = pollMessage + OptionTextEntities = optionTextEntities + } + +/// Describes a service message about an option deleted from a poll. +and [] PollOptionDeleted = + { + /// Message containing the poll from which the option was deleted, if known. Note that the Message object in this field will not contain the reply_to_message field even if it itself is a reply. + [] + PollMessage: MaybeInaccessibleMessage option + /// Unique identifier of the deleted option + [] + OptionPersistentId: string + /// Option text + [] + OptionText: string + /// Special entities that appear in the option_text + [] + OptionTextEntities: MessageEntity[] option + } + static member Create(optionPersistentId: string, optionText: string, ?pollMessage: MaybeInaccessibleMessage, ?optionTextEntities: MessageEntity[]) = + { + OptionPersistentId = optionPersistentId + OptionText = optionText + PollMessage = pollMessage + OptionTextEntities = optionTextEntities + } + +/// This object represents a service message about a user boosting a chat. +and [] ChatBoostAdded = + { + /// Number of boosts added by the user + [] + BoostCount: int64 + } + static member Create(boostCount: int64) = + { + BoostCount = boostCount } /// This object describes the way a background is filled based on the selected colors. Currently, it can be one of @@ -2214,7 +2641,7 @@ and [] BackgroundTypePattern = /// Intensity of the pattern when it is shown above the filled background; 0-100 [] Intensity: int64 - /// True, if the background fill must be applied only to the pattern itself. All other pixels are black in this case. For dark themes only + /// True, if the background fill must be applied only to the pattern itself. All other pixels are black in this case. For dark themes only. [] IsInverted: bool option /// True, if the background moves slightly when the device is tilted @@ -2271,12 +2698,16 @@ and [] ForumTopicCreated = /// Unique identifier of the custom emoji shown as the topic icon [] IconCustomEmojiId: string option + /// True, if the name of the topic wasn't specified explicitly by its creator and likely needs to be changed by the bot + [] + IsNameImplicit: bool option } - static member Create(name: string, iconColor: int64, ?iconCustomEmojiId: string) = + static member Create(name: string, iconColor: int64, ?iconCustomEmojiId: string, ?isNameImplicit: bool) = { Name = name IconColor = iconColor IconCustomEmojiId = iconCustomEmojiId + IsNameImplicit = isNameImplicit } /// This object represents a service message about a forum topic closed in the chat. Currently holds no information. @@ -2345,7 +2776,7 @@ and [] UsersShared = /// Identifier of the request [] RequestId: int64 - /// Information about users shared with the bot. + /// Information about users shared with the bot [] Users: SharedUser[] } @@ -2364,10 +2795,10 @@ and [] ChatShared = /// Identifier of the shared chat. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot may not have access to the chat and could be unable to use this identifier, unless the chat is already known to the bot by some other means. [] ChatId: int64 - /// Title of the chat, if the title was requested by the bot. + /// Title of the chat, if the title was requested by the bot [] Title: string option - /// Username of the chat, if the username was requested by the bot and available. + /// Username of the chat, if the username was requested by the bot and available [] Username: string option /// Available sizes of the chat photo, if the photo was requested by the bot @@ -2541,7 +2972,7 @@ and [] SuggestedPostPaid = /// Message containing the suggested post. Note that the Message object in this field will not contain the reply_to_message field even if it itself is a reply. [] SuggestedPostMessage: Message option - /// Currency in which the payment was made. Currently, one of “XTR” for Telegram Stars or “TON” for toncoins + /// Currency in which the payment was made. Currently, one of “XTR” for Telegram Stars or “TON” for toncoins. [] Currency: string /// The amount of the currency that was received by the channel in nanotoncoins; for payments in toncoins only @@ -2717,7 +3148,7 @@ and [] LinkPreviewOptions = /// True, if the link preview is disabled [] IsDisabled: bool option - /// URL to use for the link preview. If empty, then the first URL found in the message text will be used + /// URL to use for the link preview. If empty, then the first URL found in the message text will be used. [] Url: string option /// True, if the media in the link preview is supposed to be shrunk; ignored if the URL isn't explicitly specified or media size change isn't supported for the preview @@ -2739,10 +3170,10 @@ and [] LinkPreviewOptions = ShowAboveText = showAboveText } -/// Desribes price of a suggested post. +/// Describes the price of a suggested post. and [] SuggestedPostPrice = { - /// Currency in which the post will be paid. Currently, must be one of “XTR” for Telegram Stars or “TON” for toncoins + /// Currency in which the post will be paid. Currently, must be one of “XTR” for Telegram Stars or “TON” for toncoins. [] Currency: string /// The amount of the currency that will be paid for the post in the smallest units of the currency, i.e. Telegram Stars or nanotoncoins. Currently, price in Telegram Stars must be between 5 and 100000, and price in nanotoncoins must be between 10000000 and 10000000000000. @@ -2794,10 +3225,10 @@ and [] SuggestedPostParameters = /// Describes a topic of a direct messages chat. and [] DirectMessagesTopic = { - /// Unique identifier of the topic + /// Unique identifier of the topic. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. [] TopicId: int64 - /// Information about the user that created the topic. Currently, it is always present + /// Information about the user that created the topic. Currently, it is always present. [] User: User option } @@ -2823,6 +3254,22 @@ and [] UserProfilePhotos = Photos = photos } +/// This object represents the audios displayed on a user's profile. +and [] UserProfileAudios = + { + /// Total number of profile audios for the target user + [] + TotalCount: int64 + /// Requested profile audios + [] + Audios: Audio[] + } + static member Create(totalCount: int64, audios: Audio[]) = + { + TotalCount = totalCount + Audios = audios + } + /// This object represents a file ready to be downloaded. The file can be downloaded via the link https://api.telegram.org/file/bot/. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile. and [] File = { @@ -2859,7 +3306,7 @@ and [] WebAppInfo = Url = url } -/// This object represents a custom keyboard with reply options (see Introduction to bots for details and examples). Not supported in channels and for messages sent on behalf of a Telegram Business account. +/// This object represents a custom keyboard with reply options (see Introduction to bots for details and examples). Not supported in channels and for messages sent on behalf of a business account. and [] ReplyKeyboardMarkup = { /// Array of button rows, each represented by an Array of KeyboardButton objects @@ -2893,19 +3340,27 @@ and [] ReplyKeyboardMarkup = Selective = selective } -/// This object represents one button of the reply keyboard. At most one of the optional fields must be used to specify type of the button. For simple text buttons, String can be used instead of this object to specify the button text. -/// Note:request_users and request_chat options will only work in Telegram versions released after 3 February, 2023. Older clients will display unsupported message. +/// This object represents one button of the reply keyboard. At most one of the fields other than text, icon_custom_emoji_id, and style must be used to specify the type of the button. For simple text buttons, String can be used instead of this object to specify the button text. and [] KeyboardButton = { - /// Text of the button. If none of the optional fields are used, it will be sent as a message when the button is pressed + /// Text of the button. If none of the fields other than text, icon_custom_emoji_id, and style are used, it will be sent as a message when the button is pressed. [] Text: string + /// Unique identifier of the custom emoji shown before the text of the button. Can only be used by bots that purchased additional usernames on Fragment or in the messages directly sent by the bot to private, group and supergroup chats if the owner of the bot has a Telegram Premium subscription. + [] + IconCustomEmojiId: string option + /// Style of the button. Must be one of “danger” (red), “success” (green) or “primary” (blue). If omitted, then an app-specific style is used. + [] + Style: string option /// If specified, pressing the button will open a list of suitable users. Identifiers of selected users will be sent to the bot in a “users_shared” service message. Available in private chats only. [] RequestUsers: KeyboardButtonRequestUsers option /// If specified, pressing the button will open a list of suitable chats. Tapping on a chat will send its identifier to the bot in a “chat_shared” service message. Available in private chats only. [] RequestChat: KeyboardButtonRequestChat option + /// If specified, pressing the button will ask the user to create and share a bot that will be managed by the current bot. Available for bots that enabled management of other bots in the @BotFather Mini App. Available in private chats only. + [] + RequestManagedBot: KeyboardButtonRequestManagedBot option /// If True, the user's phone number will be sent as a contact when the button is pressed. Available in private chats only. [] RequestContact: bool option @@ -2919,11 +3374,14 @@ and [] KeyboardButton = [] WebApp: WebAppInfo option } - static member Create(text: string, ?requestUsers: KeyboardButtonRequestUsers, ?requestChat: KeyboardButtonRequestChat, ?requestContact: bool, ?requestLocation: bool, ?requestPoll: KeyboardButtonPollType, ?webApp: WebAppInfo) = + static member Create(text: string, ?iconCustomEmojiId: string, ?style: string, ?requestUsers: KeyboardButtonRequestUsers, ?requestChat: KeyboardButtonRequestChat, ?requestManagedBot: KeyboardButtonRequestManagedBot, ?requestContact: bool, ?requestLocation: bool, ?requestPoll: KeyboardButtonPollType, ?webApp: WebAppInfo) = { Text = text + IconCustomEmojiId = iconCustomEmojiId + Style = style RequestUsers = requestUsers RequestChat = requestChat + RequestManagedBot = requestManagedBot RequestContact = requestContact RequestLocation = requestLocation RequestPoll = requestPoll @@ -2933,7 +3391,7 @@ and [] KeyboardButton = /// This object defines the criteria used to request suitable users. Information about the selected users will be shared with the bot when the corresponding button is pressed. More about requesting users » and [] KeyboardButtonRequestUsers = { - /// Signed 32-bit identifier of the request that will be received back in the UsersShared object. Must be unique within the message + /// Signed 32-bit identifier of the request that will be received back in the UsersShared object. Must be unique within the message. [] RequestId: int64 /// Pass True to request bots, pass False to request regular users. If not specified, no additional restrictions are applied. @@ -2969,10 +3427,10 @@ and [] KeyboardButtonRequestUsers = /// This object defines the criteria used to request a suitable chat. Information about the selected chat will be shared with the bot when the corresponding button is pressed. The bot will be granted requested rights in the chat if appropriate. More about requesting chats ». and [] KeyboardButtonRequestChat = { - /// Signed 32-bit identifier of the request, which will be received back in the ChatShared object. Must be unique within the message + /// Signed 32-bit identifier of the request, which will be received back in the ChatShared object. Must be unique within the message. [] RequestId: int64 - /// Pass True to request a channel chat, pass False to request a group or a supergroup chat. + /// Pass True to request a channel chat, pass False to request a group or a supergroup chat [] ChatIsChannel: bool /// Pass True to request a forum supergroup, pass False to request a non-forum chat. If not specified, no additional restrictions are applied. @@ -3018,6 +3476,26 @@ and [] KeyboardButtonRequestChat = RequestPhoto = requestPhoto } +/// This object defines the parameters for the creation of a managed bot. Information about the created bot will be shared with the bot using the update managed_bot and a Message with the field managed_bot_created. +and [] KeyboardButtonRequestManagedBot = + { + /// Signed 32-bit identifier of the request. Must be unique within the message. + [] + RequestId: int64 + /// Suggested name for the bot + [] + SuggestedName: string option + /// Suggested username for the bot + [] + SuggestedUsername: string option + } + static member Create(requestId: int64, ?suggestedName: string, ?suggestedUsername: string) = + { + RequestId = requestId + SuggestedName = suggestedName + SuggestedUsername = suggestedUsername + } + /// This object represents type of a poll, which is allowed to be created and sent when the corresponding button is pressed. and [] KeyboardButtonPollType = { @@ -3030,7 +3508,7 @@ and [] KeyboardButtonPollType = Type = ``type`` } -/// Upon receiving a message with this object, Telegram clients will remove the current custom keyboard and display the default letter-keyboard. By default, custom keyboards are displayed until a new keyboard is sent by a bot. An exception is made for one-time keyboards that are hidden immediately after the user presses a button (see ReplyKeyboardMarkup). Not supported in channels and for messages sent on behalf of a Telegram Business account. +/// Upon receiving a message with this object, Telegram clients will remove the current custom keyboard and display the default letter-keyboard. By default, custom keyboards are displayed until a new keyboard is sent by a bot. An exception is made for one-time keyboards that are hidden immediately after the user presses a button (see ReplyKeyboardMarkup). Not supported in channels and for messages sent on behalf of a business account. and [] ReplyKeyboardRemove = { /// Requests clients to remove the custom keyboard (user will not be able to summon this keyboard; if you want to hide the keyboard from sight but keep it accessible, use one_time_keyboard in ReplyKeyboardMarkup) @@ -3060,36 +3538,42 @@ and [] InlineKeyboardMarkup = InlineKeyboard = inlineKeyboard } -/// This object represents one button of an inline keyboard. Exactly one of the optional fields must be used to specify type of the button. +/// This object represents one button of an inline keyboard. Exactly one of the fields other than text, icon_custom_emoji_id, and style must be used to specify the type of the button. and [] InlineKeyboardButton = { /// Label text on the button [] Text: string + /// Unique identifier of the custom emoji shown before the text of the button. Can only be used by bots that purchased additional usernames on Fragment or in the messages directly sent by the bot to private, group and supergroup chats if the owner of the bot has a Telegram Premium subscription. + [] + IconCustomEmojiId: string option + /// Style of the button. Must be one of “danger” (red), “success” (green) or “primary” (blue). If omitted, then an app-specific style is used. + [] + Style: string option /// HTTP or tg:// URL to be opened when the button is pressed. Links tg://user?id= can be used to mention a user by their identifier without using a username, if this is allowed by their privacy settings. [] Url: string option /// Data to be sent in a callback query to the bot when the button is pressed, 1-64 bytes [] CallbackData: string option - /// Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method answerWebAppQuery. Available only in private chats between a user and the bot. Not supported for messages sent on behalf of a Telegram Business account. + /// Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method answerWebAppQuery. Available only in private chats between a user and the bot. Not supported for messages sent on behalf of a business account. [] WebApp: WebAppInfo option /// An HTTPS URL used to automatically authorize the user. Can be used as a replacement for the Telegram Login Widget. [] LoginUrl: LoginUrl option - /// If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted. Not supported for messages sent in channel direct messages chats and on behalf of a Telegram Business account. + /// If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted. Not supported for messages sent in channel direct messages chats and on behalf of a business account. [] SwitchInlineQuery: string option /// If set, pressing the button will insert the bot's username and the specified inline query in the current chat's input field. May be empty, in which case only the bot's username will be inserted. /// - /// This offers a quick way for the user to open your bot in inline mode in the same chat - good for selecting something from multiple options. Not supported in channels and for messages sent in channel direct messages chats and on behalf of a Telegram Business account. + /// This offers a quick way for the user to open your bot in inline mode in the same chat - good for selecting something from multiple options. Not supported in channels and for messages sent in channel direct messages chats and on behalf of a business account. [] SwitchInlineQueryCurrentChat: string option - /// If set, pressing the button will prompt the user to select one of their chats of the specified type, open that chat and insert the bot's username and the specified inline query in the input field. Not supported for messages sent in channel direct messages chats and on behalf of a Telegram Business account. + /// If set, pressing the button will prompt the user to select one of their chats of the specified type, open that chat and insert the bot's username and the specified inline query in the input field. Not supported for messages sent in channel direct messages chats and on behalf of a business account. [] SwitchInlineQueryChosenChat: SwitchInlineQueryChosenChat option - /// Description of the button that copies the specified text to the clipboard. + /// Description of the button that copies the specified text to the clipboard [] CopyText: CopyTextButton option /// Description of the game that will be launched when the user presses the button. @@ -3103,9 +3587,11 @@ and [] InlineKeyboardButton = [] Pay: bool option } - static member Create(text: string, ?url: string, ?callbackData: string, ?webApp: WebAppInfo, ?loginUrl: LoginUrl, ?switchInlineQuery: string, ?switchInlineQueryCurrentChat: string, ?switchInlineQueryChosenChat: SwitchInlineQueryChosenChat, ?copyText: CopyTextButton, ?callbackGame: CallbackGame, ?pay: bool) = + static member Create(text: string, ?iconCustomEmojiId: string, ?style: string, ?url: string, ?callbackData: string, ?webApp: WebAppInfo, ?loginUrl: LoginUrl, ?switchInlineQuery: string, ?switchInlineQueryCurrentChat: string, ?switchInlineQueryChosenChat: SwitchInlineQueryChosenChat, ?copyText: CopyTextButton, ?callbackGame: CallbackGame, ?pay: bool) = { Text = text + IconCustomEmojiId = iconCustomEmojiId + Style = style Url = url CallbackData = callbackData WebApp = webApp @@ -3127,13 +3613,13 @@ and [] LoginUrl = /// NOTE: You must always check the hash of the received data to verify the authentication and the integrity of the data as described in Checking authorization. [] Url: string - /// New text of the button in forwarded messages. + /// New text of the button in forwarded messages [] ForwardText: string option /// Username of a bot, which will be used for user authorization. See Setting up a bot for more details. If not specified, the current bot's username will be assumed. The url's domain must be the same as the domain linked with the bot. See Linking your domain to the bot for more details. [] BotUsername: string option - /// Pass True to request the permission for your bot to send messages to the user. + /// Pass True to request the permission for your bot to send messages to the user [] RequestWriteAccess: bool option } @@ -3148,7 +3634,7 @@ and [] LoginUrl = /// This object represents an inline button that switches the current user to inline mode in a chosen chat, with an optional default inline query. and [] SwitchInlineQueryChosenChat = { - /// The default inline query to be inserted in the input field. If left empty, only the bot's username will be inserted + /// The default inline query to be inserted in the input field. If left empty, only the bot's username will be inserted. [] Query: string option /// True, if private chats with users can be chosen @@ -3197,7 +3683,7 @@ and [] CallbackQuery = /// Message sent by the bot with the callback button that originated the query [] Message: MaybeInaccessibleMessage option - /// Identifier of the message sent via the bot in inline mode, that originated the query. + /// Identifier of the message sent via the bot in inline mode, that originated the query [] InlineMessageId: string option /// Global identifier, uniquely corresponding to the chat to which the message with the callback button was sent. Useful for high scores in games. @@ -3221,7 +3707,7 @@ and [] CallbackQuery = GameShortName = gameShortName } -/// Upon receiving a message with this object, Telegram clients will display a reply interface to the user (act as if the user has selected the bot's message and tapped 'Reply'). This can be extremely useful if you want to create user-friendly step-by-step interfaces without having to sacrifice privacy mode. Not supported in channels and for messages sent on behalf of a Telegram Business account. +/// Upon receiving a message with this object, Telegram clients will display a reply interface to the user (act as if the user has selected the bot's message and tapped 'Reply'). This can be extremely useful if you want to create user-friendly step-by-step interfaces without having to sacrifice privacy mode. Not supported in channels and for messages sent on behalf of a user account. and [] ForceReply = { /// Shows reply interface to the user, as if they manually selected the bot's message and tapped 'Reply' @@ -3368,11 +3854,14 @@ and [] ChatAdministratorRights = /// True, if the administrator can manage direct messages of the channel and decline suggested posts; for channels only [] CanManageDirectMessages: bool option + /// True, if the administrator can edit the tags of regular members; for groups and supergroups only. If omitted defaults to the value of can_pin_messages. + [] + CanManageTags: bool option /// DEPRECATED: use can_manage_video_chats instead [] CanManageVoiceChats: bool option } - static member Create(isAnonymous: bool, canDeleteStories: bool, canEditStories: bool, canInviteUsers: bool, canChangeInfo: bool, canPostStories: bool, canRestrictMembers: bool, canManageVideoChats: bool, canDeleteMessages: bool, canManageChat: bool, canPromoteMembers: bool, ?canManageDirectMessages: bool, ?canPostMessages: bool, ?canEditMessages: bool, ?canPinMessages: bool, ?canManageTopics: bool, ?canManageVoiceChats: bool) = + static member Create(isAnonymous: bool, canDeleteStories: bool, canEditStories: bool, canInviteUsers: bool, canChangeInfo: bool, canPostStories: bool, canRestrictMembers: bool, canManageVideoChats: bool, canDeleteMessages: bool, canManageChat: bool, canPromoteMembers: bool, ?canManageTags: bool, ?canPostMessages: bool, ?canEditMessages: bool, ?canPinMessages: bool, ?canManageTopics: bool, ?canManageDirectMessages: bool, ?canManageVoiceChats: bool) = { IsAnonymous = isAnonymous CanDeleteStories = canDeleteStories @@ -3385,11 +3874,12 @@ and [] ChatAdministratorRights = CanDeleteMessages = canDeleteMessages CanManageChat = canManageChat CanPromoteMembers = canPromoteMembers - CanManageDirectMessages = canManageDirectMessages + CanManageTags = canManageTags CanPostMessages = canPostMessages CanEditMessages = canEditMessages CanPinMessages = canPinMessages CanManageTopics = canManageTopics + CanManageDirectMessages = canManageDirectMessages CanManageVoiceChats = canManageVoiceChats } @@ -3411,7 +3901,7 @@ and [] ChatMemberUpdated = /// New information about the chat member [] NewChatMember: ChatMember - /// Chat invite link, which was used by the user to join the chat; for joining by invite link events only. + /// Chat invite link, which was used by the user to join the chat; for joining by invite link events only [] InviteLink: ChatInviteLink option /// True, if the user joined the chat after sending a direct join request without using an invite link and being approved by an administrator @@ -3526,6 +4016,9 @@ and [] ChatMemberAdministrator = /// True, if the administrator can manage direct messages of the channel and decline suggested posts; for channels only [] CanManageDirectMessages: bool option + /// True, if the administrator can edit the tags of regular members; for groups and supergroups only. If omitted defaults to the value of can_pin_messages. + [] + CanManageTags: bool option /// Custom title for this user [] CustomTitle: string option @@ -3533,7 +4026,7 @@ and [] ChatMemberAdministrator = [] CanManageVoiceChats: bool option } - static member Create(status: string, canDeleteStories: bool, canEditStories: bool, canPostStories: bool, canChangeInfo: bool, canPromoteMembers: bool, canRestrictMembers: bool, canInviteUsers: bool, canDeleteMessages: bool, canManageChat: bool, isAnonymous: bool, canBeEdited: bool, user: User, canManageVideoChats: bool, ?customTitle: string, ?canPostMessages: bool, ?canEditMessages: bool, ?canPinMessages: bool, ?canManageTopics: bool, ?canManageDirectMessages: bool, ?canManageVoiceChats: bool) = + static member Create(status: string, canDeleteStories: bool, canEditStories: bool, canPostStories: bool, canChangeInfo: bool, canPromoteMembers: bool, canRestrictMembers: bool, canInviteUsers: bool, canDeleteMessages: bool, canManageChat: bool, isAnonymous: bool, canBeEdited: bool, user: User, canManageVideoChats: bool, ?customTitle: string, ?canPostMessages: bool, ?canEditMessages: bool, ?canPinMessages: bool, ?canManageTopics: bool, ?canManageDirectMessages: bool, ?canManageTags: bool, ?canManageVoiceChats: bool) = { Status = status CanDeleteStories = canDeleteStories @@ -3555,6 +4048,7 @@ and [] ChatMemberAdministrator = CanPinMessages = canPinMessages CanManageTopics = canManageTopics CanManageDirectMessages = canManageDirectMessages + CanManageTags = canManageTags CanManageVoiceChats = canManageVoiceChats } @@ -3564,6 +4058,9 @@ and [] ChatMemberMember = /// The member's status in the chat, always “member” [] Status: string + /// Tag of the member + [] + Tag: string option /// Information about the user [] User: User @@ -3571,10 +4068,11 @@ and [] ChatMemberMember = [] UntilDate: DateTime option } - static member Create(status: string, user: User, ?untilDate: DateTime) = + static member Create(status: string, user: User, ?tag: string, ?untilDate: DateTime) = { Status = status User = user + Tag = tag UntilDate = untilDate } @@ -3584,13 +4082,16 @@ and [] ChatMemberRestricted = /// The member's status in the chat, always “restricted” [] Status: string + /// Tag of the member + [] + Tag: string option /// Information about the user [] User: User /// True, if the user is a member of the chat at the moment of the request [] IsMember: bool - /// True, if the user is allowed to send text messages, contacts, giveaways, giveaway winners, invoices, locations and venues + /// True, if the user is allowed to send text messages, rich messages, contacts, giveaways, giveaway winners, invoices, locations and venues [] CanSendMessages: bool /// True, if the user is allowed to send audios @@ -3620,6 +4121,12 @@ and [] ChatMemberRestricted = /// True, if the user is allowed to add web page previews to their messages [] CanAddWebPagePreviews: bool + /// True, if the user is allowed to react to messages + [] + CanReactToMessages: bool + /// True, if the user is allowed to edit their own tag + [] + CanEditTag: bool /// True, if the user is allowed to change the chat title, photo and other settings [] CanChangeInfo: bool @@ -3632,21 +4139,23 @@ and [] ChatMemberRestricted = /// True, if the user is allowed to create forum topics [] CanManageTopics: bool - /// Date when restrictions will be lifted for this user; Unix time. If 0, then the user is restricted forever + /// Date when restrictions will be lifted for this user; Unix time. If 0, then the user is restricted forever. [] UntilDate: DateTime } - static member Create(status: string, canPinMessages: bool, canInviteUsers: bool, canChangeInfo: bool, canAddWebPagePreviews: bool, canSendOtherMessages: bool, canSendPolls: bool, canSendVoiceNotes: bool, canSendVideoNotes: bool, canSendVideos: bool, canSendPhotos: bool, canSendDocuments: bool, canSendAudios: bool, canSendMessages: bool, isMember: bool, user: User, canManageTopics: bool, untilDate: DateTime) = + static member Create(status: string, canPinMessages: bool, canInviteUsers: bool, canChangeInfo: bool, canEditTag: bool, canReactToMessages: bool, canAddWebPagePreviews: bool, canSendOtherMessages: bool, canSendPolls: bool, canManageTopics: bool, canSendVoiceNotes: bool, canSendVideos: bool, canSendPhotos: bool, canSendDocuments: bool, canSendAudios: bool, canSendMessages: bool, isMember: bool, user: User, canSendVideoNotes: bool, untilDate: DateTime, ?tag: string) = { Status = status CanPinMessages = canPinMessages CanInviteUsers = canInviteUsers CanChangeInfo = canChangeInfo + CanEditTag = canEditTag + CanReactToMessages = canReactToMessages CanAddWebPagePreviews = canAddWebPagePreviews CanSendOtherMessages = canSendOtherMessages CanSendPolls = canSendPolls + CanManageTopics = canManageTopics CanSendVoiceNotes = canSendVoiceNotes - CanSendVideoNotes = canSendVideoNotes CanSendVideos = canSendVideos CanSendPhotos = canSendPhotos CanSendDocuments = canSendDocuments @@ -3654,8 +4163,9 @@ and [] ChatMemberRestricted = CanSendMessages = canSendMessages IsMember = isMember User = user - CanManageTopics = canManageTopics + CanSendVideoNotes = canSendVideoNotes UntilDate = untilDate + Tag = tag } /// Represents a chat member that isn't currently a member of the chat, but may join it themselves. @@ -3683,7 +4193,7 @@ and [] ChatMemberBanned = /// Information about the user [] User: User - /// Date when restrictions will be lifted for this user; Unix time. If 0, then the user is banned forever + /// Date when restrictions will be lifted for this user; Unix time. If 0, then the user is banned forever. [] UntilDate: DateTime } @@ -3709,14 +4219,17 @@ and [] ChatJoinRequest = /// Date the request was sent in Unix time [] Date: DateTime - /// Bio of the user. + /// Bio of the user [] Bio: string option /// Chat invite link that was used by the user to send the join request [] InviteLink: ChatInviteLink option + /// Identifier of the join request query. If present, then the bot must call sendChatJoinRequestWebApp or directly call answerChatJoinRequestQuery within 10 seconds. + [] + QueryId: string option } - static member Create(chat: Chat, from: User, userChatId: int64, date: DateTime, ?bio: string, ?inviteLink: ChatInviteLink) = + static member Create(chat: Chat, from: User, userChatId: int64, date: DateTime, ?bio: string, ?inviteLink: ChatInviteLink, ?queryId: string) = { Chat = chat From = from @@ -3724,12 +4237,13 @@ and [] ChatJoinRequest = Date = date Bio = bio InviteLink = inviteLink + QueryId = queryId } /// Describes actions that a non-administrator user is allowed to take in a chat. and [] ChatPermissions = { - /// True, if the user is allowed to send text messages, contacts, giveaways, giveaway winners, invoices, locations and venues + /// True, if the user is allowed to send text messages, rich messages, contacts, giveaways, giveaway winners, invoices, locations and venues [] CanSendMessages: bool option /// True, if the user is allowed to send audios @@ -3759,20 +4273,26 @@ and [] ChatPermissions = /// True, if the user is allowed to add web page previews to their messages [] CanAddWebPagePreviews: bool option - /// True, if the user is allowed to change the chat title, photo and other settings. Ignored in public supergroups + /// True, if the user is allowed to react to messages. If omitted, defaults to the value of can_send_messages. + [] + CanReactToMessages: bool option + /// True, if the user is allowed to edit their own tag. If omitted, defaults to the value of can_pin_messages. + [] + CanEditTag: bool option + /// True, if the user is allowed to change the chat title, photo and other settings. Ignored in public supergroups. [] CanChangeInfo: bool option /// True, if the user is allowed to invite new users to the chat [] CanInviteUsers: bool option - /// True, if the user is allowed to pin messages. Ignored in public supergroups + /// True, if the user is allowed to pin messages. Ignored in public supergroups. [] CanPinMessages: bool option - /// True, if the user is allowed to create forum topics. If omitted defaults to the value of can_pin_messages + /// True, if the user is allowed to create forum topics. If omitted defaults to the value of can_pin_messages. [] CanManageTopics: bool option } - static member Create(?canSendMessages: bool, ?canSendAudios: bool, ?canSendDocuments: bool, ?canSendPhotos: bool, ?canSendVideos: bool, ?canSendVideoNotes: bool, ?canSendVoiceNotes: bool, ?canSendPolls: bool, ?canSendOtherMessages: bool, ?canAddWebPagePreviews: bool, ?canChangeInfo: bool, ?canInviteUsers: bool, ?canPinMessages: bool, ?canManageTopics: bool) = + static member Create(?canSendMessages: bool, ?canSendAudios: bool, ?canSendDocuments: bool, ?canSendPhotos: bool, ?canSendVideos: bool, ?canSendVideoNotes: bool, ?canSendVoiceNotes: bool, ?canSendPolls: bool, ?canSendOtherMessages: bool, ?canAddWebPagePreviews: bool, ?canReactToMessages: bool, ?canEditTag: bool, ?canChangeInfo: bool, ?canInviteUsers: bool, ?canPinMessages: bool, ?canManageTopics: bool) = { CanSendMessages = canSendMessages CanSendAudios = canSendAudios @@ -3784,6 +4304,8 @@ and [] ChatPermissions = CanSendPolls = canSendPolls CanSendOtherMessages = canSendOtherMessages CanAddWebPagePreviews = canAddWebPagePreviews + CanReactToMessages = canReactToMessages + CanEditTag = canEditTag CanChangeInfo = canChangeInfo CanInviteUsers = canInviteUsers CanPinMessages = canPinMessages @@ -3878,6 +4400,30 @@ and [] BusinessOpeningHours = OpeningHours = openingHours } +/// This object describes the rating of a user based on their Telegram Star spendings. +and [] UserRating = + { + /// Current level of the user, indicating their reliability when purchasing digital goods and services. A higher level suggests a more trustworthy customer; a negative level is likely reason for concern. + [] + Level: int64 + /// Numerical value of the user's rating; the higher the rating, the better + [] + Rating: int64 + /// The rating value required to get the current level + [] + CurrentLevelRating: int64 + /// The rating value required to get to the next level; omitted if the maximum level was reached + [] + NextLevelRating: int64 option + } + static member Create(level: int64, rating: int64, currentLevelRating: int64, ?nextLevelRating: int64) = + { + Level = level + Rating = rating + CurrentLevelRating = currentLevelRating + NextLevelRating = nextLevelRating + } + /// Describes the position of a clickable area within a story. and [] StoryAreaPosition = { @@ -4090,7 +4636,7 @@ and [] ReactionTypeEmoji = /// Type of the reaction, always “emoji” [] Type: string - /// Reaction emoji. Currently, it can be one of "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" + /// Reaction emoji. Currently, it can be one of "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "". [] Emoji: string } @@ -4219,13 +4765,37 @@ and [] ForumTopic = /// Unique identifier of the custom emoji shown as the topic icon [] IconCustomEmojiId: string option + /// True, if the name of the topic wasn't specified explicitly by its creator and likely needs to be changed by the bot + [] + IsNameImplicit: bool option } - static member Create(messageThreadId: int64, name: string, iconColor: int64, ?iconCustomEmojiId: string) = + static member Create(messageThreadId: int64, name: string, iconColor: int64, ?iconCustomEmojiId: string, ?isNameImplicit: bool) = { MessageThreadId = messageThreadId Name = name IconColor = iconColor IconCustomEmojiId = iconCustomEmojiId + IsNameImplicit = isNameImplicit + } + +/// This object describes the background of a gift. +and [] GiftBackground = + { + /// Center color of the background in RGB format + [] + CenterColor: int64 + /// Edge color of the background in RGB format + [] + EdgeColor: int64 + /// Text color of the background in RGB format + [] + TextColor: int64 + } + static member Create(centerColor: int64, edgeColor: int64, textColor: int64) = + { + CenterColor = centerColor + EdgeColor = edgeColor + TextColor = textColor } /// This object represents a gift that can be sent by the bot. @@ -4243,24 +4813,48 @@ and [] Gift = /// The number of Telegram Stars that must be paid to upgrade the gift to a unique one [] UpgradeStarCount: int64 option - /// The total number of the gifts of this type that can be sent; for limited gifts only + /// True, if the gift can only be purchased by Telegram Premium subscribers + [] + IsPremium: bool option + /// True, if the gift can be used (after being upgraded) to customize a user's appearance + [] + HasColors: bool option + /// The total number of gifts of this type that can be sent by all users; for limited gifts only [] TotalCount: int64 option - /// The number of remaining gifts of this type that can be sent; for limited gifts only + /// The number of remaining gifts of this type that can be sent by all users; for limited gifts only [] RemainingCount: int64 option + /// The total number of gifts of this type that can be sent by the bot; for limited gifts only + [] + PersonalTotalCount: int64 option + /// The number of remaining gifts of this type that can be sent by the bot; for limited gifts only + [] + PersonalRemainingCount: int64 option + /// Background of the gift + [] + Background: GiftBackground option + /// The total number of different unique gifts that can be obtained by upgrading the gift + [] + UniqueGiftVariantCount: int64 option /// Information about the chat that published the gift [] PublisherChat: Chat option } - static member Create(id: string, sticker: Sticker, starCount: int64, ?upgradeStarCount: int64, ?totalCount: int64, ?remainingCount: int64, ?publisherChat: Chat) = + static member Create(id: string, sticker: Sticker, starCount: int64, ?upgradeStarCount: int64, ?isPremium: bool, ?hasColors: bool, ?totalCount: int64, ?remainingCount: int64, ?personalTotalCount: int64, ?personalRemainingCount: int64, ?background: GiftBackground, ?uniqueGiftVariantCount: int64, ?publisherChat: Chat) = { Id = id Sticker = sticker StarCount = starCount UpgradeStarCount = upgradeStarCount + IsPremium = isPremium + HasColors = hasColors TotalCount = totalCount RemainingCount = remainingCount + PersonalTotalCount = personalTotalCount + PersonalRemainingCount = personalRemainingCount + Background = background + UniqueGiftVariantCount = uniqueGiftVariantCount PublisherChat = publisherChat } @@ -4285,15 +4879,19 @@ and [] UniqueGiftModel = /// The sticker that represents the unique gift [] Sticker: Sticker - /// The number of unique gifts that receive this model for every 1000 gifts upgraded + /// The number of unique gifts that receive this model for every 1000 gift upgrades. Always 0 for crafted gifts. [] RarityPerMille: int64 + /// Rarity of the model if it is a crafted model. Currently, can be “uncommon”, “rare”, “epic”, or “legendary”. + [] + Rarity: string option } - static member Create(name: string, sticker: Sticker, rarityPerMille: int64) = + static member Create(name: string, sticker: Sticker, rarityPerMille: int64, ?rarity: string) = { Name = name Sticker = sticker RarityPerMille = rarityPerMille + Rarity = rarity } /// This object describes the symbol shown on the pattern of a unique gift. @@ -4360,13 +4958,48 @@ and [] UniqueGiftBackdrop = RarityPerMille = rarityPerMille } +/// This object contains information about the color scheme for a user's name, message replies and link previews based on a unique gift. +and [] UniqueGiftColors = + { + /// Custom emoji identifier of the unique gift's model + [] + ModelCustomEmojiId: string + /// Custom emoji identifier of the unique gift's symbol + [] + SymbolCustomEmojiId: string + /// Main color used in light themes; RGB format + [] + LightThemeMainColor: int64 + /// List of 1-3 additional colors used in light themes; RGB format + [] + LightThemeOtherColors: int64[] + /// Main color used in dark themes; RGB format + [] + DarkThemeMainColor: int64 + /// List of 1-3 additional colors used in dark themes; RGB format + [] + DarkThemeOtherColors: int64[] + } + static member Create(modelCustomEmojiId: string, symbolCustomEmojiId: string, lightThemeMainColor: int64, lightThemeOtherColors: int64[], darkThemeMainColor: int64, darkThemeOtherColors: int64[]) = + { + ModelCustomEmojiId = modelCustomEmojiId + SymbolCustomEmojiId = symbolCustomEmojiId + LightThemeMainColor = lightThemeMainColor + LightThemeOtherColors = lightThemeOtherColors + DarkThemeMainColor = darkThemeMainColor + DarkThemeOtherColors = darkThemeOtherColors + } + /// This object describes a unique gift that was upgraded from a regular gift. and [] UniqueGift = { + /// Identifier of the regular gift from which the gift was upgraded + [] + GiftId: string /// Human-readable name of the regular gift from which this unique gift was upgraded [] BaseName: string - /// Unique name of the gift. This name can be used in https://t.me/nft/... links and story areas + /// Unique name of the gift. This name can be used in https://t.me/nft/... links and story areas. [] Name: string /// Unique number of the upgraded gift among gifts upgraded from the same regular gift @@ -4381,18 +5014,35 @@ and [] UniqueGift = /// Backdrop of the gift [] Backdrop: UniqueGiftBackdrop + /// True, if the original regular gift was exclusively purchaseable by Telegram Premium subscribers + [] + IsPremium: bool option + /// True, if the gift was used to craft another gift and isn't available anymore + [] + IsBurned: bool option + /// True, if the gift is assigned from the TON blockchain and can't be resold or transferred in Telegram + [] + IsFromBlockchain: bool option + /// The color scheme that can be used by the gift's owner for the chat's name, replies to messages and link previews; for business account gifts and gifts that are currently on sale only + [] + Colors: UniqueGiftColors option /// Information about the chat that published the gift [] PublisherChat: Chat option } - static member Create(baseName: string, name: string, number: int64, model: UniqueGiftModel, symbol: UniqueGiftSymbol, backdrop: UniqueGiftBackdrop, ?publisherChat: Chat) = + static member Create(giftId: string, baseName: string, name: string, number: int64, model: UniqueGiftModel, symbol: UniqueGiftSymbol, backdrop: UniqueGiftBackdrop, ?isPremium: bool, ?isBurned: bool, ?isFromBlockchain: bool, ?colors: UniqueGiftColors, ?publisherChat: Chat) = { + GiftId = giftId BaseName = baseName Name = name Number = number Model = model Symbol = symbol Backdrop = backdrop + IsPremium = isPremium + IsBurned = isBurned + IsFromBlockchain = isFromBlockchain + Colors = colors PublisherChat = publisherChat } @@ -4408,9 +5058,12 @@ and [] GiftInfo = /// Number of Telegram Stars that can be claimed by the receiver by converting the gift; omitted if conversion to Telegram Stars is impossible [] ConvertStarCount: int64 option - /// Number of Telegram Stars that were prepaid by the sender for the ability to upgrade the gift + /// Number of Telegram Stars that were prepaid for the ability to upgrade the gift [] PrepaidUpgradeStarCount: int64 option + /// True, if the gift's upgrade was purchased after the gift was sent + [] + IsUpgradeSeparate: bool option /// True, if the gift can be upgraded to a unique gift [] CanBeUpgraded: bool option @@ -4423,17 +5076,22 @@ and [] GiftInfo = /// True, if the sender and gift text are shown only to the gift receiver; otherwise, everyone will be able to see them [] IsPrivate: bool option + /// Unique number reserved for this gift when upgraded. See the number field in UniqueGift. + [] + UniqueGiftNumber: int64 option } - static member Create(gift: Gift, ?ownedGiftId: string, ?convertStarCount: int64, ?prepaidUpgradeStarCount: int64, ?canBeUpgraded: bool, ?text: string, ?entities: MessageEntity[], ?isPrivate: bool) = + static member Create(gift: Gift, ?ownedGiftId: string, ?convertStarCount: int64, ?prepaidUpgradeStarCount: int64, ?isUpgradeSeparate: bool, ?canBeUpgraded: bool, ?text: string, ?entities: MessageEntity[], ?isPrivate: bool, ?uniqueGiftNumber: int64) = { Gift = gift OwnedGiftId = ownedGiftId ConvertStarCount = convertStarCount PrepaidUpgradeStarCount = prepaidUpgradeStarCount + IsUpgradeSeparate = isUpgradeSeparate CanBeUpgraded = canBeUpgraded Text = text Entities = entities IsPrivate = isPrivate + UniqueGiftNumber = uniqueGiftNumber } /// Describes a service message about a unique gift that was sent or received. @@ -4442,27 +5100,31 @@ and [] UniqueGiftInfo = /// Information about the gift [] Gift: UniqueGift - /// Origin of the gift. Currently, either “upgrade” for gifts upgraded from regular gifts, “transfer” for gifts transferred from other users or channels, or “resale” for gifts bought from other users + /// Origin of the gift. Currently, either “upgrade” for gifts upgraded from regular gifts, “transfer” for gifts transferred from other users or channels, “resale” for gifts bought from other users, “gifted_upgrade” for upgrades purchased after the gift was sent, or “offer” for gifts bought or sold through gift purchase offers. [] Origin: string - /// For gifts bought from other users, the price paid for the gift - [] - LastResaleStarCount: int64 option + /// For gifts bought from other users, the currency in which the payment for the gift was done. Currently, one of “XTR” for Telegram Stars or “TON” for toncoins. + [] + LastResaleCurrency: string option + /// For gifts bought from other users, the price paid for the gift in either Telegram Stars or nanotoncoins + [] + LastResaleAmount: int64 option /// Unique identifier of the received gift for the bot; only present for gifts received on behalf of business accounts [] OwnedGiftId: string option /// Number of Telegram Stars that must be paid to transfer the gift; omitted if the bot cannot transfer the gift [] TransferStarCount: int64 option - /// Point in time (Unix timestamp) when the gift can be transferred. If it is in the past, then the gift can be transferred now + /// Point in time (Unix timestamp) when the gift can be transferred. If it is in the past, then the gift can be transferred now. [] NextTransferDate: int64 option } - static member Create(gift: UniqueGift, origin: string, ?lastResaleStarCount: int64, ?ownedGiftId: string, ?transferStarCount: int64, ?nextTransferDate: int64) = + static member Create(gift: UniqueGift, origin: string, ?lastResaleCurrency: string, ?lastResaleAmount: int64, ?ownedGiftId: string, ?transferStarCount: int64, ?nextTransferDate: int64) = { Gift = gift Origin = origin - LastResaleStarCount = lastResaleStarCount + LastResaleCurrency = lastResaleCurrency + LastResaleAmount = lastResaleAmount OwnedGiftId = ownedGiftId TransferStarCount = transferStarCount NextTransferDate = nextTransferDate @@ -4509,14 +5171,20 @@ and [] OwnedGiftRegular = /// True, if the gift was refunded and isn't available anymore [] WasRefunded: bool option - /// Number of Telegram Stars that can be claimed by the receiver instead of the gift; omitted if the gift cannot be converted to Telegram Stars + /// Number of Telegram Stars that can be claimed by the receiver instead of the gift; omitted if the gift cannot be converted to Telegram Stars; for gifts received on behalf of business accounts only [] ConvertStarCount: int64 option - /// Number of Telegram Stars that were paid by the sender for the ability to upgrade the gift + /// Number of Telegram Stars that were paid for the ability to upgrade the gift [] PrepaidUpgradeStarCount: int64 option + /// True, if the gift's upgrade was purchased after the gift was sent; for gifts received on behalf of business accounts only + [] + IsUpgradeSeparate: bool option + /// Unique number reserved for this gift when upgraded. See the number field in UniqueGift. + [] + UniqueGiftNumber: int64 option } - static member Create(``type``: string, gift: Gift, sendDate: int64, ?ownedGiftId: string, ?senderUser: User, ?text: string, ?entities: MessageEntity[], ?isPrivate: bool, ?isSaved: bool, ?canBeUpgraded: bool, ?wasRefunded: bool, ?convertStarCount: int64, ?prepaidUpgradeStarCount: int64) = + static member Create(``type``: string, gift: Gift, sendDate: int64, ?ownedGiftId: string, ?senderUser: User, ?text: string, ?entities: MessageEntity[], ?isPrivate: bool, ?isSaved: bool, ?canBeUpgraded: bool, ?wasRefunded: bool, ?convertStarCount: int64, ?prepaidUpgradeStarCount: int64, ?isUpgradeSeparate: bool, ?uniqueGiftNumber: int64) = { Type = ``type`` Gift = gift @@ -4531,6 +5199,8 @@ and [] OwnedGiftRegular = WasRefunded = wasRefunded ConvertStarCount = convertStarCount PrepaidUpgradeStarCount = prepaidUpgradeStarCount + IsUpgradeSeparate = isUpgradeSeparate + UniqueGiftNumber = uniqueGiftNumber } /// Describes a unique gift received and owned by a user or a chat. @@ -4560,7 +5230,7 @@ and [] OwnedGiftUnique = /// Number of Telegram Stars that must be paid to transfer the gift; omitted if the bot cannot transfer the gift [] TransferStarCount: int64 option - /// Point in time (Unix timestamp) when the gift can be transferred. If it is in the past, then the gift can be transferred now + /// Point in time (Unix timestamp) when the gift can be transferred. If it is in the past, then the gift can be transferred now. [] NextTransferDate: int64 option } @@ -4586,7 +5256,7 @@ and [] OwnedGifts = /// The list of gifts [] Gifts: OwnedGift[] - /// Offset for the next request. If empty, then there are no more results + /// Offset for the next request. If empty, then there are no more results. [] NextOffset: string option } @@ -4597,6 +5267,22 @@ and [] OwnedGifts = NextOffset = nextOffset } +/// This object describes the access settings of a bot. +and [] BotAccessSettings = + { + /// True, if only selected users can access the bot. The bot's owner can always access it. + [] + IsAccessRestricted: bool + /// The list of other users who have access to the bot if the access is restricted + [] + AddedUsers: User[] option + } + static member Create(isAccessRestricted: bool, ?addedUsers: User[]) = + { + IsAccessRestricted = isAccessRestricted + AddedUsers = addedUsers + } + /// This object describes the types of gifts that can be gifted to a user or a chat. and [] AcceptedGiftTypes = { @@ -4612,13 +5298,17 @@ and [] AcceptedGiftTypes = /// True, if a Telegram Premium subscription is accepted [] PremiumSubscription: bool + /// True, if transfers of unique gifts from channels are accepted + [] + GiftsFromChannels: bool } - static member Create(unlimitedGifts: bool, limitedGifts: bool, uniqueGifts: bool, premiumSubscription: bool) = + static member Create(unlimitedGifts: bool, limitedGifts: bool, uniqueGifts: bool, premiumSubscription: bool, giftsFromChannels: bool) = { UnlimitedGifts = unlimitedGifts LimitedGifts = limitedGifts UniqueGifts = uniqueGifts PremiumSubscription = premiumSubscription + GiftsFromChannels = giftsFromChannels } /// Describes an amount of Telegram Stars. @@ -4643,7 +5333,7 @@ and [] BotCommand = /// Text of the command; 1-32 characters. Can contain only lowercase English letters, digits and underscores. [] Command: string - /// Description of the command; 1-256 characters. + /// Description of the command; 1-256 characters [] Description: string } @@ -4717,7 +5407,7 @@ and [] BotCommandScopeChat = /// Scope type, must be chat [] Type: string - /// Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername). Channel direct messages chats and channel chats aren't supported. + /// Unique identifier for the target chat or username of the target supergroup in the format @username. Channel direct messages chats and channel chats aren't supported. [] ChatId: ChatId } @@ -4733,7 +5423,7 @@ and [] BotCommandScopeChatAdministrators = /// Scope type, must be chat_administrators [] Type: string - /// Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername). Channel direct messages chats and channel chats aren't supported. + /// Unique identifier for the target chat or username of the target supergroup in the format @username. Channel direct messages chats and channel chats aren't supported. [] ChatId: ChatId } @@ -4749,7 +5439,7 @@ and [] BotCommandScopeChatMember = /// Scope type, must be chat_member [] Type: string - /// Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername). Channel direct messages chats and channel chats aren't supported. + /// Unique identifier for the target chat or username of the target supergroup in the format @username. Channel direct messages chats and channel chats aren't supported. [] ChatId: ChatId /// Unique identifier of the target user @@ -4980,6 +5670,30 @@ and [] ChatBoostRemoved = Source = source } +/// Describes a service message about the chat owner leaving the chat. +and [] ChatOwnerLeft = + { + /// The user who will become the new owner of the chat if the previous owner does not return to the chat + [] + NewOwner: User option + } + static member Create(?newOwner: User) = + { + NewOwner = newOwner + } + +/// Describes a service message about an ownership change in the chat. +and [] ChatOwnerChanged = + { + /// The new owner of the chat + [] + NewOwner: User + } + static member Create(newOwner: User) = + { + NewOwner = newOwner + } + /// This object represents a list of boosts added to a chat by a user. and [] UserChatBoosts = { @@ -5108,6 +5822,58 @@ and [] BusinessMessagesDeleted = MessageIds = messageIds } +/// Describes an inline message sent by a Web App on behalf of a user. +and [] SentWebAppMessage = + { + /// Identifier of the sent inline message. Available only if there is an inline keyboard attached to the message. + [] + InlineMessageId: string option + } + static member Create(?inlineMessageId: string) = + { + InlineMessageId = inlineMessageId + } + +/// Describes an inline message sent by a guest bot. +and [] SentGuestMessage = + { + /// Identifier of the sent inline message + [] + InlineMessageId: string + } + static member Create(inlineMessageId: string) = + { + InlineMessageId = inlineMessageId + } + +/// Describes an inline message to be sent by a user of a Mini App. +and [] PreparedInlineMessage = + { + /// Unique identifier of the prepared message + [] + Id: string + /// Expiration date of the prepared message, in Unix time. Expired prepared messages can no longer be used. + [] + ExpirationDate: int64 + } + static member Create(id: string, expirationDate: int64) = + { + Id = id + ExpirationDate = expirationDate + } + +/// Describes a keyboard button to be used by a user of a Mini App. +and [] PreparedKeyboardButton = + { + /// Unique identifier of the keyboard button + [] + Id: string + } + static member Create(id: string) = + { + Id = id + } + /// Describes why a request was unsuccessful. and [] ResponseParameters = { @@ -5127,115 +5893,16 @@ and [] ResponseParameters = /// This object represents the content of a media message to be sent. It should be one of and InputMedia = | Animation of InputMediaAnimation - | Document of InputMediaDocument | Audio of InputMediaAudio + | Document of InputMediaDocument + | LivePhoto of InputMediaLivePhoto | Photo of InputMediaPhoto | Video of InputMediaVideo -/// Represents a photo to be sent. -and [] InputMediaPhoto = - { - /// Type of the result, must be photo - [] - Type: string - /// File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files » - [] - Media: InputFile - /// Caption of the photo to be sent, 0-1024 characters after entities parsing - [] - Caption: string option - /// Mode for parsing entities in the photo caption. See formatting options for more details. - [] - ParseMode: ParseMode option - /// List of special entities that appear in the caption, which can be specified instead of parse_mode - [] - CaptionEntities: MessageEntity[] option - /// Pass True, if the caption must be shown above the message media - [] - ShowCaptionAboveMedia: bool option - /// Pass True if the photo needs to be covered with a spoiler animation - [] - HasSpoiler: bool option - } - static member Create(``type``: string, media: InputFile, ?caption: string, ?parseMode: ParseMode, ?captionEntities: MessageEntity[], ?showCaptionAboveMedia: bool, ?hasSpoiler: bool) = - { - Type = ``type`` - Media = media - Caption = caption - ParseMode = parseMode - CaptionEntities = captionEntities - ShowCaptionAboveMedia = showCaptionAboveMedia - HasSpoiler = hasSpoiler - } - -/// Represents a video to be sent. -and [] InputMediaVideo = - { - /// Type of the result, must be video - [] - Type: string - /// File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files » - [] - Media: InputFile - /// 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://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » - [] - Thumbnail: string option - /// Cover for the video in the message. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files » - [] - Cover: string option - /// Start timestamp for the video in the message - [] - StartTimestamp: int64 option - /// Caption of the video to be sent, 0-1024 characters after entities parsing - [] - Caption: string option - /// Mode for parsing entities in the video caption. See formatting options for more details. - [] - ParseMode: ParseMode option - /// List of special entities that appear in the caption, which can be specified instead of parse_mode - [] - CaptionEntities: MessageEntity[] option - /// Pass True, if the caption must be shown above the message media - [] - ShowCaptionAboveMedia: bool option - /// Video width - [] - Width: int64 option - /// Video height - [] - Height: int64 option - /// Video duration in seconds - [] - Duration: int64 option - /// Pass True if the uploaded video is suitable for streaming - [] - SupportsStreaming: bool option - /// Pass True if the video needs to be covered with a spoiler animation - [] - HasSpoiler: bool option - } - static member Create(``type``: string, media: InputFile, ?thumbnail: string, ?cover: string, ?startTimestamp: int64, ?caption: string, ?parseMode: ParseMode, ?captionEntities: MessageEntity[], ?showCaptionAboveMedia: bool, ?width: int64, ?height: int64, ?duration: int64, ?supportsStreaming: bool, ?hasSpoiler: bool) = - { - Type = ``type`` - Media = media - Thumbnail = thumbnail - Cover = cover - StartTimestamp = startTimestamp - Caption = caption - ParseMode = parseMode - CaptionEntities = captionEntities - ShowCaptionAboveMedia = showCaptionAboveMedia - Width = width - Height = height - Duration = duration - SupportsStreaming = supportsStreaming - HasSpoiler = hasSpoiler - } - /// Represents an animation file (GIF or H.264/MPEG-4 AVC video without sound) to be sent. and [] InputMediaAnimation = { - /// Type of the result, must be animation + /// Type of the media, must be animation [] Type: string /// File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files » @@ -5287,7 +5954,7 @@ and [] InputMediaAnimation = /// Represents an audio file to be treated as music to be sent. and [] InputMediaAudio = { - /// Type of the result, must be audio + /// Type of the media, must be audio [] Type: string /// File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files » @@ -5331,7 +5998,7 @@ and [] InputMediaAudio = /// Represents a general file to be sent. and [] InputMediaDocument = { - /// Type of the result, must be document + /// Type of the media, must be document [] Type: string /// File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files » @@ -5364,12 +6031,277 @@ and [] InputMediaDocument = DisableContentTypeDetection = disableContentTypeDetection } -/// This object describes the paid media to be sent. Currently, it can be one of -and InputPaidMedia = - | Photo of InputPaidMediaPhoto - | Video of InputPaidMediaVideo - -/// The paid media to send is a photo. +/// Represents an HTTP link to be sent. +and [] InputMediaLink = + { + /// Type of the media, must be link + [] + Type: string + /// HTTP URL of the link + [] + Url: string + } + static member Create(``type``: string, url: string) = + { + Type = ``type`` + Url = url + } + +/// Represents a live photo to be sent. +and [] InputMediaLivePhoto = + { + /// Type of the media, must be live_photo + [] + Type: string + /// Video of the live photo to send. Pass a file_id to send a file that exists on the Telegram servers (recommended) or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files ». Sending live photos by a URL is currently unsupported. + [] + Media: string + /// The static photo to send. Pass a file_id to send a file that exists on the Telegram servers (recommended) or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files ». Sending live photos by a URL is currently unsupported. + [] + Photo: string + /// Caption of the live photo to be sent, 0-1024 characters after entities parsing + [] + Caption: string option + /// Mode for parsing entities in the live photo caption. See formatting options for more details. + [] + ParseMode: ParseMode option + /// List of special entities that appear in the caption, which can be specified instead of parse_mode + [] + CaptionEntities: MessageEntity[] option + /// Pass True, if the caption must be shown above the message media + [] + ShowCaptionAboveMedia: bool option + /// Pass True if the live photo needs to be covered with a spoiler animation + [] + HasSpoiler: bool option + } + static member Create(``type``: string, media: string, photo: string, ?caption: string, ?parseMode: ParseMode, ?captionEntities: MessageEntity[], ?showCaptionAboveMedia: bool, ?hasSpoiler: bool) = + { + Type = ``type`` + Media = media + Photo = photo + Caption = caption + ParseMode = parseMode + CaptionEntities = captionEntities + ShowCaptionAboveMedia = showCaptionAboveMedia + HasSpoiler = hasSpoiler + } + +/// Represents a location to be sent. +and [] InputMediaLocation = + { + /// Type of the media, must be location + [] + Type: string + /// Latitude of the location + [] + Latitude: float + /// Longitude of the location + [] + Longitude: float + /// The radius of uncertainty for the location, measured in meters; 0-1500 + [] + HorizontalAccuracy: float option + } + static member Create(``type``: string, latitude: float, longitude: float, ?horizontalAccuracy: float) = + { + Type = ``type`` + Latitude = latitude + Longitude = longitude + HorizontalAccuracy = horizontalAccuracy + } + +/// Represents a photo to be sent. +and [] InputMediaPhoto = + { + /// Type of the media, must be photo + [] + Type: string + /// File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files » + [] + Media: InputFile + /// Caption of the photo to be sent, 0-1024 characters after entities parsing + [] + Caption: string option + /// Mode for parsing entities in the photo caption. See formatting options for more details. + [] + ParseMode: ParseMode option + /// List of special entities that appear in the caption, which can be specified instead of parse_mode + [] + CaptionEntities: MessageEntity[] option + /// Pass True, if the caption must be shown above the message media + [] + ShowCaptionAboveMedia: bool option + /// Pass True if the photo needs to be covered with a spoiler animation + [] + HasSpoiler: bool option + } + static member Create(``type``: string, media: InputFile, ?caption: string, ?parseMode: ParseMode, ?captionEntities: MessageEntity[], ?showCaptionAboveMedia: bool, ?hasSpoiler: bool) = + { + Type = ``type`` + Media = media + Caption = caption + ParseMode = parseMode + CaptionEntities = captionEntities + ShowCaptionAboveMedia = showCaptionAboveMedia + HasSpoiler = hasSpoiler + } + +/// Represents a sticker file to be sent. +and [] InputMediaSticker = + { + /// Type of the media, must be sticker + [] + Type: string + /// File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a .WEBP sticker from the Internet, or pass “attach://” to upload a new .WEBP, .TGS, or .WEBM sticker using multipart/form-data under name. More information on Sending Files » + [] + Media: InputFile + /// Emoji associated with the sticker; only for just uploaded stickers + [] + Emoji: string option + } + static member Create(``type``: string, media: InputFile, ?emoji: string) = + { + Type = ``type`` + Media = media + Emoji = emoji + } + +/// Represents a venue to be sent. +and [] InputMediaVenue = + { + /// Type of the media, must be venue + [] + Type: string + /// Latitude of the location + [] + Latitude: float + /// Longitude of the location + [] + Longitude: float + /// Name of the venue + [] + Title: string + /// Address of the venue + [] + Address: string + /// Foursquare identifier of the venue + [] + FoursquareId: string option + /// Foursquare type of the venue, if known. (For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.) + [] + FoursquareType: string option + /// Google Places identifier of the venue + [] + GooglePlaceId: string option + /// Google Places type of the venue. (See supported types.) + [] + GooglePlaceType: string option + } + static member Create(``type``: string, latitude: float, longitude: float, title: string, address: string, ?foursquareId: string, ?foursquareType: string, ?googlePlaceId: string, ?googlePlaceType: string) = + { + Type = ``type`` + Latitude = latitude + Longitude = longitude + Title = title + Address = address + FoursquareId = foursquareId + FoursquareType = foursquareType + GooglePlaceId = googlePlaceId + GooglePlaceType = googlePlaceType + } + +/// Represents a video to be sent. +and [] InputMediaVideo = + { + /// Type of the media, must be video + [] + Type: string + /// File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files » + [] + Media: InputFile + /// 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://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + [] + Thumbnail: string option + /// Cover for the video in the message. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files » + [] + Cover: string option + /// Start timestamp for the video in the message + [] + StartTimestamp: int64 option + /// Caption of the video to be sent, 0-1024 characters after entities parsing + [] + Caption: string option + /// Mode for parsing entities in the video caption. See formatting options for more details. + [] + ParseMode: ParseMode option + /// List of special entities that appear in the caption, which can be specified instead of parse_mode + [] + CaptionEntities: MessageEntity[] option + /// Pass True, if the caption must be shown above the message media + [] + ShowCaptionAboveMedia: bool option + /// Video width + [] + Width: int64 option + /// Video height + [] + Height: int64 option + /// Video duration in seconds + [] + Duration: int64 option + /// Pass True if the uploaded video is suitable for streaming + [] + SupportsStreaming: bool option + /// Pass True if the video needs to be covered with a spoiler animation + [] + HasSpoiler: bool option + } + static member Create(``type``: string, media: InputFile, ?thumbnail: string, ?cover: string, ?startTimestamp: int64, ?caption: string, ?parseMode: ParseMode, ?captionEntities: MessageEntity[], ?showCaptionAboveMedia: bool, ?width: int64, ?height: int64, ?duration: int64, ?supportsStreaming: bool, ?hasSpoiler: bool) = + { + Type = ``type`` + Media = media + Thumbnail = thumbnail + Cover = cover + StartTimestamp = startTimestamp + Caption = caption + ParseMode = parseMode + CaptionEntities = captionEntities + ShowCaptionAboveMedia = showCaptionAboveMedia + Width = width + Height = height + Duration = duration + SupportsStreaming = supportsStreaming + HasSpoiler = hasSpoiler + } + +/// This object describes the paid media to be sent. Currently, it can be one of +and InputPaidMedia = + | LivePhoto of InputPaidMediaLivePhoto + | Photo of InputPaidMediaPhoto + | Video of InputPaidMediaVideo + +/// The paid media to send is a live photo. +and [] InputPaidMediaLivePhoto = + { + /// Type of the media, must be live_photo + [] + Type: string + /// Video of the live photo to send. Pass a file_id to send a file that exists on the Telegram servers (recommended) or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files ». Sending live photos by a URL is currently unsupported. + [] + Media: string + /// The static photo to send. Pass a file_id to send a file that exists on the Telegram servers (recommended) or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files ». Sending live photos by a URL is currently unsupported. + [] + Photo: string + } + static member Create(``type``: string, media: string, photo: string) = + { + Type = ``type`` + Media = media + Photo = photo + } + +/// The paid media to send is a photo. and [] InputPaidMediaPhoto = { /// Type of the media, must be photo @@ -5429,242 +6361,1301 @@ and [] InputPaidMediaVideo = SupportsStreaming = supportsStreaming } -/// This object describes a profile photo to set. Currently, it can be one of -and InputProfilePhoto = - | Static of InputProfilePhotoStatic - | Animated of InputProfilePhotoAnimated - -/// A static profile photo in the .JPG format. -and [] InputProfilePhotoStatic = +/// This object describes a profile photo to set. Currently, it can be one of +and InputProfilePhoto = + | Static of InputProfilePhotoStatic + | Animated of InputProfilePhotoAnimated + +/// A static profile photo in the .JPG format. +and [] InputProfilePhotoStatic = + { + /// Type of the profile photo, must be static + [] + Type: string + /// The static profile photo. Profile photos can't be reused and can only be uploaded as a new file, so you can pass “attach://” if the photo was uploaded using multipart/form-data under . More information on Sending Files » + [] + Photo: string + } + static member Create(``type``: string, photo: string) = + { + Type = ``type`` + Photo = photo + } + +/// An animated profile photo in the MPEG4 format. +and [] InputProfilePhotoAnimated = + { + /// Type of the profile photo, must be animated + [] + Type: string + /// The animated profile photo. Profile photos can't be reused and can only be uploaded as a new file, so you can pass “attach://” if the photo was uploaded using multipart/form-data under . More information on Sending Files » + [] + Animation: string + /// Timestamp in seconds of the frame that will be used as the static profile photo. Defaults to 0.0. + [] + MainFrameTimestamp: float option + } + static member Create(``type``: string, animation: string, ?mainFrameTimestamp: float) = + { + Type = ``type`` + Animation = animation + MainFrameTimestamp = mainFrameTimestamp + } + +/// This object describes the content of a story to post. Currently, it can be one of +and InputStoryContent = + | Photo of InputStoryContentPhoto + | Video of InputStoryContentVideo + +/// Describes a photo to post as a story. +and [] InputStoryContentPhoto = + { + /// Type of the content, must be photo + [] + Type: string + /// The photo to post as a story. The photo must be of the size 1080x1920 and must not exceed 10 MB. The photo can't be reused and can only be uploaded as a new file, so you can pass “attach://” if the photo was uploaded using multipart/form-data under . More information on Sending Files » + [] + Photo: string + } + static member Create(``type``: string, photo: string) = + { + Type = ``type`` + Photo = photo + } + +/// Describes a video to post as a story. +and [] InputStoryContentVideo = + { + /// Type of the content, must be video + [] + Type: string + /// The video to post as a story. The video must be of the size 720x1280, streamable, encoded with H.265 codec, with key frames added each second in the MPEG4 format, and must not exceed 30 MB. The video can't be reused and can only be uploaded as a new file, so you can pass “attach://” if the video was uploaded using multipart/form-data under . More information on Sending Files » + [] + Video: string + /// Precise duration of the video in seconds; 0-60 + [] + Duration: float option + /// Timestamp in seconds of the frame that will be used as the static cover for the story. Defaults to 0.0. + [] + CoverFrameTimestamp: float option + /// Pass True if the video has no sound + [] + IsAnimation: bool option + } + static member Create(``type``: string, video: string, ?duration: float, ?coverFrameTimestamp: float, ?isAnimation: bool) = + { + Type = ``type`` + Video = video + Duration = duration + CoverFrameTimestamp = coverFrameTimestamp + IsAnimation = isAnimation + } + +/// This object represents a sticker. +and [] Sticker = + { + /// Identifier for this file, which can be used to download or reuse the file + [] + FileId: string + /// Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + [] + FileUniqueId: string + /// Type of the sticker, currently one of “regular”, “mask”, “custom_emoji”. The type of the sticker is independent from its format, which is determined by the fields is_animated and is_video. + [] + Type: string + /// Sticker width + [] + Width: int64 + /// Sticker height + [] + Height: int64 + /// True, if the sticker is animated + [] + IsAnimated: bool + /// True, if the sticker is a video sticker + [] + IsVideo: bool + /// Sticker thumbnail in the .WEBP or .JPG format + [] + Thumbnail: PhotoSize option + /// Emoji associated with the sticker + [] + Emoji: string option + /// Name of the sticker set to which the sticker belongs + [] + SetName: string option + /// For premium regular stickers, premium animation for the sticker + [] + PremiumAnimation: File option + /// For mask stickers, the position where the mask should be placed + [] + MaskPosition: MaskPosition option + /// For custom emoji stickers, unique identifier of the custom emoji + [] + CustomEmojiId: string option + /// True, if the sticker must be repainted to a text color in messages, the color of the Telegram Premium badge in emoji status, white color on chat photos, or another appropriate color in other places + [] + NeedsRepainting: bool option + /// File size in bytes + [] + FileSize: int64 option + } + static member Create(fileId: string, fileUniqueId: string, ``type``: string, width: int64, height: int64, isAnimated: bool, isVideo: bool, ?thumbnail: PhotoSize, ?emoji: string, ?setName: string, ?premiumAnimation: File, ?maskPosition: MaskPosition, ?customEmojiId: string, ?needsRepainting: bool, ?fileSize: int64) = + { + FileId = fileId + FileUniqueId = fileUniqueId + Type = ``type`` + Width = width + Height = height + IsAnimated = isAnimated + IsVideo = isVideo + Thumbnail = thumbnail + Emoji = emoji + SetName = setName + PremiumAnimation = premiumAnimation + MaskPosition = maskPosition + CustomEmojiId = customEmojiId + NeedsRepainting = needsRepainting + FileSize = fileSize + } + +/// This object represents a sticker set. +and [] StickerSet = + { + /// Sticker set name + [] + Name: string + /// Sticker set title + [] + Title: string + /// Type of stickers in the set, currently one of “regular”, “mask”, “custom_emoji” + [] + StickerType: string + /// List of all set stickers + [] + Stickers: Sticker[] + /// Sticker set thumbnail in the .WEBP, .TGS, or .WEBM format + [] + Thumbnail: PhotoSize option + } + static member Create(name: string, title: string, stickerType: string, stickers: Sticker[], ?thumbnail: PhotoSize) = + { + Name = name + Title = title + StickerType = stickerType + Stickers = stickers + Thumbnail = thumbnail + } + +/// This object describes the position on faces where a mask should be placed by default. +and [] MaskPosition = + { + /// The part of the face relative to which the mask should be placed. One of “forehead”, “eyes”, “mouth”, or “chin”. + [] + Point: MaskPoint + /// Shift by X-axis measured in widths of the mask scaled to the face size, from left to right. For example, choosing -1.0 will place mask just to the left of the default mask position. + [] + XShift: float + /// Shift by Y-axis measured in heights of the mask scaled to the face size, from top to bottom. For example, 1.0 will place the mask just below the default mask position. + [] + YShift: float + /// Mask scaling coefficient. For example, 2.0 means double size. + [] + Scale: float + } + static member Create(point: MaskPoint, xShift: float, yShift: float, scale: float) = + { + Point = point + XShift = xShift + YShift = yShift + Scale = scale + } + +/// This object describes a sticker to be added to a sticker set. +and [] InputSticker = + { + /// The added sticker. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or pass “attach://” to upload a new file using multipart/form-data under name. Animated and video stickers can't be uploaded via HTTP URL. More information on Sending Files » + [] + Sticker: string + /// Format of the added sticker, must be one of “static” for a .WEBP or .PNG image, “animated” for a .TGS animation, “video” for a .WEBM video + [] + Format: string + /// List of 1-20 emoji associated with the sticker + [] + EmojiList: string[] + /// Position where the mask should be placed on faces. For “mask” stickers only. + [] + MaskPosition: MaskPosition option + /// List of 0-20 search keywords for the sticker with total length of up to 64 characters. For “regular” and “custom_emoji” stickers only. + [] + Keywords: string[] option + } + static member Create(sticker: string, format: string, emojiList: string[], ?maskPosition: MaskPosition, ?keywords: string[]) = + { + Sticker = sticker + Format = format + EmojiList = emojiList + MaskPosition = maskPosition + Keywords = keywords + } + +/// Rich formatted message. +and [] RichMessage = + { + /// Content of the message + [] + Blocks: RichBlock[] + /// True, if the rich message must be shown right-to-left + [] + IsRtl: bool option + } + static member Create(blocks: RichBlock[], ?isRtl: bool) = + { + Blocks = blocks + IsRtl = isRtl + } + +/// Describes a rich message to be sent. Exactly one of the fields html or markdown must be used. +and [] InputRichMessage = + { + /// Content of the rich message to send described using HTML formatting. See rich message formatting options for more details. + [] + Html: string option + /// Content of the rich message to send described using Markdown formatting. See rich message formatting options for more details. + [] + Markdown: string option + /// Pass True if the rich message must be shown right-to-left + [] + IsRtl: bool option + /// Pass True to skip automatic detection of entities (e.g., URLs, email addresses, username mentions, hashtags, cashtags, bot commands, or phone numbers) in the text + [] + SkipEntityDetection: bool option + } + static member Create(?html: string, ?markdown: string, ?isRtl: bool, ?skipEntityDetection: bool) = + { + Html = html + Markdown = markdown + IsRtl = isRtl + SkipEntityDetection = skipEntityDetection + } + +/// This object represents a rich formatted text. Currently, it can be either a String for plain text, an Array of RichText, or any of the following types: +and RichText = + | Bold of RichTextBold + | Italic of RichTextItalic + | Underline of RichTextUnderline + | Strikethrough of RichTextStrikethrough + | Spoiler of RichTextSpoiler + | DateTimeText of RichTextDateTime + | TextMention of RichTextTextMention + | Subscript of RichTextSubscript + | Superscript of RichTextSuperscript + | Marked of RichTextMarked + | Code of RichTextCode + | CustomEmoji of RichTextCustomEmoji + | MathematicalExpression of RichTextMathematicalExpression + | Url of RichTextUrl + | EmailAddress of RichTextEmailAddress + | PhoneNumber of RichTextPhoneNumber + | BankCardNumber of RichTextBankCardNumber + | Mention of RichTextMention + | Hashtag of RichTextHashtag + | Cashtag of RichTextCashtag + | BotCommand of RichTextBotCommand + | Anchor of RichTextAnchor + | AnchorLink of RichTextAnchorLink + | Reference of RichTextReference + | ReferenceLink of RichTextReferenceLink + +/// A bold text. +and [] RichTextBold = + { + /// Type of the rich text, always “bold” + [] + Type: string + /// The text + [] + Text: RichText + } + static member Create(``type``: string, text: RichText) = + { + Type = ``type`` + Text = text + } + +/// An italicized text. +and [] RichTextItalic = + { + /// Type of the rich text, always “italic” + [] + Type: string + /// The text + [] + Text: RichText + } + static member Create(``type``: string, text: RichText) = + { + Type = ``type`` + Text = text + } + +/// An underlined text. +and [] RichTextUnderline = + { + /// Type of the rich text, always “underline” + [] + Type: string + /// The text + [] + Text: RichText + } + static member Create(``type``: string, text: RichText) = + { + Type = ``type`` + Text = text + } + +/// A strikethrough text. +and [] RichTextStrikethrough = + { + /// Type of the rich text, always “strikethrough” + [] + Type: string + /// The text + [] + Text: RichText + } + static member Create(``type``: string, text: RichText) = + { + Type = ``type`` + Text = text + } + +/// A text covered by a spoiler. +and [] RichTextSpoiler = + { + /// Type of the rich text, always “spoiler” + [] + Type: string + /// The text + [] + Text: RichText + } + static member Create(``type``: string, text: RichText) = + { + Type = ``type`` + Text = text + } + +/// Formatted date and time. +and [] RichTextDateTime = + { + /// Type of the rich text, always “date_time” + [] + Type: string + /// The text + [] + Text: RichText + /// The Unix time associated with the entity + [] + UnixTime: int64 + /// The string that defines the formatting of the date and time. See date-time entity formatting for more details. + [] + DateTimeFormat: string + } + static member Create(``type``: string, text: RichText, unixTime: int64, dateTimeFormat: string) = + { + Type = ``type`` + Text = text + UnixTime = unixTime + DateTimeFormat = dateTimeFormat + } + +/// A mention of a Telegram user by their identifier. +and [] RichTextTextMention = + { + /// Type of the rich text, always “text_mention” + [] + Type: string + /// The text + [] + Text: RichText + /// The mentioned user + [] + User: User + } + static member Create(``type``: string, text: RichText, user: User) = + { + Type = ``type`` + Text = text + User = user + } + +/// A subscript text. +and [] RichTextSubscript = + { + /// Type of the rich text, always “subscript” + [] + Type: string + /// The text + [] + Text: RichText + } + static member Create(``type``: string, text: RichText) = + { + Type = ``type`` + Text = text + } + +/// A superscript text. +and [] RichTextSuperscript = + { + /// Type of the rich text, always “superscript” + [] + Type: string + /// The text + [] + Text: RichText + } + static member Create(``type``: string, text: RichText) = + { + Type = ``type`` + Text = text + } + +/// A marked text. +and [] RichTextMarked = + { + /// Type of the rich text, always “marked” + [] + Type: string + /// The text + [] + Text: RichText + } + static member Create(``type``: string, text: RichText) = + { + Type = ``type`` + Text = text + } + +/// A monowidth text. +and [] RichTextCode = + { + /// Type of the rich text, always “code” + [] + Type: string + /// The text + [] + Text: RichText + } + static member Create(``type``: string, text: RichText) = + { + Type = ``type`` + Text = text + } + +/// A custom emoji. +and [] RichTextCustomEmoji = + { + /// Type of the rich text, always “custom_emoji” + [] + Type: string + /// Unique identifier of the custom emoji. Use getCustomEmojiStickers to get full information about the sticker. + [] + CustomEmojiId: string + /// Alternative emoji for the custom emoji + [] + AlternativeText: string + } + static member Create(``type``: string, customEmojiId: string, alternativeText: string) = + { + Type = ``type`` + CustomEmojiId = customEmojiId + AlternativeText = alternativeText + } + +/// A mathematical expression. +and [] RichTextMathematicalExpression = + { + /// Type of the rich text, always “mathematical_expression” + [] + Type: string + /// The expression in LaTeX format + [] + Expression: string + } + static member Create(``type``: string, expression: string) = + { + Type = ``type`` + Expression = expression + } + +/// A text with a link. +and [] RichTextUrl = + { + /// Type of the rich text, always “url” + [] + Type: string + /// The text + [] + Text: RichText + /// URL of the link + [] + Url: string + } + static member Create(``type``: string, text: RichText, url: string) = + { + Type = ``type`` + Text = text + Url = url + } + +/// A text with an email address. +and [] RichTextEmailAddress = + { + /// Type of the rich text, always “email_address” + [] + Type: string + /// The text + [] + Text: RichText + /// The email address + [] + EmailAddress: string + } + static member Create(``type``: string, text: RichText, emailAddress: string) = + { + Type = ``type`` + Text = text + EmailAddress = emailAddress + } + +/// A text with a phone number. +and [] RichTextPhoneNumber = + { + /// Type of the rich text, always “phone_number” + [] + Type: string + /// The text + [] + Text: RichText + /// The phone number + [] + PhoneNumber: string + } + static member Create(``type``: string, text: RichText, phoneNumber: string) = + { + Type = ``type`` + Text = text + PhoneNumber = phoneNumber + } + +/// A text with a bank card number. +and [] RichTextBankCardNumber = + { + /// Type of the rich text, always “bank_card_number” + [] + Type: string + /// The text + [] + Text: RichText + /// The bank card number + [] + BankCardNumber: string + } + static member Create(``type``: string, text: RichText, bankCardNumber: string) = + { + Type = ``type`` + Text = text + BankCardNumber = bankCardNumber + } + +/// A mention by a username. +and [] RichTextMention = + { + /// Type of the rich text, always “mention” + [] + Type: string + /// The text + [] + Text: RichText + /// The username + [] + Username: string + } + static member Create(``type``: string, text: RichText, username: string) = + { + Type = ``type`` + Text = text + Username = username + } + +/// A hashtag. +and [] RichTextHashtag = + { + /// Type of the rich text, always “hashtag” + [] + Type: string + /// The text + [] + Text: RichText + /// The hashtag + [] + Hashtag: string + } + static member Create(``type``: string, text: RichText, hashtag: string) = + { + Type = ``type`` + Text = text + Hashtag = hashtag + } + +/// A cashtag. +and [] RichTextCashtag = + { + /// Type of the rich text, always “cashtag” + [] + Type: string + /// The text + [] + Text: RichText + /// The cashtag + [] + Cashtag: string + } + static member Create(``type``: string, text: RichText, cashtag: string) = + { + Type = ``type`` + Text = text + Cashtag = cashtag + } + +/// A bot command. +and [] RichTextBotCommand = + { + /// Type of the rich text, always “bot_command” + [] + Type: string + /// The text + [] + Text: RichText + /// The bot command + [] + BotCommand: string + } + static member Create(``type``: string, text: RichText, botCommand: string) = + { + Type = ``type`` + Text = text + BotCommand = botCommand + } + +/// An anchor. +and [] RichTextAnchor = + { + /// Type of the rich text, always “anchor” + [] + Type: string + /// The name of the anchor + [] + Name: string + } + static member Create(``type``: string, name: string) = + { + Type = ``type`` + Name = name + } + +/// A link to an anchor. +and [] RichTextAnchorLink = + { + /// Type of the rich text, always “anchor_link” + [] + Type: string + /// The link text + [] + Text: RichText + /// The name of the anchor. If the name is empty, then the link brings back to the top of the message. + [] + AnchorName: string + } + static member Create(``type``: string, text: RichText, anchorName: string) = + { + Type = ``type`` + Text = text + AnchorName = anchorName + } + +/// A reference. +and [] RichTextReference = + { + /// Type of the rich text, always “reference” + [] + Type: string + /// Text of the reference + [] + Text: RichText + /// The name of the reference + [] + Name: string + } + static member Create(``type``: string, text: RichText, name: string) = + { + Type = ``type`` + Text = text + Name = name + } + +/// A link to a reference. +and [] RichTextReferenceLink = + { + /// Type of the rich text, always “reference_link” + [] + Type: string + /// The link text + [] + Text: RichText + /// The name of the reference + [] + ReferenceName: string + } + static member Create(``type``: string, text: RichText, referenceName: string) = + { + Type = ``type`` + Text = text + ReferenceName = referenceName + } + +/// Caption of a rich formatted block. +and [] RichBlockCaption = + { + /// Block caption + [] + Text: RichText + /// Block credit which corresponds to the HTML tag + [] + Credit: RichText option + } + static member Create(text: RichText, ?credit: RichText) = + { + Text = text + Credit = credit + } + +/// Cell in a table. +and [] RichBlockTableCell = + { + /// Text in the cell. If omitted, then the cell is invisible. + [] + Text: RichText option + /// True, if the cell is a header cell + [] + IsHeader: bool option + /// The number of columns the cell spans if it is bigger than 1 + [] + Colspan: int64 option + /// The number of rows the cell spans if it is bigger than 1 + [] + Rowspan: int64 option + /// Horizontal cell content alignment. Currently, must be one of “left”, “center”, or “right”. + [] + Align: string + /// Vertical cell content alignment. Currently, must be one of “top”, “middle”, or “bottom”. + [] + Valign: string + } + static member Create(align: string, valign: string, ?text: RichText, ?isHeader: bool, ?colspan: int64, ?rowspan: int64) = + { + Align = align + Valign = valign + Text = text + IsHeader = isHeader + Colspan = colspan + Rowspan = rowspan + } + +/// An item of a list. +and [] RichBlockListItem = + { + /// Label of the item + [] + Label: string + /// The content of the item + [] + Blocks: RichBlock[] + /// True, if the item has a checkbox + [] + HasCheckbox: bool option + /// True, if the item has a checked checkbox + [] + IsChecked: bool option + /// For ordered lists, the numeric value of the item label + [] + Value: int64 option + /// For ordered lists, the type of the item label; must be one of “a” for lowercase letters, “A” for uppercase letters, “i” for lowercase Roman numerals, “I” for uppercase Roman numerals, or “1” for decimal numbers + [] + Type: string option + } + static member Create(label: string, blocks: RichBlock[], ?hasCheckbox: bool, ?isChecked: bool, ?value: int64, ?``type``: string) = + { + Label = label + Blocks = blocks + HasCheckbox = hasCheckbox + IsChecked = isChecked + Value = value + Type = ``type`` + } + +/// This object represents a block in a rich formatted message. Currently, it can be any of the following types: +and RichBlock = + | Paragraph of RichBlockParagraph + | SectionHeading of RichBlockSectionHeading + | Preformatted of RichBlockPreformatted + | Footer of RichBlockFooter + | Divider of RichBlockDivider + | MathematicalExpression of RichBlockMathematicalExpression + | Anchor of RichBlockAnchor + | List of RichBlockList + | BlockQuotation of RichBlockBlockQuotation + | PullQuotation of RichBlockPullQuotation + | Collage of RichBlockCollage + | Slideshow of RichBlockSlideshow + | Table of RichBlockTable + | Details of RichBlockDetails + | Map of RichBlockMap + | Animation of RichBlockAnimation + | Audio of RichBlockAudio + | Photo of RichBlockPhoto + | Video of RichBlockVideo + | VoiceNote of RichBlockVoiceNote + | Thinking of RichBlockThinking + +/// A text paragraph, corresponding to the HTML tag

. +and [] RichBlockParagraph = + { + /// Type of the block, always “paragraph” + [] + Type: string + /// Text of the block + [] + Text: RichText + } + static member Create(``type``: string, text: RichText) = + { + Type = ``type`` + Text = text + } + +/// A section heading, corresponding to the HTML tags

,

,

,

,

, or
. +and [] RichBlockSectionHeading = + { + /// Type of the block, always “heading” + [] + Type: string + /// Text of the block + [] + Text: RichText + /// Relative size of the text font; 1-6, 1 is the largest, 6 is the smallest + [] + Size: int64 + } + static member Create(``type``: string, text: RichText, size: int64) = + { + Type = ``type`` + Text = text + Size = size + } + +/// A preformatted text block, corresponding to the nested HTML tags
 and .
+and [] RichBlockPreformatted =
+  {
+    /// Type of the block, always “pre”
+    []
+    Type: string
+    /// Text of the block
+    []
+    Text: RichText
+    /// The programming language of the text
+    []
+    Language: string option
+  }
+  static member Create(``type``: string, text: RichText, ?language: string) = 
+    {
+      Type = ``type``
+      Text = text
+      Language = language
+    }
+
+/// A footer, corresponding to the HTML tag