hikari.api.entity_factory#

Core interface for an object that serializes/deserializes API objects.

Module Contents#

class hikari.api.entity_factory.EntityFactory[source]#

Bases: abc.ABC

Interface for components that serialize and deserialize JSON payloads.

abstract deserialize_application(payload)[source]#

Parse a raw payload from Discord into an application object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.applications.Application

The deserialized application object.

abstract deserialize_application_connection_metadata_record(payload)[source]#

Parse a raw payload from Discord into an application connection metadata record object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.applications.ApplicationRoleConnectionMetadataRecord

The deserialized “application connection metadata record” object.

abstract deserialize_application_webhook(payload)[source]#

Parse a raw payload from Discord into an application webhook object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.webhooks.ApplicationWebhook

The parsed application webhook object.

abstract deserialize_audit_log(payload, *, guild_id)[source]#

Parse a raw payload from Discord into an audit log object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

guild_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

The ID of the guild this audit log belongs to.

Returns:
hikari.audit_logs.AuditLog

The deserialized audit log object.

abstract deserialize_audit_log_entry(payload, *, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into an audit log entry object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

The ID of the guild this entry belongs to. If passed then this will be prioritised over "guild_id" in the payload.

Returns:
hikari.audit_logs.AuditLogEntry

The deserialized audit log entry object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload.

abstract deserialize_authorization_information(payload)[source]#

Parse a raw payload from Discord into an authorization information object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.applications.AuthorizationInformation

The deserialized authorization information object.

abstract deserialize_authorization_token(payload)[source]#

Parse a raw payload from Discord into an authorization token object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.applications.OAuth2AuthorizationToken

The deserialized OAuth2 authorization token object.

abstract deserialize_autocomplete_interaction(payload)[source]#

Parse a raw payload from Discord into an autocomplete interaction object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.interactions.command_interactions.AutocompleteInteraction

The deserialized autocomplete interaction object.

abstract deserialize_channel(payload, *, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a channel object.

Note

This also deserializes to thread channels.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

The ID of the guild this channel belongs to. This will be ignored for DM and group DM channels and will be prioritised over "guild_id" in the payload when passed.

This is necessary in GUILD_CREATE events, where "guild_id" is not included in the channel’s payload

Returns:
hikari.channels.PartialChannel

The deserialized partial channel-derived object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload of a guild channel.

hikari.errors.UnrecognisedEntityError

If the channel type is unknown.

abstract deserialize_channel_follow(payload)[source]#

Parse a raw payload from Discord into a channel follow object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.channels.ChannelFollow

The deserialized channel follow object.

abstract deserialize_channel_follower_webhook(payload)[source]#

Parse a raw payload from Discord into a channel follower webhook object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.webhooks.ChannelFollowerWebhook

The parsed channel follower webhook object.

abstract deserialize_command(payload, *, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a command object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.undefined.UndefinedNoneOr[hikari.snowflakes.Snowflake]

The ID of the guild this command belongs to. If this is specified then this will be prioritised over "guild_id" in the payload.

Returns:
hikari.commands.PartialCommand

The deserialized command object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload for the payload of the integration.

hikari.errors.UnrecognisedEntityError

If the command type is unknown.

abstract deserialize_command_interaction(payload)[source]#

Parse a raw payload from Discord into a command interaction object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.interactions.command_interactions.CommandInteraction

The deserialized command interaction object.

abstract deserialize_component_interaction(payload)[source]#

Parser a raw payload from Discord into a component interaction object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.interactions.component_interactions.ComponentInteraction

The deserialized component interaction.

abstract deserialize_context_menu_command(payload, *, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a context menu command object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.undefined.UndefinedNoneOr[hikari.snowflakes.Snowflake]

The ID of the guild this command belongs to. If this is specified then this will be prioritised over "guild_id" in the payload.

Returns:
hikari.commands.ContextMenuCommand

The deserialized context menu command object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload for the payload of the integration.

abstract deserialize_custom_emoji(payload)[source]#

Parse a raw payload from Discord into a custom emoji object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.emojis.CustomEmoji

The deserialized custom emoji object.

abstract deserialize_dm(payload)[source]#

Parse a raw payload from Discord into a DM channel object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.channels.DMChannel

The deserialized DM channel object.

abstract deserialize_embed(payload)[source]#

Parse a raw payload from Discord into an embed object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.embeds.Embed

The deserialized embed object.

abstract deserialize_emoji(payload)[source]#

Parse a raw payload from Discord into an emoji object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.emojis.UnicodeEmoji or hikari.emojis.CustomEmoji

The deserialized custom or unicode emoji object.

abstract deserialize_gateway_bot_info(payload)[source]#

Parse a raw payload from Discord into a gateway bot object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.sessions.GatewayBotInfo

The deserialized gateway bot information object.

abstract deserialize_gateway_guild(payload, *, user_id)[source]#

Parse a raw payload from Discord into a guild object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

user_idhikari.snowflakes.Snowflake

The current user’s ID.

Returns:
GatewayGuildDefinition

The deserialized guild object and the internal collections as maps of hikari.snowflakes.Snowflake mapping to hikari.channels.GuildChannel, hikari.guilds.Member, hikari.presences.MemberPresence, hikari.guilds.Role, hikari.emojis.KnownCustomEmoji, and hikari.stickers.GuildSticker. This is provided in several components to allow separate caching and linking between entities in various relational cache implementations internally.

abstract deserialize_group_dm(payload)[source]#

Parse a raw payload from Discord into a group DM channel object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.channels.GroupDMChannel

The deserialized group DM object.

abstract deserialize_guild_category(payload, *, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a guild category object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

The ID of the guild this channel belongs to. If passed then this will be prioritised over "guild_id" in the payload.

This currently only covers the gateway GUILD_CREATE event, where it is not included in the channel’s payload.

Returns:
hikari.channels.GuildCategory

The deserialized guild category object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload.

abstract deserialize_guild_command_permissions(payload)[source]#

Parse a raw payload from Discord into guild command permissions object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.commands.GuildCommandPermissions

The deserialized guild command permissions object.

abstract deserialize_guild_forum_channel(payload, *, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a guild forum channel object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.snowflakes.Snowflake

The ID of the guild this channel belongs to. If passed then this will be prioritised over "guild_id" in the payload.

This currently only covers the gateway GUILD_CREATE event, where it is not included in the channel’s payload.

Returns:
hikari.channels.GuildForumChannel

The deserialized guild forum channel object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload.

abstract deserialize_guild_member_ban(payload)[source]#

Parse a raw payload from Discord into a guild member ban object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.guilds.GuildBan

The deserialized guild member ban object.

abstract deserialize_guild_news_channel(payload, *, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a guild news channel object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.snowflakes.Snowflake

The ID of the guild this channel belongs to. If passed then this will be prioritised over "guild_id" in the payload.

This currently only covers the gateway GUILD_CREATE event, where it is not included in the channel’s payload.

Returns:
hikari.channels.GuildNewsChannel

The deserialized guild news channel object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload.

abstract deserialize_guild_news_thread(payload, *, guild_id=undefined.UNDEFINED, member=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a guild news thread object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

The ID of the guild this channel belongs to. This will be prioritised over "guild_id" in the payload when passed.

Note

guild_id currently only covers the gateway GUILD_CREATE event where "guild_id" is not included in the channel’s payload.

memberhikari.undefined.UndefinedNoneOr[hikari.channels.ThreadMember]

The member object for the thread. If passed then this will be prioritised over "member" in the payload when passed.

Returns:
hikari.channels.GuildNewsThread

The deserialized guild news thread object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload.

abstract deserialize_guild_preview(payload)[source]#

Parse a raw payload from Discord into a guild preview object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.guilds.GuildPreview

The deserialized guild preview object.

abstract deserialize_guild_private_thread(payload, *, guild_id=undefined.UNDEFINED, member=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a guild private thread object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

The ID of the guild this channel belongs to. This will be prioritised over "guild_id" in the payload when passed.

Note

guild_id currently only covers the gateway GUILD_CREATE event where "guild_id" is not included in the channel’s payload.

memberhikari.undefined.UndefinedNoneOr[hikari.channels.ThreadMember]

The member object for the thread. If passed then this will be prioritised over "member" in the payload when passed.

Returns:
hikari.channels.GuildPrivateThread

The deserialized guild private thread object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload.

abstract deserialize_guild_public_thread(payload, *, guild_id=undefined.UNDEFINED, member=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a guild public thread object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

The ID of the guild this channel belongs to. This will be prioritised over "guild_id" in the payload when passed.

Note

guild_id currently only covers the gateway GUILD_CREATE event where "guild_id" is not included in the channel’s payload.

memberhikari.undefined.UndefinedNoneOr[hikari.channels.ThreadMember]

The member object for the thread. If passed then this will be prioritised over "member" in the payload when passed.

Returns:
hikari.channels.GuildPublicThread

The deserialized guild public thread object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload.

abstract deserialize_guild_stage_channel(payload, *, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a guild stage channel object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.snowflakes.Snowflake

The ID of the guild this channel belongs to. If passed then this will be prioritised over "guild_id" in the payload.

This currently only covers the gateway GUILD_CREATE event, where it is not included in the channel’s payload.

Returns:
hikari.channels.GuildStageChannel

The deserialized guild stage channel object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload.

abstract deserialize_guild_sticker(payload)[source]#

Parse a raw payload from Discord into a guild sticker object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.stickers.GuildSticker

The deserialized guild sticker object.

abstract deserialize_guild_text_channel(payload, *, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a guild text channel object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

The ID of the guild this channel belongs to. If passed then this will be prioritised over "guild_id" in the payload.

This currently only covers the gateway GUILD_CREATE event, where it is not included in the channel’s payload.

Returns:
hikari.channels.GuildTextChannel

The deserialized guild text channel object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload.

abstract deserialize_guild_thread(payload, *, guild_id=undefined.UNDEFINED, member=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a guild thread channel object.

Parameters:
guild_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

The ID of the guild this channel belongs to. If passed then this will be prioritised over "guild_id" in the payload.

Note

guild_id currently only covers the gateway GUILD_CREATE event where "guild_id" is not included in the channel’s payload.

memberhikari.undefined.UndefinedNoneOr[hikari.channels.ThreadMember]

The member object for the thread. If passed then this will be prioritised over "member" in the payload when passed.

Returns:
hikari.channels.GuildThreadChannel

The deserialized guild thread channel object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload.

abstract deserialize_guild_voice_channel(payload, *, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a guild voice channel object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.snowflakes.Snowflake

The ID of the guild this channel belongs to. If passed then this will be prioritised over "guild_id" in the payload.

This currently only covers the gateway GUILD_CREATE event, where it is not included in the channel’s payload.

Returns:
hikari.channels.GuildVoiceChannel

The deserialized guild voice channel object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload.

abstract deserialize_guild_widget(payload)[source]#

Parse a raw payload from Discord into a guild widget object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.guilds.GuildWidget

The deserialized guild widget object.

abstract deserialize_implicit_token(query)[source]#

Parse a query from Discord into an implicit token object.

Parameters:
queryhikari.internal.data_binding.Query

The query parameters to deserialize.

Returns:
hikari.applications.OAuth2ImplicitToken

The deserialized OAuth2 implicit token object.

abstract deserialize_incoming_webhook(payload)[source]#

Parse a raw payload from Discord into a incoming webhook object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.webhooks.IncomingWebhook

The parsed incoming webhook object.

abstract deserialize_integration(payload, *, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into an integration object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

The ID of the guild this integration belongs to. If this is specified then this will be prioritised over "guild_id" in the payload.

Returns:
hikari.guilds.Integration

The deserialized integration object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload for the payload of the integration.

abstract deserialize_interaction(payload)[source]#

Parse a raw payload from Discord into an interaction object.

Note

This isn’t required to implement logic for deserializing PING interactions and if you want to unmarshal those EntityFactory.deserialize_partial_interaction should be compatible.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.interactions.base_interactions.PartialInteraction

The deserialized interaction object.

Raises:
hikari.errors.UnrecognisedEntityError

If the integration type is unknown.

abstract deserialize_invite(payload)[source]#

Parse a raw payload from Discord into an invite object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.invites.Invite

The deserialized invite object.

abstract deserialize_invite_with_metadata(payload)[source]#

Parse a raw payload from Discord into a invite with metadata object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.invites.InviteWithMetadata

The deserialized invite with metadata object.

abstract deserialize_known_custom_emoji(payload, *, guild_id)[source]#

Parse a raw payload from Discord into a known custom emoji object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

guild_idhikari.snowflakes.Snowflake

The ID of the guild this emoji belongs to. This is used to ensure that the guild a known custom emoji belongs to is remembered by allowing for a context based artificial guild_id attribute.

Returns:
hikari.emojis.KnownCustomEmoji

The deserialized “known custom emoji” object.

abstract deserialize_member(payload, *, user=undefined.UNDEFINED, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a member object.

Note

guild_id covers cases such as the GUILD_CREATE gateway event and GET Guild Member where "guild_id" is not included in the returned payload.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
userhikari.undefined.UndefinedOr[hikari.users.User]

The user to attach to this member, should only be passed in situations where “user” is not included in the payload.

guild_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

The ID of the guild this member belongs to. If this is specified then this will be prioritised over "guild_id" in the payload.

Returns:
hikari.guilds.Member

The deserialized member object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload.

abstract deserialize_member_presence(payload, *, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a member presence object.

Note

At the time of writing, the only place where guild_id will be mandatory is when parsing presences sent in a GUILD_CREATE event from Discord, since the guild_id attribute in the payload will have been omitted for redundancy.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

The ID of the guild the presence belongs to. If this is specified then it is prioritised over guild_id in the payload.

Returns:
hikari.presences.MemberPresence

The deserialized member presence object.

Raises:
KeyError

If guild_id is not an attribute of the payload dict, and no guild ID was passed for the guild_id parameter.

If this is raised, no guild ID info was provided anywhere.

abstract deserialize_message(payload)[source]#

Parse a raw payload from Discord into a message object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.messages.Message

The deserialized message object.

abstract deserialize_modal_interaction(payload)[source]#

Parse a raw payload from Discord into a modal interaction object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.interactions.modal_interactions.ModalInteraction

The deserialized modal interaction object.

abstract deserialize_my_user(payload)[source]#

Parse a raw payload from Discord into a user object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.users.OwnUser

The deserialized user object.

abstract deserialize_own_application_role_connection(payload)[source]#

Parse a raw payload from Discord into an own application role connection object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.applications.OwnApplicationRoleConnection

The deserialized “own application role connection” object.

abstract deserialize_own_connection(payload)[source]#

Parse a raw payload from Discord into an own connection object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.applications.OwnConnection

The deserialized “own connection” object.

abstract deserialize_own_guild(payload)[source]#

Parse a raw payload from Discord into an own guild object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.applications.OwnGuild

The deserialized “own guild” object.

abstract deserialize_partial_channel(payload)[source]#

Parse a raw payload from Discord into a partial channel object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.channels.PartialChannel

The deserialized “partial channel” object.

abstract deserialize_partial_integration(payload)[source]#

Parse a raw payload from Discord into a partial integration object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.guilds.PartialIntegration

The deserialized partial integration object.

abstract deserialize_partial_interaction(payload)[source]#

Parse a raw payload from Discord into a partial interaction object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.interactions.base_interactions.PartialInteraction

The deserialized partial interaction object.

abstract deserialize_partial_message(payload)[source]#

Parse a raw payload from Discord into a partial message object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.messages.PartialMessage

The deserialized partial message object.

abstract deserialize_partial_sticker(payload)[source]#

Parse a raw payload from Discord into a partial sticker object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.stickers.PartialSticker

The deserialized partial sticker object.

abstract deserialize_partial_token(payload)[source]#

Parse a raw payload from Discord into a partial OAuth2 token object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.applications.PartialOAuth2Token

The deserialized partial OAuth2 token object.

abstract deserialize_permission_overwrite(payload)[source]#

Parse a raw payload from Discord into a permission overwrite object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.channels.PermissionOverwrite

The deserialized permission overwrite object.

abstract deserialize_rest_guild(payload)[source]#

Parse a raw payload from Discord into a guild object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.guilds.RESTGuild

The deserialized guild object.

abstract deserialize_role(payload, *, guild_id)[source]#

Parse a raw payload from Discord into a role object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

guild_idhikari.snowflakes.Snowflake

The ID of the guild this role belongs to. This is used to ensure that the guild a role belongs to is remembered by allowing for a context based artificial guild_id attribute.

Returns:
hikari.guilds.Role

The deserialized role object.

abstract deserialize_scheduled_event(payload)[source]#

Parse a raw payload from Discord into a scheduled event object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.scheduled_events.ScheduledEvent

The deserialized scheduled event object.

Raises:
hikari.errors.UnrecognisedEntityError

If the scheduled event type is unknown.

abstract deserialize_scheduled_event_user(payload, *, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a scheduled event user object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

The ID of the guild the user belongs to. If this is specified then it is prioritised over guild_id in the payload.

Returns:
hikari.scheduled_events.ScheduledEventUser

The deserialized scheduled event user object.

abstract deserialize_scheduled_external_event(payload)[source]#

Parse a raw payload from Discord into a scheduled external event object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.scheduled_events.ScheduledExternalEvent

The deserialized scheduled external event object.

abstract deserialize_scheduled_stage_event(payload)[source]#

Parse a raw payload from Discord into a scheduled stage event object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.scheduled_events.ScheduledStageEvent

The deserialized scheduled stage event object.

abstract deserialize_scheduled_voice_event(payload)[source]#

Parse a raw payload from Discord into a scheduled voice event object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.scheduled_events.ScheduledVoiceEvent

The deserialized scheduled voice event object.

abstract deserialize_slash_command(payload, *, guild_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a slash command object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.undefined.UndefinedNoneOr[hikari.snowflakes.Snowflake]

The ID of the guild this command belongs to. If this is specified then this will be prioritised over "guild_id" in the payload.

Returns:
hikari.commands.SlashCommand

The deserialized slash command object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload for the payload of the integration.

abstract deserialize_standard_sticker(payload)[source]#

Parse a raw payload from Discord into a standard sticker object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.stickers.StandardSticker

The deserialized standard sticker object.

abstract deserialize_sticker_pack(payload)[source]#

Parse a raw payload from Discord into a sticker pack object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.stickers.StickerPack

The deserialized sticker pack object.

abstract deserialize_template(payload)[source]#

Parse a raw payload from Discord into a template object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.templates.Template

The deserialized template object.

abstract deserialize_thread_member(payload, *, thread_id=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a thread member object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
thread_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

ID of the thread this member belongs to. This will be prioritised over "id" in the payload when passed.

Note

thread_id currently only covers the gateway GUILD_CREATE event where the field are is included in the thread member’s payload.

Returns:
hikari.channels.ThreadMember

The deserialized thread member object.

Raises:
KeyError

If thread_id or user_id is left as hikari.undefined.UNDEFINED when the relevant field isn’t present in the passed payload.

abstract deserialize_unicode_emoji(payload)[source]#

Parse a raw payload from Discord into a unicode emoji object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.emojis.UnicodeEmoji

The deserialized unicode emoji object.

abstract deserialize_user(payload)[source]#

Parse a raw payload from Discord into a user object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.users.User

The deserialized user object.

abstract deserialize_vanity_url(payload)[source]#

Parse a raw payload from Discord into a vanity url object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.invites.VanityURL

The deserialized vanity url object.

abstract deserialize_voice_region(payload)[source]#

Parse a raw payload from Discord into a voice region object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.voices.VoiceRegion

The deserialized voice region object.

abstract deserialize_voice_state(payload, *, guild_id=undefined.UNDEFINED, member=undefined.UNDEFINED)[source]#

Parse a raw payload from Discord into a voice state object.

Note

At the time of writing, GUILD_CREATE events are the only known place where neither guild_id nor member will be keys on the payload. In this case, you will need to provide the former parameters explicitly.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Other Parameters:
guild_idhikari.undefined.UndefinedOr[hikari.snowflakes.Snowflake]

The ID of the guild this voice state belongs to. If this is specified then this will be prioritised over "guild_id" in the payload.

memberhikari.undefined.UndefinedOr[hikari.guilds.Member]

The object of the member this voice state belongs to. If this is specified then this will be prioritised over "member" in the payload.

Returns:
hikari.voices.VoiceState

The deserialized voice state object.

Raises:
KeyError

If guild_id is left as hikari.undefined.UNDEFINED when "guild_id" is not present in the passed payload for the payload of the voice state.

This will also be raised if no member data was passed in any acceptable place.

abstract deserialize_webhook(payload)[source]#

Parse a raw payload from Discord into a webhook object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.webhooks.PartialWebhook

The deserialized webhook object.

Raises:
hikari.errors.UnrecognisedEntityError

If the channel type is unknown.

abstract deserialize_welcome_screen(payload)[source]#

Parse a raw payload from Discord into a guild welcome screen object.

Parameters:
payloadhikari.internal.data_binding.JSONObject

The JSON payload to deserialize.

Returns:
hikari.guilds.WelcomeScreen

The deserialized guild welcome screen object.

abstract serialize_application_connection_metadata_record(record)[source]#

Serialize an application connection metadata record object to a json serializable dict.

Parameters:
recordhikari.applications.ApplicationRoleConnectionMetadataRecord

The record object to serialize.

Returns:
hikari.internal.data_binding.JSONObject

The serialized representation of the record object.

abstract serialize_command_option(option)[source]#

Serialize a command option object to a json serializable dict.

Parameters:
optionhikari.commands.CommandOption

The command option object to serialize.

Returns:
hikari.internal.data_binding.JSONObject

The serialized representation of the command option.

abstract serialize_command_permission(permission)[source]#

Serialize a command permission object to a json serializable dict.

Parameters:
permissionhikari.commands.CommandPermission

The command permission object to serialize.

Returns:
hikari.internal.data_binding.JSONObject

The serialized representation of the command permission.

abstract serialize_embed(embed)[source]#

Serialize an embed object to a json serializable dict.

Parameters:
embedhikari.embeds.Embed

The embed object to serialize.

Returns:
typing.Tuple[hikari.internal.data_binding.JSONObject, typing.List[hikari.files.Resource]]

A tuple with two items in it. The first item will be the serialized embed representation. The second item will be a list of resources to upload with the embed.

abstract serialize_forum_tag(tag)[source]#

Serialize a forum tag object to a json serializable dict.

Parameters:
taghikari.channels.ForumTag

The forum tag object to serialize.

Returns:
hikari.internal.data_binding.JSONObject

The serialized representation of the forum tag.

abstract serialize_permission_overwrite(overwrite)[source]#

Serialize a permission overwrite object to a json serializable dict.

Parameters:
overwritehikari.channels.PermissionOverwrite

The permission overwrite object to serialize.

Returns:
hikari.internal.data_binding.JSONObject

The serialized representation of the permission overwrite.

abstract serialize_welcome_channel(welcome_channel)[source]#

Serialize a welcome channel object to a json serializable dict.

Parameters:
welcome_channelhikari.guilds.WelcomeChannel

The guild welcome channel object to serialize.

Returns:
hikari.internal.data_binding.JSONObject

The serialized representation of the welcome channel.

class hikari.api.entity_factory.GatewayGuildDefinition[source]#

Bases: abc.ABC

Structure for handling entities within guild create and update events.

Warning

The methods on this class may raise LookupError if called when the relevant resource isn’t available in the inner payload.

abstract property id: hikari.snowflakes.Snowflake[source]#

ID of the guild the definition is for.

abstract channels()[source]#

Get a mapping of channel IDs to the channels that belong to the guild.

abstract emojis()[source]#

Get a mapping of emoji IDs to the emojis that belong to the guild.

abstract guild()[source]#

Get the object of the guild this definition is for.

abstract members()[source]#

Get a mapping of user IDs to the members that belong to the guild.

Note

This may be a partial mapping of members in the guild.

abstract presences()[source]#

Get a mapping of user IDs to the presences that are active in the guild.

Note

This may be a partial mapping of presences active in the guild.

abstract roles()[source]#

Get a mapping of role IDs to the roles that belong to the guild.

abstract stickers()[source]#

Get a mapping of sticker IDs to the stickers that belong to the guild.

abstract threads()[source]#

Get a mapping of thread IDs to the public threads the bot can access in the guild.

abstract voice_states()[source]#

Get a mapping of user IDs to the voice states that are active in the guild.