コンテンツにスキップ

REST グループ

bot.rest の各属性は操作のグループです。ここでは、各操作が受け取るオプションとあわせて一覧にしています。規約は REST のガイドで説明しています。

bostie.rest.REST

REST(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None, deletions: set[Task[None]])

bot.rest: each attribute is a group of Discord's REST operations.

deletions holds the pending delete_after tasks, for its owner to cancel.

application instance-attribute

application = Application(*shared)

audit_log instance-attribute

audit_log = AuditLog(*shared)

auto_moderation instance-attribute

auto_moderation = AutoModeration(*shared)

bans instance-attribute

bans = Bans(*shared)

channels instance-attribute

channels = Channels(*shared)

commands instance-attribute

commands = Commands(*shared)

emojis instance-attribute

emojis = Emojis(*shared)

gateway instance-attribute

gateway = Gateway(*shared)

guilds instance-attribute

guilds = Guilds(*shared)

identities instance-attribute

identities = Identities(*shared)

integrations instance-attribute

integrations = Integrations(*shared)

invites instance-attribute

invites = Invites(*shared)

lobbies instance-attribute

lobbies = Lobbies(*shared)

members instance-attribute

members = Members(*shared)

messages instance-attribute

messages = Messages(*shared, deletions)

monetization instance-attribute

monetization = Monetization(*shared)

onboarding instance-attribute

onboarding = Onboarding(*shared)

partner_sdk instance-attribute

partner_sdk = PartnerSDK(*shared)

polls instance-attribute

polls = Polls(*shared)

reactions instance-attribute

reactions = Reactions(*shared)

roles instance-attribute

roles = Roles(*shared)

scheduled_events instance-attribute

scheduled_events = ScheduledEvents(*shared)

soundboard instance-attribute

soundboard = Soundboard(*shared)

stage_instances instance-attribute

stage_instances = StageInstances(*shared)

stickers instance-attribute

stickers = Stickers(*shared)

templates instance-attribute

templates = Templates(*shared)

threads instance-attribute

threads = Threads(*shared)

users instance-attribute

users = Users(*shared)

voice instance-attribute

voice = Voice(*shared)

webhooks instance-attribute

webhooks = Webhooks(*shared)

bostie.rest.BearerREST

BearerREST(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

What an OAuth2 access token reaches, for the user who granted it.

commands instance-attribute

commands = BearerCommands(*shared)

guilds instance-attribute

guilds = BearerGuilds(*shared)

lobbies instance-attribute

lobbies = BearerLobbies(*shared)

members instance-attribute

members = BearerMembers(*shared)

oauth2 instance-attribute

oauth2 = OAuth2(*shared)

users instance-attribute

users = BearerUsers(*shared)

bostie.rest.application

ApplicationEdit

Bases: TypedDict

flags takes only the limited intent flags.

custom_install_url instance-attribute

custom_install_url: str

description instance-attribute

description: str

role_connections_verification_url instance-attribute

role_connections_verification_url: str

install_params instance-attribute

install_params: InstallParams

integration_types_config instance-attribute

flags instance-attribute

icon instance-attribute

icon: File | None

cover_image instance-attribute

cover_image: File | None

interactions_endpoint_url instance-attribute

interactions_endpoint_url: str

tags instance-attribute

tags: Sequence[str]

event_webhooks_url instance-attribute

event_webhooks_url: str

event_webhooks_status instance-attribute

event_webhooks_status: ApplicationEventWebhookStatus

event_webhooks_types instance-attribute

event_webhooks_types: Sequence[str]

Application

Application(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

edit async

edit(**options: Unpack[ApplicationEdit]) -> Application

fetch async

fetch() -> Application

fetch_bot_application async

fetch_bot_application() -> Application

The bot's application, through the OAuth2 route that fetch mirrors.

fetch_activity_instance async

fetch_activity_instance(application_id: int, instance_id: str) -> ActivityInstance

list_role_connection_metadata async

list_role_connection_metadata(application_id: int) -> tuple[ApplicationRoleConnectionMetadata, ...]

update_role_connection_metadata async

update_role_connection_metadata(application_id: int, /, records: Sequence[ApplicationRoleConnectionMetadata]) -> tuple[ApplicationRoleConnectionMetadata, ...]

Replace the app's role connection metadata, at most 5 records.

bostie.rest.audit_log

AuditLogList

Bases: TypedDict

user_id instance-attribute

user_id: int

action_type instance-attribute

action_type: AuditLogEvent

before instance-attribute

before: int | datetime

after instance-attribute

after: int | datetime

limit instance-attribute

limit: int

AuditLog

AuditLog(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

list

list(guild_id: int, /, **options: Unpack[AuditLogList]) -> AsyncIterator[AuditLogPage]

Walk the audit log a page at a time, newest first, or oldest with after.

bostie.rest.auto_moderation

AutoModerationCreate

Bases: TypedDict

name instance-attribute

name: Required[str]

event_type instance-attribute

trigger_type instance-attribute

trigger_metadata instance-attribute

actions instance-attribute

enabled instance-attribute

enabled: bool

exempt_roles instance-attribute

exempt_roles: Sequence[int]

exempt_channels instance-attribute

exempt_channels: Sequence[int]

AutoModerationEdit

Bases: TypedDict

name instance-attribute

name: str

event_type instance-attribute

trigger_metadata instance-attribute

actions instance-attribute

enabled instance-attribute

enabled: bool

exempt_roles instance-attribute

exempt_roles: Sequence[int]

exempt_channels instance-attribute

exempt_channels: Sequence[int]

AutoModeration

AutoModeration(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

create async

create(guild_id: int, /, *, reason: str | None = None, **options: Unpack[AutoModerationCreate]) -> AutoModerationRule

delete async

delete(guild_id: int, rule_id: int, /, *, reason: str | None = None) -> None

edit async

edit(guild_id: int, rule_id: int, /, *, reason: str | None = None, **options: Unpack[AutoModerationEdit]) -> AutoModerationRule

fetch async

fetch(guild_id: int, rule_id: int) -> AutoModerationRule

list async

list(guild_id: int) -> tuple[AutoModerationRule, ...]

bostie.rest.bans

BanBulkCreate

Bases: TypedDict

user_ids instance-attribute

user_ids: Required[Sequence[int]]

delete_message_seconds instance-attribute

delete_message_seconds: int

BanCreate

Bases: TypedDict

delete_message_seconds instance-attribute

delete_message_seconds: int

BanList

Bases: TypedDict

before instance-attribute

before: int

after instance-attribute

after: int

limit instance-attribute

limit: int

Bans

Bans(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

bulk_create async

bulk_create(guild_id: int, /, *, reason: str | None = None, **options: Unpack[BanBulkCreate]) -> BulkBan

create async

create(guild_id: int, user_id: int, /, *, reason: str | None = None, **options: Unpack[BanCreate]) -> None

fetch async

fetch(guild_id: int, user_id: int) -> Ban

list

list(guild_id: int, /, **options: Unpack[BanList]) -> AsyncIterator[Ban]

Walk the guild's bans by user id, lowest first unless before is given.

remove async

remove(guild_id: int, user_id: int, /, *, reason: str | None = None) -> None

bostie.rest.channels

PermissionOverwrite

Bases: TypedDict

An overwrite to set for a role or member; a missing or None set is empty.

id instance-attribute

type instance-attribute

allow instance-attribute

allow: Permissions | None

deny instance-attribute

deny: Permissions | None

ChannelPosition

Bases: TypedDict

id instance-attribute

position instance-attribute

position: int | None

lock_permissions instance-attribute

lock_permissions: bool | None

parent_id instance-attribute

parent_id: int | None

ChannelCreate

Bases: TypedDict

name instance-attribute

name: Required[str]

type instance-attribute

type: ChannelType | None

topic instance-attribute

topic: str | None

bitrate instance-attribute

bitrate: int | None

user_limit instance-attribute

user_limit: int | None

rate_limit_per_user instance-attribute

rate_limit_per_user: int | None

position instance-attribute

position: int | None

permission_overwrites instance-attribute

permission_overwrites: Sequence[PermissionOverwrite] | None

parent_id instance-attribute

parent_id: int | None

nsfw instance-attribute

nsfw: bool | None

rtc_region instance-attribute

rtc_region: str | None

video_quality_mode instance-attribute

video_quality_mode: VideoQualityMode | None

default_auto_archive_duration instance-attribute

default_auto_archive_duration: int | None

default_reaction_emoji instance-attribute

default_reaction_emoji: DefaultReaction | None

available_tags instance-attribute

available_tags: Sequence[ForumTag] | None

default_sort_order instance-attribute

default_sort_order: SortOrderType | None

default_forum_layout instance-attribute

default_forum_layout: ForumLayoutType | None

default_thread_rate_limit_per_user instance-attribute

default_thread_rate_limit_per_user: int | None

flags instance-attribute

flags: ChannelFlags | None

ChannelEdit

Bases: TypedDict

The settings of a group DM, guild channel or thread to change.

name instance-attribute

name: str

icon instance-attribute

icon: File

type instance-attribute

position instance-attribute

position: int | None

topic instance-attribute

topic: str | None

nsfw instance-attribute

nsfw: bool | None

rate_limit_per_user instance-attribute

rate_limit_per_user: int | None

bitrate instance-attribute

bitrate: int | None

user_limit instance-attribute

user_limit: int | None

permission_overwrites instance-attribute

permission_overwrites: Sequence[PermissionOverwrite] | None

parent_id instance-attribute

parent_id: int | None

rtc_region instance-attribute

rtc_region: str | None

video_quality_mode instance-attribute

video_quality_mode: VideoQualityMode | None

default_auto_archive_duration instance-attribute

default_auto_archive_duration: int | None

flags instance-attribute

flags: ChannelFlags

available_tags instance-attribute

available_tags: Sequence[ForumTag]

default_reaction_emoji instance-attribute

default_reaction_emoji: DefaultReaction | None

default_thread_rate_limit_per_user instance-attribute

default_thread_rate_limit_per_user: int

default_sort_order instance-attribute

default_sort_order: SortOrderType | None

default_forum_layout instance-attribute

default_forum_layout: ForumLayoutType

archived instance-attribute

archived: bool

auto_archive_duration instance-attribute

auto_archive_duration: int

locked instance-attribute

locked: bool

invitable instance-attribute

invitable: bool

applied_tags instance-attribute

applied_tags: Sequence[int]

ChannelEditPermissions

Bases: TypedDict

allow instance-attribute

allow: Permissions | None

deny instance-attribute

deny: Permissions | None

type instance-attribute

ChannelFetchPermissions

Bases: TypedDict

implicit instance-attribute

implicit: bool

ChannelSetVoiceStatus

Bases: TypedDict

status instance-attribute

status: Required[str | None]

ChannelFollow

Bases: TypedDict

webhook_channel_id instance-attribute

webhook_channel_id: Required[int]

ChannelAddRecipient

Bases: TypedDict

access_token instance-attribute

access_token: Required[str]

nick instance-attribute

nick: Required[str]

ChannelCreateDm

Bases: TypedDict

recipient_id instance-attribute

recipient_id: Required[int]

ChannelCreateGroupDm

Bases: TypedDict

access_tokens instance-attribute

access_tokens: Required[Sequence[str]]

nicks instance-attribute

nicks: Required[Mapping[int, str]]

Channels

Channels(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

add_recipient async

add_recipient(channel_id: int, user_id: int, /, **options: Unpack[ChannelAddRecipient]) -> None

create async

create(guild_id: int, /, *, reason: str | None = None, **options: Unpack[ChannelCreate]) -> Channel

create_dm async

create_dm(**options: Unpack[ChannelCreateDm]) -> Channel

Open the bot's DM channel with a user; a cache that keeps DMs keeps it.

create_group_dm async

create_group_dm(**options: Unpack[ChannelCreateGroupDm]) -> Channel

delete async

delete(channel_id: int, /, *, reason: str | None = None) -> Channel

delete_permission async

delete_permission(channel_id: int, overwrite_id: int, /, *, reason: str | None = None) -> None

edit async

edit(channel_id: int, /, *, reason: str | None = None, **options: Unpack[ChannelEdit]) -> Channel

edit_permissions async

edit_permissions(channel_id: int, overwrite_id: int, /, *, reason: str | None = None, **options: Unpack[ChannelEditPermissions]) -> None

edit_positions async

edit_positions(guild_id: int, /, positions: Sequence[ChannelPosition], *, reason: str | None = None) -> None

fetch async

fetch(channel_id: int) -> Channel

fetch_member_permissions async

fetch_member_permissions(channel_id: int, user_id: int, /, **options: Unpack[ChannelFetchPermissions]) -> Permissions

The member's permissions in the channel, with its roles and overwrites.

fetch_role_permissions async

fetch_role_permissions(channel_id: int, role_id: int, /, **options: Unpack[ChannelFetchPermissions]) -> Permissions

The permissions of the role and @everyone in the channel.

follow async

follow(channel_id: int, /, *, reason: str | None = None, **options: Unpack[ChannelFollow]) -> FollowedChannel

list async

list(guild_id: int) -> tuple[Channel, ...]

remove_recipient async

remove_recipient(channel_id: int, user_id: int) -> None

set_voice_status async

set_voice_status(channel_id: int, /, *, reason: str | None = None, **options: Unpack[ChannelSetVoiceStatus]) -> None

trigger_typing_indicator

trigger_typing_indicator(channel_id: int) -> Typing

Show the bot typing: once when awaited, or for as long as async with.

Typing

Typing(trigger: Callable[[], Awaitable[object]])

Await it to show typing for 10 s, or async with it to keep typing.

bostie.rest.commands

CommandCreateGuild

Bases: _CommandFields

name instance-attribute

name: Required[str]

type instance-attribute

name_localizations instance-attribute

name_localizations: Mapping[str, str] | None

description instance-attribute

description: str

description_localizations instance-attribute

description_localizations: Mapping[str, str] | None

options instance-attribute

default_member_permissions instance-attribute

default_member_permissions: Permissions | None

nsfw instance-attribute

nsfw: bool

CommandCreate

Bases: CommandCreateGuild, _GlobalCommandFields

integration_types instance-attribute

contexts instance-attribute

handler instance-attribute

name_localizations instance-attribute

name_localizations: Mapping[str, str] | None

description instance-attribute

description: str

description_localizations instance-attribute

description_localizations: Mapping[str, str] | None

options instance-attribute

default_member_permissions instance-attribute

default_member_permissions: Permissions | None

nsfw instance-attribute

nsfw: bool

name instance-attribute

name: Required[str]

type instance-attribute

CommandEditGuild

Bases: _CommandFields

name instance-attribute

name: str

name_localizations instance-attribute

name_localizations: Mapping[str, str] | None

description instance-attribute

description: str

description_localizations instance-attribute

description_localizations: Mapping[str, str] | None

options instance-attribute

default_member_permissions instance-attribute

default_member_permissions: Permissions | None

nsfw instance-attribute

nsfw: bool

CommandEdit

Bases: CommandEditGuild, _GlobalCommandFields

integration_types instance-attribute

contexts instance-attribute

handler instance-attribute

name_localizations instance-attribute

name_localizations: Mapping[str, str] | None

description instance-attribute

description: str

description_localizations instance-attribute

description_localizations: Mapping[str, str] | None

options instance-attribute

default_member_permissions instance-attribute

default_member_permissions: Permissions | None

nsfw instance-attribute

nsfw: bool

name instance-attribute

name: str

CommandBulkOverwrite

Bases: CommandCreate

A command as the bulk overwrites take it, with its id if it exists.

id instance-attribute

id: int

integration_types instance-attribute

contexts instance-attribute

handler instance-attribute

name_localizations instance-attribute

name_localizations: Mapping[str, str] | None

description instance-attribute

description: str

description_localizations instance-attribute

description_localizations: Mapping[str, str] | None

options instance-attribute

default_member_permissions instance-attribute

default_member_permissions: Permissions | None

nsfw instance-attribute

nsfw: bool

name instance-attribute

name: Required[str]

type instance-attribute

CommandList

Bases: TypedDict

with_localizations instance-attribute

with_localizations: bool

Commands

Commands(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: _CommandPermissions

bulk_overwrite async

bulk_overwrite(application_id: int, /, commands: Sequence[CommandBulkOverwrite]) -> tuple[ApplicationCommand, ...]

Replace every global command of the app with commands.

bulk_overwrite_guild async

bulk_overwrite_guild(application_id: int, guild_id: int, /, commands: Sequence[CommandBulkOverwrite]) -> tuple[ApplicationCommand, ...]

Replace every command of the app in one guild with commands.

create async

create(application_id: int, /, **options: Unpack[CommandCreate]) -> ApplicationCommand

Create a global command, or replace the one with the same name.

create_guild async

create_guild(application_id: int, guild_id: int, /, **options: Unpack[CommandCreateGuild]) -> ApplicationCommand

Create a guild command, or replace the one with the same name.

delete async

delete(application_id: int, command_id: int) -> None

delete_guild async

delete_guild(application_id: int, guild_id: int, command_id: int) -> None

edit async

edit(application_id: int, command_id: int, /, **options: Unpack[CommandEdit]) -> ApplicationCommand

edit_guild async

edit_guild(application_id: int, guild_id: int, command_id: int, /, **options: Unpack[CommandEditGuild]) -> ApplicationCommand

fetch async

fetch(application_id: int, command_id: int) -> ApplicationCommand

fetch_guild async

fetch_guild(application_id: int, guild_id: int, command_id: int) -> ApplicationCommand

list async

list(application_id: int, /, **options: Unpack[CommandList]) -> tuple[ApplicationCommand, ...]

list_guild async

list_guild(application_id: int, guild_id: int, /, **options: Unpack[CommandList]) -> tuple[ApplicationCommand, ...]

fetch_permissions async

fetch_permissions(application_id: int, guild_id: int, command_id: int) -> GuildCommandPermissions

list_permissions async

list_permissions(application_id: int, guild_id: int) -> tuple[GuildCommandPermissions, ...]

BearerCommands

BearerCommands(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: _CommandPermissions

edit_permissions async

edit_permissions(application_id: int, guild_id: int, command_id: int, /, permissions: Sequence[CommandPermission]) -> GuildCommandPermissions

Overwrite who may use the command in the guild; at most 100 entries.

fetch_permissions async

fetch_permissions(application_id: int, guild_id: int, command_id: int) -> GuildCommandPermissions

list_permissions async

list_permissions(application_id: int, guild_id: int) -> tuple[GuildCommandPermissions, ...]

bostie.rest.emojis

EmojiCreate

Bases: TypedDict

name instance-attribute

name: Required[str]

image instance-attribute

image: Required[File]

roles instance-attribute

roles: Sequence[int]

EmojiEdit

Bases: TypedDict

name instance-attribute

name: str

roles instance-attribute

roles: Sequence[int] | None

EmojiCreateApplication

Bases: TypedDict

name instance-attribute

name: Required[str]

image instance-attribute

image: Required[File]

EmojiEditApplication

Bases: TypedDict

name instance-attribute

name: str

Emojis

Emojis(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

create async

create(guild_id: int, /, *, reason: str | None = None, **options: Unpack[EmojiCreate]) -> Emoji

create_application async

create_application(application_id: int, /, **options: Unpack[EmojiCreateApplication]) -> Emoji

delete async

delete(guild_id: int, emoji_id: int, /, *, reason: str | None = None) -> None

delete_application async

delete_application(application_id: int, emoji_id: int) -> None

edit async

edit(guild_id: int, emoji_id: int, /, *, reason: str | None = None, **options: Unpack[EmojiEdit]) -> Emoji

edit_application async

edit_application(application_id: int, emoji_id: int, /, **options: Unpack[EmojiEditApplication]) -> Emoji

fetch async

fetch(guild_id: int, emoji_id: int) -> Emoji

fetch_application async

fetch_application(application_id: int, emoji_id: int) -> Emoji

list async

list(guild_id: int) -> tuple[Emoji, ...]

list_application async

list_application(application_id: int) -> tuple[Emoji, ...]

bostie.rest.gateway

Gateway

Gateway(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

fetch async

fetch() -> GatewayInfo

fetch_bot async

fetch_bot() -> GatewayBotInfo

bostie.rest.guilds

GuildBeginPrune

Bases: TypedDict

days instance-attribute

days: int

compute_prune_count instance-attribute

compute_prune_count: bool

include_roles instance-attribute

include_roles: Sequence[int]

GuildEdit

Bases: TypedDict

name instance-attribute

name: str

verification_level instance-attribute

verification_level: VerificationLevel | None

default_message_notifications instance-attribute

default_message_notifications: DefaultMessageNotificationLevel | None

explicit_content_filter instance-attribute

explicit_content_filter: ExplicitContentFilterLevel | None

afk_channel_id instance-attribute

afk_channel_id: int | None

afk_timeout instance-attribute

afk_timeout: int

icon instance-attribute

icon: File | None

splash instance-attribute

splash: File | None

discovery_splash instance-attribute

discovery_splash: File | None

banner instance-attribute

banner: File | None

system_channel_id instance-attribute

system_channel_id: int | None

system_channel_flags instance-attribute

system_channel_flags: SystemChannelFlags

rules_channel_id instance-attribute

rules_channel_id: int | None

public_updates_channel_id instance-attribute

public_updates_channel_id: int | None

preferred_locale instance-attribute

preferred_locale: Locale | None

features instance-attribute

features: Sequence[str]

description instance-attribute

description: str | None

premium_progress_bar_enabled instance-attribute

premium_progress_bar_enabled: bool

safety_alerts_channel_id instance-attribute

safety_alerts_channel_id: int | None

GuildEditIncidentActions

Bases: TypedDict

invites_disabled_until instance-attribute

invites_disabled_until: datetime | None

dms_disabled_until instance-attribute

dms_disabled_until: datetime | None

GuildEditWelcomeScreen

Bases: TypedDict

enabled instance-attribute

enabled: bool | None

welcome_channels instance-attribute

welcome_channels: Sequence[WelcomeScreenChannel] | None

description instance-attribute

description: str | None

GuildEditWidget

Bases: TypedDict

enabled instance-attribute

enabled: bool

channel_id instance-attribute

channel_id: int | None

GuildFetch

Bases: TypedDict

with_counts instance-attribute

with_counts: bool

GuildFetchPruneCount

Bases: TypedDict

days instance-attribute

days: int

include_roles instance-attribute

include_roles: Sequence[int]

GuildFetchWidgetImage

Bases: TypedDict

style instance-attribute

style: Literal['shield', 'banner1', 'banner2', 'banner3', 'banner4']

GuildList

Bases: TypedDict

before instance-attribute

before: int | datetime

after instance-attribute

after: int | datetime

limit instance-attribute

limit: int

shard instance-attribute

shard: int

with_counts instance-attribute

with_counts: bool

BearerGuilds

BearerGuilds(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

list

Walk the user's guilds oldest first, or newest first with before.

Guilds

Guilds(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: BearerGuilds

begin_prune async

begin_prune(guild_id: int, /, *, reason: str | None = None, **options: Unpack[GuildBeginPrune]) -> int | None

Kick inactive members; the count is None with compute_prune_count=False.

edit async

edit(guild_id: int, /, *, reason: str | None = None, **options: Unpack[GuildEdit]) -> Guild

edit_incident_actions async

edit_incident_actions(guild_id: int, /, **options: Unpack[GuildEditIncidentActions]) -> IncidentsData

edit_welcome_screen async

edit_welcome_screen(guild_id: int, /, *, reason: str | None = None, **options: Unpack[GuildEditWelcomeScreen]) -> WelcomeScreen

edit_widget async

edit_widget(guild_id: int, /, *, reason: str | None = None, **options: Unpack[GuildEditWidget]) -> GuildWidgetSettings

fetch async

fetch(guild_id: int, /, **options: Unpack[GuildFetch]) -> Guild

fetch_preview async

fetch_preview(guild_id: int) -> GuildPreview

fetch_prune_count async

fetch_prune_count(guild_id: int, /, **options: Unpack[GuildFetchPruneCount]) -> int

How many members begin_prune would kick with the same options.

fetch_vanity_url async

fetch_vanity_url(guild_id: int) -> VanityURL

fetch_welcome_screen async

fetch_welcome_screen(guild_id: int) -> WelcomeScreen

fetch_widget async

fetch_widget(guild_id: int) -> GuildWidget

fetch_widget_image async

fetch_widget_image(guild_id: int, /, **options: Unpack[GuildFetchWidgetImage]) -> bytes

The widget as a PNG image.

fetch_widget_settings async

fetch_widget_settings(guild_id: int) -> GuildWidgetSettings

leave async

leave(guild_id: int) -> None

list

Walk the user's guilds oldest first, or newest first with before.

bostie.rest.identities

IdentityUpdateProfile

Bases: TypedDict

username instance-attribute

username: str

data instance-attribute

Identities

Identities(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

delete async

delete(user_id: int, application_id: int, provider_type: str, provider_issued_user_id: str, /, *, provider_id: str | None = None) -> None

Delete the identity and its profile, unless it is the last linked one.

fetch_profile async

fetch_profile(application_id: int, user_id: int, provider_issued_user_id: str) -> ApplicationIdentityProfile

list async

list(user_id: int, application_id: int) -> tuple[ApplicationIdentity, ...]

list_by_external_id async

list_by_external_id(application_id: int, provider_type: str, provider_issued_user_id: str, /, *, provider_id: str | None = None) -> tuple[ApplicationIdentity, ...]

The identities of the user the external account belongs to, if any.

update_profile async

update_profile(application_id: int, user_id: int, provider_issued_user_id: str, /, **options: Unpack[IdentityUpdateProfile]) -> ApplicationIdentityProfile | None

Replace the profile with data; only the first write returns it.

bostie.rest.integrations

Integrations

Integrations(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

delete async

delete(guild_id: int, integration_id: int, /, *, reason: str | None = None) -> None

Remove an integration, with its webhooks and its bot.

list async

list(guild_id: int) -> tuple[Integration, ...]

The guild's integrations, at most the 50 Discord returns.

bostie.rest.invites

InviteCreate

Bases: TypedDict

target_users_file is a CSV of user ids, one per line under user_id.

max_age instance-attribute

max_age: int

max_uses instance-attribute

max_uses: int

temporary instance-attribute

temporary: bool

unique instance-attribute

unique: bool

target_type instance-attribute

target_type: InviteTargetType

target_user_id instance-attribute

target_user_id: int

target_application_id instance-attribute

target_application_id: int

target_users_file instance-attribute

target_users_file: File

target_user_ids instance-attribute

target_user_ids: Sequence[int]

role_ids instance-attribute

role_ids: Sequence[int]

InviteFetch

Bases: TypedDict

with_counts instance-attribute

with_counts: bool

guild_scheduled_event_id instance-attribute

guild_scheduled_event_id: int

InviteBulkAddTargetUsers

Bases: TypedDict

user_ids instance-attribute

user_ids: Required[Sequence[int]]

InviteBulkDeleteTargetUsers

Bases: TypedDict

user_ids instance-attribute

user_ids: Required[Sequence[int]]

InviteUpdateTargetUsers

Bases: TypedDict

target_users_file instance-attribute

target_users_file: Required[File]

Invites

Invites(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

add_target_user async

add_target_user(code: str, user_id: int) -> None

bulk_add_target_users async

bulk_add_target_users(code: str, /, **options: Unpack[InviteBulkAddTargetUsers]) -> None

bulk_delete_target_users async

bulk_delete_target_users(code: str, /, **options: Unpack[InviteBulkDeleteTargetUsers]) -> None

create async

create(channel_id: int, /, *, reason: str | None = None, **options: Unpack[InviteCreate]) -> Invite | InviteWithMetadata

delete async

delete(code: str, /, *, reason: str | None = None) -> Invite

fetch async

fetch(code: str, /, **options: Unpack[InviteFetch]) -> Invite

fetch_target_users_job_status async

fetch_target_users_job_status(code: str) -> TargetUsersJob

list async

list(channel_id: int) -> tuple[InviteWithMetadata, ...]

list_guild async

list_guild(guild_id: int) -> tuple[Invite | InviteWithMetadata, ...]

The guild's invites, with their metadata if the bot can manage the guild.

list_target_users async

list_target_users(code: str) -> tuple[int, ...]

The ids of the users who may see and accept the invite.

remove_target_user async

remove_target_user(code: str, user_id: int) -> None

update_target_users async

update_target_users(code: str, /, **options: Unpack[InviteUpdateTargetUsers]) -> None

Replace who may accept the invite with the users of a CSV file.

bostie.rest.lobbies

LobbyMemberAdd

Bases: TypedDict

metadata instance-attribute

metadata: Mapping[str, str] | None

flags instance-attribute

additional_name instance-attribute

additional_name: str | None

LobbyMemberSet

Bases: LobbyMemberAdd

id instance-attribute

metadata instance-attribute

metadata: Mapping[str, str] | None

flags instance-attribute

additional_name instance-attribute

additional_name: str | None

LobbyMemberUpdate

Bases: LobbyMemberSet

remove_member instance-attribute

remove_member: bool

metadata instance-attribute

metadata: Mapping[str, str] | None

flags instance-attribute

additional_name instance-attribute

additional_name: str | None

id instance-attribute

LobbyCreate

Bases: TypedDict

metadata instance-attribute

metadata: Mapping[str, str] | None

members instance-attribute

idle_timeout_seconds instance-attribute

idle_timeout_seconds: int

LobbyCreateOrJoin

Bases: TypedDict

secret instance-attribute

secret: Required[str]

idle_timeout_seconds instance-attribute

idle_timeout_seconds: int

lobby_metadata instance-attribute

lobby_metadata: Mapping[str, str] | None

member_metadata instance-attribute

member_metadata: Mapping[str, str] | None

LobbyListMessages

Bases: TypedDict

limit instance-attribute

limit: int

LobbySendMessage

Bases: TypedDict

metadata instance-attribute

metadata: Mapping[str, str] | None

flags instance-attribute

flags: MessageFlags

Lobbies

Lobbies(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

add_member async

add_member(lobby_id: int, user_id: int, /, **options: Unpack[LobbyMemberAdd]) -> LobbyMember

Add the user to the lobby, or update the member already in it.

bulk_update_members async

bulk_update_members(lobby_id: int, /, members: Sequence[LobbyMemberUpdate]) -> tuple[LobbyMember, ...]

Add, update or, with remove_member, remove up to 25 members at once.

create async

create(**options: Unpack[LobbyCreate]) -> Lobby

Create a lobby, which Social SDK clients cannot join or leave themselves.

create_invite_for_user async

create_invite_for_user(lobby_id: int, user_id: int) -> str

A one-hour, single-use invite code to the lobby's linked channel.

delete async

delete(lobby_id: int) -> None

edit async

edit(lobby_id: int, /, **options: Unpack[LobbyCreate]) -> Lobby

Change the lobby; members replaces every member.

fetch async

fetch(lobby_id: int) -> Lobby

remove_member async

remove_member(lobby_id: int, user_id: int) -> None

update_message_moderation_metadata async

update_message_moderation_metadata(lobby_id: int, message_id: int, /, metadata: Mapping[str, str]) -> None

Tell the game clients what to do with a lobby message; at most 5 keys.

BearerLobbies

BearerLobbies(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

create_invite_for_self async

create_invite_for_self(lobby_id: int) -> str

A one-hour, single-use invite code to the lobby's linked channel.

create_or_join async

create_or_join(**options: Unpack[LobbyCreateOrJoin]) -> Lobby

Join the lobby that has secret, or create it.

leave async

leave(lobby_id: int) -> None
link_channel(lobby_id: int, /, channel_id: int) -> Lobby

list_messages async

list_messages(lobby_id: int, /, **options: Unpack[LobbyListMessages]) -> tuple[LobbyMessage, ...]

The latest messages, 50 unless limit says up to 200.

send_message async

send_message(lobby_id: int, /, content: str, **options: Unpack[LobbySendMessage]) -> LobbyMessage
unlink_channel(lobby_id: int) -> Lobby

bostie.rest.members

MemberAdd

Bases: TypedDict

access_token instance-attribute

access_token: Required[str]

nick instance-attribute

nick: str

roles instance-attribute

roles: Sequence[int]

mute instance-attribute

mute: bool

deaf instance-attribute

deaf: bool

MemberEdit

Bases: TypedDict

nick instance-attribute

nick: str | None

roles instance-attribute

roles: Sequence[int] | None

mute instance-attribute

mute: bool | None

deaf instance-attribute

deaf: bool | None

channel_id instance-attribute

channel_id: int | None

communication_disabled_until instance-attribute

communication_disabled_until: datetime | None

flags instance-attribute

flags: MemberFlags | None

MemberEditCurrent

Bases: TypedDict

nick instance-attribute

nick: str | None

banner instance-attribute

banner: File | None

avatar instance-attribute

avatar: File | None

bio instance-attribute

bio: str | None

MemberList

Bases: TypedDict

after instance-attribute

after: int

limit instance-attribute

limit: int

MemberSearch

Bases: TypedDict

query instance-attribute

query: Required[str]

limit instance-attribute

limit: int

Members

Members(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

add async

add(guild_id: int, user_id: int, /, **options: Unpack[MemberAdd]) -> Member | None

Add a user with their OAuth2 token; None if they were already a member.

add_role async

add_role(guild_id: int, user_id: int, role_id: int, /, *, reason: str | None = None) -> None

edit async

edit(guild_id: int, user_id: int, /, *, reason: str | None = None, **options: Unpack[MemberEdit]) -> Member

edit_current async

edit_current(guild_id: int, /, *, reason: str | None = None, **options: Unpack[MemberEditCurrent]) -> Member

fetch async

fetch(guild_id: int, user_id: int) -> Member

fetch_permissions async

fetch_permissions(guild_id: int, user_id: int) -> Permissions

The member's guild permissions from their roles and @everyone.

list

list(guild_id: int, /, **options: Unpack[MemberList]) -> AsyncIterator[Member]

Walk the guild's members by user id; needs the Server Members intent.

remove async

remove(guild_id: int, user_id: int, /, *, reason: str | None = None) -> None

remove_role async

remove_role(guild_id: int, user_id: int, role_id: int, /, *, reason: str | None = None) -> None

search async

search(guild_id: int, /, **options: Unpack[MemberSearch]) -> tuple[Member, ...]

Members whose username or nickname starts with query.

BearerMembers

BearerMembers(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

fetch_current async

fetch_current(guild_id: int) -> Member

bostie.rest.messages

MessageCreate

Bases: MessageParts

The parts of a message to create; message_reference can forward one.

nonce instance-attribute

nonce: int | str

enforce_nonce instance-attribute

enforce_nonce: bool

sticker_ids instance-attribute

sticker_ids: Sequence[int]

message_reference instance-attribute

message_reference: MessageReference

shared_client_theme instance-attribute

shared_client_theme: SharedClientTheme

embeds instance-attribute

embeds: Sequence[Embed | Mapping[str, Any]]

components instance-attribute

components: Sequence[Component | Mapping[str, Any]]

files instance-attribute

files: Sequence[File]

allowed_mentions instance-attribute

allowed_mentions: AllowedMentions

flags instance-attribute

flags: MessageFlags

tts instance-attribute

tts: bool

poll instance-attribute

MessageList

Bases: TypedDict

Where messages.list starts, at most one of them, and how many it yields.

before instance-attribute

before: int | datetime

after instance-attribute

after: int | datetime

around instance-attribute

around: int | datetime

limit instance-attribute

limit: int

MessageBulkDelete

Bases: TypedDict

messages instance-attribute

messages: Required[Sequence[int]]

MessageListPins

Bases: TypedDict

before instance-attribute

before: datetime

limit instance-attribute

limit: int

MessageSearch

Bases: TypedDict

Filters of a guild message search; has and the types take a - to negate.

limit instance-attribute

limit: int

offset instance-attribute

offset: int

max_id instance-attribute

max_id: int

min_id instance-attribute

min_id: int

slop instance-attribute

slop: int

content instance-attribute

content: str

channel_id instance-attribute

channel_id: Sequence[int]

author_type instance-attribute

author_type: Sequence[str]

author_id instance-attribute

author_id: Sequence[int]

mentions instance-attribute

mentions: Sequence[int]

mentions_role_id instance-attribute

mentions_role_id: Sequence[int]

mention_everyone instance-attribute

mention_everyone: bool

replied_to_user_id instance-attribute

replied_to_user_id: Sequence[int]

replied_to_message_id instance-attribute

replied_to_message_id: Sequence[int]

pinned instance-attribute

pinned: bool

has instance-attribute

has: Sequence[str]

embed_type instance-attribute

embed_type: Sequence[str]

embed_provider instance-attribute

embed_provider: Sequence[str]
link_hostname: Sequence[str]

attachment_filename instance-attribute

attachment_filename: Sequence[str]

attachment_extension instance-attribute

attachment_extension: Sequence[str]

sort_by instance-attribute

sort_by: Literal['timestamp', 'relevance']

sort_order instance-attribute

sort_order: Literal['asc', 'desc']

include_nsfw instance-attribute

include_nsfw: bool

Messages

Messages(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None, deletions: set[Task[None]])

Bases: ResourceGroup

create async

create(channel_id: int, /, content: str | None = None, *, reply_to: int | None = None, delete_after: float | None = None, **parts: Unpack[MessageCreate]) -> Message

Send a message; reply_to takes the id of a message in the same channel.

delete_after deletes it that many seconds later, unless the bot stops first.

edit async

edit(channel_id: int, message_id: int, /, **parts: Unpack[EditParts]) -> Message | WebhookMessage

Edit a message: a part not given stays and None clears it.

With files or attachments, only the listed attachments stay.

delete async

delete(channel_id: int, message_id: int, /, *, reason: str | None = None) -> None

bulk_delete async

bulk_delete(channel_id: int, /, *, reason: str | None = None, **options: Unpack[MessageBulkDelete]) -> None

purge async

purge(channel_id: int, /, *, limit: int | None = 100, check: Callable[[Message | WebhookMessage], bool] | None = None, before: int | datetime | None = None, after: int | datetime | None = None, bulk: bool = True, reason: str | None = None) -> list[Message | WebhookMessage]

Delete the deletable messages among the last limit that pass check.

crosspost async

crosspost(channel_id: int, message_id: int) -> Message | WebhookMessage

fetch async

fetch(channel_id: int, message_id: int) -> Message | WebhookMessage

list

list(channel_id: int, /, **options: Unpack[MessageList]) -> AsyncIterator[Message | WebhookMessage]

Walk a channel's messages newest first, or oldest first with after.

list_pins

list_pins(channel_id: int, /, **options: Unpack[MessageListPins]) -> AsyncIterator[MessagePin]

Walk a channel's pins, the latest pinned first.

pin async

pin(channel_id: int, message_id: int, /, *, reason: str | None = None) -> None

unpin async

unpin(channel_id: int, message_id: int, /, *, reason: str | None = None) -> None

search async

search(guild_id: int, /, **options: Unpack[MessageSearch]) -> MessageSearchResults

Search messages, waiting out indexing; bound it with asyncio.timeout().

bostie.rest.monetization

MonetizationCreateTestEntitlement

Bases: TypedDict

owner_type is 1 for a guild subscription and 2 for a user subscription.

sku_id instance-attribute

sku_id: Required[int]

owner_id instance-attribute

owner_id: Required[int]

owner_type instance-attribute

owner_type: Required[Literal[1, 2]]

MonetizationListEntitlements

Bases: TypedDict

user_id instance-attribute

user_id: int

sku_ids instance-attribute

sku_ids: Sequence[int]

before instance-attribute

before: int | datetime

after instance-attribute

after: int | datetime

limit instance-attribute

limit: int

guild_id instance-attribute

guild_id: int

exclude_ended instance-attribute

exclude_ended: bool

exclude_deleted instance-attribute

exclude_deleted: bool

MonetizationListSubscriptions

Bases: TypedDict

before instance-attribute

before: int | datetime

after instance-attribute

after: int | datetime

limit instance-attribute

limit: int

user_id instance-attribute

user_id: int

Monetization

Monetization(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

consume_entitlement async

consume_entitlement(application_id: int, entitlement_id: int) -> None

create_test_entitlement async

create_test_entitlement(application_id: int, /, **options: Unpack[MonetizationCreateTestEntitlement]) -> PartialEntitlement

delete_test_entitlement async

delete_test_entitlement(application_id: int, entitlement_id: int) -> None

fetch_entitlement async

fetch_entitlement(application_id: int, entitlement_id: int) -> PartialEntitlement

fetch_subscription async

fetch_subscription(sku_id: int, subscription_id: int) -> Subscription

list_entitlements

list_entitlements(application_id: int, /, **options: Unpack[MonetizationListEntitlements]) -> AsyncIterator[PartialEntitlement]

Walk the app's entitlements, active and ended, oldest first.

A test entitlement, which never ends, is a PartialEntitlement.

list_skus async

list_skus(application_id: int) -> tuple[SKU, ...]

list_subscriptions

list_subscriptions(sku_id: int, /, **options: Unpack[MonetizationListSubscriptions]) -> AsyncIterator[Subscription]

bostie.rest.oauth2

OAuth2

OAuth2(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

exchange_client_credentials async

exchange_client_credentials(*, client_id: int, client_secret: str, scopes: Iterable[OAuth2Scope | str]) -> AccessToken

A token for the app's owner, or its team, with scopes.

exchange_code async

exchange_code(*, client_id: int, client_secret: str, code: str, redirect_uri: str, code_verifier: str | None = None) -> AccessToken

The token for the code a user's authorization redirected with.

fetch_authorization async

fetch_authorization() -> Authorization

refresh async

refresh(*, client_id: int, client_secret: str, refresh_token: str) -> AccessToken

A new token for the authorization refresh_token belongs to.

revoke async

revoke(*, client_id: int, client_secret: str, token: str, token_type_hint: Literal['access_token', 'refresh_token'] | None = None) -> None

End the authorization of token, with every token it issued.

bostie.rest.onboarding

OnboardingPromptOptionData

Bases: TypedDict

An option to send; a custom emoji goes by emoji_id, a unicode one by name.

id instance-attribute

id: int

channel_ids instance-attribute

channel_ids: Required[Sequence[int]]

role_ids instance-attribute

role_ids: Required[Sequence[int]]

emoji_id instance-attribute

emoji_id: int

emoji_name instance-attribute

emoji_name: str

emoji_animated instance-attribute

emoji_animated: bool

title instance-attribute

title: Required[str]

description instance-attribute

description: str | None

OnboardingPromptData

Bases: TypedDict

id instance-attribute

id: int

type instance-attribute

options instance-attribute

title instance-attribute

title: str

single_select instance-attribute

single_select: bool

required instance-attribute

required: bool

in_onboarding instance-attribute

in_onboarding: bool

OnboardingEdit

Bases: TypedDict

prompts instance-attribute

default_channel_ids instance-attribute

default_channel_ids: Sequence[int]

enabled instance-attribute

enabled: bool

mode instance-attribute

Onboarding

Onboarding(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

edit async

edit(guild_id: int, /, *, reason: str | None = None, **options: Unpack[OnboardingEdit]) -> GuildOnboarding

fetch async

fetch(guild_id: int) -> GuildOnboarding

bostie.rest.partner_sdk

PartnerSDK

PartnerSDK(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

create_provisional_token async

create_provisional_token(*, external_user_id: str, preferred_global_name: str | None = None) -> AccessToken

A Social SDK token for a player of the game's own account system.

exchange_child_token async

exchange_child_token(*, parent_access_token: str, child_application_id: int, parent_client_secret: str) -> AccessToken

A child game's token for a publisher's access token.

exchange_external_token async

exchange_external_token(*, client_id: int, client_secret: str, external_auth_type: str, external_auth_token: str) -> AccessToken

A Social SDK token for a token of an identity provider the app set up.

unmerge_external_account async

unmerge_external_account(*, client_id: int, client_secret: str, external_auth_type: str, external_auth_token: str) -> None

Split the Discord account from the provisional one of an identity token.

unmerge_provisional_account async

unmerge_provisional_account(*, external_user_id: str) -> None

Split the Discord account from the provisional account of a player.

update_dm_moderation_metadata async

update_dm_moderation_metadata(user_id_1: int, user_id_2: int, message_id: int, /, metadata: Mapping[str, str]) -> None

Tell the game clients what to do with a direct message between two users.

bostie.rest.polls

PollListAnswerVoters

Bases: TypedDict

after instance-attribute

after: int

limit instance-attribute

limit: int

Polls

Polls(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

end async

end(channel_id: int, message_id: int) -> Message | WebhookMessage

list_answer_voters

list_answer_voters(channel_id: int, message_id: int, answer_id: int, /, **options: Unpack[PollListAnswerVoters]) -> AsyncIterator[User]

bostie.rest.reactions

ReactionList

Bases: TypedDict

type instance-attribute

after instance-attribute

after: int

limit instance-attribute

limit: int

Reactions

Reactions(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

Reactions on a message; emoji_name is an emoji str, Emoji or PartialEmoji.

create async

create(channel_id: int, message_id: int, emoji_name: AnyEmoji) -> None

delete async

delete(channel_id: int, message_id: int, emoji_name: AnyEmoji, user_id: int) -> None

delete_all async

delete_all(channel_id: int, message_id: int) -> None

delete_all_for_emoji async

delete_all_for_emoji(channel_id: int, message_id: int, emoji_name: AnyEmoji) -> None

delete_own async

delete_own(channel_id: int, message_id: int, emoji_name: AnyEmoji) -> None

list

list(channel_id: int, message_id: int, emoji_name: AnyEmoji, /, **options: Unpack[ReactionList]) -> AsyncIterator[User]

Walk the users who reacted with an emoji.

bostie.rest.roles

RoleCreate

Bases: TypedDict

name instance-attribute

name: str

permissions instance-attribute

permissions: Permissions

colors instance-attribute

colors: RoleColors

hoist instance-attribute

hoist: bool

icon instance-attribute

icon: File | None

unicode_emoji instance-attribute

unicode_emoji: str | None

mentionable instance-attribute

mentionable: bool

RoleEdit

Bases: TypedDict

name instance-attribute

name: str | None

permissions instance-attribute

permissions: Permissions | None

colors instance-attribute

colors: RoleColors | None

hoist instance-attribute

hoist: bool | None

icon instance-attribute

icon: File | None

unicode_emoji instance-attribute

unicode_emoji: str | None

mentionable instance-attribute

mentionable: bool | None

Roles

Roles(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

create async

create(guild_id: int, /, *, reason: str | None = None, **options: Unpack[RoleCreate]) -> Role

delete async

delete(guild_id: int, role_id: int, /, *, reason: str | None = None) -> None

edit async

edit(guild_id: int, role_id: int, /, *, reason: str | None = None, **options: Unpack[RoleEdit]) -> Role

edit_positions async

edit_positions(guild_id: int, /, positions: Mapping[int, int | None], *, reason: str | None = None) -> tuple[Role, ...]

Move roles, given as role id to position; returns every role of the guild.

fetch async

fetch(guild_id: int, role_id: int) -> Role

fetch_member_counts async

fetch_member_counts(guild_id: int) -> dict[int, int]

How many members hold each role, by role id, @everyone left out.

fetch_permissions async

fetch_permissions(guild_id: int, role_id: int) -> Permissions

The role's guild permissions combined with those of @everyone.

list async

list(guild_id: int) -> tuple[Role, ...]

bostie.rest.scheduled_events

ScheduledEventCreate

Bases: TypedDict

channel_id instance-attribute

channel_id: int

entity_metadata instance-attribute

name instance-attribute

name: Required[str]

privacy_level instance-attribute

scheduled_start_time instance-attribute

scheduled_start_time: Required[datetime]

scheduled_end_time instance-attribute

scheduled_end_time: datetime

description instance-attribute

description: str

entity_type instance-attribute

image instance-attribute

image: File

recurrence_rule instance-attribute

recurrence_rule: RecurrenceRule

ScheduledEventEdit

Bases: TypedDict

channel_id instance-attribute

channel_id: int | None

entity_metadata instance-attribute

entity_metadata: ScheduledEventEntityMetadata | None

name instance-attribute

name: str

privacy_level instance-attribute

scheduled_start_time instance-attribute

scheduled_start_time: datetime

scheduled_end_time instance-attribute

scheduled_end_time: datetime

description instance-attribute

description: str | None

entity_type instance-attribute

status instance-attribute

image instance-attribute

image: File

recurrence_rule instance-attribute

recurrence_rule: RecurrenceRule | None

ScheduledEventFetch

Bases: TypedDict

with_user_count instance-attribute

with_user_count: bool

ScheduledEventList

Bases: TypedDict

with_user_count instance-attribute

with_user_count: bool

ScheduledEventListUsers

Bases: TypedDict

before instance-attribute

before: int

after instance-attribute

after: int

limit instance-attribute

limit: int

with_member instance-attribute

with_member: bool

ScheduledEvents

ScheduledEvents(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

create async

create(guild_id: int, /, *, reason: str | None = None, **options: Unpack[ScheduledEventCreate]) -> ScheduledEvent

delete async

delete(guild_id: int, guild_scheduled_event_id: int) -> None

edit async

edit(guild_id: int, guild_scheduled_event_id: int, /, *, reason: str | None = None, **options: Unpack[ScheduledEventEdit]) -> ScheduledEvent

Change an event; start or end it by setting its status.

fetch async

fetch(guild_id: int, guild_scheduled_event_id: int, /, **options: Unpack[ScheduledEventFetch]) -> ScheduledEvent

list async

list(guild_id: int, /, **options: Unpack[ScheduledEventList]) -> tuple[ScheduledEvent, ...]

list_users

list_users(guild_id: int, guild_scheduled_event_id: int, /, **options: Unpack[ScheduledEventListUsers]) -> AsyncIterator[ScheduledEventUser]

Walk an event's subscribers by user id.

bostie.rest.soundboard

SoundboardCreate

Bases: TypedDict

name instance-attribute

name: Required[str]

sound instance-attribute

sound: Required[File]

volume instance-attribute

volume: float | None

emoji_id instance-attribute

emoji_id: int | None

emoji_name instance-attribute

emoji_name: str | None

SoundboardEdit

Bases: TypedDict

name instance-attribute

name: str

volume instance-attribute

volume: float | None

emoji_id instance-attribute

emoji_id: int | None

emoji_name instance-attribute

emoji_name: str | None

SoundboardSend

Bases: TypedDict

sound_id instance-attribute

sound_id: Required[int]

source_guild_id instance-attribute

source_guild_id: int

Soundboard

Soundboard(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

create async

create(guild_id: int, /, *, reason: str | None = None, **options: Unpack[SoundboardCreate]) -> SoundboardSound

delete async

delete(guild_id: int, sound_id: int, /, *, reason: str | None = None) -> None

edit async

edit(guild_id: int, sound_id: int, /, *, reason: str | None = None, **options: Unpack[SoundboardEdit]) -> SoundboardSound

fetch async

fetch(guild_id: int, sound_id: int) -> SoundboardSound

list async

list(guild_id: int) -> tuple[SoundboardSound, ...]

list_default async

list_default() -> tuple[SoundboardSound, ...]

send async

send(channel_id: int, /, **options: Unpack[SoundboardSend]) -> None

Play a sound in the voice channel the bot is connected to.

bostie.rest.stage_instances

StageInstanceCreate

Bases: TypedDict

channel_id instance-attribute

channel_id: Required[int]

topic instance-attribute

topic: Required[str]

privacy_level instance-attribute

privacy_level: StagePrivacyLevel

send_start_notification instance-attribute

send_start_notification: bool

guild_scheduled_event_id instance-attribute

guild_scheduled_event_id: int

StageInstanceEdit

Bases: TypedDict

topic instance-attribute

topic: str

privacy_level instance-attribute

privacy_level: StagePrivacyLevel

StageInstances

StageInstances(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

create async

create(*, reason: str | None = None, **options: Unpack[StageInstanceCreate]) -> StageInstance

delete async

delete(channel_id: int, /, *, reason: str | None = None) -> None

edit async

edit(channel_id: int, /, *, reason: str | None = None, **options: Unpack[StageInstanceEdit]) -> StageInstance

fetch async

fetch(channel_id: int) -> StageInstance

bostie.rest.stickers

StickerCreate

Bases: TypedDict

name instance-attribute

name: Required[str]

description instance-attribute

description: str

tags instance-attribute

tags: Required[str]

file instance-attribute

file: Required[File]

StickerEdit

Bases: TypedDict

name instance-attribute

name: str

description instance-attribute

description: str | None

tags instance-attribute

tags: str

Stickers

Stickers(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

create async

create(guild_id: int, /, *, reason: str | None = None, **options: Unpack[StickerCreate]) -> Sticker

Upload a PNG, APNG, GIF or Lottie JSON file as a guild sticker.

delete async

delete(guild_id: int, sticker_id: int, /, *, reason: str | None = None) -> None

edit async

edit(guild_id: int, sticker_id: int, /, *, reason: str | None = None, **options: Unpack[StickerEdit]) -> Sticker

fetch async

fetch(sticker_id: int) -> Sticker

fetch_guild async

fetch_guild(guild_id: int, sticker_id: int) -> Sticker

fetch_pack async

fetch_pack(pack_id: int) -> StickerPack

list async

list(guild_id: int) -> tuple[Sticker, ...]

list_packs async

list_packs() -> tuple[StickerPack, ...]

bostie.rest.templates

TemplateCreate

Bases: TypedDict

name instance-attribute

name: Required[str]

description instance-attribute

description: str | None

TemplateEdit

Bases: TypedDict

name instance-attribute

name: str

description instance-attribute

description: str | None

Templates

Templates(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

create async

create(guild_id: int, /, **options: Unpack[TemplateCreate]) -> GuildTemplate

delete async

delete(guild_id: int, code: str) -> GuildTemplate

edit async

edit(guild_id: int, code: str, /, **options: Unpack[TemplateEdit]) -> GuildTemplate

fetch async

fetch(code: str) -> GuildTemplate

list async

list(guild_id: int) -> tuple[GuildTemplate, ...]

sync async

sync(guild_id: int, code: str) -> GuildTemplate

Update the template to the guild's current state.

bostie.rest.threads

ForumThreadMessage

Bases: TypedDict

The first message of a forum or media thread.

content instance-attribute

content: str

embeds instance-attribute

embeds: Sequence[Embed | Mapping[str, Any]]

allowed_mentions instance-attribute

allowed_mentions: AllowedMentions

components instance-attribute

components: Sequence[Component | Mapping[str, Any]]

sticker_ids instance-attribute

sticker_ids: Sequence[int]

files instance-attribute

files: Sequence[File]

flags instance-attribute

flags: MessageFlags

ThreadStart

Bases: TypedDict

name instance-attribute

name: Required[str]

auto_archive_duration instance-attribute

auto_archive_duration: int

type instance-attribute

invitable instance-attribute

invitable: bool

rate_limit_per_user instance-attribute

rate_limit_per_user: int | None

ThreadStartFromMessage

Bases: TypedDict

name instance-attribute

name: Required[str]

auto_archive_duration instance-attribute

auto_archive_duration: int

rate_limit_per_user instance-attribute

rate_limit_per_user: int | None

ThreadStartInForum

Bases: TypedDict

name instance-attribute

name: Required[str]

auto_archive_duration instance-attribute

auto_archive_duration: int

rate_limit_per_user instance-attribute

rate_limit_per_user: int | None

message instance-attribute

applied_tags instance-attribute

applied_tags: Sequence[int]

ThreadFetchMember

Bases: TypedDict

with_member instance-attribute

with_member: bool

ThreadListMembers

Bases: TypedDict

after instance-attribute

after: int

limit instance-attribute

limit: int

ThreadListArchived

Bases: TypedDict

before instance-attribute

before: datetime

limit instance-attribute

limit: int

ThreadListJoinedPrivateArchived

Bases: TypedDict

before instance-attribute

before: int | datetime

limit instance-attribute

limit: int

Threads

Threads(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

add_member async

add_member(channel_id: int, user_id: int) -> None

fetch_member async

fetch_member(channel_id: int, user_id: int, /, **options: Unpack[ThreadFetchMember]) -> ThreadMember

join async

join(channel_id: int) -> None

leave async

leave(channel_id: int) -> None

list_active async

list_active(guild_id: int) -> ActiveThreads

list_joined_private_archived

list_joined_private_archived(channel_id: int, /, **options: Unpack[ThreadListJoinedPrivateArchived]) -> AsyncIterator[Channel]

Walk the archived private threads the bot joined, the newest first.

list_members

list_members(channel_id: int, /, **options: Unpack[ThreadListMembers]) -> AsyncIterator[ThreadMember]

Walk a thread's members, each with its guild member.

list_private_archived

list_private_archived(channel_id: int, /, **options: Unpack[ThreadListArchived]) -> AsyncIterator[Channel]

Walk a channel's archived private threads, the last archived first.

list_public_archived

list_public_archived(channel_id: int, /, **options: Unpack[ThreadListArchived]) -> AsyncIterator[Channel]

Walk a channel's archived public threads, the last archived first.

remove_member async

remove_member(channel_id: int, user_id: int) -> None

start async

start(channel_id: int, /, *, reason: str | None = None, **options: Unpack[ThreadStart]) -> Channel

Start a thread without a message, private unless type says otherwise.

start_from_message async

start_from_message(channel_id: int, message_id: int, /, *, reason: str | None = None, **options: Unpack[ThreadStartFromMessage]) -> Channel

start_in_forum async

start_in_forum(channel_id: int, /, *, reason: str | None = None, **options: Unpack[ThreadStartInForum]) -> Channel

Start a forum or media thread with its first message.

bostie.rest.users

UserEditCurrent

Bases: TypedDict

username instance-attribute

username: str

avatar instance-attribute

avatar: File | None

banner instance-attribute

banner: File | None

UserUpdateRoleConnection

Bases: TypedDict

platform_name instance-attribute

platform_name: str

platform_username instance-attribute

platform_username: str

metadata instance-attribute

metadata: Mapping[str, str]

Users

Users(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: _CurrentUser

edit_current async

edit_current(**options: Unpack[UserEditCurrent]) -> CurrentUser

fetch async

fetch(user_id: int) -> User

fetch_current async

fetch_current() -> CurrentUser

BearerUsers

BearerUsers(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: _CurrentUser

delete_role_connection async

delete_role_connection(application_id: int) -> None

fetch_role_connection async

fetch_role_connection(application_id: int) -> ApplicationRoleConnection

list_connections async

list_connections() -> tuple[Connection, ...]

update_role_connection async

update_role_connection(application_id: int, /, **options: Unpack[UserUpdateRoleConnection]) -> ApplicationRoleConnection

Set the user's linked role values; metadata maps each key to a string.

fetch_current async

fetch_current() -> CurrentUser

bostie.rest.voice

VoiceEditCurrentState

Bases: TypedDict

channel_id instance-attribute

channel_id: int

suppress instance-attribute

suppress: bool

request_to_speak_timestamp instance-attribute

request_to_speak_timestamp: datetime | None

VoiceEditState

Bases: TypedDict

channel_id instance-attribute

channel_id: int

suppress instance-attribute

suppress: bool

Voice

Voice(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

edit_current_state async

edit_current_state(guild_id: int, /, **options: Unpack[VoiceEditCurrentState]) -> None

Change the bot's suppress state or request to speak in a stage channel.

edit_state async

edit_state(guild_id: int, user_id: int, /, **options: Unpack[VoiceEditState]) -> None

Change a user's suppress state in a stage channel.

fetch_current_state async

fetch_current_state(guild_id: int) -> VoiceState

fetch_state async

fetch_state(guild_id: int, user_id: int) -> VoiceState

list_guild_regions async

list_guild_regions(guild_id: int) -> tuple[VoiceRegion, ...]

The guild's voice regions, VIP ones included when the guild has them.

list_regions async

list_regions() -> tuple[VoiceRegion, ...]

bostie.rest.webhooks

WebhookCreate

Bases: TypedDict

name instance-attribute

name: Required[str]

avatar instance-attribute

avatar: File | None

WebhookEdit

Bases: TypedDict

name instance-attribute

name: str

avatar instance-attribute

avatar: File | None

channel_id instance-attribute

channel_id: int

WebhookEditWithToken

Bases: TypedDict

name instance-attribute

name: str

avatar instance-attribute

avatar: File | None

WebhookExecute

Bases: MessageParts

The message to send, how the webhook shows, and where it posts.

username instance-attribute

username: str

avatar_url instance-attribute

avatar_url: str

thread_name instance-attribute

thread_name: str

applied_tags instance-attribute

applied_tags: Sequence[int]

thread_id instance-attribute

thread_id: int

with_components instance-attribute

with_components: bool

embeds instance-attribute

embeds: Sequence[Embed | Mapping[str, Any]]

components instance-attribute

components: Sequence[Component | Mapping[str, Any]]

files instance-attribute

files: Sequence[File]

allowed_mentions instance-attribute

allowed_mentions: AllowedMentions

flags instance-attribute

flags: MessageFlags

tts instance-attribute

tts: bool

poll instance-attribute

WebhookEditMessage

Bases: EditParts

The parts to edit; poll is only accepted on a deferred interaction answer.

poll instance-attribute

poll: PollCreateRequest | None

thread_id instance-attribute

thread_id: int

with_components instance-attribute

with_components: bool

content instance-attribute

content: str | None

embeds instance-attribute

embeds: Sequence[Embed | Mapping[str, Any]] | None

components instance-attribute

components: Sequence[Component | Mapping[str, Any]] | None

files instance-attribute

files: Sequence[File]

allowed_mentions instance-attribute

allowed_mentions: AllowedMentions | None

flags instance-attribute

flags: MessageFlags | None

attachments instance-attribute

attachments: Sequence[Attachment | int] | None

WebhookMessageIn

Bases: TypedDict

thread_id instance-attribute

thread_id: int

WebhookExecuteCompatible

Bases: TypedDict

thread_id instance-attribute

thread_id: int

wait instance-attribute

wait: bool

Webhooks

Webhooks(http: HTTPClient, allowed_mentions: AllowedMentions, cache: Cache | None)

Bases: ResourceGroup

create async

create(channel_id: int, /, *, reason: str | None = None, **options: Unpack[WebhookCreate]) -> Webhook

delete async

delete(webhook_id: int, /, *, reason: str | None = None) -> None

delete_message async

delete_message(webhook_id: int, webhook_token: str, message_id: int, /, **options: Unpack[WebhookMessageIn]) -> None

delete_with_token async

delete_with_token(webhook_id: int, webhook_token: str) -> None

edit async

edit(webhook_id: int, /, *, reason: str | None = None, **options: Unpack[WebhookEdit]) -> Webhook

edit_message async

edit_message(webhook_id: int, webhook_token: str, message_id: int, /, **parts: Unpack[WebhookEditMessage]) -> WebhookMessage

Edit a message the webhook sent: a part not given stays and None clears it.

With files or attachments, only the listed attachments stay.

edit_with_token async

edit_with_token(webhook_id: int, webhook_token: str, /, **options: Unpack[WebhookEditWithToken]) -> Webhook

execute async

execute(webhook_id: int, webhook_token: str, /, content: str | None = None, **parts: Unpack[WebhookExecute]) -> WebhookMessage

Send a message through the webhook and return it once Discord saved it.

execute_github async

execute_github(webhook_id: int, webhook_token: str, /, payload: Mapping[str, Any], **options: Unpack[WebhookExecuteCompatible]) -> None

Post a GitHub webhook event payload, as GitHub would.

execute_slack async

execute_slack(webhook_id: int, webhook_token: str, /, payload: Mapping[str, Any], **options: Unpack[WebhookExecuteCompatible]) -> None

Post a message in Slack's incoming webhook format.

fetch async

fetch(webhook_id: int) -> Webhook

fetch_message async

fetch_message(webhook_id: int, webhook_token: str, message_id: int, /, **options: Unpack[WebhookMessageIn]) -> WebhookMessage

fetch_with_token async

fetch_with_token(webhook_id: int, webhook_token: str) -> Webhook

list async

list(channel_id: int) -> tuple[Webhook, ...]

list_guild async

list_guild(guild_id: int) -> tuple[Webhook, ...]