Update to TDLib 1.8.9

This commit is contained in:
c0re100 2022-12-08 04:04:16 +08:00
parent abdd0dfd48
commit 712b01c11c
No known key found for this signature in database
GPG key ID: 7C3B3004FE745AAF
4 changed files with 920 additions and 122 deletions

View file

@ -528,7 +528,7 @@ func (client *Client) ConfirmQrCodeAuthentication(req *ConfirmQrCodeAuthenticati
return UnmarshalSession(result.Data)
}
// Returns all updates needed to restore current TDLib state, i.e. all actual UpdateAuthorizationState/UpdateUser/UpdateNewChat and others. This is especially useful if TDLib is run in a separate process. Can be called before initialization
// Returns all updates needed to restore current TDLib state, i.e. all actual updateAuthorizationState/updateUser/updateNewChat and others. This is especially useful if TDLib is run in a separate process. Can be called before initialization
func (client *Client) GetCurrentState() (*Updates, error) {
result, err := client.Send(Request{
meta: meta{
@ -1268,7 +1268,7 @@ type GetRepliedMessageRequest struct {
MessageId int64 `json:"message_id"`
}
// Returns information about a message that is replied by a given message. Also returns the pinned message, the game message, and the invoice message for messages of the types messagePinMessage, messageGameScore, and messagePaymentSuccessful respectively
// Returns information about a message that is replied by a given message. Also returns the pinned message, the game message, the invoice message, and the topic creation message for messages of the types messagePinMessage, messageGameScore, messagePaymentSuccessful, and topic messages without replied message respectively
func (client *Client) GetRepliedMessage(req *GetRepliedMessageRequest) (*Message, error) {
result, err := client.Send(Request{
meta: meta{
@ -1875,8 +1875,11 @@ func (client *Client) CheckChatUsername(req *CheckChatUsernameRequest) (CheckCha
case TypeCheckChatUsernameResultUsernameOccupied:
return UnmarshalCheckChatUsernameResultUsernameOccupied(result.Data)
case TypeCheckChatUsernameResultPublicChatsTooMuch:
return UnmarshalCheckChatUsernameResultPublicChatsTooMuch(result.Data)
case TypeCheckChatUsernameResultUsernamePurchasable:
return UnmarshalCheckChatUsernameResultUsernamePurchasable(result.Data)
case TypeCheckChatUsernameResultPublicChatsTooMany:
return UnmarshalCheckChatUsernameResultPublicChatsTooMany(result.Data)
case TypeCheckChatUsernameResultPublicGroupsUnavailable:
return UnmarshalCheckChatUsernameResultPublicGroupsUnavailable(result.Data)
@ -3091,7 +3094,7 @@ type SendInlineQueryResultMessageRequest struct {
QueryId JsonInt64 `json:"query_id"`
// Identifier of the inline result
ResultId string `json:"result_id"`
// Pass true to hide the bot, via which the message is sent. Can be used only for bots GetOption("animation_search_bot_username"), GetOption("photo_search_bot_username"), and GetOption("venue_search_bot_username")
// Pass true to hide the bot, via which the message is sent. Can be used only for bots getOption("animation_search_bot_username"), getOption("photo_search_bot_username"), and getOption("venue_search_bot_username")
HideViaBot bool `json:"hide_via_bot"`
}
@ -3476,7 +3479,7 @@ type EditMessageCaptionRequest struct {
MessageId int64 `json:"message_id"`
// The new message reply markup; pass null if none; for bots only
ReplyMarkup ReplyMarkup `json:"reply_markup"`
// New message content caption; 0-GetOption("message_caption_length_max") characters; pass null to remove caption
// New message content caption; 0-getOption("message_caption_length_max") characters; pass null to remove caption
Caption *FormattedText `json:"caption"`
}
@ -3643,7 +3646,7 @@ type EditInlineMessageCaptionRequest struct {
InlineMessageId string `json:"inline_message_id"`
// The new message reply markup; pass null if none
ReplyMarkup ReplyMarkup `json:"reply_markup"`
// New message content caption; pass null to remove caption; 0-GetOption("message_caption_length_max") characters
// New message content caption; pass null to remove caption; 0-getOption("message_caption_length_max") characters
Caption *FormattedText `json:"caption"`
}
@ -3787,9 +3790,11 @@ type EditForumTopicRequest struct {
ChatId int64 `json:"chat_id"`
// Message thread identifier of the forum topic
MessageThreadId int64 `json:"message_thread_id"`
// New name of the topic; 1-128 characters
// New name of the topic; 0-128 characters. If empty, the previous topic name is kept
Name string `json:"name"`
// Identifier of the new custom emoji for topic icon. Telegram Premium users can use any custom emoji, other users can use only a custom emoji returned by getForumTopicDefaultIcons
// Pass true to edit the icon of the topic. Icon of the General topic can't be edited
EditIconCustomEmoji bool `json:"edit_icon_custom_emoji"`
// Identifier of the new custom emoji for topic icon; pass 0 to remove the custom emoji. Ignored if edit_icon_custom_emoji is false. Telegram Premium users can use any custom emoji, other users can use only a custom emoji returned by getForumTopicDefaultIcons
IconCustomEmojiId JsonInt64 `json:"icon_custom_emoji_id"`
}
@ -3803,6 +3808,7 @@ func (client *Client) EditForumTopic(req *EditForumTopicRequest) (*Ok, error) {
"chat_id": req.ChatId,
"message_thread_id": req.MessageThreadId,
"name": req.Name,
"edit_icon_custom_emoji": req.EditIconCustomEmoji,
"icon_custom_emoji_id": req.IconCustomEmojiId,
},
})
@ -3817,6 +3823,137 @@ func (client *Client) EditForumTopic(req *EditForumTopicRequest) (*Ok, error) {
return UnmarshalOk(result.Data)
}
type GetForumTopicRequest struct {
// Identifier of the chat
ChatId int64 `json:"chat_id"`
// Message thread identifier of the forum topic
MessageThreadId int64 `json:"message_thread_id"`
}
// Returns information about a forum topic
func (client *Client) GetForumTopic(req *GetForumTopicRequest) (*ForumTopic, error) {
result, err := client.Send(Request{
meta: meta{
Type: "getForumTopic",
},
Data: map[string]interface{}{
"chat_id": req.ChatId,
"message_thread_id": req.MessageThreadId,
},
})
if err != nil {
return nil, err
}
if result.Type == "error" {
return nil, buildResponseError(result.Data)
}
return UnmarshalForumTopic(result.Data)
}
type GetForumTopicLinkRequest struct {
// Identifier of the chat
ChatId int64 `json:"chat_id"`
// Message thread identifier of the forum topic
MessageThreadId int64 `json:"message_thread_id"`
}
// Returns an HTTPS link to a topic in a forum chat. This is an offline request
func (client *Client) GetForumTopicLink(req *GetForumTopicLinkRequest) (*HttpUrl, error) {
result, err := client.Send(Request{
meta: meta{
Type: "getForumTopicLink",
},
Data: map[string]interface{}{
"chat_id": req.ChatId,
"message_thread_id": req.MessageThreadId,
},
})
if err != nil {
return nil, err
}
if result.Type == "error" {
return nil, buildResponseError(result.Data)
}
return UnmarshalHttpUrl(result.Data)
}
type GetForumTopicsRequest struct {
// Identifier of the forum chat
ChatId int64 `json:"chat_id"`
// Query to search for in the forum topic's name
Query string `json:"query"`
// The date starting from which the results need to be fetched. Use 0 or any date in the future to get results from the last topic
OffsetDate int32 `json:"offset_date"`
// The message identifier of the last message in the last found topic, or 0 for the first request
OffsetMessageId int64 `json:"offset_message_id"`
// The message thread identifier of the last found topic, or 0 for the first request
OffsetMessageThreadId int64 `json:"offset_message_thread_id"`
// The maximum number of forum topics to be returned; up to 100. For optimal performance, the number of returned forum topics is chosen by TDLib and can be smaller than the specified limit
Limit int32 `json:"limit"`
}
// Returns found forum topics in a forum chat. This is a temporary method for getting information about topic list from the server
func (client *Client) GetForumTopics(req *GetForumTopicsRequest) (*ForumTopics, error) {
result, err := client.Send(Request{
meta: meta{
Type: "getForumTopics",
},
Data: map[string]interface{}{
"chat_id": req.ChatId,
"query": req.Query,
"offset_date": req.OffsetDate,
"offset_message_id": req.OffsetMessageId,
"offset_message_thread_id": req.OffsetMessageThreadId,
"limit": req.Limit,
},
})
if err != nil {
return nil, err
}
if result.Type == "error" {
return nil, buildResponseError(result.Data)
}
return UnmarshalForumTopics(result.Data)
}
type SetForumTopicNotificationSettingsRequest struct {
// Chat identifier
ChatId int64 `json:"chat_id"`
// Message thread identifier of the forum topic
MessageThreadId int64 `json:"message_thread_id"`
// New notification settings for the forum topic. If the topic is muted for more than 366 days, it is considered to be muted forever
NotificationSettings *ChatNotificationSettings `json:"notification_settings"`
}
// Changes the notification settings of a forum topic
func (client *Client) SetForumTopicNotificationSettings(req *SetForumTopicNotificationSettingsRequest) (*Ok, error) {
result, err := client.Send(Request{
meta: meta{
Type: "setForumTopicNotificationSettings",
},
Data: map[string]interface{}{
"chat_id": req.ChatId,
"message_thread_id": req.MessageThreadId,
"notification_settings": req.NotificationSettings,
},
})
if err != nil {
return nil, err
}
if result.Type == "error" {
return nil, buildResponseError(result.Data)
}
return UnmarshalOk(result.Data)
}
type ToggleForumTopicIsClosedRequest struct {
// Identifier of the chat
ChatId int64 `json:"chat_id"`
@ -3849,6 +3986,35 @@ func (client *Client) ToggleForumTopicIsClosed(req *ToggleForumTopicIsClosedRequ
return UnmarshalOk(result.Data)
}
type ToggleGeneralForumTopicIsHiddenRequest struct {
// Identifier of the chat
ChatId int64 `json:"chat_id"`
// Pass true to hide and close the General topic; pass false to unhide it
IsHidden bool `json:"is_hidden"`
}
// Toggles whether a General topic is hidden in a forum supergroup chat; requires can_manage_topics administrator rights in the supergroup
func (client *Client) ToggleGeneralForumTopicIsHidden(req *ToggleGeneralForumTopicIsHiddenRequest) (*Ok, error) {
result, err := client.Send(Request{
meta: meta{
Type: "toggleGeneralForumTopicIsHidden",
},
Data: map[string]interface{}{
"chat_id": req.ChatId,
"is_hidden": req.IsHidden,
},
})
if err != nil {
return nil, err
}
if result.Type == "error" {
return nil, buildResponseError(result.Data)
}
return UnmarshalOk(result.Data)
}
type DeleteForumTopicRequest struct {
// Identifier of the chat
ChatId int64 `json:"chat_id"`
@ -5224,7 +5390,7 @@ type DeleteChatReplyMarkupRequest struct {
MessageId int64 `json:"message_id"`
}
// Deletes the default reply markup from a chat. Must be called after a one-time keyboard or a ForceReply reply markup has been used. UpdateChatReplyMarkup will be sent if the reply markup is changed
// Deletes the default reply markup from a chat. Must be called after a one-time keyboard or a replyMarkupForceReply reply markup has been used. An updateChatReplyMarkup update will be sent if the reply markup is changed
func (client *Client) DeleteChatReplyMarkup(req *DeleteChatReplyMarkupRequest) (*Ok, error) {
result, err := client.Send(Request{
meta: meta{
@ -5543,6 +5709,9 @@ func (client *Client) GetInternalLinkType(req *GetInternalLinkTypeRequest) (Inte
case TypeInternalLinkTypeUserPhoneNumber:
return UnmarshalInternalLinkTypeUserPhoneNumber(result.Data)
case TypeInternalLinkTypeUserToken:
return UnmarshalInternalLinkTypeUserToken(result.Data)
case TypeInternalLinkTypeVideoChat:
return UnmarshalInternalLinkTypeVideoChat(result.Data)
@ -5843,6 +6012,8 @@ type CreateNewBasicGroupChatRequest struct {
UserIds []int64 `json:"user_ids"`
// Title of the new basic group; 1-128 characters
Title string `json:"title"`
// Message TTL value, in seconds; must be from 0 up to 365 * 86400 and be divisible by 86400. If 0, then messages aren't deleted automatically
MessageTtl int32 `json:"message_ttl"`
}
// Creates a new basic group and sends a corresponding messageBasicGroupChatCreate. Returns the newly created chat
@ -5854,6 +6025,7 @@ func (client *Client) CreateNewBasicGroupChat(req *CreateNewBasicGroupChatReques
Data: map[string]interface{}{
"user_ids": req.UserIds,
"title": req.Title,
"message_ttl": req.MessageTtl,
},
})
if err != nil {
@ -5876,6 +6048,8 @@ type CreateNewSupergroupChatRequest struct {
Description string `json:"description"`
// Chat location if a location-based supergroup is being created; pass null to create an ordinary supergroup chat
Location *ChatLocation `json:"location"`
// Message TTL value, in seconds; must be from 0 up to 365 * 86400 and be divisible by 86400. If 0, then messages aren't deleted automatically
MessageTtl int32 `json:"message_ttl"`
// Pass true to create a supergroup for importing messages using importMessage
ForImport bool `json:"for_import"`
}
@ -5891,6 +6065,7 @@ func (client *Client) CreateNewSupergroupChat(req *CreateNewSupergroupChatReques
"is_channel": req.IsChannel,
"description": req.Description,
"location": req.Location,
"message_ttl": req.MessageTtl,
"for_import": req.ForImport,
},
})
@ -6043,7 +6218,7 @@ type CreateChatFilterRequest struct {
Filter *ChatFilter `json:"filter"`
}
// Creates new chat filter. Returns information about the created chat filter. There can be up to GetOption("chat_filter_count_max") chat filters, but the limit can be increased with Telegram Premium
// Creates new chat filter. Returns information about the created chat filter. There can be up to getOption("chat_filter_count_max") chat filters, but the limit can be increased with Telegram Premium
func (client *Client) CreateChatFilter(req *CreateChatFilterRequest) (*ChatFilterInfo, error) {
result, err := client.Send(Request{
meta: meta{
@ -6259,11 +6434,11 @@ func (client *Client) SetChatPhoto(req *SetChatPhotoRequest) (*Ok, error) {
type SetChatMessageTtlRequest struct {
// Chat identifier
ChatId int64 `json:"chat_id"`
// New TTL value, in seconds; unless the chat is secret, it must be from 0 up to 365 * 86400 and be divisible by 86400
// New TTL value, in seconds; unless the chat is secret, it must be from 0 up to 365 * 86400 and be divisible by 86400. If 0, then messages aren't deleted automatically
Ttl int32 `json:"ttl"`
}
// Changes the message TTL in a chat. Requires can_delete_messages administrator right in basic groups, supergroups and channels Message TTL can't be changed in a chat with the current user (Saved Messages) and the chat 777000 (Telegram).
// Changes the message TTL in a chat. Requires change_info administrator right in basic groups, supergroups and channels Message TTL can't be changed in a chat with the current user (Saved Messages) and the chat 777000 (Telegram).
func (client *Client) SetChatMessageTtl(req *SetChatMessageTtlRequest) (*Ok, error) {
result, err := client.Send(Request{
meta: meta{
@ -7355,7 +7530,7 @@ type ToggleChatIsPinnedRequest struct {
IsPinned bool `json:"is_pinned"`
}
// Changes the pinned state of a chat. There can be up to GetOption("pinned_chat_count_max")/GetOption("pinned_archived_chat_count_max") pinned non-secret chats and the same number of secret chats in the main/archive chat list. The limit can be increased with Telegram Premium
// Changes the pinned state of a chat. There can be up to getOption("pinned_chat_count_max")/getOption("pinned_archived_chat_count_max") pinned non-secret chats and the same number of secret chats in the main/archive chat list. The limit can be increased with Telegram Premium
func (client *Client) ToggleChatIsPinned(req *ToggleChatIsPinnedRequest) (*Ok, error) {
result, err := client.Send(Request{
meta: meta{
@ -9157,7 +9332,7 @@ func (client *Client) StartGroupCallScreenSharing(req *StartGroupCallScreenShari
type ToggleGroupCallScreenSharingIsPausedRequest struct {
// Group call identifier
GroupCallId int32 `json:"group_call_id"`
// True if screen sharing is paused
// True, if screen sharing is paused
IsPaused bool `json:"is_paused"`
}
@ -11115,7 +11290,7 @@ func (client *Client) SetName(req *SetNameRequest) (*Ok, error) {
}
type SetBioRequest struct {
// The new value of the user bio; 0-GetOption("bio_length_max") characters without line feeds
// The new value of the user bio; 0-getOption("bio_length_max") characters without line feeds
Bio string `json:"bio"`
}
@ -11255,7 +11430,7 @@ type SetLocationRequest struct {
Location *Location `json:"location"`
}
// Changes the location of the current user. Needs to be called if GetOption("is_location_visible") is true and location changes for more than 1 kilometer
// Changes the location of the current user. Needs to be called if getOption("is_location_visible") is true and location changes for more than 1 kilometer
func (client *Client) SetLocation(req *SetLocationRequest) (*Ok, error) {
result, err := client.Send(Request{
meta: meta{
@ -11350,6 +11525,51 @@ func (client *Client) CheckChangePhoneNumberCode(req *CheckChangePhoneNumberCode
return UnmarshalOk(result.Data)
}
// Returns an HTTPS link, which can be used to get information about the current user
func (client *Client) GetUserLink() (*UserLink, error) {
result, err := client.Send(Request{
meta: meta{
Type: "getUserLink",
},
Data: map[string]interface{}{},
})
if err != nil {
return nil, err
}
if result.Type == "error" {
return nil, buildResponseError(result.Data)
}
return UnmarshalUserLink(result.Data)
}
type SearchUserByTokenRequest struct {
// Token to search for
Token string `json:"token"`
}
// Searches a user by a token from the user's link
func (client *Client) SearchUserByToken(req *SearchUserByTokenRequest) (*User, error) {
result, err := client.Send(Request{
meta: meta{
Type: "searchUserByToken",
},
Data: map[string]interface{}{
"token": req.Token,
},
})
if err != nil {
return nil, err
}
if result.Type == "error" {
return nil, buildResponseError(result.Data)
}
return UnmarshalUser(result.Data)
}
type SetCommandsRequest struct {
// The scope to which the commands are relevant; pass null to change commands in the default bot command scope
Scope BotCommandScope `json:"scope"`
@ -12020,10 +12240,39 @@ func (client *Client) ToggleSupergroupIsAllHistoryAvailable(req *ToggleSupergrou
return UnmarshalOk(result.Data)
}
type ToggleSupergroupIsAggressiveAntiSpamEnabledRequest struct {
// The identifier of the supergroup, which isn't a broadcast group
SupergroupId int64 `json:"supergroup_id"`
// The new value of is_aggressive_anti_spam_enabled
IsAggressiveAntiSpamEnabled bool `json:"is_aggressive_anti_spam_enabled"`
}
// Toggles whether aggressive anti-spam checks are enabled in the supergroup; requires can_delete_messages administrator right. Can be called only if the supergroup has at least getOption("aggressive_anti_spam_supergroup_member_count_min") members
func (client *Client) ToggleSupergroupIsAggressiveAntiSpamEnabled(req *ToggleSupergroupIsAggressiveAntiSpamEnabledRequest) (*Ok, error) {
result, err := client.Send(Request{
meta: meta{
Type: "toggleSupergroupIsAggressiveAntiSpamEnabled",
},
Data: map[string]interface{}{
"supergroup_id": req.SupergroupId,
"is_aggressive_anti_spam_enabled": req.IsAggressiveAntiSpamEnabled,
},
})
if err != nil {
return nil, err
}
if result.Type == "error" {
return nil, buildResponseError(result.Data)
}
return UnmarshalOk(result.Data)
}
type ToggleSupergroupIsForumRequest struct {
// Identifier of the supergroup
SupergroupId int64 `json:"supergroup_id"`
// New value of is_forum. A supergroup can be converted to a forum, only if it has at least GetOption("forum_member_count_min") members
// New value of is_forum. A supergroup can be converted to a forum, only if it has at least getOption("forum_member_count_min") members
IsForum bool `json:"is_forum"`
}
@ -12104,6 +12353,35 @@ func (client *Client) ReportSupergroupSpam(req *ReportSupergroupSpamRequest) (*O
return UnmarshalOk(result.Data)
}
type ReportSupergroupAntiSpamFalsePositiveRequest struct {
// Supergroup identifier
SupergroupId int64 `json:"supergroup_id"`
// Identifier of the erroneously deleted message
MessageId int64 `json:"message_id"`
}
// Reports a false deletion of a message by aggressive anti-spam checks; requires administrator rights in the supergroup. Can be called only for messages from chatEventMessageDeleted with can_report_anti_spam_false_positive == true
func (client *Client) ReportSupergroupAntiSpamFalsePositive(req *ReportSupergroupAntiSpamFalsePositiveRequest) (*Ok, error) {
result, err := client.Send(Request{
meta: meta{
Type: "reportSupergroupAntiSpamFalsePositive",
},
Data: map[string]interface{}{
"supergroup_id": req.SupergroupId,
"message_id": req.MessageId,
},
})
if err != nil {
return nil, err
}
if result.Type == "error" {
return nil, buildResponseError(result.Data)
}
return UnmarshalOk(result.Data)
}
type GetSupergroupMembersRequest struct {
// Identifier of the supergroup or channel
SupergroupId int64 `json:"supergroup_id"`
@ -12309,7 +12587,7 @@ func (client *Client) SendPaymentForm(req *SendPaymentFormRequest) (*PaymentResu
}
type GetPaymentReceiptRequest struct {
// Chat identifier of the PaymentSuccessful message
// Chat identifier of the messagePaymentSuccessful message
ChatId int64 `json:"chat_id"`
// Message identifier
MessageId int64 `json:"message_id"`
@ -13156,6 +13434,51 @@ func (client *Client) DeleteAccount(req *DeleteAccountRequest) (*Ok, error) {
return UnmarshalOk(result.Data)
}
type SetDefaultMessageTtlRequest struct {
// New message TTL; must be from 0 up to 365 * 86400 and be divisible by 86400. If 0, then messages aren't deleted automatically
Ttl *MessageTtl `json:"ttl"`
}
// Changes the default message Time To Live setting (self-destruct timer) for new chats
func (client *Client) SetDefaultMessageTtl(req *SetDefaultMessageTtlRequest) (*Ok, error) {
result, err := client.Send(Request{
meta: meta{
Type: "setDefaultMessageTtl",
},
Data: map[string]interface{}{
"ttl": req.Ttl,
},
})
if err != nil {
return nil, err
}
if result.Type == "error" {
return nil, buildResponseError(result.Data)
}
return UnmarshalOk(result.Data)
}
// Returns default message Time To Live setting (self-destruct timer) for new chats
func (client *Client) GetDefaultMessageTtl() (*MessageTtl, error) {
result, err := client.Send(Request{
meta: meta{
Type: "getDefaultMessageTtl",
},
Data: map[string]interface{}{},
})
if err != nil {
return nil, err
}
if result.Type == "error" {
return nil, buildResponseError(result.Data)
}
return UnmarshalMessageTtl(result.Data)
}
type RemoveChatActionBarRequest struct {
// Chat identifier
ChatId int64 `json:"chat_id"`

View file

@ -221,6 +221,7 @@ const (
ClassForumTopicIcon = "ForumTopicIcon"
ClassForumTopicInfo = "ForumTopicInfo"
ClassForumTopic = "ForumTopic"
ClassForumTopics = "ForumTopics"
ClassPageBlockCaption = "PageBlockCaption"
ClassPageBlockListItem = "PageBlockListItem"
ClassPageBlockTableCell = "PageBlockTableCell"
@ -294,6 +295,7 @@ const (
ClassAttachmentMenuBot = "AttachmentMenuBot"
ClassSentWebAppMessage = "SentWebAppMessage"
ClassHttpUrl = "HttpUrl"
ClassUserLink = "UserLink"
ClassInlineQueryResults = "InlineQueryResults"
ClassCallbackQueryAnswer = "CallbackQueryAnswer"
ClassCustomRequestResult = "CustomRequestResult"
@ -323,6 +325,7 @@ const (
ClassJsonObjectMember = "JsonObjectMember"
ClassUserPrivacySettingRules = "UserPrivacySettingRules"
ClassAccountTtl = "AccountTtl"
ClassMessageTtl = "MessageTtl"
ClassSession = "Session"
ClassSessions = "Sessions"
ClassConnectedWebsite = "ConnectedWebsite"
@ -377,6 +380,7 @@ const (
TypeAuthenticationCodeTypeCall = "authenticationCodeTypeCall"
TypeAuthenticationCodeTypeFlashCall = "authenticationCodeTypeFlashCall"
TypeAuthenticationCodeTypeMissedCall = "authenticationCodeTypeMissedCall"
TypeAuthenticationCodeTypeFragment = "authenticationCodeTypeFragment"
TypeAuthenticationCodeInfo = "authenticationCodeInfo"
TypeEmailAddressAuthenticationCodeInfo = "emailAddressAuthenticationCodeInfo"
TypeEmailAddressAuthenticationCode = "emailAddressAuthenticationCode"
@ -611,6 +615,7 @@ const (
TypeForumTopicIcon = "forumTopicIcon"
TypeForumTopicInfo = "forumTopicInfo"
TypeForumTopic = "forumTopic"
TypeForumTopics = "forumTopics"
TypeRichTextPlain = "richTextPlain"
TypeRichTextBold = "richTextBold"
TypeRichTextItalic = "richTextItalic"
@ -814,6 +819,7 @@ const (
TypeMessageForumTopicCreated = "messageForumTopicCreated"
TypeMessageForumTopicEdited = "messageForumTopicEdited"
TypeMessageForumTopicIsClosedToggled = "messageForumTopicIsClosedToggled"
TypeMessageForumTopicIsHiddenToggled = "messageForumTopicIsHiddenToggled"
TypeMessageCustomServiceAction = "messageCustomServiceAction"
TypeMessageGameScore = "messageGameScore"
TypeMessagePaymentSuccessful = "messagePaymentSuccessful"
@ -968,6 +974,7 @@ const (
TypeAttachmentMenuBot = "attachmentMenuBot"
TypeSentWebAppMessage = "sentWebAppMessage"
TypeHttpUrl = "httpUrl"
TypeUserLink = "userLink"
TypeInputInlineQueryResultAnimation = "inputInlineQueryResultAnimation"
TypeInputInlineQueryResultArticle = "inputInlineQueryResultArticle"
TypeInputInlineQueryResultAudio = "inputInlineQueryResultAudio"
@ -1027,6 +1034,7 @@ const (
TypeChatEventHasProtectedContentToggled = "chatEventHasProtectedContentToggled"
TypeChatEventInvitesToggled = "chatEventInvitesToggled"
TypeChatEventIsAllHistoryAvailableToggled = "chatEventIsAllHistoryAvailableToggled"
TypeChatEventIsAggressiveAntiSpamEnabledToggled = "chatEventIsAggressiveAntiSpamEnabledToggled"
TypeChatEventSignMessagesToggled = "chatEventSignMessagesToggled"
TypeChatEventInviteLinkEdited = "chatEventInviteLinkEdited"
TypeChatEventInviteLinkRevoked = "chatEventInviteLinkRevoked"
@ -1040,6 +1048,7 @@ const (
TypeChatEventForumTopicCreated = "chatEventForumTopicCreated"
TypeChatEventForumTopicEdited = "chatEventForumTopicEdited"
TypeChatEventForumTopicToggleIsClosed = "chatEventForumTopicToggleIsClosed"
TypeChatEventForumTopicToggleIsHidden = "chatEventForumTopicToggleIsHidden"
TypeChatEventForumTopicDeleted = "chatEventForumTopicDeleted"
TypeChatEventForumTopicPinned = "chatEventForumTopicPinned"
TypeChatEvent = "chatEvent"
@ -1118,7 +1127,8 @@ const (
TypeCheckChatUsernameResultOk = "checkChatUsernameResultOk"
TypeCheckChatUsernameResultUsernameInvalid = "checkChatUsernameResultUsernameInvalid"
TypeCheckChatUsernameResultUsernameOccupied = "checkChatUsernameResultUsernameOccupied"
TypeCheckChatUsernameResultPublicChatsTooMuch = "checkChatUsernameResultPublicChatsTooMuch"
TypeCheckChatUsernameResultUsernamePurchasable = "checkChatUsernameResultUsernamePurchasable"
TypeCheckChatUsernameResultPublicChatsTooMany = "checkChatUsernameResultPublicChatsTooMany"
TypeCheckChatUsernameResultPublicGroupsUnavailable = "checkChatUsernameResultPublicGroupsUnavailable"
TypeCheckStickerSetNameResultOk = "checkStickerSetNameResultOk"
TypeCheckStickerSetNameResultNameInvalid = "checkStickerSetNameResultNameInvalid"
@ -1200,6 +1210,7 @@ const (
TypeUserPrivacySettingAllowFindingByPhoneNumber = "userPrivacySettingAllowFindingByPhoneNumber"
TypeUserPrivacySettingAllowPrivateVoiceAndVideoNoteMessages = "userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages"
TypeAccountTtl = "accountTtl"
TypeMessageTtl = "messageTtl"
TypeSessionTypeAndroid = "sessionTypeAndroid"
TypeSessionTypeApple = "sessionTypeApple"
TypeSessionTypeBrave = "sessionTypeBrave"
@ -1266,6 +1277,7 @@ const (
TypeInternalLinkTypeUnknownDeepLink = "internalLinkTypeUnknownDeepLink"
TypeInternalLinkTypeUnsupportedProxy = "internalLinkTypeUnsupportedProxy"
TypeInternalLinkTypeUserPhoneNumber = "internalLinkTypeUserPhoneNumber"
TypeInternalLinkTypeUserToken = "internalLinkTypeUserToken"
TypeInternalLinkTypeVideoChat = "internalLinkTypeVideoChat"
TypeMessageLink = "messageLink"
TypeMessageLinkInfo = "messageLinkInfo"
@ -1947,7 +1959,7 @@ type SuggestedAction interface {
SuggestedActionType() string
}
// Describes the way the text needs to be parsed for TextEntities
// Describes the way the text needs to be parsed for text entities
type TextParseMode interface {
TextParseModeType() string
}
@ -2170,6 +2182,35 @@ func (*AuthenticationCodeTypeMissedCall) AuthenticationCodeTypeType() string {
return TypeAuthenticationCodeTypeMissedCall
}
// An authentication code is delivered to https://fragment.com. The user must be logged in there via a wallet owning the phone number's NFT
type AuthenticationCodeTypeFragment struct {
meta
// URL to open to receive the code
Url string `json:"url"`
// Length of the code
Length int32 `json:"length"`
}
func (entity *AuthenticationCodeTypeFragment) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub AuthenticationCodeTypeFragment
return json.Marshal((*stub)(entity))
}
func (*AuthenticationCodeTypeFragment) GetClass() string {
return ClassAuthenticationCodeType
}
func (*AuthenticationCodeTypeFragment) GetType() string {
return TypeAuthenticationCodeTypeFragment
}
func (*AuthenticationCodeTypeFragment) AuthenticationCodeTypeType() string {
return TypeAuthenticationCodeTypeFragment
}
// Information about the authentication code that was sent
type AuthenticationCodeInfo struct {
meta
@ -5034,7 +5075,7 @@ func (premiumPaymentOption *PremiumPaymentOption) UnmarshalJSON(data []byte) err
// Describes a custom emoji to be shown instead of the Telegram Premium badge
type EmojiStatus struct {
meta
// Identifier of the custom emoji in stickerFormatTgs format. If the custom emoji belongs to the sticker set GetOption("themed_emoji_statuses_sticker_set_id"), then it's color must be changed to the color of the Telegram Premium badge
// Identifier of the custom emoji in stickerFormatTgs format. If the custom emoji belongs to the sticker set getOption("themed_emoji_statuses_sticker_set_id"), then it's color must be changed to the color of the Telegram Premium badge
CustomEmojiId JsonInt64 `json:"custom_emoji_id"`
}
@ -5135,13 +5176,15 @@ type User struct {
IsPremium bool `json:"is_premium"`
// True, if the user is Telegram support account
IsSupport bool `json:"is_support"`
// True, if the user's phone number was bought on Fragment and isn't tied to a SIM card
HasAnonymousPhoneNumber bool `json:"has_anonymous_phone_number"`
// If non-empty, it contains a human-readable description of the reason why access to this user must be restricted
RestrictionReason string `json:"restriction_reason"`
// True, if many users reported this user as a scam
IsScam bool `json:"is_scam"`
// True, if many users reported this user as a fake account
IsFake bool `json:"is_fake"`
// If false, the user is inaccessible, and the only information known about the user is inside this class. Identifier of the user can't be passed to any method except GetUser
// If false, the user is inaccessible, and the only information known about the user is inside this class. Identifier of the user can't be passed to any method
HaveAccess bool `json:"have_access"`
// Type of the user
Type UserType `json:"type"`
@ -5183,6 +5226,7 @@ func (user *User) UnmarshalJSON(data []byte) error {
IsVerified bool `json:"is_verified"`
IsPremium bool `json:"is_premium"`
IsSupport bool `json:"is_support"`
HasAnonymousPhoneNumber bool `json:"has_anonymous_phone_number"`
RestrictionReason string `json:"restriction_reason"`
IsScam bool `json:"is_scam"`
IsFake bool `json:"is_fake"`
@ -5210,6 +5254,7 @@ func (user *User) UnmarshalJSON(data []byte) error {
user.IsVerified = tmp.IsVerified
user.IsPremium = tmp.IsPremium
user.IsSupport = tmp.IsSupport
user.HasAnonymousPhoneNumber = tmp.HasAnonymousPhoneNumber
user.RestrictionReason = tmp.RestrictionReason
user.IsScam = tmp.IsScam
user.IsFake = tmp.IsFake
@ -5560,7 +5605,7 @@ type ChatMember struct {
MemberId MessageSender `json:"member_id"`
// Identifier of a user that invited/promoted/banned this member in the chat; 0 if unknown
InviterUserId int64 `json:"inviter_user_id"`
// Point in time (Unix timestamp) when the user joined the chat
// Point in time (Unix timestamp) when the user joined/was promoted/was banned in the chat
JoinedChatDate int32 `json:"joined_chat_date"`
// Status of the member in the chat
Status ChatMemberStatus `json:"status"`
@ -6584,6 +6629,8 @@ type SupergroupFullInfo struct {
CanGetStatistics bool `json:"can_get_statistics"`
// True, if new chat members will have access to old messages. In public, discussion, of forum groups and all channels, old messages are always available, so this option affects only private non-forum supergroups without a linked chat. The value of this field is only available for chat administrators
IsAllHistoryAvailable bool `json:"is_all_history_available"`
// True, if aggressive anti-spam checks are enabled in the supergroup. The value of this field is only available for chat administrators
IsAggressiveAntiSpamEnabled bool `json:"is_aggressive_anti_spam_enabled"`
// Identifier of the supergroup sticker set; 0 if none
StickerSetId JsonInt64 `json:"sticker_set_id"`
// Location to which the supergroup is connected; may be null
@ -8015,26 +8062,26 @@ func (*NotificationSettingsScopeChannelChats) NotificationSettingsScopeType() st
return TypeNotificationSettingsScopeChannelChats
}
// Contains information about notification settings for a chat
// Contains information about notification settings for a chat or a froum topic
type ChatNotificationSettings struct {
meta
// If true, mute_for is ignored and the value for the relevant type of chat is used instead
// If true, mute_for is ignored and the value for the relevant type of chat or the forum chat is used instead
UseDefaultMuteFor bool `json:"use_default_mute_for"`
// Time left before notifications will be unmuted, in seconds
MuteFor int32 `json:"mute_for"`
// If true, the value for the relevant type of chat is used instead of sound_id
// If true, the value for the relevant type of chat or the forum chat is used instead of sound_id
UseDefaultSound bool `json:"use_default_sound"`
// Identifier of the notification sound to be played; 0 if sound is disabled
SoundId JsonInt64 `json:"sound_id"`
// If true, show_preview is ignored and the value for the relevant type of chat is used instead
// If true, show_preview is ignored and the value for the relevant type of chat or the forum chat is used instead
UseDefaultShowPreview bool `json:"use_default_show_preview"`
// True, if message content must be displayed in notifications
ShowPreview bool `json:"show_preview"`
// If true, disable_pinned_message_notifications is ignored and the value for the relevant type of chat is used instead
// If true, disable_pinned_message_notifications is ignored and the value for the relevant type of chat or the forum chat is used instead
UseDefaultDisablePinnedMessageNotifications bool `json:"use_default_disable_pinned_message_notifications"`
// If true, notifications for incoming pinned messages will be created as for an ordinary unread message
DisablePinnedMessageNotifications bool `json:"disable_pinned_message_notifications"`
// If true, disable_mention_notifications is ignored and the value for the relevant type of chat is used instead
// If true, disable_mention_notifications is ignored and the value for the relevant type of chat or the forum chat is used instead
UseDefaultDisableMentionNotifications bool `json:"use_default_disable_mention_notifications"`
// If true, notifications for messages with mentions will be created as for an ordinary unread message
DisableMentionNotifications bool `json:"disable_mention_notifications"`
@ -8254,11 +8301,11 @@ type ChatFilter struct {
Title string `json:"title"`
// The chosen icon name for short filter representation. If non-empty, must be one of "All", "Unread", "Unmuted", "Bots", "Channels", "Groups", "Private", "Custom", "Setup", "Cat", "Crown", "Favorite", "Flower", "Game", "Home", "Love", "Mask", "Party", "Sport", "Study", "Trade", "Travel", "Work", "Airplane", "Book", "Light", "Like", "Money", "Note", "Palette". If empty, use getChatFilterDefaultIconName to get default icon name for the filter
IconName string `json:"icon_name"`
// The chat identifiers of pinned chats in the filtered chat list. There can be up to GetOption("chat_filter_chosen_chat_count_max") pinned and always included non-secret chats and the same number of secret chats, but the limit can be increased with Telegram Premium
// The chat identifiers of pinned chats in the filtered chat list. There can be up to getOption("chat_filter_chosen_chat_count_max") pinned and always included non-secret chats and the same number of secret chats, but the limit can be increased with Telegram Premium
PinnedChatIds []int64 `json:"pinned_chat_ids"`
// The chat identifiers of always included chats in the filtered chat list. There can be up to GetOption("chat_filter_chosen_chat_count_max") pinned and always included non-secret chats and the same number of secret chats, but the limit can be increased with Telegram Premium
// The chat identifiers of always included chats in the filtered chat list. There can be up to getOption("chat_filter_chosen_chat_count_max") pinned and always included non-secret chats and the same number of secret chats, but the limit can be increased with Telegram Premium
IncludedChatIds []int64 `json:"included_chat_ids"`
// The chat identifiers of always excluded chats in the filtered chat list. There can be up to GetOption("chat_filter_chosen_chat_count_max") always excluded non-secret chats and the same number of secret chats, but the limit can be increased with Telegram Premium
// The chat identifiers of always excluded chats in the filtered chat list. There can be up to getOption("chat_filter_chosen_chat_count_max") always excluded non-secret chats and the same number of secret chats, but the limit can be increased with Telegram Premium
ExcludedChatIds []int64 `json:"excluded_chat_ids"`
// True, if muted chats need to be excluded
ExcludeMuted bool `json:"exclude_muted"`
@ -9651,7 +9698,7 @@ func (inlineKeyboardButton *InlineKeyboardButton) UnmarshalJSON(data []byte) err
return nil
}
// Instructs application to remove the keyboard once this message has been received. This kind of keyboard can't be received in an incoming message; instead, UpdateChatReplyMarkup with message_id == 0 will be sent
// Instructs application to remove the keyboard once this message has been received. This kind of keyboard can't be received in an incoming message; instead, updateChatReplyMarkup with message_id == 0 will be sent
type ReplyMarkupRemoveKeyboard struct {
meta
// True, if the keyboard is removed only for the mentioned users or the target user of a reply
@ -9927,10 +9974,14 @@ type ForumTopicInfo struct {
CreationDate int32 `json:"creation_date"`
// Identifier of the creator of the topic
CreatorId MessageSender `json:"creator_id"`
// True, if the topic is the General topic list
IsGeneral bool `json:"is_general"`
// True, if the topic was created by the current user
IsOutgoing bool `json:"is_outgoing"`
// True, if the topic is closed
IsClosed bool `json:"is_closed"`
// True, if the topic is hidden above the topic list and closed; for General topic only
IsHidden bool `json:"is_hidden"`
}
func (entity *ForumTopicInfo) MarshalJSON() ([]byte, error) {
@ -9956,8 +10007,10 @@ func (forumTopicInfo *ForumTopicInfo) UnmarshalJSON(data []byte) error {
Icon *ForumTopicIcon `json:"icon"`
CreationDate int32 `json:"creation_date"`
CreatorId json.RawMessage `json:"creator_id"`
IsGeneral bool `json:"is_general"`
IsOutgoing bool `json:"is_outgoing"`
IsClosed bool `json:"is_closed"`
IsHidden bool `json:"is_hidden"`
}
err := json.Unmarshal(data, &tmp)
@ -9969,8 +10022,10 @@ func (forumTopicInfo *ForumTopicInfo) UnmarshalJSON(data []byte) error {
forumTopicInfo.Name = tmp.Name
forumTopicInfo.Icon = tmp.Icon
forumTopicInfo.CreationDate = tmp.CreationDate
forumTopicInfo.IsGeneral = tmp.IsGeneral
forumTopicInfo.IsOutgoing = tmp.IsOutgoing
forumTopicInfo.IsClosed = tmp.IsClosed
forumTopicInfo.IsHidden = tmp.IsHidden
fieldCreatorId, _ := UnmarshalMessageSender(tmp.CreatorId)
forumTopicInfo.CreatorId = fieldCreatorId
@ -9983,7 +10038,7 @@ type ForumTopic struct {
meta
// Basic information about the topic
Info *ForumTopicInfo `json:"info"`
// Last message in the topic; may be null
// Last message in the topic; may be null if unknown
LastMessage *Message `json:"last_message"`
// True, if the topic is pinned in the topic list
IsPinned bool `json:"is_pinned"`
@ -10019,6 +10074,37 @@ func (*ForumTopic) GetType() string {
return TypeForumTopic
}
// Describes a list of forum topics
type ForumTopics struct {
meta
// Approximate total number of forum topics found
TotalCount int32 `json:"total_count"`
// List of forum topics
Topics []*ForumTopic `json:"topics"`
// Offset date for the next getForumTopics request
NextOffsetDate int32 `json:"next_offset_date"`
// Offset message identifier for the next getForumTopics request
NextOffsetMessageId int64 `json:"next_offset_message_id"`
// Offset message thread identifier for the next getForumTopics request
NextOffsetMessageThreadId int64 `json:"next_offset_message_thread_id"`
}
func (entity *ForumTopics) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub ForumTopics
return json.Marshal((*stub)(entity))
}
func (*ForumTopics) GetClass() string {
return ClassForumTopics
}
func (*ForumTopics) GetType() string {
return TypeForumTopics
}
// A plain text
type RichTextPlain struct {
meta
@ -16657,6 +16743,8 @@ type MessageChatSetTtl struct {
meta
// New message TTL
Ttl int32 `json:"ttl"`
// If not 0, a user identifier, which default setting was automatically applied
FromUserId int64 `json:"from_user_id"`
}
func (entity *MessageChatSetTtl) MarshalJSON() ([]byte, error) {
@ -16742,7 +16830,7 @@ func (*MessageForumTopicEdited) MessageContentType() string {
// A forum topic has been closed or opened
type MessageForumTopicIsClosedToggled struct {
meta
// True if the topic was closed or reopened
// True, if the topic was closed, otherwise the topic was reopened
IsClosed bool `json:"is_closed"`
}
@ -16766,6 +16854,33 @@ func (*MessageForumTopicIsClosedToggled) MessageContentType() string {
return TypeMessageForumTopicIsClosedToggled
}
// A General forum topic has been hidden or unhidden
type MessageForumTopicIsHiddenToggled struct {
meta
// True, if the topic was hidden, otherwise the topic was unhidden
IsHidden bool `json:"is_hidden"`
}
func (entity *MessageForumTopicIsHiddenToggled) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub MessageForumTopicIsHiddenToggled
return json.Marshal((*stub)(entity))
}
func (*MessageForumTopicIsHiddenToggled) GetClass() string {
return ClassMessageContent
}
func (*MessageForumTopicIsHiddenToggled) GetType() string {
return TypeMessageForumTopicIsHiddenToggled
}
func (*MessageForumTopicIsHiddenToggled) MessageContentType() string {
return TypeMessageForumTopicIsHiddenToggled
}
// A non-standard action has happened in the chat
type MessageCustomServiceAction struct {
meta
@ -17894,7 +18009,7 @@ func (*MessageCopyOptions) GetType() string {
// A text message
type InputMessageText struct {
meta
// Formatted text to be sent; 1-GetOption("message_text_length_max") characters. Only Bold, Italic, Underline, Strikethrough, Spoiler, CustomEmoji, Code, Pre, PreCode, TextUrl and MentionName entities are allowed to be specified manually
// Formatted text to be sent; 1-getOption("message_text_length_max") characters. Only Bold, Italic, Underline, Strikethrough, Spoiler, CustomEmoji, Code, Pre, PreCode, TextUrl and MentionName entities are allowed to be specified manually
Text *FormattedText `json:"text"`
// True, if rich web page previews for URLs in the message text must be disabled
DisableWebPagePreview bool `json:"disable_web_page_preview"`
@ -17937,7 +18052,7 @@ type InputMessageAnimation struct {
Width int32 `json:"width"`
// Height of the animation; may be replaced by the server
Height int32 `json:"height"`
// Animation caption; pass null to use an empty caption; 0-GetOption("message_caption_length_max") characters
// Animation caption; pass null to use an empty caption; 0-getOption("message_caption_length_max") characters
Caption *FormattedText `json:"caption"`
}
@ -18003,7 +18118,7 @@ type InputMessageAudio struct {
Title string `json:"title"`
// Performer of the audio; 0-64 characters, may be replaced by the server
Performer string `json:"performer"`
// Audio caption; pass null to use an empty caption; 0-GetOption("message_caption_length_max") characters
// Audio caption; pass null to use an empty caption; 0-getOption("message_caption_length_max") characters
Caption *FormattedText `json:"caption"`
}
@ -18063,7 +18178,7 @@ type InputMessageDocument struct {
Thumbnail *InputThumbnail `json:"thumbnail"`
// If true, automatic file type detection will be disabled and the document will always be sent as file. Always true for files sent to secret chats
DisableContentTypeDetection bool `json:"disable_content_type_detection"`
// Document caption; pass null to use an empty caption; 0-GetOption("message_caption_length_max") characters
// Document caption; pass null to use an empty caption; 0-getOption("message_caption_length_max") characters
Caption *FormattedText `json:"caption"`
}
@ -18123,7 +18238,7 @@ type InputMessagePhoto struct {
Width int32 `json:"width"`
// Photo height
Height int32 `json:"height"`
// Photo caption; pass null to use an empty caption; 0-GetOption("message_caption_length_max") characters
// Photo caption; pass null to use an empty caption; 0-getOption("message_caption_length_max") characters
Caption *FormattedText `json:"caption"`
// Photo TTL (Time To Live), in seconds (0-60). A non-zero TTL can be specified only in private chats
Ttl int32 `json:"ttl"`
@ -18255,7 +18370,7 @@ type InputMessageVideo struct {
Height int32 `json:"height"`
// True, if the video is supposed to be streamed
SupportsStreaming bool `json:"supports_streaming"`
// Video caption; pass null to use an empty caption; 0-GetOption("message_caption_length_max") characters
// Video caption; pass null to use an empty caption; 0-getOption("message_caption_length_max") characters
Caption *FormattedText `json:"caption"`
// Video TTL (Time To Live), in seconds (0-60). A non-zero TTL can be specified only in private chats
Ttl int32 `json:"ttl"`
@ -18379,7 +18494,7 @@ type InputMessageVoiceNote struct {
Duration int32 `json:"duration"`
// Waveform representation of the voice note in 5-bit format
Waveform []byte `json:"waveform"`
// Voice note caption; pass null to use an empty caption; 0-GetOption("message_caption_length_max") characters
// Voice note caption; pass null to use an empty caption; 0-getOption("message_caption_length_max") characters
Caption *FormattedText `json:"caption"`
}
@ -20812,7 +20927,7 @@ type GroupCallParticipantVideoInfo struct {
SourceGroups []*GroupCallVideoSourceGroup `json:"source_groups"`
// Video channel endpoint identifier
EndpointId string `json:"endpoint_id"`
// True if the video is paused. This flag needs to be ignored, if new video frames are received
// True, if the video is paused. This flag needs to be ignored, if new video frames are received
IsPaused bool `json:"is_paused"`
}
@ -21523,7 +21638,7 @@ func (*DiceStickersSlotMachine) DiceStickersType() string {
return TypeDiceStickersSlotMachine
}
// Represents the result of an ImportContacts request
// Represents the result of an importContacts request
type ImportedContacts struct {
meta
// User identifiers of the imported contacts in the same order as they were specified in the request; 0 if the contact is not yet a registered user
@ -21753,6 +21868,31 @@ func (*HttpUrl) GetType() string {
return TypeHttpUrl
}
// Contains an HTTPS URL, which can be used to get information about a user
type UserLink struct {
meta
// The URL
Url string `json:"url"`
// Left time for which the link is valid, in seconds; 0 if the link is a public username link
ExpiresIn int32 `json:"expires_in"`
}
func (entity *UserLink) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub UserLink
return json.Marshal((*stub)(entity))
}
func (*UserLink) GetClass() string {
return ClassUserLink
}
func (*UserLink) GetType() string {
return TypeUserLink
}
// Represents a link to an animated GIF or an animated (i.e., without sound) H.264/MPEG-4 AVC video
type InputInlineQueryResultAnimation struct {
meta
@ -23296,6 +23436,8 @@ type ChatEventMessageDeleted struct {
meta
// Deleted message
Message *Message `json:"message"`
// True, if the message deletion can be reported via reportSupergroupAntiSpamFalsePositive
CanReportAntiSpamFalsePositive bool `json:"can_report_anti_spam_false_positive"`
}
func (entity *ChatEventMessageDeleted) MarshalJSON() ([]byte, error) {
@ -24111,6 +24253,33 @@ func (*ChatEventIsAllHistoryAvailableToggled) ChatEventActionType() string {
return TypeChatEventIsAllHistoryAvailableToggled
}
// The is_aggressive_anti_spam_enabled setting of a supergroup was toggled
type ChatEventIsAggressiveAntiSpamEnabledToggled struct {
meta
// New value of is_aggressive_anti_spam_enabled
IsAggressiveAntiSpamEnabled bool `json:"is_aggressive_anti_spam_enabled"`
}
func (entity *ChatEventIsAggressiveAntiSpamEnabledToggled) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub ChatEventIsAggressiveAntiSpamEnabledToggled
return json.Marshal((*stub)(entity))
}
func (*ChatEventIsAggressiveAntiSpamEnabledToggled) GetClass() string {
return ClassChatEventAction
}
func (*ChatEventIsAggressiveAntiSpamEnabledToggled) GetType() string {
return TypeChatEventIsAggressiveAntiSpamEnabledToggled
}
func (*ChatEventIsAggressiveAntiSpamEnabledToggled) ChatEventActionType() string {
return TypeChatEventIsAggressiveAntiSpamEnabledToggled
}
// The sign_messages setting of a channel was toggled
type ChatEventSignMessagesToggled struct {
meta
@ -24508,6 +24677,33 @@ func (*ChatEventForumTopicToggleIsClosed) ChatEventActionType() string {
return TypeChatEventForumTopicToggleIsClosed
}
// The General forum topic was hidden or unhidden
type ChatEventForumTopicToggleIsHidden struct {
meta
// New information about the topic
TopicInfo *ForumTopicInfo `json:"topic_info"`
}
func (entity *ChatEventForumTopicToggleIsHidden) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub ChatEventForumTopicToggleIsHidden
return json.Marshal((*stub)(entity))
}
func (*ChatEventForumTopicToggleIsHidden) GetClass() string {
return ClassChatEventAction
}
func (*ChatEventForumTopicToggleIsHidden) GetType() string {
return TypeChatEventForumTopicToggleIsHidden
}
func (*ChatEventForumTopicToggleIsHidden) ChatEventActionType() string {
return TypeChatEventForumTopicToggleIsHidden
}
// A forum topic was deleted
type ChatEventForumTopicDeleted struct {
meta
@ -26862,29 +27058,54 @@ func (*CheckChatUsernameResultUsernameOccupied) CheckChatUsernameResultType() st
return TypeCheckChatUsernameResultUsernameOccupied
}
// The user has too many chats with username, one of them must be made private first
type CheckChatUsernameResultPublicChatsTooMuch struct{
// The username can be purchased at fragment.com
type CheckChatUsernameResultUsernamePurchasable struct{
meta
}
func (entity *CheckChatUsernameResultPublicChatsTooMuch) MarshalJSON() ([]byte, error) {
func (entity *CheckChatUsernameResultUsernamePurchasable) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub CheckChatUsernameResultPublicChatsTooMuch
type stub CheckChatUsernameResultUsernamePurchasable
return json.Marshal((*stub)(entity))
}
func (*CheckChatUsernameResultPublicChatsTooMuch) GetClass() string {
func (*CheckChatUsernameResultUsernamePurchasable) GetClass() string {
return ClassCheckChatUsernameResult
}
func (*CheckChatUsernameResultPublicChatsTooMuch) GetType() string {
return TypeCheckChatUsernameResultPublicChatsTooMuch
func (*CheckChatUsernameResultUsernamePurchasable) GetType() string {
return TypeCheckChatUsernameResultUsernamePurchasable
}
func (*CheckChatUsernameResultPublicChatsTooMuch) CheckChatUsernameResultType() string {
return TypeCheckChatUsernameResultPublicChatsTooMuch
func (*CheckChatUsernameResultUsernamePurchasable) CheckChatUsernameResultType() string {
return TypeCheckChatUsernameResultUsernamePurchasable
}
// The user has too many chats with username, one of them must be made private first
type CheckChatUsernameResultPublicChatsTooMany struct{
meta
}
func (entity *CheckChatUsernameResultPublicChatsTooMany) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub CheckChatUsernameResultPublicChatsTooMany
return json.Marshal((*stub)(entity))
}
func (*CheckChatUsernameResultPublicChatsTooMany) GetClass() string {
return ClassCheckChatUsernameResult
}
func (*CheckChatUsernameResultPublicChatsTooMany) GetType() string {
return TypeCheckChatUsernameResultPublicChatsTooMany
}
func (*CheckChatUsernameResultPublicChatsTooMany) CheckChatUsernameResultType() string {
return TypeCheckChatUsernameResultPublicChatsTooMany
}
// The user can't be a member of a public supergroup
@ -29206,6 +29427,29 @@ func (*AccountTtl) GetType() string {
return TypeAccountTtl
}
// Contains default message Time To Live setting (self-destruct timer) for new chats
type MessageTtl struct {
meta
// Message TTL setting, in seconds. If 0, then messages aren't deleted automatically
Ttl int32 `json:"ttl"`
}
func (entity *MessageTtl) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub MessageTtl
return json.Marshal((*stub)(entity))
}
func (*MessageTtl) GetClass() string {
return ClassMessageTtl
}
func (*MessageTtl) GetType() string {
return TypeMessageTtl
}
// The session is running on an Android device
type SessionTypeAndroid struct{
meta
@ -30613,7 +30857,7 @@ func (*InternalLinkTypeLanguageSettings) InternalLinkTypeType() string {
return TypeInternalLinkTypeLanguageSettings
}
// The link is a link to a Telegram message. Call getMessageLinkInfo with the given URL to process the link
// The link is a link to a Telegram message or a forum topic. Call getMessageLinkInfo with the given URL to process the link
type InternalLinkTypeMessage struct {
meta
// URL to be passed to getMessageLinkInfo
@ -31097,6 +31341,33 @@ func (*InternalLinkTypeUserPhoneNumber) InternalLinkTypeType() string {
return TypeInternalLinkTypeUserPhoneNumber
}
// The link is a link to a user by a temporary token. Call searchUserByToken with the given token to process the link
type InternalLinkTypeUserToken struct {
meta
// The token
Token string `json:"token"`
}
func (entity *InternalLinkTypeUserToken) MarshalJSON() ([]byte, error) {
entity.meta.Type = entity.GetType()
type stub InternalLinkTypeUserToken
return json.Marshal((*stub)(entity))
}
func (*InternalLinkTypeUserToken) GetClass() string {
return ClassInternalLinkType
}
func (*InternalLinkTypeUserToken) GetType() string {
return TypeInternalLinkTypeUserToken
}
func (*InternalLinkTypeUserToken) InternalLinkTypeType() string {
return TypeInternalLinkTypeUserToken
}
// The link is a link to a video chat. Call searchPublicChat with the given chat username, and then joinGroupCall with the given invite hash to process the link
type InternalLinkTypeVideoChat struct {
meta
@ -31153,14 +31424,14 @@ func (*MessageLink) GetType() string {
return TypeMessageLink
}
// Contains information about a link to a message in a chat
// Contains information about a link to a message or a forum topic in a chat
type MessageLinkInfo struct {
meta
// True, if the link is a public link for a message in a chat
IsPublic bool `json:"is_public"`
// If found, identifier of the chat to which the message belongs, 0 otherwise
ChatId int64 `json:"chat_id"`
// If found, identifier of the message thread in which to open the message, or which to open in case of a missing message
// If found, identifier of the message thread in which to open the message, or a forum topic to open if the message is missing
MessageThreadId int64 `json:"message_thread_id"`
// If found, the linked message; may be null
Message *Message `json:"message"`
@ -36990,7 +37261,7 @@ func (*UpdateAnimatedEmojiMessageClicked) UpdateType() string {
return TypeUpdateAnimatedEmojiMessageClicked
}
// The parameters of animation search through GetOption("animation_search_bot_username") bot has changed
// The parameters of animation search through getOption("animation_search_bot_username") bot has changed
type UpdateAnimationSearchParameters struct {
meta
// Name of the animation search provider

View file

@ -31,6 +31,9 @@ func UnmarshalAuthenticationCodeType(data json.RawMessage) (AuthenticationCodeTy
case TypeAuthenticationCodeTypeMissedCall:
return UnmarshalAuthenticationCodeTypeMissedCall(data)
case TypeAuthenticationCodeTypeFragment:
return UnmarshalAuthenticationCodeTypeFragment(data)
default:
return nil, fmt.Errorf("Error unmarshaling. Unknown type: " + meta.Type)
}
@ -2096,6 +2099,9 @@ func UnmarshalMessageContent(data json.RawMessage) (MessageContent, error) {
case TypeMessageForumTopicIsClosedToggled:
return UnmarshalMessageForumTopicIsClosedToggled(data)
case TypeMessageForumTopicIsHiddenToggled:
return UnmarshalMessageForumTopicIsHiddenToggled(data)
case TypeMessageCustomServiceAction:
return UnmarshalMessageCustomServiceAction(data)
@ -3094,6 +3100,9 @@ func UnmarshalChatEventAction(data json.RawMessage) (ChatEventAction, error) {
case TypeChatEventIsAllHistoryAvailableToggled:
return UnmarshalChatEventIsAllHistoryAvailableToggled(data)
case TypeChatEventIsAggressiveAntiSpamEnabledToggled:
return UnmarshalChatEventIsAggressiveAntiSpamEnabledToggled(data)
case TypeChatEventSignMessagesToggled:
return UnmarshalChatEventSignMessagesToggled(data)
@ -3133,6 +3142,9 @@ func UnmarshalChatEventAction(data json.RawMessage) (ChatEventAction, error) {
case TypeChatEventForumTopicToggleIsClosed:
return UnmarshalChatEventForumTopicToggleIsClosed(data)
case TypeChatEventForumTopicToggleIsHidden:
return UnmarshalChatEventForumTopicToggleIsHidden(data)
case TypeChatEventForumTopicDeleted:
return UnmarshalChatEventForumTopicDeleted(data)
@ -3624,8 +3636,11 @@ func UnmarshalCheckChatUsernameResult(data json.RawMessage) (CheckChatUsernameRe
case TypeCheckChatUsernameResultUsernameOccupied:
return UnmarshalCheckChatUsernameResultUsernameOccupied(data)
case TypeCheckChatUsernameResultPublicChatsTooMuch:
return UnmarshalCheckChatUsernameResultPublicChatsTooMuch(data)
case TypeCheckChatUsernameResultUsernamePurchasable:
return UnmarshalCheckChatUsernameResultUsernamePurchasable(data)
case TypeCheckChatUsernameResultPublicChatsTooMany:
return UnmarshalCheckChatUsernameResultPublicChatsTooMany(data)
case TypeCheckChatUsernameResultPublicGroupsUnavailable:
return UnmarshalCheckChatUsernameResultPublicGroupsUnavailable(data)
@ -4427,6 +4442,9 @@ func UnmarshalInternalLinkType(data json.RawMessage) (InternalLinkType, error) {
case TypeInternalLinkTypeUserPhoneNumber:
return UnmarshalInternalLinkTypeUserPhoneNumber(data)
case TypeInternalLinkTypeUserToken:
return UnmarshalInternalLinkTypeUserToken(data)
case TypeInternalLinkTypeVideoChat:
return UnmarshalInternalLinkTypeVideoChat(data)
@ -5444,6 +5462,14 @@ func UnmarshalAuthenticationCodeTypeMissedCall(data json.RawMessage) (*Authentic
return &resp, err
}
func UnmarshalAuthenticationCodeTypeFragment(data json.RawMessage) (*AuthenticationCodeTypeFragment, error) {
var resp AuthenticationCodeTypeFragment
err := json.Unmarshal(data, &resp)
return &resp, err
}
func UnmarshalAuthenticationCodeInfo(data json.RawMessage) (*AuthenticationCodeInfo, error) {
var resp AuthenticationCodeInfo
@ -7316,6 +7342,14 @@ func UnmarshalForumTopic(data json.RawMessage) (*ForumTopic, error) {
return &resp, err
}
func UnmarshalForumTopics(data json.RawMessage) (*ForumTopics, error) {
var resp ForumTopics
err := json.Unmarshal(data, &resp)
return &resp, err
}
func UnmarshalRichTextPlain(data json.RawMessage) (*RichTextPlain, error) {
var resp RichTextPlain
@ -8940,6 +8974,14 @@ func UnmarshalMessageForumTopicIsClosedToggled(data json.RawMessage) (*MessageFo
return &resp, err
}
func UnmarshalMessageForumTopicIsHiddenToggled(data json.RawMessage) (*MessageForumTopicIsHiddenToggled, error) {
var resp MessageForumTopicIsHiddenToggled
err := json.Unmarshal(data, &resp)
return &resp, err
}
func UnmarshalMessageCustomServiceAction(data json.RawMessage) (*MessageCustomServiceAction, error) {
var resp MessageCustomServiceAction
@ -10172,6 +10214,14 @@ func UnmarshalHttpUrl(data json.RawMessage) (*HttpUrl, error) {
return &resp, err
}
func UnmarshalUserLink(data json.RawMessage) (*UserLink, error) {
var resp UserLink
err := json.Unmarshal(data, &resp)
return &resp, err
}
func UnmarshalInputInlineQueryResultAnimation(data json.RawMessage) (*InputInlineQueryResultAnimation, error) {
var resp InputInlineQueryResultAnimation
@ -10644,6 +10694,14 @@ func UnmarshalChatEventIsAllHistoryAvailableToggled(data json.RawMessage) (*Chat
return &resp, err
}
func UnmarshalChatEventIsAggressiveAntiSpamEnabledToggled(data json.RawMessage) (*ChatEventIsAggressiveAntiSpamEnabledToggled, error) {
var resp ChatEventIsAggressiveAntiSpamEnabledToggled
err := json.Unmarshal(data, &resp)
return &resp, err
}
func UnmarshalChatEventSignMessagesToggled(data json.RawMessage) (*ChatEventSignMessagesToggled, error) {
var resp ChatEventSignMessagesToggled
@ -10748,6 +10806,14 @@ func UnmarshalChatEventForumTopicToggleIsClosed(data json.RawMessage) (*ChatEven
return &resp, err
}
func UnmarshalChatEventForumTopicToggleIsHidden(data json.RawMessage) (*ChatEventForumTopicToggleIsHidden, error) {
var resp ChatEventForumTopicToggleIsHidden
err := json.Unmarshal(data, &resp)
return &resp, err
}
func UnmarshalChatEventForumTopicDeleted(data json.RawMessage) (*ChatEventForumTopicDeleted, error) {
var resp ChatEventForumTopicDeleted
@ -11372,8 +11438,16 @@ func UnmarshalCheckChatUsernameResultUsernameOccupied(data json.RawMessage) (*Ch
return &resp, err
}
func UnmarshalCheckChatUsernameResultPublicChatsTooMuch(data json.RawMessage) (*CheckChatUsernameResultPublicChatsTooMuch, error) {
var resp CheckChatUsernameResultPublicChatsTooMuch
func UnmarshalCheckChatUsernameResultUsernamePurchasable(data json.RawMessage) (*CheckChatUsernameResultUsernamePurchasable, error) {
var resp CheckChatUsernameResultUsernamePurchasable
err := json.Unmarshal(data, &resp)
return &resp, err
}
func UnmarshalCheckChatUsernameResultPublicChatsTooMany(data json.RawMessage) (*CheckChatUsernameResultPublicChatsTooMany, error) {
var resp CheckChatUsernameResultPublicChatsTooMany
err := json.Unmarshal(data, &resp)
@ -12028,6 +12102,14 @@ func UnmarshalAccountTtl(data json.RawMessage) (*AccountTtl, error) {
return &resp, err
}
func UnmarshalMessageTtl(data json.RawMessage) (*MessageTtl, error) {
var resp MessageTtl
err := json.Unmarshal(data, &resp)
return &resp, err
}
func UnmarshalSessionTypeAndroid(data json.RawMessage) (*SessionTypeAndroid, error) {
var resp SessionTypeAndroid
@ -12556,6 +12638,14 @@ func UnmarshalInternalLinkTypeUserPhoneNumber(data json.RawMessage) (*InternalLi
return &resp, err
}
func UnmarshalInternalLinkTypeUserToken(data json.RawMessage) (*InternalLinkTypeUserToken, error) {
var resp InternalLinkTypeUserToken
err := json.Unmarshal(data, &resp)
return &resp, err
}
func UnmarshalInternalLinkTypeVideoChat(data json.RawMessage) (*InternalLinkTypeVideoChat, error) {
var resp InternalLinkTypeVideoChat
@ -14298,6 +14388,9 @@ func UnmarshalType(data json.RawMessage) (Type, error) {
case TypeAuthenticationCodeTypeMissedCall:
return UnmarshalAuthenticationCodeTypeMissedCall(data)
case TypeAuthenticationCodeTypeFragment:
return UnmarshalAuthenticationCodeTypeFragment(data)
case TypeAuthenticationCodeInfo:
return UnmarshalAuthenticationCodeInfo(data)
@ -15000,6 +15093,9 @@ func UnmarshalType(data json.RawMessage) (Type, error) {
case TypeForumTopic:
return UnmarshalForumTopic(data)
case TypeForumTopics:
return UnmarshalForumTopics(data)
case TypeRichTextPlain:
return UnmarshalRichTextPlain(data)
@ -15609,6 +15705,9 @@ func UnmarshalType(data json.RawMessage) (Type, error) {
case TypeMessageForumTopicIsClosedToggled:
return UnmarshalMessageForumTopicIsClosedToggled(data)
case TypeMessageForumTopicIsHiddenToggled:
return UnmarshalMessageForumTopicIsHiddenToggled(data)
case TypeMessageCustomServiceAction:
return UnmarshalMessageCustomServiceAction(data)
@ -16071,6 +16170,9 @@ func UnmarshalType(data json.RawMessage) (Type, error) {
case TypeHttpUrl:
return UnmarshalHttpUrl(data)
case TypeUserLink:
return UnmarshalUserLink(data)
case TypeInputInlineQueryResultAnimation:
return UnmarshalInputInlineQueryResultAnimation(data)
@ -16248,6 +16350,9 @@ func UnmarshalType(data json.RawMessage) (Type, error) {
case TypeChatEventIsAllHistoryAvailableToggled:
return UnmarshalChatEventIsAllHistoryAvailableToggled(data)
case TypeChatEventIsAggressiveAntiSpamEnabledToggled:
return UnmarshalChatEventIsAggressiveAntiSpamEnabledToggled(data)
case TypeChatEventSignMessagesToggled:
return UnmarshalChatEventSignMessagesToggled(data)
@ -16287,6 +16392,9 @@ func UnmarshalType(data json.RawMessage) (Type, error) {
case TypeChatEventForumTopicToggleIsClosed:
return UnmarshalChatEventForumTopicToggleIsClosed(data)
case TypeChatEventForumTopicToggleIsHidden:
return UnmarshalChatEventForumTopicToggleIsHidden(data)
case TypeChatEventForumTopicDeleted:
return UnmarshalChatEventForumTopicDeleted(data)
@ -16521,8 +16629,11 @@ func UnmarshalType(data json.RawMessage) (Type, error) {
case TypeCheckChatUsernameResultUsernameOccupied:
return UnmarshalCheckChatUsernameResultUsernameOccupied(data)
case TypeCheckChatUsernameResultPublicChatsTooMuch:
return UnmarshalCheckChatUsernameResultPublicChatsTooMuch(data)
case TypeCheckChatUsernameResultUsernamePurchasable:
return UnmarshalCheckChatUsernameResultUsernamePurchasable(data)
case TypeCheckChatUsernameResultPublicChatsTooMany:
return UnmarshalCheckChatUsernameResultPublicChatsTooMany(data)
case TypeCheckChatUsernameResultPublicGroupsUnavailable:
return UnmarshalCheckChatUsernameResultPublicGroupsUnavailable(data)
@ -16767,6 +16878,9 @@ func UnmarshalType(data json.RawMessage) (Type, error) {
case TypeAccountTtl:
return UnmarshalAccountTtl(data)
case TypeMessageTtl:
return UnmarshalMessageTtl(data)
case TypeSessionTypeAndroid:
return UnmarshalSessionTypeAndroid(data)
@ -16965,6 +17079,9 @@ func UnmarshalType(data json.RawMessage) (Type, error) {
case TypeInternalLinkTypeUserPhoneNumber:
return UnmarshalInternalLinkTypeUserPhoneNumber(data)
case TypeInternalLinkTypeUserToken:
return UnmarshalInternalLinkTypeUserToken(data)
case TypeInternalLinkTypeVideoChat:
return UnmarshalInternalLinkTypeVideoChat(data)

View file

@ -39,6 +39,9 @@ authenticationCodeTypeFlashCall pattern:string = AuthenticationCodeType;
//@description An authentication code is delivered by an immediately canceled call to the specified phone number. The last digits of the phone number that calls are the code that must be entered manually by the user @phone_number_prefix Prefix of the phone number from which the call will be made @length Number of digits in the code, excluding the prefix
authenticationCodeTypeMissedCall phone_number_prefix:string length:int32 = AuthenticationCodeType;
//@description An authentication code is delivered to https://fragment.com. The user must be logged in there via a wallet owning the phone number's NFT @url URL to open to receive the code @length Length of the code
authenticationCodeTypeFragment url:string length:int32 = AuthenticationCodeType;
//@description Information about the authentication code that was sent @phone_number A phone number that is being authenticated @type The way the code was sent to the user @next_type The way the next code will be sent to the user; may be null @timeout Timeout before the code can be re-sent, in seconds
authenticationCodeInfo phone_number:string type:AuthenticationCodeType next_type:AuthenticationCodeType timeout:int32 = AuthenticationCodeInfo;
@ -485,7 +488,7 @@ chatAdministratorRights can_manage_chat:Bool can_change_info:Bool can_post_messa
premiumPaymentOption currency:string amount:int53 discount_percentage:int32 month_count:int32 store_product_id:string payment_link:InternalLinkType = PremiumPaymentOption;
//@description Describes a custom emoji to be shown instead of the Telegram Premium badge @custom_emoji_id Identifier of the custom emoji in stickerFormatTgs format. If the custom emoji belongs to the sticker set GetOption("themed_emoji_statuses_sticker_set_id"), then it's color must be changed to the color of the Telegram Premium badge
//@description Describes a custom emoji to be shown instead of the Telegram Premium badge @custom_emoji_id Identifier of the custom emoji in stickerFormatTgs format. If the custom emoji belongs to the sticker set getOption("themed_emoji_statuses_sticker_set_id"), then it's color must be changed to the color of the Telegram Premium badge
emojiStatus custom_emoji_id:int64 = EmojiStatus;
//@description Contains a list of emoji statuses @emoji_statuses The list of emoji statuses
@ -514,14 +517,15 @@ usernames active_usernames:vector<string> disabled_usernames:vector<string> edit
//@is_verified True, if the user is verified
//@is_premium True, if the user is a Telegram Premium user
//@is_support True, if the user is Telegram support account
//@has_anonymous_phone_number True, if the user's phone number was bought on Fragment and isn't tied to a SIM card
//@restriction_reason If non-empty, it contains a human-readable description of the reason why access to this user must be restricted
//@is_scam True, if many users reported this user as a scam
//@is_fake True, if many users reported this user as a fake account
//@have_access If false, the user is inaccessible, and the only information known about the user is inside this class. Identifier of the user can't be passed to any method except GetUser
//@have_access If false, the user is inaccessible, and the only information known about the user is inside this class. Identifier of the user can't be passed to any method
//@type Type of the user
//@language_code IETF language tag of the user's language; only available to bots
//@added_to_attachment_menu True, if the user added the current bot to attachment menu; only available to bots
user id:int53 access_hash:int64 first_name:string last_name:string usernames:usernames phone_number:string status:UserStatus profile_photo:profilePhoto emoji_status:emojiStatus is_contact:Bool is_mutual_contact:Bool is_verified:Bool is_premium:Bool is_support:Bool restriction_reason:string is_scam:Bool is_fake:Bool have_access:Bool type:UserType language_code:string added_to_attachment_menu:Bool = User;
user id:int53 access_hash:int64 first_name:string last_name:string usernames:usernames phone_number:string status:UserStatus profile_photo:profilePhoto emoji_status:emojiStatus is_contact:Bool is_mutual_contact:Bool is_verified:Bool is_premium:Bool is_support:Bool has_anonymous_phone_number:Bool restriction_reason:string is_scam:Bool is_fake:Bool have_access:Bool type:UserType language_code:string added_to_attachment_menu:Bool = User;
//@description Contains information about a bot
@ -595,7 +599,7 @@ chatMemberStatusBanned banned_until_date:int32 = ChatMemberStatus;
//@description Describes a user or a chat as a member of another chat
//@member_id Identifier of the chat member. Currently, other chats can be only Left or Banned. Only supergroups and channels can have other chats as Left or Banned members and these chats must be supergroups or channels
//@inviter_user_id Identifier of a user that invited/promoted/banned this member in the chat; 0 if unknown
//@joined_chat_date Point in time (Unix timestamp) when the user joined the chat
//@joined_chat_date Point in time (Unix timestamp) when the user joined/was promoted/was banned in the chat
//@status Status of the member in the chat
chatMember member_id:MessageSender inviter_user_id:int53 joined_chat_date:int32 status:ChatMemberStatus = ChatMember;
@ -767,13 +771,14 @@ supergroup id:int53 access_hash:int64 usernames:usernames date:int32 status:Chat
//@can_set_location True, if the supergroup location can be changed
//@can_get_statistics True, if the supergroup or channel statistics are available
//@is_all_history_available True, if new chat members will have access to old messages. In public, discussion, of forum groups and all channels, old messages are always available, so this option affects only private non-forum supergroups without a linked chat. The value of this field is only available for chat administrators
//@is_aggressive_anti_spam_enabled True, if aggressive anti-spam checks are enabled in the supergroup. The value of this field is only available for chat administrators
//@sticker_set_id Identifier of the supergroup sticker set; 0 if none
//@location Location to which the supergroup is connected; may be null
//@invite_link Primary invite link for the chat; may be null. For chat administrators with can_invite_users right only
//@bot_commands List of commands of bots in the group
//@upgraded_from_basic_group_id Identifier of the basic group from which supergroup was upgraded; 0 if none
//@upgraded_from_max_message_id Identifier of the last message in the basic group from which supergroup was upgraded; 0 if none
supergroupFullInfo photo:chatPhoto description:string member_count:int32 administrator_count:int32 restricted_count:int32 banned_count:int32 linked_chat_id:int53 slow_mode_delay:int32 slow_mode_delay_expires_in:double can_get_members:Bool can_set_username:Bool can_set_sticker_set:Bool can_set_location:Bool can_get_statistics:Bool is_all_history_available:Bool sticker_set_id:int64 location:chatLocation invite_link:chatInviteLink bot_commands:vector<botCommands> upgraded_from_basic_group_id:int53 upgraded_from_max_message_id:int53 = SupergroupFullInfo;
supergroupFullInfo photo:chatPhoto description:string member_count:int32 administrator_count:int32 restricted_count:int32 banned_count:int32 linked_chat_id:int53 slow_mode_delay:int32 slow_mode_delay_expires_in:double can_get_members:Bool can_set_username:Bool can_set_sticker_set:Bool can_set_location:Bool can_get_statistics:Bool is_all_history_available:Bool is_aggressive_anti_spam_enabled:Bool sticker_set_id:int64 location:chatLocation invite_link:chatInviteLink bot_commands:vector<botCommands> upgraded_from_basic_group_id:int53 upgraded_from_max_message_id:int53 = SupergroupFullInfo;
//@class SecretChatState @description Describes the current secret chat state
@ -1007,12 +1012,12 @@ notificationSettingsScopeGroupChats = NotificationSettingsScope;
notificationSettingsScopeChannelChats = NotificationSettingsScope;
//@description Contains information about notification settings for a chat
//@use_default_mute_for If true, mute_for is ignored and the value for the relevant type of chat is used instead @mute_for Time left before notifications will be unmuted, in seconds
//@use_default_sound If true, the value for the relevant type of chat is used instead of sound_id @sound_id Identifier of the notification sound to be played; 0 if sound is disabled
//@use_default_show_preview If true, show_preview is ignored and the value for the relevant type of chat is used instead @show_preview True, if message content must be displayed in notifications
//@use_default_disable_pinned_message_notifications If true, disable_pinned_message_notifications is ignored and the value for the relevant type of chat is used instead @disable_pinned_message_notifications If true, notifications for incoming pinned messages will be created as for an ordinary unread message
//@use_default_disable_mention_notifications If true, disable_mention_notifications is ignored and the value for the relevant type of chat is used instead @disable_mention_notifications If true, notifications for messages with mentions will be created as for an ordinary unread message
//@description Contains information about notification settings for a chat or a froum topic
//@use_default_mute_for If true, mute_for is ignored and the value for the relevant type of chat or the forum chat is used instead @mute_for Time left before notifications will be unmuted, in seconds
//@use_default_sound If true, the value for the relevant type of chat or the forum chat is used instead of sound_id @sound_id Identifier of the notification sound to be played; 0 if sound is disabled
//@use_default_show_preview If true, show_preview is ignored and the value for the relevant type of chat or the forum chat is used instead @show_preview True, if message content must be displayed in notifications
//@use_default_disable_pinned_message_notifications If true, disable_pinned_message_notifications is ignored and the value for the relevant type of chat or the forum chat is used instead @disable_pinned_message_notifications If true, notifications for incoming pinned messages will be created as for an ordinary unread message
//@use_default_disable_mention_notifications If true, disable_mention_notifications is ignored and the value for the relevant type of chat or the forum chat is used instead @disable_mention_notifications If true, notifications for messages with mentions will be created as for an ordinary unread message
chatNotificationSettings use_default_mute_for:Bool mute_for:int32 use_default_sound:Bool sound_id:int64 use_default_show_preview:Bool show_preview:Bool use_default_disable_pinned_message_notifications:Bool disable_pinned_message_notifications:Bool use_default_disable_mention_notifications:Bool disable_mention_notifications:Bool = ChatNotificationSettings;
//@description Contains information about notification settings for several chats
@ -1050,9 +1055,9 @@ chatTypeSecret secret_chat_id:int32 user_id:int53 = ChatType;
//@title The title of the filter; 1-12 characters without line feeds
//@icon_name The chosen icon name for short filter representation. If non-empty, must be one of "All", "Unread", "Unmuted", "Bots", "Channels", "Groups", "Private", "Custom", "Setup", "Cat", "Crown", "Favorite", "Flower", "Game", "Home", "Love", "Mask", "Party", "Sport", "Study", "Trade", "Travel", "Work", "Airplane", "Book", "Light", "Like", "Money", "Note", "Palette".
//-If empty, use getChatFilterDefaultIconName to get default icon name for the filter
//@pinned_chat_ids The chat identifiers of pinned chats in the filtered chat list. There can be up to GetOption("chat_filter_chosen_chat_count_max") pinned and always included non-secret chats and the same number of secret chats, but the limit can be increased with Telegram Premium
//@included_chat_ids The chat identifiers of always included chats in the filtered chat list. There can be up to GetOption("chat_filter_chosen_chat_count_max") pinned and always included non-secret chats and the same number of secret chats, but the limit can be increased with Telegram Premium
//@excluded_chat_ids The chat identifiers of always excluded chats in the filtered chat list. There can be up to GetOption("chat_filter_chosen_chat_count_max") always excluded non-secret chats and the same number of secret chats, but the limit can be increased with Telegram Premium
//@pinned_chat_ids The chat identifiers of pinned chats in the filtered chat list. There can be up to getOption("chat_filter_chosen_chat_count_max") pinned and always included non-secret chats and the same number of secret chats, but the limit can be increased with Telegram Premium
//@included_chat_ids The chat identifiers of always included chats in the filtered chat list. There can be up to getOption("chat_filter_chosen_chat_count_max") pinned and always included non-secret chats and the same number of secret chats, but the limit can be increased with Telegram Premium
//@excluded_chat_ids The chat identifiers of always excluded chats in the filtered chat list. There can be up to getOption("chat_filter_chosen_chat_count_max") always excluded non-secret chats and the same number of secret chats, but the limit can be increased with Telegram Premium
//@exclude_muted True, if muted chats need to be excluded
//@exclude_read True, if read chats need to be excluded
//@exclude_archived True, if archived chats need to be excluded
@ -1266,7 +1271,7 @@ inlineKeyboardButton text:string type:InlineKeyboardButtonType = InlineKeyboardB
//@class ReplyMarkup @description Contains a description of a custom keyboard and actions that can be done with it to quickly reply to bots
//@description Instructs application to remove the keyboard once this message has been received. This kind of keyboard can't be received in an incoming message; instead, UpdateChatReplyMarkup with message_id == 0 will be sent
//@description Instructs application to remove the keyboard once this message has been received. This kind of keyboard can't be received in an incoming message; instead, updateChatReplyMarkup with message_id == 0 will be sent
//@is_personal True, if the keyboard is removed only for the mentioned users or the target user of a reply
replyMarkupRemoveKeyboard is_personal:Bool = ReplyMarkup;
@ -1321,13 +1326,15 @@ forumTopicIcon color:int32 custom_emoji_id:int64 = ForumTopicIcon;
//@icon Icon of the topic
//@creation_date Date the topic was created
//@creator_id Identifier of the creator of the topic
//@is_general True, if the topic is the General topic list
//@is_outgoing True, if the topic was created by the current user
//@is_closed True, if the topic is closed
forumTopicInfo message_thread_id:int53 name:string icon:forumTopicIcon creation_date:int32 creator_id:MessageSender is_outgoing:Bool is_closed:Bool = ForumTopicInfo;
//@is_hidden True, if the topic is hidden above the topic list and closed; for General topic only
forumTopicInfo message_thread_id:int53 name:string icon:forumTopicIcon creation_date:int32 creator_id:MessageSender is_general:Bool is_outgoing:Bool is_closed:Bool is_hidden:Bool = ForumTopicInfo;
//@description Describes a forum topic
//@info Basic information about the topic
//@last_message Last message in the topic; may be null
//@last_message Last message in the topic; may be null if unknown
//@is_pinned True, if the topic is pinned in the topic list
//@unread_count Number of unread messages in the topic
//@last_read_inbox_message_id Identifier of the last read incoming message
@ -1338,6 +1345,14 @@ forumTopicInfo message_thread_id:int53 name:string icon:forumTopicIcon creation_
//@draft_message A draft of a message in the topic; may be null
forumTopic info:forumTopicInfo last_message:message is_pinned:Bool unread_count:int32 last_read_inbox_message_id:int53 last_read_outbox_message_id:int53 unread_mention_count:int32 unread_reaction_count:int32 notification_settings:chatNotificationSettings draft_message:draftMessage = ForumTopic;
//@description Describes a list of forum topics
//@total_count Approximate total number of forum topics found
//@topics List of forum topics
//@next_offset_date Offset date for the next getForumTopics request
//@next_offset_message_id Offset message identifier for the next getForumTopics request
//@next_offset_message_thread_id Offset message thread identifier for the next getForumTopics request
forumTopics total_count:int32 topics:vector<forumTopic> next_offset_date:int32 next_offset_message_id:int53 next_offset_message_thread_id:int53 = ForumTopics;
//@class RichText @description Describes a text object inside an instant-view web page
@ -2097,8 +2112,8 @@ messageScreenshotTaken = MessageContent;
//@description A theme in the chat has been changed @theme_name If non-empty, name of a new theme, set for the chat. Otherwise chat theme was reset to the default one
messageChatSetTheme theme_name:string = MessageContent;
//@description The TTL (Time To Live) setting for messages in the chat has been changed @ttl New message TTL
messageChatSetTtl ttl:int32 = MessageContent;
//@description The TTL (Time To Live) setting for messages in the chat has been changed @ttl New message TTL @from_user_id If not 0, a user identifier, which default setting was automatically applied
messageChatSetTtl ttl:int32 from_user_id:int53 = MessageContent;
//@description A forum topic has been created @name Name of the topic @icon Icon of the topic
messageForumTopicCreated name:string icon:forumTopicIcon = MessageContent;
@ -2106,9 +2121,12 @@ messageForumTopicCreated name:string icon:forumTopicIcon = MessageContent;
//@description A forum topic has been edited @name If non-empty, the new name of the topic @edit_icon_custom_emoji_id True, if icon's custom_emoji_id is changed @icon_custom_emoji_id New unique identifier of the custom emoji shown on the topic icon; 0 if none. Must be ignored if edit_icon_custom_emoji_id is false
messageForumTopicEdited name:string edit_icon_custom_emoji_id:Bool icon_custom_emoji_id:int64 = MessageContent;
//@description A forum topic has been closed or opened @is_closed True if the topic was closed or reopened
//@description A forum topic has been closed or opened @is_closed True, if the topic was closed, otherwise the topic was reopened
messageForumTopicIsClosedToggled is_closed:Bool = MessageContent;
//@description A General forum topic has been hidden or unhidden @is_hidden True, if the topic was hidden, otherwise the topic was unhidden
messageForumTopicIsHiddenToggled is_hidden:Bool = MessageContent;
//@description A non-standard action has happened in the chat @text Message text to be shown in the chat
messageCustomServiceAction text:string = MessageContent;
@ -2251,22 +2269,22 @@ messageCopyOptions send_copy:Bool replace_caption:Bool new_caption:formattedText
//@class InputMessageContent @description The content of a message to send
//@description A text message @text Formatted text to be sent; 1-GetOption("message_text_length_max") characters. Only Bold, Italic, Underline, Strikethrough, Spoiler, CustomEmoji, Code, Pre, PreCode, TextUrl and MentionName entities are allowed to be specified manually
//@description A text message @text Formatted text to be sent; 1-getOption("message_text_length_max") characters. Only Bold, Italic, Underline, Strikethrough, Spoiler, CustomEmoji, Code, Pre, PreCode, TextUrl and MentionName entities are allowed to be specified manually
//@disable_web_page_preview True, if rich web page previews for URLs in the message text must be disabled @clear_draft True, if a chat message draft must be deleted
inputMessageText text:formattedText disable_web_page_preview:Bool clear_draft:Bool = InputMessageContent;
//@description An animation message (GIF-style). @animation Animation file to be sent @thumbnail Animation thumbnail; pass null to skip thumbnail uploading @added_sticker_file_ids File identifiers of the stickers added to the animation, if applicable
//@duration Duration of the animation, in seconds @width Width of the animation; may be replaced by the server @height Height of the animation; may be replaced by the server @caption Animation caption; pass null to use an empty caption; 0-GetOption("message_caption_length_max") characters
//@duration Duration of the animation, in seconds @width Width of the animation; may be replaced by the server @height Height of the animation; may be replaced by the server @caption Animation caption; pass null to use an empty caption; 0-getOption("message_caption_length_max") characters
inputMessageAnimation animation:InputFile thumbnail:inputThumbnail added_sticker_file_ids:vector<int32> duration:int32 width:int32 height:int32 caption:formattedText = InputMessageContent;
//@description An audio message @audio Audio file to be sent @album_cover_thumbnail Thumbnail of the cover for the album; pass null to skip thumbnail uploading @duration Duration of the audio, in seconds; may be replaced by the server @title Title of the audio; 0-64 characters; may be replaced by the server
//@performer Performer of the audio; 0-64 characters, may be replaced by the server @caption Audio caption; pass null to use an empty caption; 0-GetOption("message_caption_length_max") characters
//@performer Performer of the audio; 0-64 characters, may be replaced by the server @caption Audio caption; pass null to use an empty caption; 0-getOption("message_caption_length_max") characters
inputMessageAudio audio:InputFile album_cover_thumbnail:inputThumbnail duration:int32 title:string performer:string caption:formattedText = InputMessageContent;
//@description A document message (general file) @document Document to be sent @thumbnail Document thumbnail; pass null to skip thumbnail uploading @disable_content_type_detection If true, automatic file type detection will be disabled and the document will always be sent as file. Always true for files sent to secret chats @caption Document caption; pass null to use an empty caption; 0-GetOption("message_caption_length_max") characters
//@description A document message (general file) @document Document to be sent @thumbnail Document thumbnail; pass null to skip thumbnail uploading @disable_content_type_detection If true, automatic file type detection will be disabled and the document will always be sent as file. Always true for files sent to secret chats @caption Document caption; pass null to use an empty caption; 0-getOption("message_caption_length_max") characters
inputMessageDocument document:InputFile thumbnail:inputThumbnail disable_content_type_detection:Bool caption:formattedText = InputMessageContent;
//@description A photo message @photo Photo to send. The photo must be at most 10 MB in size. The photo's width and height must not exceed 10000 in total. Width and height ratio must be at most 20 @thumbnail Photo thumbnail to be sent; pass null to skip thumbnail uploading. The thumbnail is sent to the other party only in secret chats @added_sticker_file_ids File identifiers of the stickers added to the photo, if applicable @width Photo width @height Photo height @caption Photo caption; pass null to use an empty caption; 0-GetOption("message_caption_length_max") characters
//@description A photo message @photo Photo to send. The photo must be at most 10 MB in size. The photo's width and height must not exceed 10000 in total. Width and height ratio must be at most 20 @thumbnail Photo thumbnail to be sent; pass null to skip thumbnail uploading. The thumbnail is sent to the other party only in secret chats @added_sticker_file_ids File identifiers of the stickers added to the photo, if applicable @width Photo width @height Photo height @caption Photo caption; pass null to use an empty caption; 0-getOption("message_caption_length_max") characters
//@ttl Photo TTL (Time To Live), in seconds (0-60). A non-zero TTL can be specified only in private chats
inputMessagePhoto photo:InputFile thumbnail:inputThumbnail added_sticker_file_ids:vector<int32> width:int32 height:int32 caption:formattedText ttl:int32 = InputMessageContent;
@ -2275,13 +2293,13 @@ inputMessageSticker sticker:InputFile thumbnail:inputThumbnail width:int32 heigh
//@description A video message @video Video to be sent @thumbnail Video thumbnail; pass null to skip thumbnail uploading @added_sticker_file_ids File identifiers of the stickers added to the video, if applicable
//@duration Duration of the video, in seconds @width Video width @height Video height @supports_streaming True, if the video is supposed to be streamed
//@caption Video caption; pass null to use an empty caption; 0-GetOption("message_caption_length_max") characters @ttl Video TTL (Time To Live), in seconds (0-60). A non-zero TTL can be specified only in private chats
//@caption Video caption; pass null to use an empty caption; 0-getOption("message_caption_length_max") characters @ttl Video TTL (Time To Live), in seconds (0-60). A non-zero TTL can be specified only in private chats
inputMessageVideo video:InputFile thumbnail:inputThumbnail added_sticker_file_ids:vector<int32> duration:int32 width:int32 height:int32 supports_streaming:Bool caption:formattedText ttl:int32 = InputMessageContent;
//@description A video note message @video_note Video note to be sent @thumbnail Video thumbnail; pass null to skip thumbnail uploading @duration Duration of the video, in seconds @length Video width and height; must be positive and not greater than 640
inputMessageVideoNote video_note:InputFile thumbnail:inputThumbnail duration:int32 length:int32 = InputMessageContent;
//@description A voice note message @voice_note Voice note to be sent @duration Duration of the voice note, in seconds @waveform Waveform representation of the voice note in 5-bit format @caption Voice note caption; pass null to use an empty caption; 0-GetOption("message_caption_length_max") characters
//@description A voice note message @voice_note Voice note to be sent @duration Duration of the voice note, in seconds @waveform Waveform representation of the voice note in 5-bit format @caption Voice note caption; pass null to use an empty caption; 0-getOption("message_caption_length_max") characters
inputMessageVoiceNote voice_note:InputFile duration:int32 waveform:bytes caption:formattedText = InputMessageContent;
//@description A message with a location @location Location to be sent @live_period Period for which the location can be updated, in seconds; must be between 60 and 86400 for a live location and 0 otherwise
@ -2597,7 +2615,7 @@ groupCall id:int32 title:string scheduled_start_date:int32 enabled_start_notific
groupCallVideoSourceGroup semantics:string source_ids:vector<int32> = GroupCallVideoSourceGroup;
//@description Contains information about a group call participant's video channel @source_groups List of synchronization source groups of the video @endpoint_id Video channel endpoint identifier
//@is_paused True if the video is paused. This flag needs to be ignored, if new video frames are received
//@is_paused True, if the video is paused. This flag needs to be ignored, if new video frames are received
groupCallParticipantVideoInfo source_groups:vector<groupCallVideoSourceGroup> endpoint_id:string is_paused:Bool = GroupCallParticipantVideoInfo;
//@description Represents a group call participant
@ -2713,7 +2731,7 @@ diceStickersRegular sticker:sticker = DiceStickers;
diceStickersSlotMachine background:sticker lever:sticker left_reel:sticker center_reel:sticker right_reel:sticker = DiceStickers;
//@description Represents the result of an ImportContacts request @user_ids User identifiers of the imported contacts in the same order as they were specified in the request; 0 if the contact is not yet a registered user
//@description Represents the result of an importContacts request @user_ids User identifiers of the imported contacts in the same order as they were specified in the request; 0 if the contact is not yet a registered user
//@importer_count The number of users that imported the corresponding contact; 0 for already registered users or if unavailable
importedContacts user_ids:vector<int53> importer_count:vector<int32> = ImportedContacts;
@ -2760,6 +2778,10 @@ sentWebAppMessage inline_message_id:string = SentWebAppMessage;
httpUrl url:string = HttpUrl;
//@description Contains an HTTPS URL, which can be used to get information about a user @url The URL @expires_in Left time for which the link is valid, in seconds; 0 if the link is a public username link
userLink url:string expires_in:int32 = UserLink;
//@class InputInlineQueryResult @description Represents a single result of an inline query; for bots only
//@description Represents a link to an animated GIF or an animated (i.e., without sound) H.264/MPEG-4 AVC video
@ -2912,8 +2934,8 @@ gameHighScores scores:vector<gameHighScore> = GameHighScores;
//@description A message was edited @old_message The original message before the edit @new_message The message after it was edited
chatEventMessageEdited old_message:message new_message:message = ChatEventAction;
//@description A message was deleted @message Deleted message
chatEventMessageDeleted message:message = ChatEventAction;
//@description A message was deleted @message Deleted message @can_report_anti_spam_false_positive True, if the message deletion can be reported via reportSupergroupAntiSpamFalsePositive
chatEventMessageDeleted message:message can_report_anti_spam_false_positive:Bool = ChatEventAction;
//@description A message was pinned @message Pinned message
chatEventMessagePinned message:message = ChatEventAction;
@ -2990,6 +3012,9 @@ chatEventInvitesToggled can_invite_users:Bool = ChatEventAction;
//@description The is_all_history_available setting of a supergroup was toggled @is_all_history_available New value of is_all_history_available
chatEventIsAllHistoryAvailableToggled is_all_history_available:Bool = ChatEventAction;
//@description The is_aggressive_anti_spam_enabled setting of a supergroup was toggled @is_aggressive_anti_spam_enabled New value of is_aggressive_anti_spam_enabled
chatEventIsAggressiveAntiSpamEnabledToggled is_aggressive_anti_spam_enabled:Bool = ChatEventAction;
//@description The sign_messages setting of a channel was toggled @sign_messages New value of sign_messages
chatEventSignMessagesToggled sign_messages:Bool = ChatEventAction;
@ -3029,6 +3054,9 @@ chatEventForumTopicEdited old_topic_info:forumTopicInfo new_topic_info:forumTopi
//@description A forum topic was closed or reopened @topic_info New information about the topic
chatEventForumTopicToggleIsClosed topic_info:forumTopicInfo = ChatEventAction;
//@description The General forum topic was hidden or unhidden @topic_info New information about the topic
chatEventForumTopicToggleIsHidden topic_info:forumTopicInfo = ChatEventAction;
//@description A forum topic was deleted @topic_info Information about the topic
chatEventForumTopicDeleted topic_info:forumTopicInfo = ChatEventAction;
@ -3353,8 +3381,11 @@ checkChatUsernameResultUsernameInvalid = CheckChatUsernameResult;
//@description The username is occupied
checkChatUsernameResultUsernameOccupied = CheckChatUsernameResult;
//@description The username can be purchased at fragment.com
checkChatUsernameResultUsernamePurchasable = CheckChatUsernameResult;
//@description The user has too many chats with username, one of them must be made private first
checkChatUsernameResultPublicChatsTooMuch = CheckChatUsernameResult;
checkChatUsernameResultPublicChatsTooMany = CheckChatUsernameResult;
//@description The user can't be a member of a public supergroup
checkChatUsernameResultPublicGroupsUnavailable = CheckChatUsernameResult;
@ -3649,6 +3680,10 @@ userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages = UserPrivacySetting;
accountTtl days:int32 = AccountTtl;
//@description Contains default message Time To Live setting (self-destruct timer) for new chats @ttl Message TTL setting, in seconds. If 0, then messages aren't deleted automatically
messageTtl ttl:int32 = MessageTtl;
//@class SessionType @description Represents the type of a session
//@description The session is running on an Android device
@ -3850,7 +3885,7 @@ internalLinkTypeLanguagePack language_pack_id:string = InternalLinkType;
//@description The link is a link to the language settings section of the app
internalLinkTypeLanguageSettings = InternalLinkType;
//@description The link is a link to a Telegram message. Call getMessageLinkInfo with the given URL to process the link @url URL to be passed to getMessageLinkInfo
//@description The link is a link to a Telegram message or a forum topic. Call getMessageLinkInfo with the given URL to process the link @url URL to be passed to getMessageLinkInfo
internalLinkTypeMessage url:string = InternalLinkType;
//@description The link contains a message draft text. A share screen needs to be shown to the user, then the chosen chat must be opened and the text is added to the input field
@ -3907,6 +3942,9 @@ internalLinkTypeUnsupportedProxy = InternalLinkType;
//@description The link is a link to a user by its phone number. Call searchUserByPhoneNumber with the given phone number to process the link @phone_number Phone number of the user
internalLinkTypeUserPhoneNumber phone_number:string = InternalLinkType;
//@description The link is a link to a user by a temporary token. Call searchUserByToken with the given token to process the link @token The token
internalLinkTypeUserToken token:string = InternalLinkType;
//@description The link is a link to a video chat. Call searchPublicChat with the given chat username, and then joinGroupCall with the given invite hash to process the link
//@chat_username Username of the chat with the video chat @invite_hash If non-empty, invite hash to be used to join the video chat without being muted by administrators
//@is_live_stream True, if the video chat is expected to be a live stream in a channel or a broadcast group
@ -3916,10 +3954,10 @@ internalLinkTypeVideoChat chat_username:string invite_hash:string is_live_stream
//@description Contains an HTTPS link to a message in a supergroup or channel @link Message link @is_public True, if the link will work for non-members of the chat
messageLink link:string is_public:Bool = MessageLink;
//@description Contains information about a link to a message in a chat
//@description Contains information about a link to a message or a forum topic in a chat
//@is_public True, if the link is a public link for a message in a chat
//@chat_id If found, identifier of the chat to which the message belongs, 0 otherwise
//@message_thread_id If found, identifier of the message thread in which to open the message, or which to open in case of a missing message
//@message_thread_id If found, identifier of the message thread in which to open the message, or a forum topic to open if the message is missing
//@message If found, the linked message; may be null
//@media_timestamp Timestamp from which the video/audio/video note/voice note playing must start, in seconds; 0 if not specified. The media can be in the message content or in its web page preview
//@for_album True, if the whole media album to which the message belongs is linked
@ -4158,7 +4196,7 @@ fileDownloadedPrefixSize size:int53 = FileDownloadedPrefixSize;
deepLinkInfo text:formattedText need_update_application:Bool = DeepLinkInfo;
//@class TextParseMode @description Describes the way the text needs to be parsed for TextEntities
//@class TextParseMode @description Describes the way the text needs to be parsed for text entities
//@description The text uses Markdown-style formatting
//@version Version of the parser: 0 or 1 - Telegram Bot API "Markdown" parse mode, 2 - Telegram Bot API "MarkdownV2" parse mode
@ -4630,7 +4668,7 @@ updateDiceEmojis emojis:vector<string> = Update;
//@chat_id Chat identifier @message_id Message identifier @sticker The animated sticker to be played
updateAnimatedEmojiMessageClicked chat_id:int53 message_id:int53 sticker:sticker = Update;
//@description The parameters of animation search through GetOption("animation_search_bot_username") bot has changed @provider Name of the animation search provider @emojis The new list of emojis suggested for searching
//@description The parameters of animation search through getOption("animation_search_bot_username") bot has changed @provider Name of the animation search provider @emojis The new list of emojis suggested for searching
updateAnimationSearchParameters provider:string emojis:vector<string> = Update;
//@description The list of suggested to the user actions has changed @added_actions Added suggested actions @removed_actions Removed suggested actions
@ -4807,7 +4845,7 @@ destroy = Ok;
confirmQrCodeAuthentication link:string = Session;
//@description Returns all updates needed to restore current TDLib state, i.e. all actual UpdateAuthorizationState/UpdateUser/UpdateNewChat and others. This is especially useful if TDLib is run in a separate process. Can be called before initialization
//@description Returns all updates needed to restore current TDLib state, i.e. all actual updateAuthorizationState/updateUser/updateNewChat and others. This is especially useful if TDLib is run in a separate process. Can be called before initialization
getCurrentState = Updates;
@ -4900,7 +4938,7 @@ getMessage chat_id:int53 message_id:int53 = Message;
//@description Returns information about a message, if it is available without sending network request. This is an offline request @chat_id Identifier of the chat the message belongs to @message_id Identifier of the message to get
getMessageLocally chat_id:int53 message_id:int53 = Message;
//@description Returns information about a message that is replied by a given message. Also returns the pinned message, the game message, and the invoice message for messages of the types messagePinMessage, messageGameScore, and messagePaymentSuccessful respectively
//@description Returns information about a message that is replied by a given message. Also returns the pinned message, the game message, the invoice message, and the topic creation message for messages of the types messagePinMessage, messageGameScore, messagePaymentSuccessful, and topic messages without replied message respectively
//@chat_id Identifier of the chat the message belongs to @message_id Identifier of the reply message
getRepliedMessage chat_id:int53 message_id:int53 = Message;
@ -5184,7 +5222,7 @@ sendBotStartMessage bot_user_id:int53 chat_id:int53 parameter:string = Message;
//@options Options to be used to send the message; pass null to use default options
//@query_id Identifier of the inline query
//@result_id Identifier of the inline result
//@hide_via_bot Pass true to hide the bot, via which the message is sent. Can be used only for bots GetOption("animation_search_bot_username"), GetOption("photo_search_bot_username"), and GetOption("venue_search_bot_username")
//@hide_via_bot Pass true to hide the bot, via which the message is sent. Can be used only for bots getOption("animation_search_bot_username"), getOption("photo_search_bot_username"), and getOption("venue_search_bot_username")
sendInlineQueryResultMessage chat_id:int53 message_thread_id:int53 reply_to_message_id:int53 options:messageSendOptions query_id:int64 result_id:string hide_via_bot:Bool = Message;
//@description Forwards previously sent messages. Returns the forwarded messages in the same order as the message identifiers passed in message_ids. If a message can't be forwarded, null will be returned instead of the message
@ -5253,7 +5291,7 @@ editMessageMedia chat_id:int53 message_id:int53 reply_markup:ReplyMarkup input_m
//@chat_id The chat the message belongs to
//@message_id Identifier of the message
//@reply_markup The new message reply markup; pass null if none; for bots only
//@caption New message content caption; 0-GetOption("message_caption_length_max") characters; pass null to remove caption
//@caption New message content caption; 0-getOption("message_caption_length_max") characters; pass null to remove caption
editMessageCaption chat_id:int53 message_id:int53 reply_markup:ReplyMarkup caption:formattedText = Message;
//@description Edits the message reply markup; for bots only. Returns the edited message after the edit is completed on the server side
@ -5285,7 +5323,7 @@ editInlineMessageMedia inline_message_id:string reply_markup:ReplyMarkup input_m
//@description Edits the caption of an inline message sent via a bot; for bots only
//@inline_message_id Inline message identifier
//@reply_markup The new message reply markup; pass null if none
//@caption New message content caption; pass null to remove caption; 0-GetOption("message_caption_length_max") characters
//@caption New message content caption; pass null to remove caption; 0-getOption("message_caption_length_max") characters
editInlineMessageCaption inline_message_id:string reply_markup:ReplyMarkup caption:formattedText = Ok;
//@description Edits the reply markup of an inline message sent via a bot; for bots only
@ -5312,9 +5350,29 @@ createForumTopic chat_id:int53 name:string icon:forumTopicIcon = ForumTopicInfo;
//@description Edits title and icon of a topic in a forum supergroup chat; requires can_manage_topics administrator rights in the supergroup unless the user is creator of the topic
//@chat_id Identifier of the chat
//@message_thread_id Message thread identifier of the forum topic
//@name New name of the topic; 1-128 characters
//@icon_custom_emoji_id Identifier of the new custom emoji for topic icon. Telegram Premium users can use any custom emoji, other users can use only a custom emoji returned by getForumTopicDefaultIcons
editForumTopic chat_id:int53 message_thread_id:int53 name:string icon_custom_emoji_id:int64 = Ok;
//@name New name of the topic; 0-128 characters. If empty, the previous topic name is kept
//@edit_icon_custom_emoji Pass true to edit the icon of the topic. Icon of the General topic can't be edited
//@icon_custom_emoji_id Identifier of the new custom emoji for topic icon; pass 0 to remove the custom emoji. Ignored if edit_icon_custom_emoji is false. Telegram Premium users can use any custom emoji, other users can use only a custom emoji returned by getForumTopicDefaultIcons
editForumTopic chat_id:int53 message_thread_id:int53 name:string edit_icon_custom_emoji:Bool icon_custom_emoji_id:int64 = Ok;
//@description Returns information about a forum topic @chat_id Identifier of the chat @message_thread_id Message thread identifier of the forum topic
getForumTopic chat_id:int53 message_thread_id:int53 = ForumTopic;
//@description Returns an HTTPS link to a topic in a forum chat. This is an offline request @chat_id Identifier of the chat @message_thread_id Message thread identifier of the forum topic
getForumTopicLink chat_id:int53 message_thread_id:int53 = HttpUrl;
//@description Returns found forum topics in a forum chat. This is a temporary method for getting information about topic list from the server
//@chat_id Identifier of the forum chat
//@query Query to search for in the forum topic's name
//@offset_date The date starting from which the results need to be fetched. Use 0 or any date in the future to get results from the last topic
//@offset_message_id The message identifier of the last message in the last found topic, or 0 for the first request
//@offset_message_thread_id The message thread identifier of the last found topic, or 0 for the first request
//@limit The maximum number of forum topics to be returned; up to 100. For optimal performance, the number of returned forum topics is chosen by TDLib and can be smaller than the specified limit
getForumTopics chat_id:int53 query:string offset_date:int32 offset_message_id:int53 offset_message_thread_id:int53 limit:int32 = ForumTopics;
//@description Changes the notification settings of a forum topic
//@chat_id Chat identifier @message_thread_id Message thread identifier of the forum topic @notification_settings New notification settings for the forum topic. If the topic is muted for more than 366 days, it is considered to be muted forever
setForumTopicNotificationSettings chat_id:int53 message_thread_id:int53 notification_settings:chatNotificationSettings = Ok;
//@description Toggles whether a topic is closed in a forum supergroup chat; requires can_manage_topics administrator rights in the supergroup unless the user is creator of the topic
//@chat_id Identifier of the chat
@ -5322,6 +5380,11 @@ editForumTopic chat_id:int53 message_thread_id:int53 name:string icon_custom_emo
//@is_closed Pass true to close the topic; pass false to reopen it
toggleForumTopicIsClosed chat_id:int53 message_thread_id:int53 is_closed:Bool = Ok;
//@description Toggles whether a General topic is hidden in a forum supergroup chat; requires can_manage_topics administrator rights in the supergroup
//@chat_id Identifier of the chat
//@is_hidden Pass true to hide and close the General topic; pass false to unhide it
toggleGeneralForumTopicIsHidden chat_id:int53 is_hidden:Bool = Ok;
//@description Deletes all messages in a forum topic; requires can_delete_messages administrator rights in the supergroup unless the user is creator of the topic, the topic has no messages from other users and has at most 11 messages
//@chat_id Identifier of the chat
//@message_thread_id Message thread identifier of the forum topic
@ -5521,7 +5584,7 @@ getGameHighScores chat_id:int53 message_id:int53 user_id:int53 = GameHighScores;
getInlineGameHighScores inline_message_id:string user_id:int53 = GameHighScores;
//@description Deletes the default reply markup from a chat. Must be called after a one-time keyboard or a ForceReply reply markup has been used. UpdateChatReplyMarkup will be sent if the reply markup is changed
//@description Deletes the default reply markup from a chat. Must be called after a one-time keyboard or a replyMarkupForceReply reply markup has been used. An updateChatReplyMarkup update will be sent if the reply markup is changed
//@chat_id Chat identifier
//@message_id The message identifier of the used keyboard
deleteChatReplyMarkup chat_id:int53 message_id:int53 = Ok;
@ -5586,16 +5649,20 @@ createSupergroupChat supergroup_id:int53 force:Bool = Chat;
//@description Returns an existing chat corresponding to a known secret chat @secret_chat_id Secret chat identifier
createSecretChat secret_chat_id:int32 = Chat;
//@description Creates a new basic group and sends a corresponding messageBasicGroupChatCreate. Returns the newly created chat @user_ids Identifiers of users to be added to the basic group @title Title of the new basic group; 1-128 characters
createNewBasicGroupChat user_ids:vector<int53> title:string = Chat;
//@description Creates a new basic group and sends a corresponding messageBasicGroupChatCreate. Returns the newly created chat
//@user_ids Identifiers of users to be added to the basic group
//@title Title of the new basic group; 1-128 characters
//@message_ttl Message TTL value, in seconds; must be from 0 up to 365 * 86400 and be divisible by 86400. If 0, then messages aren't deleted automatically
createNewBasicGroupChat user_ids:vector<int53> title:string message_ttl:int32 = Chat;
//@description Creates a new supergroup or channel and sends a corresponding messageSupergroupChatCreate. Returns the newly created chat
//@title Title of the new chat; 1-128 characters
//@is_channel Pass true to create a channel chat
//@param_description Chat description; 0-255 characters
//@location Chat location if a location-based supergroup is being created; pass null to create an ordinary supergroup chat
//@message_ttl Message TTL value, in seconds; must be from 0 up to 365 * 86400 and be divisible by 86400. If 0, then messages aren't deleted automatically
//@for_import Pass true to create a supergroup for importing messages using importMessage
createNewSupergroupChat title:string is_channel:Bool description:string location:chatLocation for_import:Bool = Chat;
createNewSupergroupChat title:string is_channel:Bool description:string location:chatLocation message_ttl:int32 for_import:Bool = Chat;
//@description Creates a new secret chat. Returns the newly created chat @user_id Identifier of the target user
createNewSecretChat user_id:int53 = Chat;
@ -5614,7 +5681,7 @@ addChatToList chat_id:int53 chat_list:ChatList = Ok;
//@description Returns information about a chat filter by its identifier @chat_filter_id Chat filter identifier
getChatFilter chat_filter_id:int32 = ChatFilter;
//@description Creates new chat filter. Returns information about the created chat filter. There can be up to GetOption("chat_filter_count_max") chat filters, but the limit can be increased with Telegram Premium @filter Chat filter
//@description Creates new chat filter. Returns information about the created chat filter. There can be up to getOption("chat_filter_count_max") chat filters, but the limit can be increased with Telegram Premium @filter Chat filter
createChatFilter filter:chatFilter = ChatFilterInfo;
//@description Edits existing chat filter. Returns information about the edited chat filter @chat_filter_id Chat filter identifier @filter The edited chat filter
@ -5641,9 +5708,9 @@ setChatTitle chat_id:int53 title:string = Ok;
//@chat_id Chat identifier @photo New chat photo; pass null to delete the chat photo
setChatPhoto chat_id:int53 photo:InputChatPhoto = Ok;
//@description Changes the message TTL in a chat. Requires can_delete_messages administrator right in basic groups, supergroups and channels
//@description Changes the message TTL in a chat. Requires change_info administrator right in basic groups, supergroups and channels
//-Message TTL can't be changed in a chat with the current user (Saved Messages) and the chat 777000 (Telegram).
//@chat_id Chat identifier @ttl New TTL value, in seconds; unless the chat is secret, it must be from 0 up to 365 * 86400 and be divisible by 86400
//@chat_id Chat identifier @ttl New TTL value, in seconds; unless the chat is secret, it must be from 0 up to 365 * 86400 and be divisible by 86400. If 0, then messages aren't deleted automatically
setChatMessageTtl chat_id:int53 ttl:int32 = Ok;
//@description Changes the chat members permissions. Supported only for basic groups and supergroups. Requires can_restrict_members administrator right
@ -5785,7 +5852,7 @@ setScopeNotificationSettings scope:NotificationSettingsScope notification_settin
resetAllNotificationSettings = Ok;
//@description Changes the pinned state of a chat. There can be up to GetOption("pinned_chat_count_max")/GetOption("pinned_archived_chat_count_max") pinned non-secret chats and the same number of secret chats in the main/archive chat list. The limit can be increased with Telegram Premium
//@description Changes the pinned state of a chat. There can be up to getOption("pinned_chat_count_max")/getOption("pinned_archived_chat_count_max") pinned non-secret chats and the same number of secret chats in the main/archive chat list. The limit can be increased with Telegram Premium
//@chat_list Chat list in which to change the pinned state of the chat @chat_id Chat identifier @is_pinned Pass true to pin the chat; pass false to unpin it
toggleChatIsPinned chat_list:ChatList chat_id:int53 is_pinned:Bool = Ok;
@ -6057,7 +6124,7 @@ joinGroupCall group_call_id:int32 participant_id:MessageSender audio_source_id:i
//@payload Group call join payload; received from tgcalls
startGroupCallScreenSharing group_call_id:int32 audio_source_id:int32 payload:string = Text;
//@description Pauses or unpauses screen sharing in a joined group call @group_call_id Group call identifier @is_paused True if screen sharing is paused
//@description Pauses or unpauses screen sharing in a joined group call @group_call_id Group call identifier @is_paused True, if screen sharing is paused
toggleGroupCallScreenSharingIsPaused group_call_id:int32 is_paused:Bool = Ok;
//@description Ends screen sharing in a joined group call @group_call_id Group call identifier
@ -6313,7 +6380,7 @@ deleteProfilePhoto profile_photo_id:int64 = Ok;
//@description Changes the first and last name of the current user @first_name The new value of the first name for the current user; 1-64 characters @last_name The new value of the optional last name for the current user; 0-64 characters
setName first_name:string last_name:string = Ok;
//@description Changes the bio of the current user @bio The new value of the user bio; 0-GetOption("bio_length_max") characters without line feeds
//@description Changes the bio of the current user @bio The new value of the user bio; 0-getOption("bio_length_max") characters without line feeds
setBio bio:string = Ok;
//@description Changes the editable username of the current user @username The new value of the username. Use an empty string to remove the username. The username can't be completely removed if there is another active or disabled username
@ -6330,7 +6397,7 @@ reorderActiveUsernames usernames:vector<string> = Ok;
//@duration Duration of the status, in seconds; pass 0 to keep the status active until it will be changed manually
setEmojiStatus emoji_status:emojiStatus duration:int32 = Ok;
//@description Changes the location of the current user. Needs to be called if GetOption("is_location_visible") is true and location changes for more than 1 kilometer @location The new location of the user
//@description Changes the location of the current user. Needs to be called if getOption("is_location_visible") is true and location changes for more than 1 kilometer @location The new location of the user
setLocation location:location = Ok;
//@description Changes the phone number of the user and sends an authentication code to the user's new phone number. On success, returns information about the sent code
@ -6344,6 +6411,13 @@ resendChangePhoneNumberCode = AuthenticationCodeInfo;
checkChangePhoneNumberCode code:string = Ok;
//@description Returns an HTTPS link, which can be used to get information about the current user
getUserLink = UserLink;
//@description Searches a user by a token from the user's link @token Token to search for
searchUserByToken token:string = User;
//@description Sets the list of commands supported by the bot for the given user scope and language; for bots only
//@scope The scope to which the commands are relevant; pass null to change commands in the default bot command scope
//@language_code A two-letter ISO 639-1 language code. If empty, the commands will be applied to all users from the given scope, for which language there are no dedicated commands
@ -6431,7 +6505,10 @@ toggleSupergroupJoinByRequest supergroup_id:int53 join_by_request:Bool = Ok;
//@description Toggles whether the message history of a supergroup is available to new members; requires can_change_info administrator right @supergroup_id The identifier of the supergroup @is_all_history_available The new value of is_all_history_available
toggleSupergroupIsAllHistoryAvailable supergroup_id:int53 is_all_history_available:Bool = Ok;
//@description Toggles whether the supergroup is a forum; requires owner privileges in the supergroup @supergroup_id Identifier of the supergroup @is_forum New value of is_forum. A supergroup can be converted to a forum, only if it has at least GetOption("forum_member_count_min") members
//@description Toggles whether aggressive anti-spam checks are enabled in the supergroup; requires can_delete_messages administrator right. Can be called only if the supergroup has at least getOption("aggressive_anti_spam_supergroup_member_count_min") members @supergroup_id The identifier of the supergroup, which isn't a broadcast group @is_aggressive_anti_spam_enabled The new value of is_aggressive_anti_spam_enabled
toggleSupergroupIsAggressiveAntiSpamEnabled supergroup_id:int53 is_aggressive_anti_spam_enabled:Bool = Ok;
//@description Toggles whether the supergroup is a forum; requires owner privileges in the supergroup @supergroup_id Identifier of the supergroup @is_forum New value of is_forum. A supergroup can be converted to a forum, only if it has at least getOption("forum_member_count_min") members
toggleSupergroupIsForum supergroup_id:int53 is_forum:Bool = Ok;
//@description Upgrades supergroup to a broadcast group; requires owner privileges in the supergroup @supergroup_id Identifier of the supergroup
@ -6440,6 +6517,9 @@ toggleSupergroupIsBroadcastGroup supergroup_id:int53 = Ok;
//@description Reports messages in a supergroup as spam; requires administrator rights in the supergroup @supergroup_id Supergroup identifier @message_ids Identifiers of messages to report
reportSupergroupSpam supergroup_id:int53 message_ids:vector<int53> = Ok;
//@description Reports a false deletion of a message by aggressive anti-spam checks; requires administrator rights in the supergroup. Can be called only for messages from chatEventMessageDeleted with can_report_anti_spam_false_positive == true @supergroup_id Supergroup identifier @message_id Identifier of the erroneously deleted message
reportSupergroupAntiSpamFalsePositive supergroup_id:int53 message_id:int53 = Ok;
//@description Returns information about members or banned users in a supergroup or channel. Can be used only if supergroupFullInfo.can_get_members == true; additionally, administrator privileges may be required for some filters @supergroup_id Identifier of the supergroup or channel
//@filter The type of users to return; pass null to use supergroupMembersFilterRecent @offset Number of users to skip @limit The maximum number of users be returned; up to 200
getSupergroupMembers supergroup_id:int53 filter:SupergroupMembersFilter offset:int32 limit:int32 = ChatMembers;
@ -6471,7 +6551,7 @@ validateOrderInfo input_invoice:InputInvoice order_info:orderInfo allow_save:Boo
//@credentials The credentials chosen by user for payment @tip_amount Chosen by the user amount of tip in the smallest units of the currency
sendPaymentForm input_invoice:InputInvoice payment_form_id:int64 order_info_id:string shipping_option_id:string credentials:InputCredentials tip_amount:int53 = PaymentResult;
//@description Returns information about a successful payment @chat_id Chat identifier of the PaymentSuccessful message @message_id Message identifier
//@description Returns information about a successful payment @chat_id Chat identifier of the messagePaymentSuccessful message @message_id Message identifier
getPaymentReceipt chat_id:int53 message_id:int53 = PaymentReceipt;
//@description Returns saved order information. Returns a 404 error if there is no saved order information
@ -6583,6 +6663,13 @@ getAccountTtl = AccountTtl;
deleteAccount reason:string password:string = Ok;
//@description Changes the default message Time To Live setting (self-destruct timer) for new chats @ttl New message TTL; must be from 0 up to 365 * 86400 and be divisible by 86400. If 0, then messages aren't deleted automatically
setDefaultMessageTtl ttl:messageTtl = Ok;
//@description Returns default message Time To Live setting (self-destruct timer) for new chats
getDefaultMessageTtl = MessageTtl;
//@description Removes a chat action bar without any other action @chat_id Chat identifier
removeChatActionBar chat_id:int53 = Ok;