Skip to content

Latest commit

 

History

History
2860 lines (1650 loc) · 73.6 KB

File metadata and controls

2860 lines (1650 loc) · 73.6 KB
.. currentmodule:: discord


Enumerations

The API provides some enumerations for certain types of strings to avoid the API from being strongly typed in case the strings change in the future.

All enumerations are subclasses of an internal class which mimics the behaviour of :class:`enum.Enum`.

Specifies the input type of an option.

.. versionadded:: 2.0

.. attribute:: sub_command

    A slash subcommand.
.. attribute:: sub_command_group

    A slash command group.
.. attribute:: string

    A string.
.. attribute:: integer

    An integer where :math:`-2^{53} < x < 2^{53}`.

    .. note::

        IDs, such as 881224361015672863, are often too big for this input type.

.. attribute:: boolean

    A boolean.
.. attribute:: user

    A user from the current channel. This will be converted to an instance of :class:`.User` in private channels, else :class:`.Member`
.. attribute:: channel

    A channel from the current guild.
.. attribute:: role

    A role from the current guild.
.. attribute:: mentionable

    A mentionable (user or role).
.. attribute:: number

    A floating-point number where :math:`-2^{53} < x < 2^{53}`.

    .. note::

        IDs, such as 881224361015672863, are often too big for this input type.

.. attribute:: attachment

    An attachment.

Specifies the type of channel.

.. attribute:: text

    A text channel.

.. attribute:: voice

    A voice channel.

.. attribute:: private

    A private text channel. Also called a direct message.

.. attribute:: group

    A private group text channel.

.. attribute:: category

    A category channel.

.. attribute:: news

    A guild news channel.

.. attribute:: stage_voice

    A guild stage voice channel.

    .. versionadded:: 1.7

.. attribute:: news_thread

    A news thread.

    .. versionadded:: 2.0

.. attribute:: public_thread

    A public thread.

    .. versionadded:: 2.0

.. attribute:: private_thread

    A private thread.

    .. versionadded:: 2.0

.. attribute:: directory

    A guild directory entry, used in hub guilds, currently in experiment.

    .. versionadded:: 2.0

.. attribute:: forum

    User can only write in threads, similar functionality to a forum.

    .. versionadded:: 2.0

Specifies the type of :class:`Message`. This is used to denote if a message is to be interpreted as a system message or a regular message.

.. describe:: x == y

    Checks if two messages are equal.
.. describe:: x != y

    Checks if two messages are not equal.
.. attribute:: default

    The default message type. This is the same as regular messages.
.. attribute:: recipient_add

    The system message when a user is added to a group private
    message or a thread.
.. attribute:: recipient_remove

    The system message when a user is removed from a group private
    message or a thread.
.. attribute:: call

    The system message denoting call state, e.g. missed call, started call,
    etc.
.. attribute:: channel_name_change

    The system message denoting that a channel's name has been changed.
.. attribute:: channel_icon_change

    The system message denoting that a channel's icon has been changed.
.. attribute:: pins_add

    The system message denoting that a pinned message has been added to a channel.
.. attribute:: new_member

    The system message denoting that a new member has joined a Guild.

.. attribute:: premium_guild_subscription

    The system message denoting that a member has "nitro boosted" a guild.
.. attribute:: premium_guild_tier_1

    The system message denoting that a member has "nitro boosted" a guild
    and it achieved level 1.
.. attribute:: premium_guild_tier_2

    The system message denoting that a member has "nitro boosted" a guild
    and it achieved level 2.
.. attribute:: premium_guild_tier_3

    The system message denoting that a member has "nitro boosted" a guild
    and it achieved level 3.
.. attribute:: channel_follow_add

    The system message denoting that an announcement channel has been followed.

    .. versionadded:: 1.3
.. attribute:: guild_stream

    The system message denoting that a member is streaming in the guild.

    .. versionadded:: 1.7
.. attribute:: guild_discovery_disqualified

    The system message denoting that the guild is no longer eligible for Server
    Discovery.

    .. versionadded:: 1.7
.. attribute:: guild_discovery_requalified

    The system message denoting that the guild has become eligible again for Server
    Discovery.

    .. versionadded:: 1.7
.. attribute:: guild_discovery_grace_period_initial_warning

    The system message denoting that the guild has failed to meet the Server
    Discovery requirements for one week.

    .. versionadded:: 1.7
.. attribute:: guild_discovery_grace_period_final_warning

    The system message denoting that the guild has failed to meet the Server
    Discovery requirements for 3 weeks in a row.

    .. versionadded:: 1.7
.. attribute:: thread_created

    The system message denoting that a thread has been created. This is only
    sent if the thread has been created from an older message. The period of time
    required for a message to be considered old cannot be relied upon and is up to
    Discord.

    .. versionadded:: 2.0
.. attribute:: reply

    The system message denoting that the author is replying to a message.

    .. versionadded:: 2.0
.. attribute:: application_command

    The system message denoting that an application (or "slash") command was executed.

    .. versionadded:: 2.0
.. attribute:: guild_invite_reminder

    The system message sent as a reminder to invite people to the guild.

    .. versionadded:: 2.0
.. attribute:: thread_starter_message

    The system message denoting the message in the thread that is the one that started the
    thread's conversation topic.

    .. versionadded:: 2.0
.. attribute:: context_menu_command

    The system message denoting that an context menu command was executed.

    .. versionadded:: 2.0
.. attribute:: auto_moderation_action

    The system message denoting an action by automod.

    .. versionadded:: 2.3
.. attribute:: role_subscription_purchase

    The system message denoting a role-subscription purchase.

    .. versionadded:: 2.4

.. attribute:: interaction_premium_upsell

    The system message denoting an interaction premium upsell.

    .. versionadded:: 2.4

.. attribute:: stage_start

    The system message denoting that a stage event has started.

    .. versionadded:: 2.4

.. attribute:: stage_end

    The system message denoting that a stage event has ended.

    .. versionadded:: 2.4

.. attribute:: stage_speaker

    The system message denoting that a stage event has a new speaker.

    .. versionadded:: 2.4

.. attribute:: stage_raise_hand

    The system message denoting that someone in a stage event is raising their hand.

    .. versionadded:: 2.4

.. attribute:: stage_topic

    The system message denoting that a stage event has a new topic.

    .. versionadded:: 2.4

.. attribute:: guild_application_premium_subscription

    The system message denoting that a member has subscribed to a guild application.

    .. versionadded:: 2.4

Represents Discord User flags.

.. attribute:: staff

    The user is a Discord Employee.
.. attribute:: partner

    The user is a Discord Partner.
.. attribute:: hypesquad

    The user is a HypeSquad Events member.
.. attribute:: bug_hunter

    The user is a Bug Hunter.
.. attribute:: mfa_sms

    The user has SMS recovery for Multi Factor Authentication enabled.
.. attribute:: premium_promo_dismissed

    The user has dismissed the Discord Nitro promotion.
.. attribute:: hypesquad_bravery

    The user is a HypeSquad Bravery member.
.. attribute:: hypesquad_brilliance

    The user is a HypeSquad Brilliance member.
.. attribute:: hypesquad_balance

    The user is a HypeSquad Balance member.
.. attribute:: early_supporter

    The user is an Early Supporter.
.. attribute:: team_user

    The user is a Team User.
.. attribute:: partner_or_verification_application

    Relates to partner/verification applications.
.. attribute:: system

    The user is a system user (i.e. represents Discord officially).
.. attribute:: has_unread_urgent_messages

    The user has an unread system message.
.. attribute:: bug_hunter_level_2

    The user is a Bug Hunter Level 2.
.. attribute:: underage_deleted

    The user was deleted for being underage.
.. attribute:: verified_bot

    The user is a Verified Bot.
.. attribute:: verified_bot_developer

    The user is an Early Verified Bot Developer.
.. attribute:: discord_certified_moderator

    The user is a Moderator Programs Alumni.
.. attribute:: bot_http_interactions

    The bot has set an interactions endpoint url.
.. attribute:: spammer

    The user is disabled for being a spammer.
.. attribute:: active_developer

    The user is an Active Developer.

Specifies the type of :class:`Activity`. This is used to check how to interpret the activity itself.

.. attribute:: unknown

    An unknown activity type. This should generally not happen.
.. attribute:: playing

    A "Playing" activity type.
.. attribute:: streaming

    A "Streaming" activity type.
.. attribute:: listening

    A "Listening" activity type.
.. attribute:: watching

    A "Watching" activity type.
.. attribute:: custom

    A custom activity type.
.. attribute:: competing

    A competing activity type.

    .. versionadded:: 1.5

Specifies the type of :class:`Interaction`.

.. versionadded:: 2.0

.. attribute:: ping

    Represents Discord pinging to see if the interaction response server is alive.
.. attribute:: application_command

    Represents a slash command interaction.
.. attribute:: component

    Represents a component-based interaction, i.e. using the Discord Bot UI Kit.
.. attribute:: auto_complete

    Represents a autocomplete interaction for slash commands.
.. attribute:: modal_submit

    Represents a modal-based interaction.

Specifies the response type for the interaction.

.. versionadded:: 2.0

.. attribute:: pong

    Pongs the interaction when given a ping.

    See also :meth:`InteractionResponse.pong`
.. attribute:: channel_message

    Respond to the interaction with a message.

    See also :meth:`InteractionResponse.send_message`
.. attribute:: deferred_channel_message

    Responds to the interaction with a message at a later time.

    See also :meth:`InteractionResponse.defer`
.. attribute:: deferred_message_update

    Acknowledges the component interaction with a promise that
    the message will update later (though there is no need to actually update the message).

    See also :meth:`InteractionResponse.defer`
.. attribute:: message_update

    Responds to the interaction by editing the message.

    See also :meth:`InteractionResponse.edit_message`
.. attribute:: auto_complete_result

    Responds to the interaction by sending the autocomplete choices.

    See also :meth:`InteractionResponse.send_autocomplete_result`
.. attribute:: modal

    Responds to the interaction by sending a modal dialog.

    See also :meth:`InteractionResponse.send_modal`

Represents the component type of a component.

.. versionadded:: 2.0

.. attribute:: action_row

    Represents the group component which holds different components in a row.
.. attribute:: button

    Represents a button component.
.. attribute:: select

    Represents a string select component.

    .. deprecated:: 2.3
        Use :attr:`ComponentType.string_select` instead.
.. attribute:: string_select

    Represents a string select component.
.. attribute:: input_text

    Represents an input_text component.
.. attribute:: user_select

    Represents a user select component.
.. attribute:: role_select

    Represents a role select component.
.. attribute:: mentionable_select

    Represents a mentionable select component.
.. attribute:: channel_select

    Represents a channel select component.
.. attribute:: section

    Represents a section component.
.. attribute:: text_display

    Represents a text display component.
.. attribute:: thumbnail

    Represents a thumbnail component.
.. attribute:: media_gallery

    Represents a media gallery component.
.. attribute:: file

    Represents a file component.
.. attribute:: separator

    Represents a separator component.
.. attribute:: content_inventory_entry

    Represents a content inventory entry component.
.. attribute:: container

    Represents a container component.
.. attribute:: label

    Represents a label component.
.. attribute:: file_upload

    Represents a file upload component.
.. attribute:: radio_group

    Represents a radio group component.
.. attribute:: checkbox_group

    Represents a checkbox group component.
.. attribute:: checkbox

    Represents a checkbox component.

Represents the style of the button component.

.. versionadded:: 2.0

.. attribute:: primary

    Represents a blurple button for the primary action.
.. attribute:: secondary

    Represents a grey button for the secondary action.
.. attribute:: success

    Represents a green button for a successful action.
.. attribute:: danger

    Represents a red button for a dangerous action.
.. attribute:: link

    Represents a link button.
.. attribute:: premium

    Represents a premium button.

.. attribute:: blurple

    An alias for :attr:`primary`.
.. attribute:: grey

    An alias for :attr:`secondary`.
.. attribute:: gray

    An alias for :attr:`secondary`.
.. attribute:: green

    An alias for :attr:`success`.
.. attribute:: red

    An alias for :attr:`danger`.
.. attribute:: url

    An alias for :attr:`link`.

Represents the style of the input text component.

.. versionadded:: 2.0

.. attribute:: short

    Represents a single-line input text field.
.. attribute:: long

    Represents a multi-line input text field.
.. attribute:: singleline

    An alias for :attr:`short`.
.. attribute:: multiline

    An alias for :attr:`long`.
.. attribute:: paragraph

    An alias for :attr:`long`.

Specifies the region a voice server belongs to.

.. attribute:: amsterdam

    The Amsterdam region.
.. attribute:: brazil

    The Brazil region.
.. attribute:: dubai

    The Dubai region.

    .. versionadded:: 1.3

.. attribute:: eu_central

    The EU Central region.
.. attribute:: eu_west

    The EU West region.
.. attribute:: europe

    The Europe region.

    .. versionadded:: 1.3

.. attribute:: frankfurt

    The Frankfurt region.
.. attribute:: hongkong

    The Hong Kong region.
.. attribute:: india

    The India region.

    .. versionadded:: 1.2

.. attribute:: japan

    The Japan region.
.. attribute:: london

    The London region.
.. attribute:: russia

    The Russia region.
.. attribute:: singapore

    The Singapore region.
.. attribute:: southafrica

    The South Africa region.
.. attribute:: south_korea

    The South Korea region.
.. attribute:: sydney

    The Sydney region.
.. attribute:: us_central

    The US Central region.
.. attribute:: us_east

    The US East region.
.. attribute:: us_south

    The US South region.
.. attribute:: us_west

    The US West region.
.. attribute:: vip_amsterdam

    The Amsterdam region for VIP guilds.
.. attribute:: vip_us_east

    The US East region for VIP guilds.
.. attribute:: vip_us_west

    The US West region for VIP guilds.

Specifies a :class:`Guild`'s verification level, which is the criteria in which a member must meet before being able to send messages to the guild.

.. versionadded:: 2.0

.. describe:: x == y

    Checks if two verification levels are equal.
.. describe:: x != y

    Checks if two verification levels are not equal.
.. describe:: x > y

    Checks if a verification level is higher than another.
.. describe:: x < y

    Checks if a verification level is lower than another.
.. describe:: x >= y

    Checks if a verification level is higher or equal to another.
.. describe:: x <= y

    Checks if a verification level is lower or equal to another.
.. attribute:: none

    No criteria set.
.. attribute:: low

    Member must have a verified email on their Discord account.
.. attribute:: medium

    Member must have a verified email and be registered on Discord for more
    than five minutes.
.. attribute:: high

    Member must have a verified email, be registered on Discord for more
    than five minutes, and be a member of the guild itself for more than
    ten minutes.
.. attribute:: highest

    Member must have a verified phone on their Discord account.

Specifies whether a :class:`Guild` has notifications on for all messages or mentions only by default.

.. versionadded:: 2.0

.. describe:: x == y

    Checks if two notification levels are equal.
.. describe:: x != y

    Checks if two notification levels are not equal.
.. describe:: x > y

    Checks if a notification level is higher than another.
.. describe:: x < y

    Checks if a notification level is lower than another.
.. describe:: x >= y

    Checks if a notification level is higher or equal to another.
.. describe:: x <= y

    Checks if a notification level is lower or equal to another.
.. attribute:: all_messages

    Members receive notifications for every message regardless of them being mentioned.
.. attribute:: only_mentions

    Members receive notifications for messages they are mentioned in.

Specifies a :class:`Guild`'s explicit content filter, which is the machine learning algorithms that Discord uses to detect if an image contains pornography or otherwise explicit content.

.. versionadded:: 2.0

.. describe:: x == y

    Checks if two content filter levels are equal.
.. describe:: x != y

    Checks if two content filter levels are not equal.
.. describe:: x > y

    Checks if a content filter level is higher than another.
.. describe:: x < y

    Checks if a content filter level is lower than another.
.. describe:: x >= y

    Checks if a content filter level is higher or equal to another.
.. describe:: x <= y

    Checks if a content filter level is lower or equal to another.
.. attribute:: disabled

    The guild does not have the content filter enabled.
.. attribute:: no_role

    The guild has the content filter enabled for members without a role.
.. attribute:: all_members

    The guild has the content filter enabled for every member.

Specifies a :class:`Member` 's status.

.. attribute:: online

    The member is online.
.. attribute:: offline

    The member is offline.
.. attribute:: idle

    The member is idle.
.. attribute:: dnd

    The member is "Do Not Disturb".
.. attribute:: do_not_disturb

    An alias for :attr:`dnd`.
.. attribute:: invisible

    The member is "invisible". In reality, this is only used in sending
    a presence a la :meth:`Client.change_presence`. When you receive a
    user's presence this will be :attr:`offline` instead.
.. attribute:: streaming

    The member is streaming.

Represents the type of action being done for a :class:`AuditLogEntry`, which is retrievable via :meth:`Guild.audit_logs`.

.. attribute:: guild_update

    The guild has updated. Things that trigger this include:

    - Changing the guild vanity URL
    - Changing the guild invite splash
    - Changing the guild AFK channel or timeout
    - Changing the guild voice server region
    - Changing the guild icon, banner, or discovery splash
    - Changing the guild moderation settings
    - Changing things related to the guild widget

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Guild`.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.afk_channel`
    - :attr:`~AuditLogDiff.system_channel`
    - :attr:`~AuditLogDiff.afk_timeout`
    - :attr:`~AuditLogDiff.default_message_notifications`
    - :attr:`~AuditLogDiff.explicit_content_filter`
    - :attr:`~AuditLogDiff.mfa_level`
    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.owner`
    - :attr:`~AuditLogDiff.splash`
    - :attr:`~AuditLogDiff.discovery_splash`
    - :attr:`~AuditLogDiff.icon`
    - :attr:`~AuditLogDiff.banner`
    - :attr:`~AuditLogDiff.vanity_url_code`

.. attribute:: channel_create

    A new channel was created.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    either a :class:`abc.GuildChannel` or :class:`Object` with an ID.

    A more filled out object in the :class:`Object` case can be found
    by using :attr:`~AuditLogEntry.after`.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.type`
    - :attr:`~AuditLogDiff.overwrites`

.. attribute:: channel_update

    A channel was updated. Things that trigger this include:

    - The channel name or topic was changed
    - The channel bitrate was changed

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`abc.GuildChannel` or :class:`Object` with an ID.

    A more filled out object in the :class:`Object` case can be found
    by using :attr:`~AuditLogEntry.after` or :attr:`~AuditLogEntry.before`.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.type`
    - :attr:`~AuditLogDiff.position`
    - :attr:`~AuditLogDiff.overwrites`
    - :attr:`~AuditLogDiff.topic`
    - :attr:`~AuditLogDiff.bitrate`
    - :attr:`~AuditLogDiff.rtc_region`
    - :attr:`~AuditLogDiff.video_quality_mode`
    - :attr:`~AuditLogDiff.default_auto_archive_duration`

.. attribute:: channel_delete

    A channel was deleted.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    an :class:`Object` with an ID.

    A more filled out object can be found by using the
    :attr:`~AuditLogEntry.before` object.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.type`
    - :attr:`~AuditLogDiff.overwrites`

.. attribute:: overwrite_create

    A channel permission overwrite was created.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`abc.GuildChannel` or :class:`Object` with an ID.

    When this is the action, the type of :attr:`~AuditLogEntry.extra` is
    either a :class:`Role` or :class:`Member`. If the object is not found
    then it is a :class:`Object` with an ID being filled, a name, and a
    ``type`` attribute set to either ``'role'`` or ``'member'`` to help
    dictate what type of ID it is.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.deny`
    - :attr:`~AuditLogDiff.allow`
    - :attr:`~AuditLogDiff.id`
    - :attr:`~AuditLogDiff.type`

.. attribute:: overwrite_update

    A channel permission overwrite was changed, this is typically
    when the permission values change.

    See :attr:`overwrite_create` for more information on how the
    :attr:`~AuditLogEntry.target` and :attr:`~AuditLogEntry.extra` fields
    are set.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.deny`
    - :attr:`~AuditLogDiff.allow`
    - :attr:`~AuditLogDiff.id`
    - :attr:`~AuditLogDiff.type`

.. attribute:: overwrite_delete

    A channel permission overwrite was deleted.

    See :attr:`overwrite_create` for more information on how the
    :attr:`~AuditLogEntry.target` and :attr:`~AuditLogEntry.extra` fields
    are set.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.deny`
    - :attr:`~AuditLogDiff.allow`
    - :attr:`~AuditLogDiff.id`
    - :attr:`~AuditLogDiff.type`

.. attribute:: kick

    A member was kicked.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`User` who got kicked.

    When this is the action, :attr:`~AuditLogEntry.changes` is empty.

.. attribute:: member_prune

    A member prune was triggered.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    set to ``None``.

    When this is the action, the type of :attr:`~AuditLogEntry.extra` is
    set to an unspecified proxy object with two attributes:

    - ``delete_members_days``: An integer specifying how far the prune was.
    - ``members_removed``: An integer specifying how many members were removed.

    When this is the action, :attr:`~AuditLogEntry.changes` is empty.

.. attribute:: ban

    A member was banned.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`User` who got banned.

    When this is the action, :attr:`~AuditLogEntry.changes` is empty.

.. attribute:: unban

    A member was unbanned.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`User` who got unbanned.

    When this is the action, :attr:`~AuditLogEntry.changes` is empty.

.. attribute:: member_update

    A member has updated. This triggers in the following situations:

    - A nickname was changed
    - They were server muted or deafened (or it was undone)

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Member` or :class:`User` who got updated.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.nick`
    - :attr:`~AuditLogDiff.mute`
    - :attr:`~AuditLogDiff.deaf`

.. attribute:: member_role_update

    A member's role has been updated. This triggers when a member
    either gains a role or loses a role.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Member` or :class:`User` who got the role.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.roles`

.. attribute:: member_move

    A member's voice channel has been updated. This triggers when a
    member is moved to a different voice channel.

    When this is the action, the type of :attr:`~AuditLogEntry.extra` is
    set to an unspecified proxy object with two attributes:

    - ``channel``: A :class:`TextChannel` or :class:`Object` with the channel ID where the members were moved.
    - ``count``: An integer specifying how many members were moved.

    .. versionadded:: 1.3

.. attribute:: member_disconnect

    A member's voice state has changed. This triggers when a
    member is force disconnected from voice.

    When this is the action, the type of :attr:`~AuditLogEntry.extra` is
    set to an unspecified proxy object with one attribute:

    - ``count``: An integer specifying how many members were disconnected.

    .. versionadded:: 1.3

.. attribute:: bot_add

    A bot was added to the guild.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Member` or :class:`User` which was added to the guild.

    .. versionadded:: 1.3

.. attribute:: role_create

    A new role was created.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Role` or a :class:`Object` with the ID.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.colour`
    - :attr:`~AuditLogDiff.mentionable`
    - :attr:`~AuditLogDiff.hoist`
    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.permissions`

.. attribute:: role_update

    A role was updated. This triggers in the following situations:

    - The name has changed
    - The permissions have changed
    - The colour has changed
    - Its hoist/mentionable state has changed

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Role` or a :class:`Object` with the ID.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.colour`
    - :attr:`~AuditLogDiff.mentionable`
    - :attr:`~AuditLogDiff.hoist`
    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.permissions`

.. attribute:: role_delete

    A role was deleted.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Role` or a :class:`Object` with the ID.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.colour`
    - :attr:`~AuditLogDiff.mentionable`
    - :attr:`~AuditLogDiff.hoist`
    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.permissions`

.. attribute:: invite_create

    An invite was created.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Invite` that was created.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.max_age`
    - :attr:`~AuditLogDiff.code`
    - :attr:`~AuditLogDiff.temporary`
    - :attr:`~AuditLogDiff.inviter`
    - :attr:`~AuditLogDiff.channel`
    - :attr:`~AuditLogDiff.uses`
    - :attr:`~AuditLogDiff.max_uses`

.. attribute:: invite_update

    An invite was updated.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Invite` that was updated.

.. attribute:: invite_delete

    An invite was deleted.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Invite` that was deleted.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.max_age`
    - :attr:`~AuditLogDiff.code`
    - :attr:`~AuditLogDiff.temporary`
    - :attr:`~AuditLogDiff.inviter`
    - :attr:`~AuditLogDiff.channel`
    - :attr:`~AuditLogDiff.uses`
    - :attr:`~AuditLogDiff.max_uses`

.. attribute:: webhook_create

    A webhook was created.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Object` with the webhook ID.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.channel`
    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.type` (always set to ``1`` if so)

.. attribute:: webhook_update

    A webhook was updated. This trigger in the following situations:

    - The webhook name changed
    - The webhook channel changed

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Object` with the webhook ID.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.channel`
    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.avatar`

.. attribute:: webhook_delete

    A webhook was deleted.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Object` with the webhook ID.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.channel`
    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.type` (always set to ``1`` if so)

.. attribute:: emoji_create

    An emoji was created.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`GuildEmoji` or :class:`Object` with the emoji ID.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`

.. attribute:: emoji_update

    An emoji was updated. This triggers when the name has changed.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`GuildEmoji` or :class:`Object` with the emoji ID.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`

.. attribute:: emoji_delete

    An emoji was deleted.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Object` with the emoji ID.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`

.. attribute:: message_delete

    A message was deleted by a moderator. Note that this
    only triggers if the message was deleted by someone other than the author.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Member` or :class:`User` who had their message deleted.

    When this is the action, the type of :attr:`~AuditLogEntry.extra` is
    set to an unspecified proxy object with two attributes:

    - ``count``: An integer specifying how many messages were deleted.
    - ``channel``: A :class:`TextChannel` or :class:`Object` with the channel ID where the message got deleted.

.. attribute:: message_bulk_delete

    Messages were bulk deleted by a moderator.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`TextChannel` or :class:`Object` with the ID of the channel that was purged.

    When this is the action, the type of :attr:`~AuditLogEntry.extra` is
    set to an unspecified proxy object with one attribute:

    - ``count``: An integer specifying how many messages were deleted.

    .. versionadded:: 1.3

.. attribute:: message_pin

    A message was pinned in a channel.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Member` or :class:`User` who had their message pinned.

    When this is the action, the type of :attr:`~AuditLogEntry.extra` is
    set to an unspecified proxy object with two attributes:

    - ``channel``: A :class:`TextChannel` or :class:`Object` with the channel ID where the message was pinned.
    - ``message_id``: the ID of the message which was pinned.

    .. versionadded:: 1.3

.. attribute:: message_unpin

    A message was unpinned in a channel.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Member` or :class:`User` who had their message unpinned.

    When this is the action, the type of :attr:`~AuditLogEntry.extra` is
    set to an unspecified proxy object with two attributes:

    - ``channel``: A :class:`TextChannel` or :class:`Object` with the channel ID where the message was unpinned.
    - ``message_id``: the ID of the message which was unpinned.

    .. versionadded:: 1.3

.. attribute:: integration_create

    A guild integration was created.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Object` with the integration ID of the integration which was created.

    .. versionadded:: 1.3

.. attribute:: integration_update

    A guild integration was updated.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Object` with the integration ID of the integration which was updated.

    .. versionadded:: 1.3

.. attribute:: integration_delete

    A guild integration was deleted.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Object` with the integration ID of the integration which was deleted.

    .. versionadded:: 1.3

.. attribute:: stage_instance_create

    A stage instance was started.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`StageInstance` or :class:`Object` with the ID of the stage
    instance which was created.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.topic`
    - :attr:`~AuditLogDiff.privacy_level`

    .. versionadded:: 2.0

.. attribute:: stage_instance_update

    A stage instance was updated.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`StageInstance` or :class:`Object` with the ID of the stage
    instance which was updated.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.topic`
    - :attr:`~AuditLogDiff.privacy_level`

    .. versionadded:: 2.0

.. attribute:: stage_instance_delete

    A stage instance was ended.

    .. versionadded:: 2.0

.. attribute:: sticker_create

    A sticker was created.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`GuildSticker` or :class:`Object` with the ID of the sticker
    which was updated.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.emoji`
    - :attr:`~AuditLogDiff.type`
    - :attr:`~AuditLogDiff.format_type`
    - :attr:`~AuditLogDiff.description`
    - :attr:`~AuditLogDiff.available`

    .. versionadded:: 2.0

.. attribute:: sticker_update

    A sticker was updated.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`GuildSticker` or :class:`Object` with the ID of the sticker
    which was updated.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.emoji`
    - :attr:`~AuditLogDiff.type`
    - :attr:`~AuditLogDiff.format_type`
    - :attr:`~AuditLogDiff.description`
    - :attr:`~AuditLogDiff.available`

    .. versionadded:: 2.0

.. attribute:: sticker_delete

    A sticker was deleted.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`GuildSticker` or :class:`Object` with the ID of the sticker
    which was updated.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.emoji`
    - :attr:`~AuditLogDiff.type`
    - :attr:`~AuditLogDiff.format_type`
    - :attr:`~AuditLogDiff.description`
    - :attr:`~AuditLogDiff.available`

    .. versionadded:: 2.0

.. attribute:: scheduled_event_create

    A scheduled event was created.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`ScheduledEvent` or :class:`Object` with the ID of the thread which
    was deleted.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.description`
    - :attr:`~AuditLogDiff.channel`
    - :attr:`~AuditLogDiff.privacy_level`
    - :attr:`~discord.ScheduledEvent.location`
    - :attr:`~discord.ScheduledEvent.status`
    - :attr:`~discord.ScheduledEventLocation.type`
    - :attr:`~discord.ScheduledEvent.image`

    .. versionadded:: 2.0

.. attribute:: scheduled_event_update

    A scheduled event was updated.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`ScheduledEvent` or :class:`Object` with the ID of the thread which
    was deleted.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.description`
    - :attr:`~AuditLogDiff.channel`
    - :attr:`~AuditLogDiff.privacy_level`
    - :attr:`~discord.ScheduledEvent.location`
    - :attr:`~discord.ScheduledEvent.status`
    - :attr:`~discord.ScheduledEventLocation.type`
    - :attr:`~discord.ScheduledEvent.image`

    .. versionadded:: 2.0

.. attribute:: scheduled_event_delete

    A scheduled event was deleted.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`ScheduledEvent` or :class:`Object` with the ID of the thread which
    was deleted.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.description`
    - :attr:`~AuditLogDiff.channel`
    - :attr:`~AuditLogDiff.privacy_level`
    - :attr:`~discord.ScheduledEvent.location`
    - :attr:`~discord.ScheduledEvent.status`
    - :attr:`~discord.ScheduledEventLocation.type`
    - :attr:`~discord.ScheduledEvent.image`

    .. versionadded:: 2.0

.. attribute:: thread_create

    A thread was created.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Thread` or :class:`Object` with the ID of the thread which
    was created.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.archived`
    - :attr:`~AuditLogDiff.locked`
    - :attr:`~AuditLogDiff.auto_archive_duration`
    - :attr:`~AuditLogDiff.invitable`

    .. versionadded:: 2.0

.. attribute:: thread_update

    A thread was updated.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Thread` or :class:`Object` with the ID of the thread which
    was updated.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.archived`
    - :attr:`~AuditLogDiff.locked`
    - :attr:`~AuditLogDiff.auto_archive_duration`
    - :attr:`~AuditLogDiff.invitable`

    .. versionadded:: 2.0

.. attribute:: thread_delete

    A thread was deleted.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`Thread` or :class:`Object` with the ID of the thread which
    was deleted.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.archived`
    - :attr:`~AuditLogDiff.locked`
    - :attr:`~AuditLogDiff.auto_archive_duration`
    - :attr:`~AuditLogDiff.invitable`

    .. versionadded:: 2.0

.. attribute:: application_command_permission_update

    An application command's permissions were updated.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    an :class:`Object` with the ID of the command that
    had it's permissions edited.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.command_id`

    .. versionadded:: 2.0

.. attribute:: auto_moderation_rule_create

    A guild auto moderation rule was created.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.enabled`
    - :attr:`~AuditLogDiff.trigger_type`
    - :attr:`~AuditLogDiff.event_type`
    - :attr:`~AuditLogDiff.trigger_metadata`
    - :attr:`~AuditLogDiff.actions`
    - :attr:`~AuditLogDiff.exempt_roles`
    - :attr:`~AuditLogDiff.exempt_channels`

    .. versionadded:: 2.5

.. attribute:: auto_moderation_rule_update

    A guild auto moderation rule was updated.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.enabled`
    - :attr:`~AuditLogDiff.trigger_type`
    - :attr:`~AuditLogDiff.trigger_metadata`
    - :attr:`~AuditLogDiff.actions`
    - :attr:`~AuditLogDiff.exempt_roles`
    - :attr:`~AuditLogDiff.exempt_channels`

    .. versionadded:: 2.5

.. attribute:: auto_moderation_rule_delete

    A guild auto moderation rule was deleted.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.name`
    - :attr:`~AuditLogDiff.enabled`
    - :attr:`~AuditLogDiff.trigger_type`
    - :attr:`~AuditLogDiff.event_type`
    - :attr:`~AuditLogDiff.trigger_metadata`
    - :attr:`~AuditLogDiff.actions`
    - :attr:`~AuditLogDiff.exempt_roles`
    - :attr:`~AuditLogDiff.exempt_channels`

    .. versionadded:: 2.5

.. attribute:: auto_moderation_block_message

    A message was blocked by auto moderation.

    .. versionadded:: 2.5

.. attribute:: auto_moderation_flag_to_channel

    A message was flagged by auto moderation.

    .. versionadded:: 2.5

.. attribute:: auto_moderation_user_communication_disabled

    A member was timed out by auto moderation.

    .. versionadded:: 2.5

.. attribute:: creator_monetization_request_created

    A creator monetization request was created.

    .. versionadded:: 2.5

.. attribute:: creator_monetization_terms_accepted

    The creator monetization terms were accepted.

    .. versionadded:: 2.5

.. attribute:: voice_channel_status_update

    A voice channel status was updated.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`VoiceChannel` or :class:`Object` with the ID of the voice
    channel which was updated.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.status`

    .. versionadded:: 2.5

.. attribute:: voice_channel_status_delete

    A voice channel status was deleted.

    When this is the action, the type of :attr:`~AuditLogEntry.target` is
    the :class:`VoiceChannel` or :class:`Object` with the ID of the voice
    channel which was updated.

    Possible attributes for :class:`AuditLogDiff`:

    - :attr:`~AuditLogDiff.status`

    .. versionadded:: 2.5

Represents the category that the :class:`AuditLogAction` belongs to.

This can be retrieved via :attr:`AuditLogEntry.category`.

.. attribute:: create

    The action is the creation of something.

.. attribute:: delete

    The action is the deletion of something.

.. attribute:: update

    The action is the update of something.

Represents the membership state of a team member retrieved through :func:`Client.application_info`.

.. versionadded:: 1.3

.. attribute:: invited

    Represents an invited member.

.. attribute:: accepted

    Represents a member currently in the team.

Represents the type of webhook that can be received.

.. versionadded:: 1.3

.. attribute:: incoming

    Represents a webhook that can post messages to channels with a token.

.. attribute:: channel_follower

    Represents a webhook that is internally managed by Discord, used for following channels.

.. attribute:: application

    Represents a webhook that is used for interactions or applications.

    .. versionadded:: 2.0

Represents the behaviour the :class:`Integration` should perform when a user's subscription has finished.

There is an alias for this called ExpireBehavior.

.. versionadded:: 1.4

.. attribute:: remove_role

    This will remove the :attr:`StreamIntegration.role` from the user
    when their subscription is finished.

.. attribute:: kick

    This will kick the user when their subscription is finished.

Represents the default avatar of a Discord :class:`User`

.. attribute:: blurple

    Represents the default avatar with the color blurple.
    See also :attr:`Colour.blurple`
.. attribute:: grey

    Represents the default avatar with the color grey.
    See also :attr:`Colour.greyple`
.. attribute:: gray

    An alias for :attr:`grey`.
.. attribute:: green

    Represents the default avatar with the color green.
    See also :attr:`Colour.green`
.. attribute:: orange

    Represents the default avatar with the color orange.
    See also :attr:`Colour.orange`
.. attribute:: red

    Represents the default avatar with the color red.
    See also :attr:`Colour.red`

Represents the type of sticker.

.. versionadded:: 2.0

.. attribute:: standard

    Represents a standard sticker that all Nitro users can use.

.. attribute:: guild

    Represents a custom sticker created in a guild.

Represents the type of sticker images.

.. versionadded:: 1.6

.. attribute:: png

    Represents a sticker with a png image.

.. attribute:: apng

    Represents a sticker with an apng image.

.. attribute:: lottie

    Represents a sticker with a lottie image.

.. attribute:: gif

    Represents a sticker with a gif image.

    .. versionadded:: 2.4

Represents the invite type for voice channel invites.

.. versionadded:: 2.0

.. attribute:: unknown

    The invite doesn't target anyone or anything.

.. attribute:: stream

    A stream invite that targets a user.

.. attribute:: embedded_application

    A invite that targets an embedded application.

    Note that your bot won't be verified if you provide users access to this

Represents the status code for an invite target users processing job.

.. versionadded:: 2.8

.. attribute:: unspecified

    The job status is unspecified.

.. attribute:: processing

    The job is currently processing.

.. attribute:: completed

    The job has completed successfully.

.. attribute:: failed

    The job has failed.

Represents the camera video quality mode for voice channel participants.

.. versionadded:: 2.0

.. attribute:: auto

    Represents auto camera video quality.

.. attribute:: full

    Represents full camera video quality.

Represents a stage instance's privacy level. Stage event privacy levels can only have 1 possible value at the moment so this shouldn't really be used.

.. versionadded:: 2.0

.. attribute:: closed

    The stage instance can only be joined by members of the guild.

.. attribute:: guild_only

    Alias for :attr:`.closed`

Represents the NSFW level of a guild.

.. versionadded:: 2.0

.. describe:: x == y

    Checks if two NSFW levels are equal.
.. describe:: x != y

    Checks if two NSFW levels are not equal.
.. describe:: x > y

    Checks if a NSFW level is higher than another.
.. describe:: x < y

    Checks if a NSFW level is lower than another.
.. describe:: x >= y

    Checks if a NSFW level is higher or equal to another.
.. describe:: x <= y

    Checks if a NSFW level is lower or equal to another.
.. attribute:: default

    The guild has not been categorised yet.

.. attribute:: explicit

    The guild contains NSFW content.

.. attribute:: safe

    The guild does not contain any NSFW content.

.. attribute:: age_restricted

    The guild may contain NSFW content.

Represents an embedded activity application.

Some might be boost-only or gated.

Warning

Discord said that they won't verify bots who gives access to embedded activities.

Read more here: https://discord.com/channels/613425648685547541/697236247739105340/901153332075315321.

.. versionadded:: 2.0

.. attribute:: ask_away

    Represents the embedded application Ask Away.

    .. versionadded:: 2.4

.. attribute:: awkword

    Represents the embedded application Awkword.

    .. warning::

        This activity has been removed.

.. attribute:: awkword_dev

    Development version of :attr:`.awkword`.

    .. warning::

        This activity has been removed.

.. attribute:: bash_out

    Represents the embedded application Bash Out.

    .. versionadded:: 2.4

.. attribute:: betrayal

    Represents the embedded application Betrayal.io.

.. attribute:: blazing_8s

    Represents the embedded application Blazing 8s.

    .. versionadded:: 2.4

.. attribute:: blazing_8s_dev

    Development version of :attr:`.blazing_8s`.

    .. versionadded:: 2.4

.. attribute:: blazing_8s_qa

    QA version of :attr:`.blazing_8s`.

    .. versionadded:: 2.4

.. attribute:: blazing_8s_staging

    Staging version of :attr:`.blazing_8s`.

    .. versionadded:: 2.4

.. attribute:: bobble_league

    Represents the embedded application Bobble League.

    .. versionadded:: 2.4

.. attribute:: checkers_in_the_park

    Represents the embedded application Checkers in the Park.

.. attribute:: checkers_in_the_park_dev

    Development version of :attr:`.checkers_in_the_park`.

.. attribute:: checkers_in_the_park_qa

    QA version of :attr:`.checkers_in_the_park`.

.. attribute:: checkers_in_the_park_staging

    Staging version of :attr:`.checkers_in_the_park`.

.. attribute:: chess_in_the_park

    Represents the embedded application Chess in the Park.

.. attribute:: chess_in_the_park_dev

    Development version of :attr:`.chess_in_the_park`.

.. attribute:: chess_in_the_park_qa

    QA version of :attr:`.chess_in_the_park`.

.. attribute:: chess_in_the_park_staging

    Staging version of :attr:`.chess_in_the_park`.

.. attribute:: decoders_dev

    Represents the embedded application Decoders Development.

    .. warning::

        This activity has been removed.

.. attribute:: doodle_crew

    Represents the embedded application Doodle Crew.

    .. warning::

        This activity has been removed.

.. attribute:: doodle_crew_dev

    Development version of :attr:`.doodle_crew`.

    .. warning::

        This activity has been removed.

.. attribute:: fishington

    Represents the embedded application Fishington.io.

.. attribute:: gartic_phone

    Represents the embedded application Gartic Phone.

    .. versionadded:: 2.5

.. attribute:: jamspace

    Represents the embedded application Jamspace.

    .. versionadded:: 2.5

.. attribute:: know_what_i_meme

    Represents the embedded application Know What I Meme.

    .. versionadded:: 2.4

.. attribute:: land

    Represents the embedded application Land.io.

    .. versionadded:: 2.4

.. attribute:: letter_league

    Represents the embedded application Letter League.

.. attribute:: letter_league_dev

    Development version of :attr:`.letter_league`.

    .. versionadded:: 2.4

.. attribute:: poker_night

    Represents the embedded application Poker Night.

.. attribute:: poker_night_dev

    Development version of :attr:`.poker_night`.

    .. versionadded:: 2.4

.. attribute:: poker_night_qa

    QA version of :attr:`.poker_night`.

.. attribute:: poker_night_staging

    Staging version of :attr:`.poker_night`.

.. attribute:: putt_party

    Represents the embedded application Putt Party.

    .. versionadded:: 2.4

.. attribute:: putt_party_dev

    Development version of :attr:`.putt_party`.

    .. versionadded:: 2.4

.. attribute:: putt_party_qa

    QA version of :attr:`.putt_party`.

    .. versionadded:: 2.4

.. attribute:: putt_party_staging

    Staging version of :attr:`.putt_party`.

    .. versionadded:: 2.4

.. attribute:: putts

    Represents the embedded application Putts.

    .. warning::

        This activity has been removed.

.. attribute:: sketch_heads

    Represents the embedded application Sketch Heads.

    .. versionadded:: 2.4

.. attribute:: sketch_heads_dev

    Development version of :attr:`.sketch_heads`.

    .. versionadded:: 2.4

.. attribute:: sketchy_artist

    Represents the embedded application Sketchy Artist.

    .. warning::

        This activity has been removed.

.. attribute:: sketchy_artist_dev

    Development version of :attr:`.sketchy_artist`.

    .. warning::

        This activity has been removed.

.. attribute:: spell_cast

    Represents the embedded application Spell Cast.

.. attribute:: spell_cast_staging

    Staging version of :attr:`.spell_cast`.

    .. versionadded:: 2.4

.. attribute:: watch_together

    Same as :attr:`~EmbeddedActivity.youtube_together` with remote feature which allows guild admins to limit the playlist access.

.. attribute:: watch_together_dev

    Development version of :attr:`.watch_together`.

.. attribute:: word_snacks

    Represents the embedded application word snacks.

.. attribute:: word_snacks_dev

    Development version of :attr:`.word_snacks`.

.. attribute:: youtube_together

    Represents the embedded application Youtube Together.

Represents the status of a scheduled event.

.. versionadded:: 2.0

.. attribute:: scheduled

    The scheduled event hasn't started or been canceled yet.

.. attribute:: active

    The scheduled event is in progress.

.. attribute:: completed

    The scheduled event is over.

.. attribute:: canceled

    The scheduled event has been canceled before it can start.

.. attribute:: cancelled

    Alias to :attr:`canceled`.

Represents a scheduled event location type (otherwise known as the entity type on the API).

.. versionadded:: 2.0

.. attribute:: stage_instance

    Represents a scheduled event that is happening in a :class:`StageChannel`.

.. attribute:: voice

    Represents a scheduled event that is happening in a :class:`VoiceChannel`.

.. attribute:: external

    Represents a generic location as a :class:`str`.

Represents the privacy level of a scheduled event. Scheduled event privacy levels can only have 1 possible value at the moment so this shouldn't really be used.

.. attribute:: guild_only

    Represents a scheduled event that is only available to members inside the guild.

Represents an application role connection metadata type.

Each metadata type offers a comparison operation that allows guilds to configure role requirements based on metadata values stored by the bot. Bots specify a metadata value for each user and guilds specify the required guild's configured value within the guild role settings.

.. versionadded:: 2.4

.. attribute:: integer_less_than_or_equal

    The metadata value (``integer``) is less than or equal to the guild's configured value (``integer``).

.. attribute:: integer_greater_than_or_equal

    The metadata value (``integer``) is greater than or equal to the guild's configured value (``integer``).

.. attribute:: integer_equal

    The metadata value (``integer``) is equal to the guild's configured value (``integer``).

.. attribute:: integer_not_equal

    The metadata value (``integer``) is not equal to the guild's configured value (``integer``).

.. attribute:: datetime_less_than_or_equal

    The metadata value (``datetime``) is less than or equal to the guild's configured value
    (``integer``; the number of days before the current date).

.. attribute:: datetime_greater_than_or_equal

    The metadata value (``datetime``) is greater than or equal to the guild's configured value
    (``integer``; the number of days before the current date).

.. attribute:: boolean_equal

    The metadata value (``integer``) is equal to the guild's configured value (``integer``; 1).

.. attribute:: boolean_not_equal

    The metadata value (``integer``) is not equal to the guild's configured value (``integer``; 1).

Represents an AutoMod trigger type.

.. versionadded:: 2.0

.. attribute:: keyword

    Represents a keyword rule trigger, which are customizable by a guild.

    Possible attributes for :class:`AutoModTriggerMetadata`:

    - :attr:`~AutoModTriggerMetadata.keyword_filter`
    - :attr:`~AutoModTriggerMetadata.regex_patterns`
    - :attr:`~AutoModTriggerMetadata.allow_list`

.. attribute:: keyword_preset

    Represents a preset keyword rule trigger.

    Possible attributes for :class:`AutoModTriggerMetadata`:

    - :attr:`~AutoModTriggerMetadata.presets`
    - :attr:`~AutoModTriggerMetadata.allow_list`

.. attribute:: spam

    Represents the spam rule trigger.

    There are no possible attributes for :class:`AutoModTriggerMetadata`.

.. attribute:: mention_spam

    Represents a mention spam keyword rule trigger.

    Possible attributes for :class:`AutoModTriggerMetadata`:

    - :attr:`~AutoModTriggerMetadata.mention_total_limit`

    .. versionadded:: 2.4

.. attribute:: harmful_link

    Represents a harmful link rule trigger.

    .. deprecated:: 2.4
        Removed by Discord and merged into :attr:`spam`.

Represents an AutoMod event type.

.. versionadded:: 2.0

.. attribute:: message_send

    Represents a message send AutoMod event.

Represents the type of action AutoMod is performing.

.. versionadded:: 2.0

.. attribute:: block_message

    Represents a block message action.

.. attribute:: send_alert_message

    Represents a send alert message action.

.. attribute:: timeout

    Represents a timeout action.

Represents an AutoMod keyword preset type.

.. versionadded:: 2.0

.. attribute:: profanity

    Represents the profanity keyword preset rule.

.. attribute:: sexual_content

    Represents the sexual content keyword preset rule.

.. attribute:: slurs

    Represents the slurs keyword preset rule.

Represents how each prompt's options are displayed.

.. versionadded:: 2.5

.. attribute:: multiple_choice

    The options will appear in a grid form, showing the name and description.

.. attribute:: dropdown

    The options will appear in a dropdown (similar to select menus), but without the description displayed. This is **enforced** if there are more than 12 options in the prompt.

Represents the current mode of the guild's onboarding flow.

.. versionadded:: 2.5

.. attribute:: default

    Only default channels are counted towards the Onboarding requirements.

.. attribute:: advanced

    Both default channels and questions (``OnboardingPrompt``\s) will count towards the Onboarding requirements.

Represents a Reaction's type.

.. versionadded:: 2.5

.. attribute:: normal

    Represents a normal reaction.

.. attribute:: burst

    Represents a super reaction.

Represents an SKU's type.

.. versionadded:: 2.5

.. attribute:: durable

   A one-time purchase that is permanent and is not subject to either renewal
   or consumption, such as lifetime access to an app's premium features.

.. attribute:: consumable

   A one-time, non-renewable purchase that provides access, such as a temporary
   power-up or boost in a game.

.. attribute:: subscription

    Represents a recurring subscription.

.. attribute:: subscription_group

    A system-generated group for each subscription SKU created. These types of SKUs are currently unused.

Represents an entitlement's type.

.. versionadded:: 2.5

.. attribute:: purchase

    Entitlement was purchased by the user.

.. attribute:: premium_subscription

    Entitlement is for a Discord Nitro subscription.

.. attribute:: developer_gift

    Entitlement was gifted by the developer.

.. attribute:: test_mode_purchase

    Entitlement was purchased by a developer in the application's test mode.

.. attribute:: free_purchase

    Entitlement was granted when the SKU was free.

.. attribute:: user_gift

    Entitlement was gifted by another user.

.. attribute:: premium_purchase

    Entitlement was claimed by a user for free as a Nitro subscriber.

.. attribute:: application_subscription

    Entitlement was purchased as an app subscription.

Represents an entitlement's ownership type.

.. versionadded:: 2.5

.. attribute:: guild

    Entitlement is owned by a guild.

.. attribute:: user

    Entitlement is owned by a user.

Represents a poll's layout type.

.. versionadded:: 2.6

.. attribute:: default

    Represents the default layout.

The integration type for an application.

.. versionadded:: 2.6

.. attribute:: guild_install

    The integration is added to a guild.

.. attribute:: user_install

    The integration is added to a user account.

The context where an interaction occurs.

.. versionadded:: 2.6

.. attribute:: guild

    The interaction is in a guild.

.. attribute:: bot_dm

    The interaction is in the bot's own DM channel with the user.

.. attribute:: private_channel

    The interaction is in a private DM or group DM channel.

Represents the type of animation for a voice channel effect.

.. versionadded:: 2.7

.. attribute:: premium

    The animation is a premium effect.

.. attribute:: basic

    The animation is a basic effect.

Represents a subscription's status.

.. versionadded:: 2.7

.. attribute:: active

    The subscription is active and is scheduled to renew.

.. attribute:: ending

    The subscription is active but will not renew.

.. attribute:: inactive

    The subscription is inactive and the subscription owner is not being charged.

Represents the time before a thread is archived.

.. versionadded:: 2.7

.. attribute:: one_hour

    Indicates that the thread will be archived after 1 hour of inactivity.

.. attribute:: one_day

    Indicates that the thread will be archived after 1 day of inactivity.

.. attribute:: three_days

    Indicates that the thread will be archived after 3 days of inactivity.

.. attribute:: one_week

    Indicates that the thread will be archived after 1 week of inactivity.

Represents the padding size around a separator component.

.. versionadded:: 2.7

.. attribute:: small

    The separator uses small padding.

.. attribute:: large

    The separator uses large padding.

Used to represent the default sort order for posts in :class:`ForumChannel` and :class:`MediaChannel`.

.. attribute:: latest_activity

    Sort by latest activity.

.. attribute:: creation_date

    Sort by post creation date.

Represents the default value type of a select menu.

.. attribute:: channel

    The default value is a channel.

.. attribute:: role

    The default value is a role.

.. attribute:: user

    The default value is a user.
.. autoclass:: RoleType
    :members:

Represents the application event webhook status.

.. versionadded:: 2.8

.. attribute:: disabled

    The application webhook is disabled.

.. attribute:: enabled

    The application webhook is enabled.

.. attribute:: disabled_by_discord
    The application webhook is disabled by Discord.

Represents the limits for various Discord UI components.

.. versionadded:: 2.8.1

.. attribute:: view_children_max

    The maximum number of children a View can have (40).

.. attribute:: action_row_children_max

    The maximum number of children an ActionRow can have (5).

.. attribute:: button_label_max

    The maximum length of a button label (80).

.. attribute:: container_children_max

    The maximum number of children a Container can have (no limit).

.. attribute:: media_gallery_items_min

    The minimum number of items in a MediaGallery (1).

.. attribute:: media_gallery_items_max

    The maximum number of items in a MediaGallery (10).

.. attribute:: media_gallery_item_description_max

    The maximum length of a MediaGalleryItem description (256).

.. attribute:: select_placeholder_max

    The maximum length of a select placeholder (150).

.. attribute:: select_min_value_max

    The maximum value for select's minimum value constraint (25).

.. attribute:: select_max_value_max

    The maximum value for select's maximum value constraint (25).

.. attribute:: select_options_max

    The maximum number of options in a select menu (25).

.. attribute:: select_option_label_max

    The maximum length of a select option label (100).

.. attribute:: select_option_value_max

    The maximum length of a select option value (100).

.. attribute:: select_option_description_max

    The maximum length of a select option description (100).

.. attribute:: section_accessory_max

    The maximum number of accessories in a Section (1).

.. attribute:: section_children_min

    The minimum number of children in a Section (1).

.. attribute:: section_children_max

    The maximum number of children in a Section (3).

.. attribute:: text_input_max_count

    The maximum number of TextInputs in a modal (5).

.. attribute:: text_input_label_max

    The maximum length of a TextInput label (45).

.. attribute:: text_input_placeholder_max

    The maximum length of a TextInput placeholder (100).

.. attribute:: text_input_min_length_max

    The maximum value for TextInput's minimum length (4000).

.. attribute:: text_input_max_length_max

    The maximum value for TextInput's maximum length (4000).

.. attribute:: text_input_value_max

    The maximum length of a TextInput value (4000).

.. attribute:: text_display_content_max

    The maximum length of TextDisplay content (4000).

.. attribute:: thumbnail_description_max

    The maximum length of a Thumbnail description (256).

.. attribute:: custom_id_min

    The minimum length of a custom ID (1).

.. attribute:: custom_id_max

    The maximum length of a custom ID (100).

Represents the limits for Discord embeds.

Note

The sum of all characters in an embed must be ≤ 6000.

.. versionadded:: 2.8.1

.. attribute:: fields_max

    The maximum number of embed fields (25).

.. attribute:: field_name_max

    The maximum length of a field name/title (256).

.. attribute:: field_value_max

    The maximum length of a field value (1024).

.. attribute:: description_max

    The maximum length of an embed description (4096).

.. attribute:: footer_text_max

    The maximum length of an embed footer text (2048).

.. attribute:: author_name_max

    The maximum length of an embed author name (256).

.. attribute:: title_max

    The maximum length of an embed title (256).

.. attribute:: total_max

    The maximum total character limit for an entire embed (6000).
.. versionadded:: 2.8

.. attribute:: owner

    Represents the team owner role.

.. attribute:: admin

    Represents the team admin role.

.. attribute:: developer

    Represents the team developer role.

.. attribute:: read_only

    Represents the team read only role.