Skip to main content
Module

x/discord_api_types/payloads/v10/guild.ts

Up to date Discord API Typings, versioned by the API version
Go to Latest
File
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123
/** * Types extracted from https://discord.com/developers/docs/resources/guild */
import type { Permissions, Snowflake } from '../../globals.ts';import type { APIEmoji, APIPartialEmoji } from './emoji.ts';import type { PresenceUpdateReceiveStatus } from './gateway.ts';import type { OAuth2Scopes } from './oauth2.ts';import type { APIRole } from './permissions.ts';import type { APISticker } from './sticker.ts';import type { APIUser } from './user.ts';
/** * https://discord.com/developers/docs/resources/guild#unavailable-guild-object */export interface APIUnavailableGuild { /** * Guild id */ id: Snowflake; /** * `true` if this guild is unavailable due to an outage */ unavailable: boolean;}
/** * https://discord.com/developers/docs/resources/guild#guild-object-guild-structure */export interface APIPartialGuild extends Omit<APIUnavailableGuild, 'unavailable'>, Pick<APIGuild, 'welcome_screen'> { /** * Guild name (2-100 characters, excluding trailing and leading whitespace) */ name: string; /** * Icon hash * * See https://discord.com/developers/docs/reference#image-formatting */ icon: string | null; /** * Splash hash * * See https://discord.com/developers/docs/reference#image-formatting */ splash: string | null; /** * Banner hash * * See https://discord.com/developers/docs/reference#image-formatting */ banner?: string | null; /** * The description for the guild */ description?: string | null; /** * Enabled guild features * * See https://discord.com/developers/docs/resources/guild#guild-object-guild-features */ features?: GuildFeature[]; /** * Verification level required for the guild * * See https://discord.com/developers/docs/resources/guild#guild-object-verification-level */ verification_level?: GuildVerificationLevel; /** * The vanity url code for the guild */ vanity_url_code?: string | null;}
/** * https://discord.com/developers/docs/resources/guild#guild-object-guild-structure */export interface APIGuild extends APIPartialGuild { /** * Icon hash, returned when in the template object * * See https://discord.com/developers/docs/reference#image-formatting */ icon_hash?: string | null; /** * Discovery splash hash; only present for guilds with the "DISCOVERABLE" feature * * See https://discord.com/developers/docs/reference#image-formatting */ discovery_splash: string | null; /** * `true` if the user is the owner of the guild * * **This field is only received from https://discord.com/developers/docs/resources/user#get-current-user-guilds** */ owner?: boolean; /** * ID of owner */ owner_id: Snowflake; /** * Total permissions for the user in the guild (excludes overrides) * * **This field is only received from https://discord.com/developers/docs/resources/user#get-current-user-guilds** * * See https://en.wikipedia.org/wiki/Bit_field */ permissions?: Permissions; /** * Voice region id for the guild * * See https://discord.com/developers/docs/resources/voice#voice-region-object * * @deprecated This field has been deprecated in favor of `rtc_region` on the channel. */ region: string; /** * ID of afk channel */ afk_channel_id: Snowflake | null; /** * afk timeout in seconds, can be set to: `60`, `300`, `900`, `1800`, `3600` */ afk_timeout: 1_800 | 3_600 | 60 | 300 | 900; /** * `true` if the guild widget is enabled */ widget_enabled?: boolean; /** * The channel id that the widget will generate an invite to, or `null` if set to no invite */ widget_channel_id?: Snowflake | null; /** * Verification level required for the guild * * See https://discord.com/developers/docs/resources/guild#guild-object-verification-level */ verification_level: GuildVerificationLevel; /** * Default message notifications level * * See https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level */ default_message_notifications: GuildDefaultMessageNotifications; /** * Explicit content filter level * * See https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level */ explicit_content_filter: GuildExplicitContentFilter; /** * Roles in the guild * * See https://discord.com/developers/docs/topics/permissions#role-object */ roles: APIRole[]; /** * Custom guild emojis * * See https://discord.com/developers/docs/resources/emoji#emoji-object */ emojis: APIEmoji[]; /** * Enabled guild features * * See https://discord.com/developers/docs/resources/guild#guild-object-guild-features */ features: GuildFeature[]; /** * Required MFA level for the guild * * See https://discord.com/developers/docs/resources/guild#guild-object-mfa-level */ mfa_level: GuildMFALevel; /** * Application id of the guild creator if it is bot-created */ application_id: Snowflake | null; /** * The id of the channel where guild notices such as welcome messages and boost events are posted */ system_channel_id: Snowflake | null; /** * System channel flags * * See https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags */ system_channel_flags: GuildSystemChannelFlags; /** * The id of the channel where Community guilds can display rules and/or guidelines */ rules_channel_id: Snowflake | null; /** * The maximum number of presences for the guild (`null` is always returned, apart from the largest of guilds) */ max_presences?: number | null; /** * The maximum number of members for the guild */ max_members?: number; /** * The vanity url code for the guild */ vanity_url_code: string | null; /** * The description for the guild */ description: string | null; /** * Banner hash * * See https://discord.com/developers/docs/reference#image-formatting */ banner: string | null; /** * Premium tier (Server Boost level) * * See https://discord.com/developers/docs/resources/guild#guild-object-premium-tier */ premium_tier: GuildPremiumTier; /** * The number of boosts this guild currently has */ premium_subscription_count?: number; /** * The preferred locale of a Community guild; used in guild discovery and notices from Discord; defaults to "en-US" * * @default "en-US" */ preferred_locale: string; /** * The id of the channel where admins and moderators of Community guilds receive notices from Discord */ public_updates_channel_id: Snowflake | null; /** * The maximum amount of users in a video channel */ max_video_channel_users?: number; /** * The maximum amount of users in a stage video channel */ max_stage_video_channel_users?: number; /** * Approximate number of members in this guild, * returned from the `GET /guilds/<id>` and `/users/@me/guilds` (OAuth2) endpoints when `with_counts` is `true` */ approximate_member_count?: number; /** * Approximate number of non-offline members in this guild, * returned from the `GET /guilds/<id>` and `/users/@me/guilds` (OAuth2) endpoints when `with_counts` is `true` */ approximate_presence_count?: number; /** * The welcome screen of a Community guild, shown to new members * * Returned in the invite object */ welcome_screen?: APIGuildWelcomeScreen; /** * The nsfw level of the guild * * See https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level */ nsfw_level: GuildNSFWLevel; /** * Custom guild stickers * * See https://discord.com/developers/docs/resources/sticker#sticker-object */ stickers: APISticker[]; /** * Whether the guild has the boost progress bar enabled. */ premium_progress_bar_enabled: boolean; /** * The type of Student Hub the guild is */ hub_type: GuildHubType | null; /** * The id of the channel where admins and moderators of Community guilds receive safety alerts from Discord */ safety_alerts_channel_id: Snowflake | null;}
/** * https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level */export enum GuildDefaultMessageNotifications { AllMessages, OnlyMentions,}
/** * https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level */export enum GuildExplicitContentFilter { Disabled, MembersWithoutRoles, AllMembers,}
/** * https://discord.com/developers/docs/resources/guild#guild-object-mfa-level */export enum GuildMFALevel { None, Elevated,}
/** * https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level */export enum GuildNSFWLevel { Default, Explicit, Safe, AgeRestricted,}
/** * https://discord.com/developers/docs/resources/guild#guild-object-verification-level */export enum GuildVerificationLevel { /** * Unrestricted */ None, /** * Must have verified email on account */ Low, /** * Must be registered on Discord for longer than 5 minutes */ Medium, /** * Must be a member of the guild for longer than 10 minutes */ High, /** * Must have a verified phone number */ VeryHigh,}
/** * https://discord.com/developers/docs/resources/guild#guild-object-premium-tier */export enum GuildPremiumTier { None, Tier1, Tier2, Tier3,}
export enum GuildHubType { Default, HighSchool, College,}
/** * https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags */export enum GuildSystemChannelFlags { /** * Suppress member join notifications */ SuppressJoinNotifications = 1 << 0, /** * Suppress server boost notifications */ SuppressPremiumSubscriptions = 1 << 1, /** * Suppress server setup tips */ SuppressGuildReminderNotifications = 1 << 2, /** * Hide member join sticker reply buttons */ SuppressJoinNotificationReplies = 1 << 3, /** * Suppress role subscription purchase and renewal notifications */ SuppressRoleSubscriptionPurchaseNotifications = 1 << 4, /** * Hide role subscription sticker reply buttons */ SuppressRoleSubscriptionPurchaseNotificationReplies = 1 << 5,}
/** * https://discord.com/developers/docs/resources/guild#guild-object-guild-features */export enum GuildFeature { /** * Guild has access to set an animated guild banner image */ AnimatedBanner = 'ANIMATED_BANNER', /** * Guild has access to set an animated guild icon */ AnimatedIcon = 'ANIMATED_ICON', /** * Guild is using the old permissions configuration behavior * * See https://discord.com/developers/docs/change-log#upcoming-application-command-permission-changes */ ApplicationCommandPermissionsV2 = 'APPLICATION_COMMAND_PERMISSIONS_V2', /** * Guild has set up auto moderation rules */ AutoModeration = 'AUTO_MODERATION', /** * Guild has access to set a guild banner image */ Banner = 'BANNER', /** * Guild can enable welcome screen, Membership Screening and discovery, and receives community updates */ Community = 'COMMUNITY', /** * Guild has enabled monetization */ CreatorMonetizableProvisional = 'CREATOR_MONETIZABLE_PROVISIONAL', /** * Guild has enabled the role subscription promo page */ CreatorStorePage = 'CREATOR_STORE_PAGE', /** * Guild has been set as a support server on the App Directory */ DeveloperSupportServer = 'DEVELOPER_SUPPORT_SERVER', /** * Guild is able to be discovered in the directory */ Discoverable = 'DISCOVERABLE', /** * Guild is able to be featured in the directory */ Featurable = 'FEATURABLE', /** * Guild is listed in a directory channel */ HasDirectoryEntry = 'HAS_DIRECTORY_ENTRY', /** * Guild is a Student Hub * * See https://support.discord.com/hc/articles/4406046651927 * * @unstable This feature is currently not documented by Discord, but has known value */ Hub = 'HUB', /** * Guild has disabled invite usage, preventing users from joining */ InvitesDisabled = 'INVITES_DISABLED', /** * Guild has access to set an invite splash background */ InviteSplash = 'INVITE_SPLASH', /** * Guild is in a Student Hub * * See https://support.discord.com/hc/articles/4406046651927 * * @unstable This feature is currently not documented by Discord, but has known value */ LinkedToHub = 'LINKED_TO_HUB', /** * Guild has enabled Membership Screening */ MemberVerificationGateEnabled = 'MEMBER_VERIFICATION_GATE_ENABLED', /** * Guild has enabled monetization * * @unstable This feature is no longer documented by Discord */ MonetizationEnabled = 'MONETIZATION_ENABLED', /** * Guild has increased custom sticker slots */ MoreStickers = 'MORE_STICKERS', /** * Guild has access to create news channels */ News = 'NEWS', /** * Guild is partnered */ Partnered = 'PARTNERED', /** * Guild can be previewed before joining via Membership Screening or the directory */ PreviewEnabled = 'PREVIEW_ENABLED', /** * Guild has access to create private threads */ PrivateThreads = 'PRIVATE_THREADS', /** * Guild has disabled alerts for join raids in the configured safety alerts channel */ RaidAlertsDisabled = 'RAID_ALERTS_DISABLED', RelayEnabled = 'RELAY_ENABLED', /** * Guild is able to set role icons */ RoleIcons = 'ROLE_ICONS', /** * Guild has role subscriptions that can be purchased */ RoleSubscriptionsAvailableForPurchase = 'ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE', /** * Guild has enabled role subscriptions */ RoleSubscriptionsEnabled = 'ROLE_SUBSCRIPTIONS_ENABLED', /** * Guild has enabled ticketed events */ TicketedEventsEnabled = 'TICKETED_EVENTS_ENABLED', /** * Guild has access to set a vanity URL */ VanityURL = 'VANITY_URL', /** * Guild is verified */ Verified = 'VERIFIED', /** * Guild has access to set 384kbps bitrate in voice (previously VIP voice servers) */ VIPRegions = 'VIP_REGIONS', /** * Guild has enabled the welcome screen */ WelcomeScreenEnabled = 'WELCOME_SCREEN_ENABLED',}
/** * https://discord.com/developers/docs/resources/guild#guild-preview-object */export interface APIGuildPreview { /** * Guild id */ id: Snowflake; /** * Guild name (2-100 characters) */ name: string; /** * Icon hash * * See https://discord.com/developers/docs/reference#image-formatting */ icon: string | null; /** * Splash hash * * See https://discord.com/developers/docs/reference#image-formatting */ splash: string | null; /** * Discovery splash hash; only present for guilds with the "DISCOVERABLE" feature * * See https://discord.com/developers/docs/reference#image-formatting */ discovery_splash: string | null; /** * Custom guild emojis * * See https://discord.com/developers/docs/resources/emoji#emoji-object */ emojis: APIEmoji[]; /** * Enabled guild features * * See https://discord.com/developers/docs/resources/guild#guild-object-guild-features */ features: GuildFeature[]; /** * Approximate number of members in this guild */ approximate_member_count: number; /** * Approximate number of online members in this guild */ approximate_presence_count: number; /** * The description for the guild */ description: string; /** * Custom guild stickers */ stickers: APISticker[];}
/** * https://discord.com/developers/docs/resources/guild#guild-widget-object */export interface APIGuildWidgetSettings { /** * Whether the widget is enabled */ enabled: boolean; /** * The widget channel id */ channel_id: Snowflake | null;}
/** * https://discord.com/developers/docs/resources/guild#guild-member-object */export interface APIGuildMember { /** * The user this guild member represents * * **This field won't be included in the member object attached to `MESSAGE_CREATE` and `MESSAGE_UPDATE` gateway events.** * * See https://discord.com/developers/docs/resources/user#user-object */ user?: APIUser; /** * This users guild nickname */ nick?: string | null; /** * The member's guild avatar hash */ avatar?: string | null; /** * Array of role object ids * * See https://discord.com/developers/docs/topics/permissions#role-object */ roles: Snowflake[]; /** * When the user joined the guild */ joined_at: string; /** * When the user started boosting the guild * * See https://support.discord.com/hc/articles/360028038352 */ premium_since?: string | null; /** * Whether the user is deafened in voice channels */ deaf: boolean; /** * Whether the user is muted in voice channels */ mute: boolean; /** * Guild member flags represented as a bit set, defaults to `0` */ flags: GuildMemberFlags; /** * Whether the user has not yet passed the guild's Membership Screening requirements * * @remarks If this field is not present, it can be assumed as `false`. */ pending?: boolean; /** * Timestamp of when the time out will be removed; until then, they cannot interact with the guild */ communication_disabled_until?: string | null;}
/** * https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags */export enum GuildMemberFlags { /** * Member has left and rejoined the guild */ DidRejoin = 1 << 0, /** * Member has completed onboarding */ CompletedOnboarding = 1 << 1, /** * Member bypasses guild verification requirements */ BypassesVerification = 1 << 2, /** * Member has started onboarding */ StartedOnboarding = 1 << 3, /** * @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date. */ StartedHomeActions = 1 << 5, /** * @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date. */ CompletedHomeActions = 1 << 6, /** * @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date. */ AutomodQuarantinedUsernameOrGuildNickname = 1 << 7, /** * @unstable This guild member flag is currently not documented by Discord but has a known value which we will try to keep up to date. */ AutomodQuarantinedBio = 1 << 8,}
/** * https://discord.com/developers/docs/resources/guild#integration-object */export interface APIGuildIntegration { /** * Integration id */ id: Snowflake; /** * Integration name */ name: string; /** * Integration type */ type: APIGuildIntegrationType; /** * Is this integration enabled */ enabled: boolean; /** * Is this integration syncing * * **This field is not provided for `discord` bot integrations.** */ syncing?: boolean; /** * ID that this integration uses for "subscribers" * * **This field is not provided for `discord` bot integrations.** */ role_id?: Snowflake; /** * Whether emoticons should be synced for this integration (`twitch` only currently) * * **This field is not provided for `discord` bot integrations.** */ enable_emoticons?: boolean; /** * The behavior of expiring subscribers * * **This field is not provided for `discord` bot integrations.** * * See https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors */ expire_behavior?: IntegrationExpireBehavior; /** * The grace period (in days) before expiring subscribers * * **This field is not provided for `discord` bot integrations.** */ expire_grace_period?: number; /** * User for this integration * * **Some older integrations may not have an attached user.** * * See https://discord.com/developers/docs/resources/user#user-object */ user?: APIUser; /** * Integration account information * * See https://discord.com/developers/docs/resources/guild#integration-account-object */ account: APIIntegrationAccount; /** * When this integration was last synced * * **This field is not provided for `discord` bot integrations.** */ synced_at?: string; /** * How many subscribers this integration has * * **This field is not provided for `discord` bot integrations.** */ subscriber_count?: number; /** * Has this integration been revoked * * **This field is not provided for `discord` bot integrations.** */ revoked?: boolean; /** * The bot/OAuth2 application for discord integrations * * See https://discord.com/developers/docs/resources/guild#integration-application-object * * **This field is not provided for `discord` bot integrations.** */ application?: APIGuildIntegrationApplication; /** * The scopes the application has been authorized for */ scopes?: OAuth2Scopes[];}
export type APIGuildIntegrationType = 'discord' | 'guild_subscription' | 'twitch' | 'youtube';
/** * https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors */export enum IntegrationExpireBehavior { RemoveRole, Kick,}
/** * https://discord.com/developers/docs/resources/guild#integration-account-object */export interface APIIntegrationAccount { /** * ID of the account */ id: string; /** * Name of the account */ name: string;}
/** * https://discord.com/developers/docs/resources/guild#integration-application-object */export interface APIGuildIntegrationApplication { /** * The id of the app */ id: Snowflake; /** * The name of the app */ name: string; /** * The icon hash of the app * * See https://discord.com/developers/docs/reference#image-formatting */ icon: string | null; /** * The description of the app */ description: string; /** * The bot associated with this application * * See https://discord.com/developers/docs/resources/user#user-object */ bot?: APIUser;}
/** * https://discord.com/developers/docs/resources/guild#ban-object */export interface APIBan { /** * The reason for the ban */ reason: string | null; /** * The banned user */ user: APIUser;}
/** * https://discord.com/developers/docs/resources/guild#guild-widget-object */export interface APIGuildWidget { id: Snowflake; name: string; instant_invite: string | null; channels: APIGuildWidgetChannel[]; members: APIGuildWidgetMember[]; presence_count: number;}
/** * https://discord.com/developers/docs/resources/guild#guild-widget-object-example-guild-widget */export interface APIGuildWidgetChannel { id: Snowflake; name: string; position: number;}
/** * https://discord.com/developers/docs/resources/guild#guild-widget-object-example-guild-widget */export interface APIGuildWidgetMember { id: string; username: string; discriminator: string; avatar: string | null; status: PresenceUpdateReceiveStatus; activity?: { name: string }; avatar_url: string;}
/** * https://discord.com/developers/docs/resources/guild#get-guild-widget-image-widget-style-options */export enum GuildWidgetStyle { /** * Shield style widget with Discord icon and guild members online count */ Shield = 'shield', /** * Large image with guild icon, name and online count. "POWERED BY DISCORD" as the footer of the widget */ Banner1 = 'banner1', /** * Smaller widget style with guild icon, name and online count. Split on the right with Discord logo */ Banner2 = 'banner2', /** * Large image with guild icon, name and online count. In the footer, Discord logo on the left and "Chat Now" on the right */ Banner3 = 'banner3', /** * Large Discord logo at the top of the widget. Guild icon, name and online count in the middle portion of the widget * and a "JOIN MY SERVER" button at the bottom */ Banner4 = 'banner4',}
export interface APIGuildWelcomeScreen { /** * The welcome screen short message */ description: string | null; /** * Array of suggested channels */ welcome_channels: APIGuildWelcomeScreenChannel[];}
export interface APIGuildWelcomeScreenChannel { /** * The channel id that is suggested */ channel_id: Snowflake; /** * The description shown for the channel */ description: string; /** * The emoji id of the emoji that is shown on the left of the channel */ emoji_id: Snowflake | null; /** * The emoji name of the emoji that is shown on the left of the channel */ emoji_name: string | null;}
export interface APIGuildMembershipScreening { /** * When the fields were last updated */ version: string; /** * The steps in the screening form */ form_fields: APIGuildMembershipScreeningField[]; /** * The server description shown in the screening form */ description: string | null;}
// TODO: make this a union based on the type in the future, when new types are added
export interface APIGuildMembershipScreeningField { /** * The type of field */ field_type: MembershipScreeningFieldType; /** * The title of the field */ label: string; /** * The list of rules */ values?: string[]; /** * Whether the user has to fill out this field */ required: boolean;}
export enum MembershipScreeningFieldType { /** * Server Rules */ Terms = 'TERMS',}
/** * https://discord.com/developers/docs/resources/guild#guild-onboarding-object-guild-onboarding-structure */export interface APIGuildOnboarding { /** * Id of the guild this onboarding is part of */ guild_id: Snowflake; /** * Prompts shown during onboarding and in customize community */ prompts: APIGuildOnboardingPrompt[]; /** * Channel ids that members get opted into automatically */ default_channel_ids: Snowflake[]; /** * Whether onboarding is enabled in the guild */ enabled: boolean; /** * Current mode of onboarding */ mode: GuildOnboardingMode;}
/** * https://discord.com/developers/docs/resources/guild#guild-onboarding-object-onboarding-prompt-structure */export interface APIGuildOnboardingPrompt { /** * Id of the prompt */ id: Snowflake; /** * Options available within the prompt */ options: APIGuildOnboardingPromptOption[]; /** * Title of the prompt */ title: string; /** * Indicates whether users are limited to selecting one option for the prompt */ single_select: boolean; /** * Indicates whether the prompt is required before a user completes the onboarding flow */ required: boolean; /** * Indicates whether the prompt is present in the onboarding flow. * If `false`, the prompt will only appear in the Channels & Roles tab */ in_onboarding: boolean; /** * Type of prompt */ type: GuildOnboardingPromptType;}
/** * https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-option-structure */export interface APIGuildOnboardingPromptOption { /** * Id of the prompt option */ id: Snowflake; /** * Ids for channels a member is added to when the option is selected */ channel_ids: Snowflake[]; /** * Ids for roles assigned to a member when the option is selected */ role_ids: Snowflake[]; /** * Emoji of the option */ emoji: APIPartialEmoji; /** * Title of the option */ title: string; /** * Description of the option */ description: string | null;}
/** * https://discord.com/developers/docs/resources/guild#guild-onboarding-object-onboarding-mode */export enum GuildOnboardingMode { /** * Counts only Default Channels towards constraints */ OnboardingDefault, /** * Counts Default Channels and Questions towards constraints */ OnboardingAdvanced,}
/** * https://discord.com/developers/docs/resources/guild#guild-onboarding-object-prompt-types */export enum GuildOnboardingPromptType { MultipleChoice, Dropdown,}