package tgapi import "context" // BanChatMember holds parameters for the banChatMember method. // Since: Bot API 5.3 // See https://core.telegram.org/bots/api#banchatmember type BanChatMember struct { // ChatID Required. Unique identifier for the target group or username of the target supergroup or channel // in the format @username ChatID int64 `json:"chat_id"` // UserID Required. Unique identifier of the target user UserID int64 `json:"user_id"` // UntilDate Optional. Date when the user will be unbanned; Unix time. If user is banned for more than 366 // days or less than 30 seconds from the current time they are considered to be banned forever. Applied for // supergroups and channels only. UntilDate int `json:"until_date,omitempty"` // RevokeMessages Optional. Pass True to delete all messages from the chat for the user that is being // removed. If False, the user will be able to see messages in the group that were sent before the user was // removed. Always True for supergroups and channels. RevokeMessages bool `json:"revoke_messages,omitempty"` } // BanChatMember bans a user in a chat. // Since: Bot API 5.3 // Returns True on success. // See https://core.telegram.org/bots/api#banchatmember func (api *API) BanChatMember(params BanChatMember) (bool, error) { req := NewRequestWithChatID[bool]("banChatMember", params, params.ChatID) return req.Do(api) } // BanChatMemberWithContext is the context-aware variant of BanChatMember. // Since: Bot API 5.3 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#banchatmember func (api *API) BanChatMemberWithContext(ctx context.Context, params BanChatMember) (bool, error) { req := NewRequestWithChatID[bool]("banChatMember", params, params.ChatID) return req.DoWithContext(ctx, api) } // UnbanChatMember holds parameters for the unbanChatMember method. // Since: Bot API 2.0 // See https://core.telegram.org/bots/api#unbanchatmember type UnbanChatMember struct { // ChatID Required. Unique identifier for the target group or username of the target supergroup or channel // in the format @username ChatID int64 `json:"chat_id"` // UserID Required. Unique identifier of the target user UserID int64 `json:"user_id"` // OnlyIfBanned Optional. Do nothing if the user is not banned OnlyIfBanned bool `json:"only_if_banned"` } // UnbanChatMember unbans a previously banned user in a chat. // Since: Bot API 2.0 // Returns True on success. // See https://core.telegram.org/bots/api#unbanchatmember func (api *API) UnbanChatMember(params UnbanChatMember) (bool, error) { req := NewRequestWithChatID[bool]("unbanChatMember", params, params.ChatID) return req.Do(api) } // UnbanChatMemberWithContext is the context-aware variant of UnbanChatMember. // Since: Bot API 2.0 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#unbanchatmember func (api *API) UnbanChatMemberWithContext(ctx context.Context, params UnbanChatMember) (bool, error) { req := NewRequestWithChatID[bool]("unbanChatMember", params, params.ChatID) return req.DoWithContext(ctx, api) } // RestrictChatMember holds parameters for the restrictChatMember method. // Since: Bot API 3.1 // See https://core.telegram.org/bots/api#restrictchatmember type RestrictChatMember struct { // ChatID Required. Unique identifier for the target chat or username of the target supergroup in the format // @username ChatID int64 `json:"chat_id"` // UserID Required. Unique identifier of the target user UserID int64 `json:"user_id"` // Permissions Required. A JSON-serialized object for new user permissions Permissions ChatPermissions `json:"permissions"` // UseIndependentChatPermissions Optional. Pass True if chat permissions are set independently. Otherwise, // the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, // can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and // can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages // permission. UseIndependentChatPermissions bool `json:"use_independent_chat_permissions,omitempty"` // UntilDate Optional. Date when restrictions will be lifted for the user; Unix time. If user is restricted // for more than 366 days or less than 30 seconds from the current time, they are considered to be // restricted forever. UntilDate int `json:"until_date,omitempty"` } // RestrictChatMember restricts a user in a chat. // Since: Bot API 3.1 // Returns True on success. // See https://core.telegram.org/bots/api#restrictchatmember func (api *API) RestrictChatMember(params RestrictChatMember) (bool, error) { req := NewRequestWithChatID[bool]("restrictChatMember", params, params.ChatID) return req.Do(api) } // RestrictChatMemberWithContext is the context-aware variant of RestrictChatMember. // Since: Bot API 3.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#restrictchatmember func (api *API) RestrictChatMemberWithContext(ctx context.Context, params RestrictChatMember) (bool, error) { req := NewRequestWithChatID[bool]("restrictChatMember", params, params.ChatID) return req.DoWithContext(ctx, api) } // PromoteChatMember holds parameters for the promoteChatMember method. // Since: Bot API 3.1 // See https://core.telegram.org/bots/api#promotechatmember type PromoteChatMember struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` // UserID Required. Unique identifier of the target user UserID int64 `json:"user_id"` // IsAnonymous Optional. Pass True if the administrator's presence in the chat is hidden IsAnonymous bool `json:"is_anonymous,omitempty"` // Since: Bot API 5.1 // CanManageChat Optional. Pass True if the administrator can access the chat event log, get boost list, see // hidden supergroup and channel members, report spam messages, ignore slow mode, and send messages to the // chat without paying Telegram Stars. Implied by any other administrator privilege. CanManageChat bool `json:"can_manage_chat,omitempty"` // Since: Bot API 5.3 // CanDeleteMessages Optional. Pass True if the administrator can delete messages of other users CanDeleteMessages bool `json:"can_delete_messages,omitempty"` // CanManageVideoChats Optional. Pass True if the administrator can manage video chats CanManageVideoChats bool `json:"can_manage_video_chats,omitempty"` // Since: Bot API 6.0 // CanRestrictMembers Optional. Pass True if the administrator can restrict, ban or unban chat members, or // access supergroup statistics. For backward compatibility, defaults to True for promotions of channel // administrators. CanRestrictMembers bool `json:"can_restrict_members,omitempty"` // CanPromoteMembers Optional. Pass True if the administrator can add new administrators with a subset of // their own privileges or demote administrators that they have promoted, directly or indirectly (promoted // by administrators that were appointed by him) CanPromoteMembers bool `json:"can_promote_members,omitempty"` // CanChangeInfo Optional. Pass True if the administrator can change chat title, photo and other settings CanChangeInfo bool `json:"can_change_info,omitempty"` // CanInviteUsers Optional. Pass True if the administrator can invite new users to the chat CanInviteUsers bool `json:"can_invite_users,omitempty"` // CanPostStories Optional. Pass True if the administrator can post stories to the chat CanPostStories bool `json:"can_post_stories,omitempty"` // Since: Bot API 6.9 // CanEditStories Optional. Pass True if the administrator can edit stories posted by other users, post // stories to the chat page, pin chat stories, and access the chat's story archive CanEditStories bool `json:"can_edit_stories,omitempty"` // Since: Bot API 6.9 // CanDeleteStories Optional. Pass True if the administrator can delete stories posted by other users CanDeleteStories bool `json:"can_delete_stories,omitempty"` // Since: Bot API 6.9 // CanPostMessages Optional. Pass True if the administrator can post messages in the channel, approve // suggested posts, or access channel statistics; for channels only CanPostMessages bool `json:"can_post_messages,omitempty"` // CanEditMessages Optional. Pass True if the administrator can edit messages of other users and can pin // messages; for channels only CanEditMessages bool `json:"can_edit_messages,omitempty"` // CanPinMessages Optional. Pass True if the administrator can pin messages; for supergroups only CanPinMessages bool `json:"can_pin_messages,omitempty"` // CanManageTopics Optional. Pass True if the user is allowed to create, rename, close, and reopen forum // topics; for supergroups only CanManageTopics bool `json:"can_manage_topics,omitempty"` // Since: Bot API 6.3 // CanManageDirectMessages Optional. Pass True if the administrator can manage direct messages within the // channel and decline suggested posts; for channels only CanManageDirectMessages bool `json:"can_manage_direct_messages,omitempty"` // Since: Bot API 9.1 // CanManageTags Optional. Pass True if the administrator can edit the tags of regular members; for groups // and supergroups only CanManageTags bool `json:"can_manage_tags,omitempty"` // Since: Bot API 9.5 } // PromoteChatMember promotes or demotes a user in a chat. // Since: Bot API 3.1 // Returns True on success. // See https://core.telegram.org/bots/api#promotechatmember func (api *API) PromoteChatMember(params PromoteChatMember) (bool, error) { req := NewRequestWithChatID[bool]("promoteChatMember", params, params.ChatID) return req.Do(api) } // PromoteChatMemberWithContext is the context-aware variant of PromoteChatMember. // Since: Bot API 3.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#promotechatmember func (api *API) PromoteChatMemberWithContext(ctx context.Context, params PromoteChatMember) (bool, error) { req := NewRequestWithChatID[bool]("promoteChatMember", params, params.ChatID) return req.DoWithContext(ctx, api) } // SetChatAdministratorCustomTitle holds parameters for the setChatAdministratorCustomTitle method. // Since: Bot API 5.0 // See https://core.telegram.org/bots/api#setchatadministratorcustomtitle type SetChatAdministratorCustomTitle struct { // ChatID Required. Unique identifier for the target chat or username of the target supergroup in the format // @username ChatID int64 `json:"chat_id"` // UserID Required. Unique identifier of the target user UserID int64 `json:"user_id"` // CustomTitle Required. New custom title for the administrator; 0-16 characters, emoji are not allowed CustomTitle string `json:"custom_title"` } // SetChatAdministratorCustomTitle sets a custom title for an administrator. // Since: Bot API 5.0 // Returns True on success. // See https://core.telegram.org/bots/api#setchatadministratorcustomtitle func (api *API) SetChatAdministratorCustomTitle(params SetChatAdministratorCustomTitle) (bool, error) { req := NewRequestWithChatID[bool]("setChatAdministratorCustomTitle", params, params.ChatID) return req.Do(api) } // SetChatAdministratorCustomTitleWithContext is the context-aware variant of SetChatAdministratorCustomTitle. // Since: Bot API 5.0 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#setchatadministratorcustomtitle func (api *API) SetChatAdministratorCustomTitleWithContext(ctx context.Context, params SetChatAdministratorCustomTitle) (bool, error) { req := NewRequestWithChatID[bool]("setChatAdministratorCustomTitle", params, params.ChatID) return req.DoWithContext(ctx, api) } // SetChatMemberTag holds parameters for the setChatMemberTag method. // Since: Bot API 9.5 // See https://core.telegram.org/bots/api#setchatmembertag type SetChatMemberTag struct { // ChatID Required. Unique identifier for the target chat or username of the target supergroup in the format // @username ChatID int64 `json:"chat_id"` // UserID Required. Unique identifier of the target user UserID int64 `json:"user_id"` // Tag Optional. New tag for the member; 0-16 characters, emoji are not allowed Tag string `json:"tag,omitempty"` } // SetChatMemberTag sets a tag for a chat member. // Since: Bot API 9.5 // Returns True on success. // See https://core.telegram.org/bots/api#setchatmembertag func (api *API) SetChatMemberTag(params SetChatMemberTag) (bool, error) { req := NewRequestWithChatID[bool]("setChatMemberTag", params, params.ChatID) return req.Do(api) } // SetChatMemberTagWithContext is the context-aware variant of SetChatMemberTag. // Since: Bot API 9.5 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#setchatmembertag func (api *API) SetChatMemberTagWithContext(ctx context.Context, params SetChatMemberTag) (bool, error) { req := NewRequestWithChatID[bool]("setChatMemberTag", params, params.ChatID) return req.DoWithContext(ctx, api) } // BanChatSenderChat holds parameters for the banChatSenderChat method. // Since: Bot API 5.6 // See https://core.telegram.org/bots/api#banchatsenderchat type BanChatSenderChat struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` // SenderChatID Required. Unique identifier of the target sender chat SenderChatID int64 `json:"sender_chat_id"` } // BanChatSenderChat bans a channel chat in a supergroup or channel. // Since: Bot API 5.6 // Returns True on success. // See https://core.telegram.org/bots/api#banchatsenderchat func (api *API) BanChatSenderChat(params BanChatSenderChat) (bool, error) { req := NewRequestWithChatID[bool]("banChatSenderChat", params, params.ChatID) return req.Do(api) } // BanChatSenderChatWithContext is the context-aware variant of BanChatSenderChat. // Since: Bot API 5.6 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#banchatsenderchat func (api *API) BanChatSenderChatWithContext(ctx context.Context, params BanChatSenderChat) (bool, error) { req := NewRequestWithChatID[bool]("banChatSenderChat", params, params.ChatID) return req.DoWithContext(ctx, api) } // UnbanChatSenderChat holds parameters for the unbanChatSenderChat method. // Since: Bot API 5.6 // See https://core.telegram.org/bots/api#unbanchatsenderchat type UnbanChatSenderChat struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` // SenderChatID Required. Unique identifier of the target sender chat SenderChatID int64 `json:"sender_chat_id"` } // UnbanChatSenderChat unbans a previously banned channel chat. // Since: Bot API 5.6 // Returns True on success. // See https://core.telegram.org/bots/api#unbanchatsenderchat func (api *API) UnbanChatSenderChat(params UnbanChatSenderChat) (bool, error) { req := NewRequestWithChatID[bool]("unbanChatSenderChat", params, params.ChatID) return req.Do(api) } // UnbanChatSenderChatWithContext is the context-aware variant of UnbanChatSenderChat. // Since: Bot API 5.6 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#unbanchatsenderchat func (api *API) UnbanChatSenderChatWithContext(ctx context.Context, params UnbanChatSenderChat) (bool, error) { req := NewRequestWithChatID[bool]("unbanChatSenderChat", params, params.ChatID) return req.DoWithContext(ctx, api) } // SetChatPermissions holds parameters for the setChatPermissions method. // Since: Bot API 4.4 // See https://core.telegram.org/bots/api#setchatpermissions type SetChatPermissions struct { // ChatID Required. Unique identifier for the target chat or username of the target supergroup in the format // @username ChatID int64 `json:"chat_id"` // Permissions Required. A JSON-serialized object for new default chat permissions Permissions ChatPermissions `json:"permissions"` // UseIndependentChatPermissions Optional. Pass True if chat permissions are set independently. Otherwise, // the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, // can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and // can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages // permission. UseIndependentChatPermissions bool `json:"use_independent_chat_permissions,omitempty"` } // SetChatPermissions sets default chat permissions for all members. // Since: Bot API 4.4 // Returns True on success. // See https://core.telegram.org/bots/api#setchatpermissions func (api *API) SetChatPermissions(params SetChatPermissions) (bool, error) { req := NewRequestWithChatID[bool]("setChatPermissions", params, params.ChatID) return req.Do(api) } // SetChatPermissionsWithContext is the context-aware variant of SetChatPermissions. // Since: Bot API 4.4 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#setchatpermissions func (api *API) SetChatPermissionsWithContext(ctx context.Context, params SetChatPermissions) (bool, error) { req := NewRequestWithChatID[bool]("setChatPermissions", params, params.ChatID) return req.DoWithContext(ctx, api) } // ExportChatInviteLink holds parameters for the exportChatInviteLink method. // Since: Bot API 3.1 // See https://core.telegram.org/bots/api#exportchatinvitelink type ExportChatInviteLink struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` } // ExportChatInviteLink generates a new primary invite link for a chat. // Since: Bot API 3.1 // Returns the new invite link as string. // See https://core.telegram.org/bots/api#exportchatinvitelink func (api *API) ExportChatInviteLink(params ExportChatInviteLink) (string, error) { req := NewRequestWithChatID[string]("exportChatInviteLink", params, params.ChatID) return req.Do(api) } // ExportChatInviteLinkWithContext is the context-aware variant of ExportChatInviteLink. // Since: Bot API 3.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#exportchatinvitelink func (api *API) ExportChatInviteLinkWithContext(ctx context.Context, params ExportChatInviteLink) (string, error) { req := NewRequestWithChatID[string]("exportChatInviteLink", params, params.ChatID) return req.DoWithContext(ctx, api) } // CreateChatInviteLink holds parameters for the createChatInviteLink method. // Since: Bot API 5.1 // See https://core.telegram.org/bots/api#createchatinvitelink type CreateChatInviteLink struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` // Name Optional. Invite link name; 0-32 characters Name *string `json:"name,omitempty"` // ExpireDate Optional. Point in time (Unix timestamp) when the link will expire ExpireDate int `json:"expire_date,omitempty"` // MemberLimit Optional. The maximum number of users that can be members of the chat simultaneously after // joining the chat via this invite link; 1-99999 MemberLimit int `json:"member_limit,omitempty"` // CreatesJoinRequest Optional. True, if users joining the chat via the link need to be approved by chat // administrators. If True, member_limit can't be specified. CreatesJoinRequest bool `json:"creates_join_request,omitempty"` } // CreateChatInviteLink creates an additional invite link for a chat. // Since: Bot API 5.1 // Returns the created invite link. // See https://core.telegram.org/bots/api#createchatinvitelink func (api *API) CreateChatInviteLink(params CreateChatInviteLink) (ChatInviteLink, error) { req := NewRequestWithChatID[ChatInviteLink]("createChatInviteLink", params, params.ChatID) return req.Do(api) } // CreateChatInviteLinkWithContext is the context-aware variant of CreateChatInviteLink. // Since: Bot API 5.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#createchatinvitelink func (api *API) CreateChatInviteLinkWithContext(ctx context.Context, params CreateChatInviteLink) (ChatInviteLink, error) { req := NewRequestWithChatID[ChatInviteLink]("createChatInviteLink", params, params.ChatID) return req.DoWithContext(ctx, api) } // EditChatInviteLink holds parameters for the editChatInviteLink method. // Since: Bot API 5.1 // See https://core.telegram.org/bots/api#editchatinvitelink type EditChatInviteLink struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` // InviteLink Required. The invite link to edit InviteLink string `json:"invite_link"` // Name Optional. Invite link name; 0-32 characters Name string `json:"name,omitempty"` // ExpireDate Optional. Point in time (Unix timestamp) when the link will expire ExpireDate int `json:"expire_date,omitempty"` // MemberLimit Optional. The maximum number of users that can be members of the chat simultaneously after // joining the chat via this invite link; 1-99999 MemberLimit int `json:"member_limit,omitempty"` // CreatesJoinRequest Optional. True, if users joining the chat via the link need to be approved by chat // administrators. If True, member_limit can't be specified. CreatesJoinRequest bool `json:"creates_join_request,omitempty"` } // EditChatInviteLink edits a non‑primary invite link. // Since: Bot API 5.1 // Returns the edited invite link. // See https://core.telegram.org/bots/api#editchatinvitelink func (api *API) EditChatInviteLink(params EditChatInviteLink) (ChatInviteLink, error) { req := NewRequestWithChatID[ChatInviteLink]("editChatInviteLink", params, params.ChatID) return req.Do(api) } // EditChatInviteLinkWithContext is the context-aware variant of EditChatInviteLink. // Since: Bot API 5.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#editchatinvitelink func (api *API) EditChatInviteLinkWithContext(ctx context.Context, params EditChatInviteLink) (ChatInviteLink, error) { req := NewRequestWithChatID[ChatInviteLink]("editChatInviteLink", params, params.ChatID) return req.DoWithContext(ctx, api) } // CreateChatSubscriptionInviteLink holds parameters for the createChatSubscriptionInviteLink method. // Since: Bot API 8.0 // See https://core.telegram.org/bots/api#createchatsubscriptioninvitelink type CreateChatSubscriptionInviteLink struct { // ChatID Required. Unique identifier for the target channel chat or username of the target channel in the // format @username ChatID int64 `json:"chat_id"` // Name Optional. Invite link name; 0-32 characters Name string `json:"name,omitempty"` // SubscriptionPeriod Required. The number of seconds the subscription will be active for before the next // payment. Currently, it must always be 2592000 (30 days). SubscriptionPeriod int `json:"subscription_period,omitempty"` // SubscriptionPrice Required. The amount of Telegram Stars a user must pay initially and after each // subsequent subscription period to be a member of the chat; 1-10000 SubscriptionPrice int `json:"subscription_price,omitempty"` } // CreateChatSubscriptionInviteLink creates a subscription invite link for a channel chat. // Since: Bot API 8.0 // Returns the created invite link. // See https://core.telegram.org/bots/api#createchatsubscriptioninvitelink func (api *API) CreateChatSubscriptionInviteLink(params CreateChatSubscriptionInviteLink) (ChatInviteLink, error) { req := NewRequestWithChatID[ChatInviteLink]("createChatSubscriptionInviteLink", params, params.ChatID) return req.Do(api) } // CreateChatSubscriptionInviteLinkWithContext is the context-aware variant of CreateChatSubscriptionInviteLink. // Since: Bot API 8.0 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#createchatsubscriptioninvitelink func (api *API) CreateChatSubscriptionInviteLinkWithContext(ctx context.Context, params CreateChatSubscriptionInviteLink) (ChatInviteLink, error) { req := NewRequestWithChatID[ChatInviteLink]("createChatSubscriptionInviteLink", params, params.ChatID) return req.DoWithContext(ctx, api) } // EditChatSubscriptionInviteLink holds parameters for the editChatSubscriptionInviteLink method. // Since: Bot API 8.0 // See https://core.telegram.org/bots/api#editchatsubscriptioninvitelink type EditChatSubscriptionInviteLink struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` // InviteLink Required. The invite link to edit InviteLink string `json:"invite_link"` // Name Optional. Invite link name; 0-32 characters Name string `json:"name,omitempty"` } // EditChatSubscriptionInviteLink edits a subscription invite link. // Since: Bot API 8.0 // Returns the edited invite link. // See https://core.telegram.org/bots/api#editchatsubscriptioninvitelink func (api *API) EditChatSubscriptionInviteLink(params EditChatSubscriptionInviteLink) (ChatInviteLink, error) { req := NewRequestWithChatID[ChatInviteLink]("editChatSubscriptionInviteLink", params, params.ChatID) return req.Do(api) } // EditChatSubscriptionInviteLinkWithContext is the context-aware variant of EditChatSubscriptionInviteLink. // Since: Bot API 8.0 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#editchatsubscriptioninvitelink func (api *API) EditChatSubscriptionInviteLinkWithContext(ctx context.Context, params EditChatSubscriptionInviteLink) (ChatInviteLink, error) { req := NewRequestWithChatID[ChatInviteLink]("editChatSubscriptionInviteLink", params, params.ChatID) return req.DoWithContext(ctx, api) } // RevokeChatInviteLink holds parameters for the revokeChatInviteLink method. // Since: Bot API 5.1 // See https://core.telegram.org/bots/api#revokechatinvitelink type RevokeChatInviteLink struct { // ChatID Required. Unique identifier of the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` // InviteLink Required. The invite link to revoke InviteLink string `json:"invite_link"` } // RevokeChatInviteLink revokes an invite link. // Since: Bot API 5.1 // Returns the revoked invite link object. // See https://core.telegram.org/bots/api#revokechatinvitelink func (api *API) RevokeChatInviteLink(params RevokeChatInviteLink) (ChatInviteLink, error) { req := NewRequestWithChatID[ChatInviteLink]("revokeChatInviteLink", params, params.ChatID) return req.Do(api) } // RevokeChatInviteLinkWithContext is the context-aware variant of RevokeChatInviteLink. // Since: Bot API 5.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#revokechatinvitelink func (api *API) RevokeChatInviteLinkWithContext(ctx context.Context, params RevokeChatInviteLink) (ChatInviteLink, error) { req := NewRequestWithChatID[ChatInviteLink]("revokeChatInviteLink", params, params.ChatID) return req.DoWithContext(ctx, api) } // ApproveChatJoinRequest holds parameters for the approveChatJoinRequest method. // Since: Bot API 5.4 // See https://core.telegram.org/bots/api#approvechatjoinrequest type ApproveChatJoinRequest struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` // UserID Required. Unique identifier of the target user UserID int64 `json:"user_id"` } // ApproveChatJoinRequest approves a chat join request. // Since: Bot API 5.4 // Returns True on success. // See https://core.telegram.org/bots/api#approvechatjoinrequest func (api *API) ApproveChatJoinRequest(params ApproveChatJoinRequest) (bool, error) { req := NewRequestWithChatID[bool]("approveChatJoinRequest", params, params.ChatID) return req.Do(api) } // ApproveChatJoinRequestWithContext is the context-aware variant of ApproveChatJoinRequest. // Since: Bot API 5.4 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#approvechatjoinrequest func (api *API) ApproveChatJoinRequestWithContext(ctx context.Context, params ApproveChatJoinRequest) (bool, error) { req := NewRequestWithChatID[bool]("approveChatJoinRequest", params, params.ChatID) return req.DoWithContext(ctx, api) } // DeclineChatJoinRequest holds parameters for the declineChatJoinRequest method. // Since: Bot API 5.4 // See https://core.telegram.org/bots/api#declinechatjoinrequest type DeclineChatJoinRequest struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` // UserID Required. Unique identifier of the target user UserID int64 `json:"user_id"` } // DeclineChatJoinRequest declines a chat join request. // Since: Bot API 5.4 // Returns True on success. // See https://core.telegram.org/bots/api#declinechatjoinrequest func (api *API) DeclineChatJoinRequest(params DeclineChatJoinRequest) (bool, error) { req := NewRequestWithChatID[bool]("declineChatJoinRequest", params, params.ChatID) return req.Do(api) } // DeclineChatJoinRequestWithContext is the context-aware variant of DeclineChatJoinRequest. // Since: Bot API 5.4 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#declinechatjoinrequest func (api *API) DeclineChatJoinRequestWithContext(ctx context.Context, params DeclineChatJoinRequest) (bool, error) { req := NewRequestWithChatID[bool]("declineChatJoinRequest", params, params.ChatID) return req.DoWithContext(ctx, api) } // ChatJoinRequestQueryResult is the verdict passed to answerChatJoinRequestQuery. // Since: Bot API 10.1 type ChatJoinRequestQueryResult string const ( // JoinRequestApprove allows the user to join the chat. JoinRequestApprove ChatJoinRequestQueryResult = "approve" // JoinRequestDecline disallows the user to join the chat. JoinRequestDecline ChatJoinRequestQueryResult = "decline" // JoinRequestQueue leaves the decision to other administrators. JoinRequestQueue ChatJoinRequestQueryResult = "queue" ) // AnswerChatJoinRequestQuery holds parameters for the answerChatJoinRequestQuery method. // Since: Bot API 10.1 // See https://core.telegram.org/bots/api#answerchatjoinrequestquery type AnswerChatJoinRequestQuery struct { // ChatJoinRequestQueryID identifies the chat join request query. ChatJoinRequestQueryID string `json:"chat_join_request_query_id"` // Result contains the decision for the join request query. Result ChatJoinRequestQueryResult `json:"result"` } // AnswerChatJoinRequestQuery processes a received chat join request query. // Since: Bot API 10.1 // Returns True on success. // See https://core.telegram.org/bots/api#answerchatjoinrequestquery func (api *API) AnswerChatJoinRequestQuery(params AnswerChatJoinRequestQuery) (bool, error) { req := NewRequest[bool]("answerChatJoinRequestQuery", params) return req.Do(api) } // AnswerChatJoinRequestQueryWithContext is the context-aware variant of AnswerChatJoinRequestQuery. // Since: Bot API 10.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#answerchatjoinrequestquery func (api *API) AnswerChatJoinRequestQueryWithContext(ctx context.Context, params AnswerChatJoinRequestQuery) (bool, error) { req := NewRequest[bool]("answerChatJoinRequestQuery", params) return req.DoWithContext(ctx, api) } // SendChatJoinRequestWebApp holds parameters for the sendChatJoinRequestWebApp method. // Since: Bot API 10.1 // See https://core.telegram.org/bots/api#sendchatjoinrequestwebapp type SendChatJoinRequestWebApp struct { // ChatJoinRequestQueryID identifies the chat join request query. ChatJoinRequestQueryID string `json:"chat_join_request_query_id"` // WebAppURL is the HTTPS URL of the Mini App to open. WebAppURL string `json:"web_app_url"` } // SendChatJoinRequestWebApp shows a Mini App to the user before deciding a // join request query; resolve the query with AnswerChatJoinRequestQuery based // on the Mini App interaction. // Since: Bot API 10.1 // Returns True on success. // See https://core.telegram.org/bots/api#sendchatjoinrequestwebapp func (api *API) SendChatJoinRequestWebApp(params SendChatJoinRequestWebApp) (bool, error) { req := NewRequest[bool]("sendChatJoinRequestWebApp", params) return req.Do(api) } // SendChatJoinRequestWebAppWithContext is the context-aware variant of SendChatJoinRequestWebApp. // Since: Bot API 10.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#sendchatjoinrequestwebapp func (api *API) SendChatJoinRequestWebAppWithContext(ctx context.Context, params SendChatJoinRequestWebApp) (bool, error) { req := NewRequest[bool]("sendChatJoinRequestWebApp", params) return req.DoWithContext(ctx, api) } // SetChatPhoto holds parameters for the setChatPhoto method. // Since: Bot API 3.1 // See https://core.telegram.org/bots/api#setchatphoto type SetChatPhoto struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` } // SetChatPhoto changes the chat photo. // Since: Bot API 3.1 // photo is the file to upload as the new photo. // Returns True on success. // See https://core.telegram.org/bots/api#setchatphoto func (api *API) SetChatPhoto(params SetChatPhoto, photo UploaderFile) (bool, error) { return api.SetChatPhotoWithContext(context.Background(), params, photo) } // SetChatPhotoWithContext changes the chat photo using ctx for cancellation and deadlines. // Since: Bot API 3.1 // photo is the file to upload as the new photo. // Returns True on success. // See https://core.telegram.org/bots/api#setchatphoto func (api *API) SetChatPhotoWithContext(ctx context.Context, params SetChatPhoto, photo UploaderFile) (bool, error) { uploader := NewUploader(api) defer func() { _ = uploader.Close() }() req := NewUploaderRequestWithChatID[bool]("setChatPhoto", params, params.ChatID, photo.SetType(UploaderPhotoType)) return req.DoWithContext(ctx, uploader) } // DeleteChatPhoto holds parameters for the deleteChatPhoto method. // Since: Bot API 3.1 // See https://core.telegram.org/bots/api#deletechatphoto type DeleteChatPhoto struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` } // DeleteChatPhoto deletes a chat photo. // Since: Bot API 3.1 // Returns True on success. // See https://core.telegram.org/bots/api#deletechatphoto func (api *API) DeleteChatPhoto(params DeleteChatPhoto) (bool, error) { req := NewRequestWithChatID[bool]("deleteChatPhoto", params, params.ChatID) return req.Do(api) } // DeleteChatPhotoWithContext is the context-aware variant of DeleteChatPhoto. // Since: Bot API 3.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#deletechatphoto func (api *API) DeleteChatPhotoWithContext(ctx context.Context, params DeleteChatPhoto) (bool, error) { req := NewRequestWithChatID[bool]("deleteChatPhoto", params, params.ChatID) return req.DoWithContext(ctx, api) } // SetChatTitle holds parameters for the setChatTitle method. // Since: Bot API 3.1 // See https://core.telegram.org/bots/api#setchattitle type SetChatTitle struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` // Title Required. New chat title, 1-128 characters Title string `json:"title"` } // SetChatTitle changes the chat title. // Since: Bot API 3.1 // Returns True on success. // See https://core.telegram.org/bots/api#setchattitle func (api *API) SetChatTitle(params SetChatTitle) (bool, error) { req := NewRequestWithChatID[bool]("setChatTitle", params, params.ChatID) return req.Do(api) } // SetChatTitleWithContext is the context-aware variant of SetChatTitle. // Since: Bot API 3.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#setchattitle func (api *API) SetChatTitleWithContext(ctx context.Context, params SetChatTitle) (bool, error) { req := NewRequestWithChatID[bool]("setChatTitle", params, params.ChatID) return req.DoWithContext(ctx, api) } // SetChatDescription holds parameters for the setChatDescription method. // Since: Bot API 3.1 // See https://core.telegram.org/bots/api#setchatdescription type SetChatDescription struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` // Description Optional. New chat description, 0-255 characters Description string `json:"description"` } // SetChatDescription changes the chat description. // Since: Bot API 3.1 // Returns True on success. // See https://core.telegram.org/bots/api#setchatdescription func (api *API) SetChatDescription(params SetChatDescription) (bool, error) { req := NewRequestWithChatID[bool]("setChatDescription", params, params.ChatID) return req.Do(api) } // SetChatDescriptionWithContext is the context-aware variant of SetChatDescription. // Since: Bot API 3.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#setchatdescription func (api *API) SetChatDescriptionWithContext(ctx context.Context, params SetChatDescription) (bool, error) { req := NewRequestWithChatID[bool]("setChatDescription", params, params.ChatID) return req.DoWithContext(ctx, api) } // PinChatMessage holds parameters for the pinChatMessage method. // Since: Bot API 3.1 // See https://core.telegram.org/bots/api#pinchatmessage type PinChatMessage struct { // BusinessConnectionID Optional. Unique identifier of the business connection on behalf of which the // message will be pinned BusinessConnectionID *string `json:"business_connection_id,omitempty"` // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` // MessageID Required. Identifier of a message to pin MessageID int `json:"message_id"` // DisableNotification Optional. Pass True if it is not necessary to send a notification to all chat members // about the new pinned message. Notifications are always disabled in channels and private chats. DisableNotification bool `json:"disable_notification,omitempty"` } // PinChatMessage pins a message in a chat. // Since: Bot API 3.1 // Returns True on success. // See https://core.telegram.org/bots/api#pinchatmessage func (api *API) PinChatMessage(params PinChatMessage) (bool, error) { req := NewRequestWithChatID[bool]("pinChatMessage", params, params.ChatID) return req.Do(api) } // PinChatMessageWithContext is the context-aware variant of PinChatMessage. // Since: Bot API 3.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#pinchatmessage func (api *API) PinChatMessageWithContext(ctx context.Context, params PinChatMessage) (bool, error) { req := NewRequestWithChatID[bool]("pinChatMessage", params, params.ChatID) return req.DoWithContext(ctx, api) } // UnpinChatMessage holds parameters for the unpinChatMessage method. // Since: Bot API 3.1 // See https://core.telegram.org/bots/api#unpinchatmessage type UnpinChatMessage struct { // BusinessConnectionID Optional. Unique identifier of the business connection on behalf of which the // message will be unpinned BusinessConnectionID *string `json:"business_connection_id,omitempty"` // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` // MessageID Optional. Identifier of the message to unpin. Required if business_connection_id is specified. // If not specified, the most recent pinned message (by sending date) will be unpinned. MessageID int `json:"message_id"` } // UnpinChatMessage unpins a message in a chat. // Since: Bot API 3.1 // Returns True on success. // See https://core.telegram.org/bots/api#unpinchatmessage func (api *API) UnpinChatMessage(params UnpinChatMessage) (bool, error) { req := NewRequestWithChatID[bool]("unpinChatMessage", params, params.ChatID) return req.Do(api) } // UnpinChatMessageWithContext is the context-aware variant of UnpinChatMessage. // Since: Bot API 3.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#unpinchatmessage func (api *API) UnpinChatMessageWithContext(ctx context.Context, params UnpinChatMessage) (bool, error) { req := NewRequestWithChatID[bool]("unpinChatMessage", params, params.ChatID) return req.DoWithContext(ctx, api) } // UnpinAllChatMessages holds parameters for the unpinAllChatMessages method. // Since: Bot API 5.0 // See https://core.telegram.org/bots/api#unpinallchatmessages type UnpinAllChatMessages struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` } // UnpinAllChatMessages unpins all pinned messages in a chat. // Since: Bot API 5.0 // Returns True on success. // See https://core.telegram.org/bots/api#unpinallchatmessages func (api *API) UnpinAllChatMessages(params UnpinAllChatMessages) (bool, error) { req := NewRequestWithChatID[bool]("unpinAllChatMessages", params, params.ChatID) return req.Do(api) } // UnpinAllChatMessagesWithContext is the context-aware variant of UnpinAllChatMessages. // Since: Bot API 5.0 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#unpinallchatmessages func (api *API) UnpinAllChatMessagesWithContext(ctx context.Context, params UnpinAllChatMessages) (bool, error) { req := NewRequestWithChatID[bool]("unpinAllChatMessages", params, params.ChatID) return req.DoWithContext(ctx, api) } // LeaveChat holds parameters for the leaveChat method. // Since: Bot API 2.1 // See https://core.telegram.org/bots/api#leavechat type LeaveChat struct { // ChatID Required. Unique identifier for the target chat or username of the target supergroup or channel in // the format @username. Channel direct messages chats aren't supported; leave the corresponding channel // instead. ChatID int64 `json:"chat_id"` } // LeaveChat makes the bot leave a chat. // Since: Bot API 2.1 // Returns True on success. // See https://core.telegram.org/bots/api#leavechat func (api *API) LeaveChat(params LeaveChat) (bool, error) { req := NewRequestWithChatID[bool]("leaveChat", params, params.ChatID) return req.Do(api) } // LeaveChatWithContext is the context-aware variant of LeaveChat. // Since: Bot API 2.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#leavechat func (api *API) LeaveChatWithContext(ctx context.Context, params LeaveChat) (bool, error) { req := NewRequestWithChatID[bool]("leaveChat", params, params.ChatID) return req.DoWithContext(ctx, api) } // GetChat holds parameters for the getChat method. // Since: Bot API 2.1 // See https://core.telegram.org/bots/api#getchat type GetChat struct { // ChatID Required. Unique identifier for the target chat or username of the target supergroup or channel in // the format @username ChatID int64 `json:"chat_id"` } // GetChat gets up‑to‑date information about a chat. // Since: Bot API 2.1 // See https://core.telegram.org/bots/api#getchat func (api *API) GetChat(params GetChat) (ChatFullInfo, error) { req := NewRequestWithChatID[ChatFullInfo]("getChat", params, params.ChatID) return req.Do(api) } // GetChatWithContext is the context-aware variant of GetChat. // Since: Bot API 2.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#getchat func (api *API) GetChatWithContext(ctx context.Context, params GetChat) (ChatFullInfo, error) { req := NewRequestWithChatID[ChatFullInfo]("getChat", params, params.ChatID) return req.DoWithContext(ctx, api) } // GetChatAdministrators holds parameters for the getChatAdministrators method. // Since: Bot API 2.1 // See https://core.telegram.org/bots/api#getchatadministrators type GetChatAdministrators struct { // ChatID Required. Unique identifier for the target chat or username of the target supergroup or channel in // the format @username ChatID int64 `json:"chat_id"` // ReturnBots Optional. Pass True to additionally receive all bots that are administrators of the chat. By // default, bots other than the current bot are omitted. ReturnBots bool `json:"return_bots,omitempty"` // Since: Bot API 10.0 } // GetChatAdministrators returns a list of administrators in a chat. // Since: Bot API 2.1 // See https://core.telegram.org/bots/api#getchatadministrators func (api *API) GetChatAdministrators(params GetChatAdministrators) ([]ChatMember, error) { req := NewRequestWithChatID[[]ChatMember]("getChatAdministrators", params, params.ChatID) return req.Do(api) } // GetChatAdministratorsWithContext is the context-aware variant of GetChatAdministrators. // Since: Bot API 2.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#getchatadministrators func (api *API) GetChatAdministratorsWithContext(ctx context.Context, params GetChatAdministrators) ([]ChatMember, error) { req := NewRequestWithChatID[[]ChatMember]("getChatAdministrators", params, params.ChatID) return req.DoWithContext(ctx, api) } // GetChatMemberCount holds parameters for the getChatMemberCount method. // Since: Bot API 2.1 // See https://core.telegram.org/bots/api#getchatmembercount type GetChatMemberCount struct { // ChatID Required. Unique identifier for the target chat or username of the target supergroup or channel in // the format @username ChatID int64 `json:"chat_id"` } // GetChatMemberCount returns the number of members in a chat. // Since: Bot API 2.1 // See https://core.telegram.org/bots/api#getchatmembercount func (api *API) GetChatMemberCount(params GetChatMemberCount) (int, error) { req := NewRequestWithChatID[int]("getChatMemberCount", params, params.ChatID) return req.Do(api) } // GetChatMemberCountWithContext is the context-aware variant of GetChatMemberCount. // Since: Bot API 2.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#getchatmembercount func (api *API) GetChatMemberCountWithContext(ctx context.Context, params GetChatMemberCount) (int, error) { req := NewRequestWithChatID[int]("getChatMemberCount", params, params.ChatID) return req.DoWithContext(ctx, api) } // GetChatMember holds parameters for the getChatMember method. // Since: Bot API 2.1 // See https://core.telegram.org/bots/api#getchatmember type GetChatMember struct { // ChatID Required. Unique identifier for the target chat or username of the target supergroup or channel in // the format @username ChatID int64 `json:"chat_id"` // UserID Required. Unique identifier of the target user UserID int64 `json:"user_id"` } // GetChatMember returns information about a member of a chat. // Since: Bot API 2.1 // See https://core.telegram.org/bots/api#getchatmember func (api *API) GetChatMember(params GetChatMember) (ChatMember, error) { req := NewRequestWithChatID[ChatMember]("getChatMember", params, params.ChatID) return req.Do(api) } // GetChatMemberWithContext is the context-aware variant of GetChatMember. // Since: Bot API 2.1 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#getchatmember func (api *API) GetChatMemberWithContext(ctx context.Context, params GetChatMember) (ChatMember, error) { req := NewRequestWithChatID[ChatMember]("getChatMember", params, params.ChatID) return req.DoWithContext(ctx, api) } // SetChatStickerSet holds parameters for the setChatStickerSet method. // Since: Bot API 3.2 // See https://core.telegram.org/bots/api#setchatstickerset type SetChatStickerSet struct { // ChatID Required. Unique identifier for the target chat or username of the target supergroup in the format // @username ChatID int64 `json:"chat_id"` // StickerSetName Required. Name of the sticker set to be set as the group sticker set StickerSetName string `json:"sticker_set_name"` } // SetChatStickerSet associates a sticker set with a supergroup. // Since: Bot API 3.2 // Returns True on success. // See https://core.telegram.org/bots/api#setchatstickerset func (api *API) SetChatStickerSet(params SetChatStickerSet) (bool, error) { req := NewRequestWithChatID[bool]("setChatStickerSet", params, params.ChatID) return req.Do(api) } // SetChatStickerSetWithContext is the context-aware variant of SetChatStickerSet. // Since: Bot API 3.2 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#setchatstickerset func (api *API) SetChatStickerSetWithContext(ctx context.Context, params SetChatStickerSet) (bool, error) { req := NewRequestWithChatID[bool]("setChatStickerSet", params, params.ChatID) return req.DoWithContext(ctx, api) } // DeleteChatStickerSet holds parameters for the deleteChatStickerSet method. // Since: Bot API 3.2 // See https://core.telegram.org/bots/api#deletechatstickerset type DeleteChatStickerSet struct { // ChatID Required. Unique identifier for the target chat or username of the target supergroup in the format // @username ChatID int64 `json:"chat_id"` } // DeleteChatStickerSet deletes a sticker set from a supergroup. // Since: Bot API 3.2 // Returns True on success. // See https://core.telegram.org/bots/api#deletechatstickerset func (api *API) DeleteChatStickerSet(params DeleteChatStickerSet) (bool, error) { req := NewRequestWithChatID[bool]("deleteChatStickerSet", params, params.ChatID) return req.Do(api) } // DeleteChatStickerSetWithContext is the context-aware variant of DeleteChatStickerSet. // Since: Bot API 3.2 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#deletechatstickerset func (api *API) DeleteChatStickerSetWithContext(ctx context.Context, params DeleteChatStickerSet) (bool, error) { req := NewRequestWithChatID[bool]("deleteChatStickerSet", params, params.ChatID) return req.DoWithContext(ctx, api) } // GetUserChatBoosts holds parameters for the getUserChatBoosts method. // Since: Bot API 7.0 // See https://core.telegram.org/bots/api#getuserchatboosts type GetUserChatBoosts struct { // ChatID Required. Unique identifier for the chat or username of the channel in the format @username ChatID int64 `json:"chat_id"` // UserID Required. Unique identifier of the target user UserID int64 `json:"user_id"` } // GetUserChatBoosts returns the list of boosts a user has given to a chat. // Since: Bot API 7.0 // See https://core.telegram.org/bots/api#getuserchatboosts func (api *API) GetUserChatBoosts(params GetUserChatBoosts) (UserChatBoosts, error) { req := NewRequestWithChatID[UserChatBoosts]("getUserChatBoosts", params, params.ChatID) return req.Do(api) } // GetUserChatBoostsWithContext is the context-aware variant of GetUserChatBoosts. // Since: Bot API 7.0 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#getuserchatboosts func (api *API) GetUserChatBoostsWithContext(ctx context.Context, params GetUserChatBoosts) (UserChatBoosts, error) { req := NewRequestWithChatID[UserChatBoosts]("getUserChatBoosts", params, params.ChatID) return req.DoWithContext(ctx, api) } // GetChatGifts holds parameters for the getChatGifts method. // Since: Bot API 9.3 // See https://core.telegram.org/bots/api#getchatgifts type GetChatGifts struct { // ChatID Required. Unique identifier for the target chat or username of the target channel in the format // @username ChatID int64 `json:"chat_id"` // ExcludeUnsaved Optional. Pass True to exclude gifts that aren't saved to the chat's profile page. Always // True, unless the bot has the can_post_messages administrator right in the channel. ExcludeUnsaved bool `json:"exclude_unsaved,omitempty"` // ExcludeSaved Optional. Pass True to exclude gifts that are saved to the chat's profile page. Always // False, unless the bot has the can_post_messages administrator right in the channel. ExcludeSaved bool `json:"exclude_saved,omitempty"` // ExcludeUnlimited Optional. Pass True to exclude gifts that can be purchased an unlimited number of times ExcludeUnlimited bool `json:"exclude_unlimited,omitempty"` // ExcludeLimitedUpgradable Optional. Pass True to exclude gifts that can be purchased a limited number of // times and can be upgraded to unique ExcludeLimitedUpgradable bool `json:"exclude_limited_upgradable,omitempty"` // ExcludeLimitedNonUpgradable Optional. Pass True to exclude gifts that can be purchased a limited number // of times and can't be upgraded to unique ExcludeLimitedNonUpgradable bool `json:"exclude_limited_non_upgradable,omitempty"` // ExcludeUnique Optional. Pass True to exclude unique gifts ExcludeUnique bool `json:"exclude_unique,omitempty"` // ExcludeFromBlockchain Optional. Pass True to exclude gifts that were assigned from the TON blockchain and // can't be resold or transferred in Telegram ExcludeFromBlockchain bool `json:"exclude_from_blockchain,omitempty"` // SortByPrice Optional. Pass True to sort results by gift price instead of send date. Sorting is applied // before pagination. SortByPrice bool `json:"sort_by_price,omitempty"` // Offset Optional. Offset of the first entry to return as received from the previous request; use an empty // string to get the first chunk of results Offset string `json:"offset,omitempty"` // Limit Optional. The maximum number of gifts to be returned; 1-100. Defaults to 100. Limit int `json:"limit,omitempty"` } // GetChatGifts returns gifts owned by a chat. // Since: Bot API 9.3 // See https://core.telegram.org/bots/api#getchatgifts func (api *API) GetChatGifts(params GetChatGifts) (OwnedGifts, error) { req := NewRequestWithChatID[OwnedGifts]("getChatGifts", params, params.ChatID) return req.Do(api) } // GetChatGiftsWithContext is the context-aware variant of GetChatGifts. // Since: Bot API 9.3 // It executes the same request but uses ctx for cancellation and deadlines. // See https://core.telegram.org/bots/api#getchatgifts func (api *API) GetChatGiftsWithContext(ctx context.Context, params GetChatGifts) (OwnedGifts, error) { req := NewRequestWithChatID[OwnedGifts]("getChatGifts", params, params.ChatID) return req.DoWithContext(ctx, api) }