discord-api-types
Version:
Discord API typings that are kept up to date for use in bot library creation.
328 lines • 11.8 kB
TypeScript
/**
* Types extracted from https://discord.com/developers/docs/resources/application
*/
import type { Permissions, Snowflake } from '../../globals';
import type { LocalizationMap } from '../common';
import type { APIPartialGuild } from './guild';
import type { ApplicationIntegrationType } from './interactions';
import type { OAuth2Scopes } from './oauth2';
import type { APITeam } from './teams';
import type { APIUser } from './user';
import type { ApplicationWebhookEventType } from './webhook';
/**
* @see {@link https://discord.com/developers/docs/resources/application#application-object}
*/
export interface APIApplication {
/**
* The id of the app
*/
id: Snowflake;
/**
* The name of the app
*/
name: string;
/**
* The icon hash of the app
*/
icon: string | null;
/**
* The description of the app
*/
description: string;
/**
* An array of rpc origin urls, if rpc is enabled
*/
rpc_origins?: string[];
/**
* When `false` only app owner can join the app's bot to guilds
*/
bot_public: boolean;
/**
* When `true` the app's bot will only join upon completion of the full oauth2 code grant flow
*/
bot_require_code_grant: boolean;
/**
* Partial user object for the bot user associated with the application
*/
bot?: APIUser;
/**
* The url of the application's terms of service
*/
terms_of_service_url?: string;
/**
* The url of the application's privacy policy
*/
privacy_policy_url?: string;
/**
* Partial user object containing info on the owner of the application
*
* @see {@link https://discord.com/developers/docs/resources/user#user-object}
*/
owner?: APIUser;
/**
* An empty string
*
* @deprecated This field will be removed in v11
* @unstable This field is no longer documented by Discord and will be removed in v11
*/
summary: '';
/**
* The hexadecimal encoded key for verification in interactions and the GameSDK's GetTicket function
*
* @see {@link https://discord.com/developers/docs/game-sdk/applications#getticket}
*/
verify_key: string;
/**
* The team this application belongs to
*
* @see {@link https://discord.com/developers/docs/topics/teams#data-models-team-object}
*/
team: APITeam | null;
/**
* If this application is a game sold on Discord, this field will be the guild to which it has been linked
*/
guild_id?: Snowflake;
/**
* A partial object of the associated guild
*/
guild?: APIPartialGuild;
/**
* If this application is a game sold on Discord, this field will be the id of the "Game SKU" that is created, if exists
*/
primary_sku_id?: Snowflake;
/**
* If this application is a game sold on Discord, this field will be the URL slug that links to the store page
*/
slug?: string;
/**
* If this application is a game sold on Discord, this field will be the hash of the image on store embeds
*/
cover_image?: string;
/**
* The application's public flags
*
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-flags}
*/
flags: ApplicationFlags;
/**
* Approximate count of guilds the application has been added to
*/
approximate_guild_count?: number;
/**
* Approximate count of users that have installed the app (authorized with `application.commands` as a scope)
*/
approximate_user_install_count?: number;
/**
* Approximate count of users that have OAuth2 authorizations for the app
*/
approximate_user_authorization_count?: number;
/**
* Array of redirect URIs for the application
*/
redirect_uris?: string[];
/**
* The interactions endpoint URL for the application
*/
interactions_endpoint_url?: string | null;
/**
* The application's role connection verification entry point,
* which when configured will render the app as a verification method in the guild role verification configuration
*/
role_connections_verification_url?: string | null;
/**
* Up to 5 tags of max 20 characters each describing the content and functionality of the application
*/
tags?: [string, string?, string?, string?, string?];
/**
* Settings for the application's default in-app authorization link, if enabled
*/
install_params?: APIApplicationInstallParams;
/**
* Default scopes and permissions for each supported installation context. Value for each key is an integration type configuration object
*/
integration_types_config?: APIApplicationIntegrationTypesConfigMap;
/**
* The application's default custom authorization link, if enabled
*/
custom_install_url?: string;
/**
* Event webhook URL for the app to receive webhook events
*/
event_webhooks_url?: string | null;
/**
* If webhook events are enabled for the app
*/
event_webhooks_status: ApplicationWebhookEventStatus;
/**
* List of webhook event types the app subscribes to
*/
event_webhooks_types?: ApplicationWebhookEventType[];
}
export interface APIApplicationInstallParams {
scopes: OAuth2Scopes[];
permissions: Permissions;
}
export interface APIApplicationIntegrationTypeConfiguration {
oauth2_install_params?: APIApplicationInstallParams;
}
export type APIApplicationIntegrationTypesConfigMap = {
[key in ApplicationIntegrationType]?: APIApplicationIntegrationTypeConfiguration;
};
/**
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-flags}
*/
export declare enum ApplicationFlags {
/**
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedReleased = 2,
/**
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
ManagedEmoji = 4,
/**
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedIAP = 8,
/**
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
GroupDMCreate = 16,
/**
* Indicates if an app uses the Auto Moderation API
*/
ApplicationAutoModerationRuleCreateBadge = 64,
/**
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
RPCHasConnected = 2048,
/**
* Intent required for bots in 100 or more servers to receive `presence_update` events
*/
GatewayPresence = 4096,
/**
* Intent required for bots in under 100 servers to receive `presence_update` events, found in Bot Settings
*/
GatewayPresenceLimited = 8192,
/**
* Intent required for bots in 100 or more servers to receive member-related events like `guild_member_add`.
*
* @see List of member-related events {@link https://discord.com/developers/docs/topics/gateway#list-of-intents | under `GUILD_MEMBERS`}
*/
GatewayGuildMembers = 16384,
/**
* Intent required for bots in under 100 servers to receive member-related events like `guild_member_add`, found in Bot Settings.
*
* @see List of member-related events {@link https://discord.com/developers/docs/topics/gateway#list-of-intents | under `GUILD_MEMBERS`}
*/
GatewayGuildMembersLimited = 32768,
/**
* Indicates unusual growth of an app that prevents verification
*/
VerificationPendingGuildLimit = 65536,
/**
* Indicates if an app is embedded within the Discord client (currently unavailable publicly)
*/
Embedded = 131072,
/**
* Intent required for bots in 100 or more servers to receive {@link https://support-dev.discord.com/hc/articles/6207308062871 | message content}
*/
GatewayMessageContent = 262144,
/**
* Intent required for bots in under 100 servers to receive {@link https://support-dev.discord.com/hc/articles/6207308062871 | message content},
* found in Bot Settings
*/
GatewayMessageContentLimited = 524288,
/**
* @unstable This application flag is currently not documented by Discord but has a known value which we will try to keep up to date.
*/
EmbeddedFirstParty = 1048576,
/**
* Indicates if an app has registered global {@link https://discord.com/developers/docs/interactions/application-commands | application commands}
*/
ApplicationCommandBadge = 8388608
}
/**
* @see {@link https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-structure}
*/
export interface APIApplicationRoleConnectionMetadata {
/**
* Type of metadata value
*/
type: ApplicationRoleConnectionMetadataType;
/**
* Dictionary key for the metadata field (must be `a-z`, `0-9`, or `_` characters; 1-50 characters)
*/
key: string;
/**
* Name of the metadata field (1-100 characters)
*/
name: string;
/**
* Translations of the name
*/
name_localizations?: LocalizationMap;
/**
* Description of the metadata field (1-200 characters)
*/
description: string;
/**
* Translations of the description
*/
description_localizations?: LocalizationMap;
}
/**
* @see {@link https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-type}
*/
export declare enum ApplicationRoleConnectionMetadataType {
/**
* The metadata value (`integer`) is less than or equal to the guild's configured value (`integer`)
*/
IntegerLessThanOrEqual = 1,
/**
* The metadata value (`integer`) is greater than or equal to the guild's configured value (`integer`)
*/
IntegerGreaterThanOrEqual = 2,
/**
* The metadata value (`integer`) is equal to the guild's configured value (`integer`)
*/
IntegerEqual = 3,
/**
* The metadata value (`integer`) is not equal to the guild's configured value (`integer`)
*/
IntegerNotEqual = 4,
/**
* The metadata value (`ISO8601 string`) is less than or equal to the guild's configured value (`integer`; days before current date)
*/
DatetimeLessThanOrEqual = 5,
/**
* The metadata value (`ISO8601 string`) is greater than or equal to the guild's configured value (`integer`; days before current date)
*/
DatetimeGreaterThanOrEqual = 6,
/**
* The metadata value (`integer`) is equal to the guild's configured value (`integer`; `1`)
*/
BooleanEqual = 7,
/**
* The metadata value (`integer`) is not equal to the guild's configured value (`integer`; `1`)
*/
BooleanNotEqual = 8
}
/**
* @see {@link https://discord.com/developers/docs/resources/application#application-object-application-event-webhook-status}
*/
export declare enum ApplicationWebhookEventStatus {
/**
* Webhook events are disabled by developer
*/
Disabled = 1,
/**
* Webhook events are enabled by developer
*/
Enabled = 2,
/**
* Webhook events are disabled by Discord, usually due to inactivity
*/
DisabledByDiscord = 3
}
//# sourceMappingURL=application.d.ts.map