summary refs log tree commit diff
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2026-07-15 13:24:41 +0200
committerRory& <root@rory.gay>2026-07-15 13:24:41 +0200
commit87988c3039e7f823341aac0f9072652e13df2df2 (patch)
tree73520327de57e358bb7f626114eadd8fba05ee48
parentRemove APIWebhookArray (diff)
downloadserver-ts-87988c3039e7f823341aac0f9072652e13df2df2.tar.xz
Clean up various other schemas
-rw-r--r--assets/openapi.json1956
-rw-r--r--assets/schemas.json1971
-rw-r--r--src/api/routes/channels/preload-messages.ts6
-rw-r--r--src/api/routes/interactions/index.ts34
-rw-r--r--src/schemas/api/bots/InteractionCreateSchema.ts8
-rw-r--r--src/schemas/api/channels/Webhook.ts8
-rw-r--r--src/schemas/api/messages/Message.ts1
-rw-r--r--src/schemas/responses/EmojiSourceResponse.ts5
-rw-r--r--src/schemas/responses/GuildMessagesSearchResponse.ts4
-rw-r--r--src/schemas/responses/MemberJoinGuildResponse.ts11
-rw-r--r--src/schemas/responses/PreloadMessagesResponseSchema.ts5
11 files changed, 2408 insertions, 1601 deletions
diff --git a/assets/openapi.json b/assets/openapi.json

index ecfb2575..9c1aea00 100644 --- a/assets/openapi.json +++ b/assets/openapi.json
@@ -1609,6 +1609,465 @@ "joined" ] }, + "InstanceUserDeleteSchema": { + "$ref": "#/components/schemas/InstanceUserDeleteSchemaContent" + }, + "UserSettingsUpdateSchema": { + "type": "object", + "properties": { + "afk_timeout": { + "type": "integer" + }, + "allow_accessibility_detection": { + "type": "boolean" + }, + "animate_emoji": { + "type": "boolean" + }, + "animate_stickers": { + "type": "integer" + }, + "contact_sync_enabled": { + "type": "boolean" + }, + "convert_emoticons": { + "type": "boolean" + }, + "custom_status": { + "anyOf": [ + { + "$ref": "#/components/schemas/CustomStatus" + }, + { + "type": "null" + } + ] + }, + "default_guilds_restricted": { + "type": "boolean" + }, + "detect_platform_accounts": { + "type": "boolean" + }, + "developer_mode": { + "type": "boolean" + }, + "disable_games_tab": { + "type": "boolean" + }, + "enable_tts_command": { + "type": "boolean" + }, + "explicit_content_filter": { + "type": "integer" + }, + "friend_discovery_flags": { + "type": "integer" + }, + "friend_source_flags": { + "$ref": "#/components/schemas/FriendSourceFlags" + }, + "gateway_connected": { + "type": "boolean" + }, + "gif_auto_play": { + "type": "boolean" + }, + "guild_folders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GuildFolder" + } + }, + "guild_positions": { + "type": "array", + "items": { + "type": "string" + } + }, + "inline_attachment_media": { + "type": "boolean" + }, + "inline_embed_media": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "message_display_compact": { + "type": "boolean" + }, + "native_phone_integration_enabled": { + "type": "boolean" + }, + "render_embeds": { + "type": "boolean" + }, + "render_reactions": { + "type": "boolean" + }, + "restricted_guilds": { + "type": "array", + "items": { + "type": "string" + } + }, + "show_current_game": { + "type": "boolean" + }, + "status": { + "enum": [ + "dnd", + "idle", + "invisible", + "offline", + "online" + ], + "type": "string" + }, + "stream_notifications_enabled": { + "type": "boolean" + }, + "theme": { + "enum": [ + "dark", + "light" + ], + "type": "string" + }, + "timezone_offset": { + "type": "integer" + }, + "view_nsfw_guilds": { + "type": "boolean" + } + } + }, + "UserSettingsSchema": { + "type": "object", + "properties": { + "afk_timeout": { + "type": "integer" + }, + "allow_accessibility_detection": { + "type": "boolean" + }, + "animate_emoji": { + "type": "boolean" + }, + "animate_stickers": { + "type": "integer" + }, + "contact_sync_enabled": { + "type": "boolean" + }, + "convert_emoticons": { + "type": "boolean" + }, + "custom_status": { + "anyOf": [ + { + "$ref": "#/components/schemas/CustomStatus" + }, + { + "type": "null" + } + ] + }, + "default_guilds_restricted": { + "type": "boolean" + }, + "detect_platform_accounts": { + "type": "boolean" + }, + "developer_mode": { + "type": "boolean" + }, + "disable_games_tab": { + "type": "boolean" + }, + "enable_tts_command": { + "type": "boolean" + }, + "explicit_content_filter": { + "type": "integer" + }, + "friend_discovery_flags": { + "type": "integer" + }, + "friend_source_flags": { + "$ref": "#/components/schemas/FriendSourceFlags" + }, + "gateway_connected": { + "type": "boolean" + }, + "gif_auto_play": { + "type": "boolean" + }, + "guild_folders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GuildFolder" + } + }, + "guild_positions": { + "type": "array", + "items": { + "type": "string" + } + }, + "inline_attachment_media": { + "type": "boolean" + }, + "inline_embed_media": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "message_display_compact": { + "type": "boolean" + }, + "native_phone_integration_enabled": { + "type": "boolean" + }, + "render_embeds": { + "type": "boolean" + }, + "render_reactions": { + "type": "boolean" + }, + "restricted_guilds": { + "type": "array", + "items": { + "type": "string" + } + }, + "show_current_game": { + "type": "boolean" + }, + "status": { + "enum": [ + "dnd", + "idle", + "invisible", + "offline", + "online" + ], + "type": "string" + }, + "stream_notifications_enabled": { + "type": "boolean" + }, + "theme": { + "enum": [ + "dark", + "light" + ], + "type": "string" + }, + "timezone_offset": { + "type": "integer" + }, + "view_nsfw_guilds": { + "type": "boolean" + } + }, + "required": [ + "afk_timeout", + "allow_accessibility_detection", + "animate_emoji", + "animate_stickers", + "contact_sync_enabled", + "convert_emoticons", + "custom_status", + "default_guilds_restricted", + "detect_platform_accounts", + "developer_mode", + "disable_games_tab", + "enable_tts_command", + "explicit_content_filter", + "friend_discovery_flags", + "friend_source_flags", + "gateway_connected", + "gif_auto_play", + "guild_folders", + "guild_positions", + "inline_attachment_media", + "inline_embed_media", + "locale", + "message_display_compact", + "native_phone_integration_enabled", + "render_embeds", + "render_reactions", + "restricted_guilds", + "show_current_game", + "status", + "stream_notifications_enabled", + "theme", + "timezone_offset", + "view_nsfw_guilds" + ] + }, + "SessionsLogoutSchema": { + "type": "object", + "properties": { + "session_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "session_id_hashes": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "GetSessionsResponse": { + "type": "object", + "properties": { + "user_sessions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "id_hash": { + "type": "string" + }, + "status": { + "type": "string" + }, + "activities": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Activity" + } + } + }, + "client_status": { + "$ref": "#/components/schemas/ClientStatus" + }, + "approx_last_used_time": { + "type": "string" + }, + "client_info": { + "type": "object", + "properties": { + "client": { + "type": "string" + }, + "os": { + "type": "string" + }, + "version": { + "type": "integer" + }, + "location": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "client", + "location", + "os", + "version" + ] + }, + "last_seen": { + "type": "string", + "format": "date-time" + }, + "last_seen_ip": { + "type": "string" + }, + "last_seen_location": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "activities", + "approx_last_used_time", + "client_info", + "client_status", + "id", + "id_hash", + "status" + ] + } + } + }, + "required": [ + "user_sessions" + ] + }, + "EmojisResponse": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmojiResponse" + } + }, + "ApplicationsEmojisResponse": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EmojiResponse" + } + } + }, + "required": [ + "items" + ] + }, + "EmojiResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string", + "nullable": true + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "$ref": "#/components/schemas/PartialUser" + }, + "require_colons": { + "type": "boolean" + }, + "managed": { + "type": "boolean" + }, + "animated": { + "type": "boolean" + }, + "available": { + "type": "boolean" + } + }, + "required": [ + "id", + "name" + ] + }, "EmojiSourceResponse": { "type": "object", "properties": { @@ -1985,97 +2444,6 @@ "valid_rules_channel" ] }, - "MessageSnapshot": { - "type": "object", - "properties": { - "message": { - "type": "object", - "properties": { - "content": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "edited_timestamp": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ] - }, - "mentions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PartialUser" - } - }, - "mention_roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "attachments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PublicAttachment" - } - }, - "embeds": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Embed" - } - }, - "type": { - "$ref": "#/components/schemas/MessageType" - }, - "flags": { - "type": "integer" - }, - "components": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MessageComponent" - } - }, - "resolved": { - "type": "array", - "items": { - "type": "object", - "properties": {}, - "additionalProperties": true - } - }, - "sticker_items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Sticker" - } - } - }, - "additionalProperties": false, - "required": [ - "content", - "embeds", - "flags", - "mention_roles", - "mentions", - "timestamp", - "type" - ] - } - }, - "required": [ - "message" - ] - }, "GuildMessagesSearchResponse": { "type": "object", "properties": { @@ -2468,19 +2836,19 @@ "emojis": { "type": "array", "items": { - "$ref": "#/components/schemas/Emoji" + "$ref": "#/components/schemas/EmojiResponse" } }, "roles": { "type": "array", "items": { - "$ref": "#/components/schemas/Role" + "$ref": "#/components/schemas/RoleResponse" } }, "stickers": { "type": "array", "items": { - "$ref": "#/components/schemas/Sticker" + "$ref": "#/components/schemas/StickerResponse" } } }, @@ -2533,7 +2901,7 @@ "PreloadMessagesResponseSchema": { "type": "array", "items": { - "$ref": "#/components/schemas/Message" + "$ref": "#/components/schemas/PublicMessage" } }, "RefreshUrlsResponse": { @@ -2800,7 +3168,7 @@ "type": "string" }, "channel": { - "$ref": "#/components/schemas/Channel" + "$ref": "#/components/schemas/PublicChannel" }, "channel_id": { "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", @@ -2816,7 +3184,7 @@ "type": "string" }, "message": { - "$ref": "#/components/schemas/Message" + "$ref": "#/components/schemas/PublicMessage" }, "app_permissions": { "type": "string" @@ -3057,415 +3425,14 @@ "id" ] }, - "InstanceUserDeleteSchema": { - "$ref": "#/components/schemas/InstanceUserDeleteSchemaContent" - }, - "UserSettingsUpdateSchema": { - "type": "object", - "properties": { - "afk_timeout": { - "type": "integer" - }, - "allow_accessibility_detection": { - "type": "boolean" - }, - "animate_emoji": { - "type": "boolean" - }, - "animate_stickers": { - "type": "integer" - }, - "contact_sync_enabled": { - "type": "boolean" - }, - "convert_emoticons": { - "type": "boolean" - }, - "custom_status": { - "anyOf": [ - { - "$ref": "#/components/schemas/CustomStatus" - }, - { - "type": "null" - } - ] - }, - "default_guilds_restricted": { - "type": "boolean" - }, - "detect_platform_accounts": { - "type": "boolean" - }, - "developer_mode": { - "type": "boolean" - }, - "disable_games_tab": { - "type": "boolean" - }, - "enable_tts_command": { - "type": "boolean" - }, - "explicit_content_filter": { - "type": "integer" - }, - "friend_discovery_flags": { - "type": "integer" - }, - "friend_source_flags": { - "$ref": "#/components/schemas/FriendSourceFlags" - }, - "gateway_connected": { - "type": "boolean" - }, - "gif_auto_play": { - "type": "boolean" - }, - "guild_folders": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GuildFolder" - } - }, - "guild_positions": { - "type": "array", - "items": { - "type": "string" - } - }, - "inline_attachment_media": { - "type": "boolean" - }, - "inline_embed_media": { - "type": "boolean" - }, - "locale": { - "type": "string" - }, - "message_display_compact": { - "type": "boolean" - }, - "native_phone_integration_enabled": { - "type": "boolean" - }, - "render_embeds": { - "type": "boolean" - }, - "render_reactions": { - "type": "boolean" - }, - "restricted_guilds": { - "type": "array", - "items": { - "type": "string" - } - }, - "show_current_game": { - "type": "boolean" - }, - "status": { - "enum": [ - "dnd", - "idle", - "invisible", - "offline", - "online" - ], - "type": "string" - }, - "stream_notifications_enabled": { - "type": "boolean" - }, - "theme": { - "enum": [ - "dark", - "light" - ], - "type": "string" - }, - "timezone_offset": { - "type": "integer" - }, - "view_nsfw_guilds": { - "type": "boolean" - } - } - }, - "UserSettingsSchema": { - "type": "object", - "properties": { - "afk_timeout": { - "type": "integer" - }, - "allow_accessibility_detection": { - "type": "boolean" - }, - "animate_emoji": { - "type": "boolean" - }, - "animate_stickers": { - "type": "integer" - }, - "contact_sync_enabled": { - "type": "boolean" - }, - "convert_emoticons": { - "type": "boolean" - }, - "custom_status": { - "anyOf": [ - { - "$ref": "#/components/schemas/CustomStatus" - }, - { - "type": "null" - } - ] - }, - "default_guilds_restricted": { - "type": "boolean" - }, - "detect_platform_accounts": { - "type": "boolean" - }, - "developer_mode": { - "type": "boolean" - }, - "disable_games_tab": { - "type": "boolean" - }, - "enable_tts_command": { - "type": "boolean" - }, - "explicit_content_filter": { - "type": "integer" - }, - "friend_discovery_flags": { - "type": "integer" - }, - "friend_source_flags": { - "$ref": "#/components/schemas/FriendSourceFlags" - }, - "gateway_connected": { - "type": "boolean" - }, - "gif_auto_play": { - "type": "boolean" - }, - "guild_folders": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GuildFolder" - } - }, - "guild_positions": { - "type": "array", - "items": { - "type": "string" - } - }, - "inline_attachment_media": { - "type": "boolean" - }, - "inline_embed_media": { - "type": "boolean" - }, - "locale": { - "type": "string" - }, - "message_display_compact": { - "type": "boolean" - }, - "native_phone_integration_enabled": { - "type": "boolean" - }, - "render_embeds": { - "type": "boolean" - }, - "render_reactions": { - "type": "boolean" - }, - "restricted_guilds": { - "type": "array", - "items": { - "type": "string" - } - }, - "show_current_game": { - "type": "boolean" - }, - "status": { - "enum": [ - "dnd", - "idle", - "invisible", - "offline", - "online" - ], - "type": "string" - }, - "stream_notifications_enabled": { - "type": "boolean" - }, - "theme": { - "enum": [ - "dark", - "light" - ], - "type": "string" - }, - "timezone_offset": { - "type": "integer" - }, - "view_nsfw_guilds": { - "type": "boolean" - } - }, - "required": [ - "afk_timeout", - "allow_accessibility_detection", - "animate_emoji", - "animate_stickers", - "contact_sync_enabled", - "convert_emoticons", - "custom_status", - "default_guilds_restricted", - "detect_platform_accounts", - "developer_mode", - "disable_games_tab", - "enable_tts_command", - "explicit_content_filter", - "friend_discovery_flags", - "friend_source_flags", - "gateway_connected", - "gif_auto_play", - "guild_folders", - "guild_positions", - "inline_attachment_media", - "inline_embed_media", - "locale", - "message_display_compact", - "native_phone_integration_enabled", - "render_embeds", - "render_reactions", - "restricted_guilds", - "show_current_game", - "status", - "stream_notifications_enabled", - "theme", - "timezone_offset", - "view_nsfw_guilds" - ] - }, - "SessionsLogoutSchema": { - "type": "object", - "properties": { - "session_ids": { - "type": "array", - "items": { - "type": "string" - } - }, - "session_id_hashes": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "GetSessionsResponse": { - "type": "object", - "properties": { - "user_sessions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "id_hash": { - "type": "string" - }, - "status": { - "type": "string" - }, - "activities": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Activity" - } - } - }, - "client_status": { - "$ref": "#/components/schemas/ClientStatus" - }, - "approx_last_used_time": { - "type": "string" - }, - "client_info": { - "type": "object", - "properties": { - "client": { - "type": "string" - }, - "os": { - "type": "string" - }, - "version": { - "type": "integer" - }, - "location": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "client", - "location", - "os", - "version" - ] - }, - "last_seen": { - "type": "string", - "format": "date-time" - }, - "last_seen_ip": { - "type": "string" - }, - "last_seen_location": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "activities", - "approx_last_used_time", - "client_info", - "client_status", - "id", - "id_hash", - "status" - ] - } - } - }, - "required": [ - "user_sessions" - ] - }, "WebhookCreateResponse": { "type": "object", "properties": { "user": { - "$ref": "#/components/schemas/User" + "$ref": "#/components/schemas/PublicUser" }, "hook": { - "$ref": "#/components/schemas/Webhook" + "$ref": "#/components/schemas/WebhookResponse" } }, "required": [ @@ -4293,6 +4260,12 @@ "type": "string", "nullable": true }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + } + }, "banner": { "type": "string" }, @@ -4340,12 +4313,6 @@ "discovery_splash": { "type": "string" }, - "roles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Role" - } - }, "parent": { "type": "string" }, @@ -4503,9 +4470,6 @@ "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", "type": "string" }, - "banner": { - "type": "string" - }, "premium_since": { "type": "string", "format": "date-time" @@ -4513,6 +4477,9 @@ "avatar": { "type": "string" }, + "banner": { + "type": "string" + }, "bio": { "type": "string" }, @@ -4586,9 +4553,6 @@ "flags": { "type": "integer" }, - "banner": { - "type": "string" - }, "verified": { "type": "boolean" }, @@ -4599,6 +4563,9 @@ "avatar": { "type": "string" }, + "banner": { + "type": "string" + }, "bio": { "type": "string" }, @@ -4719,9 +4686,6 @@ "flags": { "type": "integer" }, - "banner": { - "type": "string" - }, "verified": { "type": "boolean" }, @@ -4732,6 +4696,9 @@ "avatar": { "type": "string" }, + "banner": { + "type": "string" + }, "bio": { "type": "string" }, @@ -7352,64 +7319,6 @@ } } }, - "EmojisResponse": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EmojiResponse" - } - }, - "ApplicationsEmojisResponse": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EmojiResponse" - } - } - }, - "required": [ - "items" - ] - }, - "EmojiResponse": { - "type": "object", - "properties": { - "id": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string", - "nullable": true - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "$ref": "#/components/schemas/PartialUser" - }, - "require_colons": { - "type": "boolean" - }, - "managed": { - "type": "boolean" - }, - "animated": { - "type": "boolean" - }, - "available": { - "type": "boolean" - } - }, - "required": [ - "id", - "name" - ] - }, "ApplicationCommandOption": { "type": "object", "properties": { @@ -12489,6 +12398,97 @@ "me_voted" ] }, + "MessageSnapshot": { + "type": "object", + "properties": { + "message": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "edited_timestamp": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ] + }, + "mentions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PartialUser" + } + }, + "mention_roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "attachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicAttachment" + } + }, + "embeds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Embed" + } + }, + "type": { + "$ref": "#/components/schemas/MessageType" + }, + "flags": { + "type": "integer" + }, + "components": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MessageComponent" + } + }, + "resolved": { + "type": "array", + "items": { + "type": "object", + "properties": {}, + "additionalProperties": true + } + }, + "sticker_items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Sticker" + } + } + }, + "additionalProperties": false, + "required": [ + "content", + "embeds", + "flags", + "mention_roles", + "mentions", + "timestamp", + "type" + ] + } + }, + "required": [ + "message" + ] + }, "PartialUser": { "type": "object", "properties": { @@ -13056,6 +13056,17 @@ "name" ] }, + "InstanceUserDeleteSchemaContent": { + "type": "object", + "properties": { + "reason": { + "type": "string" + }, + "persistInstanceBan": { + "type": "boolean" + } + } + }, "EmojiGuild": { "type": "object", "properties": { @@ -13082,7 +13093,7 @@ "emojis": { "type": "array", "items": { - "$ref": "#/components/schemas/Emoji" + "$ref": "#/components/schemas/EmojiResponse" } }, "premium_tier": { @@ -13160,7 +13171,7 @@ "mention_roles": { "type": "array", "items": { - "$ref": "#/components/schemas/Role" + "$ref": "#/components/schemas/RoleResponse" } }, "pinned": { @@ -13222,9 +13233,6 @@ "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", "type": "string" }, - "banner": { - "type": "string" - }, "premium_since": { "type": "string", "format": "date-time" @@ -13232,6 +13240,9 @@ "avatar": { "type": "string" }, + "banner": { + "type": "string" + }, "bio": { "type": "string" }, @@ -13292,37 +13303,34 @@ "username" ] }, - "PublicAttachment_1": { + "RoleTags": { "type": "object", "properties": { - "filename": { + "bot_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", "type": "string" }, - "size": { - "type": "integer" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - }, - "content_type": { + "integration_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", "type": "string" }, - "url": { + "subscription_listing_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", "type": "string" }, - "proxy_url": { - "type": "string" + "premium_subscriber": { + "type": "boolean", + "nullable": true + }, + "available_for_purchase": { + "type": "boolean", + "nullable": true + }, + "guild_connections": { + "type": "boolean", + "nullable": true } - }, - "required": [ - "filename", - "proxy_url", - "size", - "url" - ] + } }, "GuildVanityUrl": { "type": "object", @@ -13385,6 +13393,573 @@ "type" ] }, + "PublicMessage": { + "type": "object", + "properties": { + "id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "channel_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "lobby_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "author": { + "$ref": "#/components/schemas/PartialUser" + }, + "content": { + "type": "string" + }, + "timestamp": { + "type": "string" + }, + "edited_timestamp": { + "type": "string", + "nullable": true + }, + "tts": { + "type": "boolean" + }, + "mention_everyone": { + "type": "boolean" + }, + "mentions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PartialUser" + } + }, + "mention_roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "mention_channels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicChannel" + } + }, + "attachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PublicAttachment" + } + }, + "embeds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Embed" + } + }, + "reactions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Reaction" + } + }, + "nonce": { + "type": [ + "string", + "integer" + ] + }, + "pinned": { + "type": "boolean" + }, + "webhook_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "type": { + "type": "integer" + }, + "activity": { + "$ref": "#/components/schemas/MessageActivity" + }, + "application_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "flags": { + "type": "integer" + }, + "message_reference": { + "$ref": "#/components/schemas/MessageReference" + }, + "referenced_message": { + "anyOf": [ + { + "$ref": "#/components/schemas/PublicMessage" + }, + { + "type": "null" + } + ] + }, + "message_snapshots": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MessageSnapshot" + } + }, + "thread": { + "$ref": "#/components/schemas/PublicChannel" + }, + "components": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MessageComponent" + } + }, + "stickers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Sticker" + } + }, + "poll": { + "$ref": "#/components/schemas/Poll" + }, + "changelog_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "potions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Potion" + } + }, + "shared_client_theme": { + "$ref": "#/components/schemas/SharedClientTheme" + } + }, + "required": [ + "attachments", + "author", + "channel_id", + "components", + "content", + "edited_timestamp", + "embeds", + "flags", + "id", + "mention_everyone", + "mention_roles", + "mentions", + "pinned", + "timestamp", + "tts", + "type" + ] + }, + "PublicChannel": { + "type": "object", + "properties": { + "id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/ChannelType" + }, + "guild_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelPermissionOverwrite" + } + }, + "name": { + "type": "string", + "nullable": true + }, + "topic": { + "type": "string", + "nullable": true + }, + "nsfw": { + "type": "boolean" + }, + "last_message_id": { + "type": "string", + "nullable": true + }, + "last_pin_timestamp": { + "type": "string", + "nullable": true + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "recipients": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PartialUser" + } + }, + "recipient_flags": { + "type": "integer" + }, + "icon": { + "type": "string", + "nullable": true + }, + "managed": { + "type": "boolean" + }, + "blocked_user_warning_dismissed": { + "type": "boolean" + }, + "application_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "owner_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "owner": { + "anyOf": [ + { + "$ref": "#/components/schemas/PublicMember" + }, + { + "type": "null" + } + ] + }, + "parent_id": { + "type": "string", + "nullable": true + }, + "rtc_region": { + "type": "string", + "nullable": true + }, + "video_quality_mode": { + "type": "integer" + }, + "total_message_sent": { + "type": "integer" + }, + "message_count": { + "type": "integer" + }, + "member_count": { + "type": "integer" + }, + "member_ids_preview": { + "type": "array", + "items": { + "type": "string" + } + }, + "thread_metadata": { + "$ref": "#/components/schemas/ThreadMetadata" + }, + "member": { + "$ref": "#/components/schemas/ThreadMember" + }, + "default_auto_archive_duration": { + "type": "integer", + "nullable": true + }, + "default_thread_rate_limit_per_user": { + "type": "integer" + }, + "permissions": { + "type": "string" + }, + "flags": { + "type": "integer" + }, + "available_tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "applied_tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "default_reaction_emoji": { + "type": "string", + "nullable": true + }, + "default_forum_layout": { + "type": "integer" + }, + "default_sort_order": { + "type": "integer", + "nullable": true + }, + "default_tag_setting": { + "type": "string" + }, + "is_message_request": { + "type": "boolean" + }, + "is_message_request_timestamp": { + "type": "string", + "nullable": true + }, + "is_spam": { + "type": "boolean" + }, + "theme_color": { + "type": "integer", + "nullable": true + }, + "status": { + "type": "string", + "nullable": true + }, + "hd_streaming_until": { + "type": "string", + "nullable": true + }, + "hd_streaming_buyer_id": { + "type": "string", + "nullable": true + }, + "is_linkable": { + "type": "boolean" + }, + "is_viewable_and_writeable_by_all_members": { + "type": "boolean" + } + }, + "required": [ + "id", + "type" + ] + }, + "PublicMember": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "flags": { + "type": "integer" + }, + "nick": { + "type": "string" + }, + "joined_at": { + "type": "string", + "format": "date-time" + }, + "pending": { + "type": "boolean" + }, + "deaf": { + "type": "boolean" + }, + "mute": { + "type": "boolean" + }, + "premium_since": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "theme_colors": { + "type": "array", + "items": { + "type": "integer" + } + }, + "pronouns": { + "type": "string" + }, + "communication_disabled_until": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ] + }, + "user": { + "$ref": "#/components/schemas/PublicUser" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "banner", + "bio", + "communication_disabled_until", + "deaf", + "flags", + "guild_id", + "id", + "joined_at", + "mute", + "pending", + "roles", + "user" + ] + }, + "MessageActivity": { + "type": "object", + "properties": { + "type": { + "$ref": "#/components/schemas/MessageActivityType" + }, + "session_id": { + "type": "string" + }, + "party_id": { + "type": "string" + }, + "name_override": { + "type": "string" + }, + "icon_override": { + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "MessageActivityType": { + "type": "number", + "enum": [ + 1, + 2, + 3, + 4, + 5 + ] + }, + "MessageReference": { + "type": "object", + "properties": { + "message_id": { + "type": "string" + }, + "channel_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "fail_if_not_exists": { + "type": "boolean" + }, + "type": { + "enum": [ + 0, + 1 + ], + "type": "number" + } + } + }, + "Potion": { + "type": "object", + "properties": { + "used_by": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/PotionType" + }, + "emoji": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PartialEmoji" + } + }, + "created_at": { + "type": "string" + } + }, + "required": [ + "created_at", + "emoji", + "type", + "used_by" + ] + }, + "PotionType": { + "type": "number", + "const": 0 + }, + "SharedClientTheme": { + "type": "object", + "properties": { + "colors": { + "type": "array", + "items": { + "type": "string" + } + }, + "gradient_angle": { + "type": "integer" + }, + "base_mix": { + "type": "integer" + }, + "base_theme": { + "enum": [ + 1, + 2, + 3, + 4 + ], + "type": "number" + } + }, + "required": [ + "base_mix", + "colors", + "gradient_angle" + ] + }, "RefreshedUrl": { "type": "object", "properties": { @@ -13843,101 +14418,42 @@ "locale" ] }, - "PublicMember": { + "IntegrationGuild": { "type": "object", "properties": { "id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", "type": "string" }, - "guild_id": { - "type": "string" - }, - "flags": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "nick": { + "name": { "type": "string" }, - "joined_at": { + "icon": { "type": "string", - "format": "date-time" - }, - "pending": { - "type": "boolean" - }, - "deaf": { - "type": "boolean" - }, - "mute": { - "type": "boolean" - }, - "premium_since": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "theme_colors": { - "type": "array", - "items": { - "type": "integer" - } - }, - "pronouns": { - "type": "string" - }, - "communication_disabled_until": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ] - }, - "user": { - "$ref": "#/components/schemas/PublicUser" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } + "nullable": true } }, "required": [ - "banner", - "bio", - "communication_disabled_until", - "deaf", - "flags", - "guild_id", + "icon", "id", - "joined_at", - "mute", - "pending", - "roles", - "user" + "name" ] }, - "InstanceUserDeleteSchemaContent": { + "WebhookChannel": { "type": "object", "properties": { - "reason": { + "id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", "type": "string" }, - "persistInstanceBan": { - "type": "boolean" + "name": { + "type": "string" } - } + }, + "required": [ + "id", + "name" + ] }, "GameActivity": { "type": "object", @@ -14027,35 +14543,6 @@ 3 ] }, - "RoleTags": { - "type": "object", - "properties": { - "bot_id": { - "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", - "type": "string" - }, - "integration_id": { - "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", - "type": "string" - }, - "subscription_listing_id": { - "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", - "type": "string" - }, - "premium_subscriber": { - "type": "boolean", - "nullable": true - }, - "available_for_purchase": { - "type": "boolean", - "nullable": true - }, - "guild_connections": { - "type": "boolean", - "nullable": true - } - } - }, "GifTrendingCategory": { "type": "object", "properties": { @@ -14521,63 +15008,6 @@ "icon", "id" ] - }, - "MessageReference": { - "type": "object", - "properties": { - "message_id": { - "type": "string" - }, - "channel_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "fail_if_not_exists": { - "type": "boolean" - }, - "type": { - "enum": [ - 0, - 1 - ], - "type": "number" - } - } - }, - "MessageActivity": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/MessageActivityType" - }, - "session_id": { - "type": "string" - }, - "party_id": { - "type": "string" - }, - "name_override": { - "type": "string" - }, - "icon_override": { - "type": "string" - } - }, - "required": [ - "type" - ] - }, - "MessageActivityType": { - "type": "number", - "enum": [ - 1, - 2, - 3, - 4, - 5 - ] } } }, @@ -24158,7 +24588,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PreloadMessagesResponse" + "$ref": "#/components/schemas/PublicMessageArray" } } } diff --git a/assets/schemas.json b/assets/schemas.json
index 936ce073..bcca4610 100644 --- a/assets/schemas.json +++ b/assets/schemas.json
@@ -1708,6 +1708,483 @@ ], "$schema": "http://json-schema.org/draft-07/schema#" }, + "InstanceUserDeleteSchema": { + "$ref": "#/definitions/InstanceUserDeleteSchemaContent", + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "UserSettingsUpdateSchema": { + "type": "object", + "properties": { + "afk_timeout": { + "type": "integer" + }, + "allow_accessibility_detection": { + "type": "boolean" + }, + "animate_emoji": { + "type": "boolean" + }, + "animate_stickers": { + "type": "integer" + }, + "contact_sync_enabled": { + "type": "boolean" + }, + "convert_emoticons": { + "type": "boolean" + }, + "custom_status": { + "anyOf": [ + { + "$ref": "#/definitions/CustomStatus" + }, + { + "type": "null" + } + ] + }, + "default_guilds_restricted": { + "type": "boolean" + }, + "detect_platform_accounts": { + "type": "boolean" + }, + "developer_mode": { + "type": "boolean" + }, + "disable_games_tab": { + "type": "boolean" + }, + "enable_tts_command": { + "type": "boolean" + }, + "explicit_content_filter": { + "type": "integer" + }, + "friend_discovery_flags": { + "type": "integer" + }, + "friend_source_flags": { + "$ref": "#/definitions/FriendSourceFlags" + }, + "gateway_connected": { + "type": "boolean" + }, + "gif_auto_play": { + "type": "boolean" + }, + "guild_folders": { + "type": "array", + "items": { + "$ref": "#/definitions/GuildFolder" + } + }, + "guild_positions": { + "type": "array", + "items": { + "type": "string" + } + }, + "inline_attachment_media": { + "type": "boolean" + }, + "inline_embed_media": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "message_display_compact": { + "type": "boolean" + }, + "native_phone_integration_enabled": { + "type": "boolean" + }, + "render_embeds": { + "type": "boolean" + }, + "render_reactions": { + "type": "boolean" + }, + "restricted_guilds": { + "type": "array", + "items": { + "type": "string" + } + }, + "show_current_game": { + "type": "boolean" + }, + "status": { + "enum": [ + "dnd", + "idle", + "invisible", + "offline", + "online" + ], + "type": "string" + }, + "stream_notifications_enabled": { + "type": "boolean" + }, + "theme": { + "enum": [ + "dark", + "light" + ], + "type": "string" + }, + "timezone_offset": { + "type": "integer" + }, + "view_nsfw_guilds": { + "type": "boolean" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "UserSettingsSchema": { + "type": "object", + "properties": { + "afk_timeout": { + "type": "integer" + }, + "allow_accessibility_detection": { + "type": "boolean" + }, + "animate_emoji": { + "type": "boolean" + }, + "animate_stickers": { + "type": "integer" + }, + "contact_sync_enabled": { + "type": "boolean" + }, + "convert_emoticons": { + "type": "boolean" + }, + "custom_status": { + "anyOf": [ + { + "$ref": "#/definitions/CustomStatus" + }, + { + "type": "null" + } + ] + }, + "default_guilds_restricted": { + "type": "boolean" + }, + "detect_platform_accounts": { + "type": "boolean" + }, + "developer_mode": { + "type": "boolean" + }, + "disable_games_tab": { + "type": "boolean" + }, + "enable_tts_command": { + "type": "boolean" + }, + "explicit_content_filter": { + "type": "integer" + }, + "friend_discovery_flags": { + "type": "integer" + }, + "friend_source_flags": { + "$ref": "#/definitions/FriendSourceFlags" + }, + "gateway_connected": { + "type": "boolean" + }, + "gif_auto_play": { + "type": "boolean" + }, + "guild_folders": { + "type": "array", + "items": { + "$ref": "#/definitions/GuildFolder" + } + }, + "guild_positions": { + "type": "array", + "items": { + "type": "string" + } + }, + "inline_attachment_media": { + "type": "boolean" + }, + "inline_embed_media": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "message_display_compact": { + "type": "boolean" + }, + "native_phone_integration_enabled": { + "type": "boolean" + }, + "render_embeds": { + "type": "boolean" + }, + "render_reactions": { + "type": "boolean" + }, + "restricted_guilds": { + "type": "array", + "items": { + "type": "string" + } + }, + "show_current_game": { + "type": "boolean" + }, + "status": { + "enum": [ + "dnd", + "idle", + "invisible", + "offline", + "online" + ], + "type": "string" + }, + "stream_notifications_enabled": { + "type": "boolean" + }, + "theme": { + "enum": [ + "dark", + "light" + ], + "type": "string" + }, + "timezone_offset": { + "type": "integer" + }, + "view_nsfw_guilds": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "afk_timeout", + "allow_accessibility_detection", + "animate_emoji", + "animate_stickers", + "contact_sync_enabled", + "convert_emoticons", + "custom_status", + "default_guilds_restricted", + "detect_platform_accounts", + "developer_mode", + "disable_games_tab", + "enable_tts_command", + "explicit_content_filter", + "friend_discovery_flags", + "friend_source_flags", + "gateway_connected", + "gif_auto_play", + "guild_folders", + "guild_positions", + "inline_attachment_media", + "inline_embed_media", + "locale", + "message_display_compact", + "native_phone_integration_enabled", + "render_embeds", + "render_reactions", + "restricted_guilds", + "show_current_game", + "status", + "stream_notifications_enabled", + "theme", + "timezone_offset", + "view_nsfw_guilds" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "SessionsLogoutSchema": { + "type": "object", + "properties": { + "session_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "session_id_hashes": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GetSessionsResponse": { + "type": "object", + "properties": { + "user_sessions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "id_hash": { + "type": "string" + }, + "status": { + "type": "string" + }, + "activities": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/Activity" + } + } + }, + "client_status": { + "$ref": "#/definitions/ClientStatus" + }, + "approx_last_used_time": { + "type": "string" + }, + "client_info": { + "type": "object", + "properties": { + "client": { + "type": "string" + }, + "os": { + "type": "string" + }, + "version": { + "type": "integer" + }, + "location": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "client", + "location", + "os", + "version" + ] + }, + "last_seen": { + "type": "string", + "format": "date-time" + }, + "last_seen_ip": { + "type": "string" + }, + "last_seen_location": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "activities", + "approx_last_used_time", + "client_info", + "client_status", + "id", + "id_hash", + "status" + ] + } + } + }, + "additionalProperties": false, + "required": [ + "user_sessions" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "EmojisResponse": { + "type": "array", + "items": { + "$ref": "#/definitions/EmojiResponse" + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ApplicationsEmojisResponse": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/EmojiResponse" + } + } + }, + "additionalProperties": false, + "required": [ + "items" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "EmojiResponse": { + "type": "object", + "properties": { + "id": { + "type": [ + "null", + "string" + ] + }, + "name": { + "type": [ + "null", + "string" + ] + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "user": { + "$ref": "#/definitions/PartialUser" + }, + "require_colons": { + "type": "boolean" + }, + "managed": { + "type": "boolean" + }, + "animated": { + "type": "boolean" + }, + "available": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id", + "name" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, "EmojiSourceResponse": { "type": "object", "properties": { @@ -2127,100 +2604,6 @@ "messages", "total_results" ], - "definitions": { - "MessageSnapshot": { - "type": "object", - "properties": { - "message": { - "type": "object", - "properties": { - "content": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "edited_timestamp": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ] - }, - "mentions": { - "type": "array", - "items": { - "$ref": "#/definitions/PartialUser" - } - }, - "mention_roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "attachments": { - "type": "array", - "items": { - "$ref": "#/definitions/PublicAttachment_1" - } - }, - "embeds": { - "type": "array", - "items": { - "$ref": "#/definitions/Embed" - } - }, - "type": { - "$ref": "#/definitions/MessageType" - }, - "flags": { - "type": "integer" - }, - "components": { - "type": "array", - "items": { - "$ref": "#/definitions/MessageComponent" - } - }, - "resolved": { - "type": "array", - "items": { - "type": "object", - "properties": {}, - "additionalProperties": true - } - }, - "sticker_items": { - "type": "array", - "items": { - "$ref": "#/definitions/Sticker" - } - } - }, - "additionalProperties": false, - "required": [ - "content", - "embeds", - "flags", - "mention_roles", - "mentions", - "timestamp", - "type" - ] - } - }, - "additionalProperties": false, - "required": [ - "message" - ] - } - }, "$schema": "http://json-schema.org/draft-07/schema#" }, "GuildPruneResponse": { @@ -2623,19 +3006,19 @@ "emojis": { "type": "array", "items": { - "$ref": "#/definitions/Emoji" + "$ref": "#/definitions/EmojiResponse" } }, "roles": { "type": "array", "items": { - "$ref": "#/definitions/Role" + "$ref": "#/definitions/RoleResponse" } }, "stickers": { "type": "array", "items": { - "$ref": "#/definitions/Sticker" + "$ref": "#/definitions/StickerResponse" } } }, @@ -2694,7 +3077,7 @@ "PreloadMessagesResponseSchema": { "type": "array", "items": { - "$ref": "#/definitions/Message" + "$ref": "#/definitions/PublicMessage" }, "$schema": "http://json-schema.org/draft-07/schema#" }, @@ -2985,7 +3368,7 @@ "type": "string" }, "channel": { - "$ref": "#/definitions/Channel" + "$ref": "#/definitions/PublicChannel" }, "channel_id": { "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", @@ -3001,7 +3384,7 @@ "type": "string" }, "message": { - "$ref": "#/definitions/Message" + "$ref": "#/definitions/PublicMessage" }, "app_permissions": { "type": "string" @@ -3256,424 +3639,14 @@ ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "InstanceUserDeleteSchema": { - "$ref": "#/definitions/InstanceUserDeleteSchemaContent", - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "UserSettingsUpdateSchema": { - "type": "object", - "properties": { - "afk_timeout": { - "type": "integer" - }, - "allow_accessibility_detection": { - "type": "boolean" - }, - "animate_emoji": { - "type": "boolean" - }, - "animate_stickers": { - "type": "integer" - }, - "contact_sync_enabled": { - "type": "boolean" - }, - "convert_emoticons": { - "type": "boolean" - }, - "custom_status": { - "anyOf": [ - { - "$ref": "#/definitions/CustomStatus" - }, - { - "type": "null" - } - ] - }, - "default_guilds_restricted": { - "type": "boolean" - }, - "detect_platform_accounts": { - "type": "boolean" - }, - "developer_mode": { - "type": "boolean" - }, - "disable_games_tab": { - "type": "boolean" - }, - "enable_tts_command": { - "type": "boolean" - }, - "explicit_content_filter": { - "type": "integer" - }, - "friend_discovery_flags": { - "type": "integer" - }, - "friend_source_flags": { - "$ref": "#/definitions/FriendSourceFlags" - }, - "gateway_connected": { - "type": "boolean" - }, - "gif_auto_play": { - "type": "boolean" - }, - "guild_folders": { - "type": "array", - "items": { - "$ref": "#/definitions/GuildFolder" - } - }, - "guild_positions": { - "type": "array", - "items": { - "type": "string" - } - }, - "inline_attachment_media": { - "type": "boolean" - }, - "inline_embed_media": { - "type": "boolean" - }, - "locale": { - "type": "string" - }, - "message_display_compact": { - "type": "boolean" - }, - "native_phone_integration_enabled": { - "type": "boolean" - }, - "render_embeds": { - "type": "boolean" - }, - "render_reactions": { - "type": "boolean" - }, - "restricted_guilds": { - "type": "array", - "items": { - "type": "string" - } - }, - "show_current_game": { - "type": "boolean" - }, - "status": { - "enum": [ - "dnd", - "idle", - "invisible", - "offline", - "online" - ], - "type": "string" - }, - "stream_notifications_enabled": { - "type": "boolean" - }, - "theme": { - "enum": [ - "dark", - "light" - ], - "type": "string" - }, - "timezone_offset": { - "type": "integer" - }, - "view_nsfw_guilds": { - "type": "boolean" - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "UserSettingsSchema": { - "type": "object", - "properties": { - "afk_timeout": { - "type": "integer" - }, - "allow_accessibility_detection": { - "type": "boolean" - }, - "animate_emoji": { - "type": "boolean" - }, - "animate_stickers": { - "type": "integer" - }, - "contact_sync_enabled": { - "type": "boolean" - }, - "convert_emoticons": { - "type": "boolean" - }, - "custom_status": { - "anyOf": [ - { - "$ref": "#/definitions/CustomStatus" - }, - { - "type": "null" - } - ] - }, - "default_guilds_restricted": { - "type": "boolean" - }, - "detect_platform_accounts": { - "type": "boolean" - }, - "developer_mode": { - "type": "boolean" - }, - "disable_games_tab": { - "type": "boolean" - }, - "enable_tts_command": { - "type": "boolean" - }, - "explicit_content_filter": { - "type": "integer" - }, - "friend_discovery_flags": { - "type": "integer" - }, - "friend_source_flags": { - "$ref": "#/definitions/FriendSourceFlags" - }, - "gateway_connected": { - "type": "boolean" - }, - "gif_auto_play": { - "type": "boolean" - }, - "guild_folders": { - "type": "array", - "items": { - "$ref": "#/definitions/GuildFolder" - } - }, - "guild_positions": { - "type": "array", - "items": { - "type": "string" - } - }, - "inline_attachment_media": { - "type": "boolean" - }, - "inline_embed_media": { - "type": "boolean" - }, - "locale": { - "type": "string" - }, - "message_display_compact": { - "type": "boolean" - }, - "native_phone_integration_enabled": { - "type": "boolean" - }, - "render_embeds": { - "type": "boolean" - }, - "render_reactions": { - "type": "boolean" - }, - "restricted_guilds": { - "type": "array", - "items": { - "type": "string" - } - }, - "show_current_game": { - "type": "boolean" - }, - "status": { - "enum": [ - "dnd", - "idle", - "invisible", - "offline", - "online" - ], - "type": "string" - }, - "stream_notifications_enabled": { - "type": "boolean" - }, - "theme": { - "enum": [ - "dark", - "light" - ], - "type": "string" - }, - "timezone_offset": { - "type": "integer" - }, - "view_nsfw_guilds": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "afk_timeout", - "allow_accessibility_detection", - "animate_emoji", - "animate_stickers", - "contact_sync_enabled", - "convert_emoticons", - "custom_status", - "default_guilds_restricted", - "detect_platform_accounts", - "developer_mode", - "disable_games_tab", - "enable_tts_command", - "explicit_content_filter", - "friend_discovery_flags", - "friend_source_flags", - "gateway_connected", - "gif_auto_play", - "guild_folders", - "guild_positions", - "inline_attachment_media", - "inline_embed_media", - "locale", - "message_display_compact", - "native_phone_integration_enabled", - "render_embeds", - "render_reactions", - "restricted_guilds", - "show_current_game", - "status", - "stream_notifications_enabled", - "theme", - "timezone_offset", - "view_nsfw_guilds" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "SessionsLogoutSchema": { - "type": "object", - "properties": { - "session_ids": { - "type": "array", - "items": { - "type": "string" - } - }, - "session_id_hashes": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GetSessionsResponse": { - "type": "object", - "properties": { - "user_sessions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "id_hash": { - "type": "string" - }, - "status": { - "type": "string" - }, - "activities": { - "type": "array", - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/Activity" - } - } - }, - "client_status": { - "$ref": "#/definitions/ClientStatus" - }, - "approx_last_used_time": { - "type": "string" - }, - "client_info": { - "type": "object", - "properties": { - "client": { - "type": "string" - }, - "os": { - "type": "string" - }, - "version": { - "type": "integer" - }, - "location": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "client", - "location", - "os", - "version" - ] - }, - "last_seen": { - "type": "string", - "format": "date-time" - }, - "last_seen_ip": { - "type": "string" - }, - "last_seen_location": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "activities", - "approx_last_used_time", - "client_info", - "client_status", - "id", - "id_hash", - "status" - ] - } - } - }, - "additionalProperties": false, - "required": [ - "user_sessions" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, "WebhookCreateResponse": { "type": "object", "properties": { "user": { - "$ref": "#/definitions/User" + "$ref": "#/definitions/PublicUser" }, "hook": { - "$ref": "#/definitions/Webhook" + "$ref": "#/definitions/WebhookResponse" } }, "additionalProperties": false, @@ -4555,6 +4528,12 @@ "string" ] }, + "roles": { + "type": "array", + "items": { + "$ref": "#/definitions/Role" + } + }, "banner": { "type": "string" }, @@ -4606,12 +4585,6 @@ "discovery_splash": { "type": "string" }, - "roles": { - "type": "array", - "items": { - "$ref": "#/definitions/Role" - } - }, "parent": { "type": "string" }, @@ -4771,9 +4744,6 @@ "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", "type": "string" }, - "banner": { - "type": "string" - }, "premium_since": { "type": "string", "format": "date-time" @@ -4781,6 +4751,9 @@ "avatar": { "type": "string" }, + "banner": { + "type": "string" + }, "bio": { "type": "string" }, @@ -4856,9 +4829,6 @@ "flags": { "type": "integer" }, - "banner": { - "type": "string" - }, "verified": { "type": "boolean" }, @@ -4869,6 +4839,9 @@ "avatar": { "type": "string" }, + "banner": { + "type": "string" + }, "bio": { "type": "string" }, @@ -4993,9 +4966,6 @@ "flags": { "type": "integer" }, - "banner": { - "type": "string" - }, "verified": { "type": "boolean" }, @@ -5006,6 +4976,9 @@ "avatar": { "type": "string" }, + "banner": { + "type": "string" + }, "bio": { "type": "string" }, @@ -7832,73 +7805,6 @@ "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }, - "EmojisResponse": { - "type": "array", - "items": { - "$ref": "#/definitions/EmojiResponse" - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ApplicationsEmojisResponse": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/EmojiResponse" - } - } - }, - "additionalProperties": false, - "required": [ - "items" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "EmojiResponse": { - "type": "object", - "properties": { - "id": { - "type": [ - "null", - "string" - ] - }, - "name": { - "type": [ - "null", - "string" - ] - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "user": { - "$ref": "#/definitions/PartialUser" - }, - "require_colons": { - "type": "boolean" - }, - "managed": { - "type": "boolean" - }, - "animated": { - "type": "boolean" - }, - "available": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "id", - "name" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, "ApplicationCommandOption": { "type": "object", "properties": { @@ -13962,6 +13868,19 @@ ], "$schema": "http://json-schema.org/draft-07/schema#" }, + "InstanceUserDeleteSchemaContent": { + "type": "object", + "properties": { + "reason": { + "type": "string" + }, + "persistInstanceBan": { + "type": "boolean" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, "EmojiGuild": { "type": "object", "properties": { @@ -13992,7 +13911,7 @@ "emojis": { "type": "array", "items": { - "$ref": "#/definitions/Emoji" + "$ref": "#/definitions/EmojiResponse" } }, "premium_tier": { @@ -14074,7 +13993,7 @@ "mention_roles": { "type": "array", "items": { - "$ref": "#/definitions/Role" + "$ref": "#/definitions/RoleResponse" } }, "pinned": { @@ -14140,9 +14059,6 @@ "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", "type": "string" }, - "banner": { - "type": "string" - }, "premium_since": { "type": "string", "format": "date-time" @@ -14150,6 +14066,9 @@ "avatar": { "type": "string" }, + "banner": { + "type": "string" + }, "bio": { "type": "string" }, @@ -14212,38 +14131,41 @@ ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "PublicAttachment_1": { + "RoleTags": { "type": "object", "properties": { - "filename": { + "bot_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", "type": "string" }, - "size": { - "type": "integer" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - }, - "content_type": { + "integration_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", "type": "string" }, - "url": { + "subscription_listing_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", "type": "string" }, - "proxy_url": { - "type": "string" + "premium_subscriber": { + "type": [ + "null", + "boolean" + ] + }, + "available_for_purchase": { + "type": [ + "null", + "boolean" + ] + }, + "guild_connections": { + "type": [ + "null", + "boolean" + ] } }, "additionalProperties": false, - "required": [ - "filename", - "proxy_url", - "size", - "url" - ], "$schema": "http://json-schema.org/draft-07/schema#" }, "GuildVanityUrl": { @@ -14313,6 +14235,621 @@ ], "$schema": "http://json-schema.org/draft-07/schema#" }, + "PublicMessage": { + "type": "object", + "properties": { + "id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "channel_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "lobby_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "author": { + "$ref": "#/definitions/PartialUser" + }, + "content": { + "type": "string" + }, + "timestamp": { + "type": "string" + }, + "edited_timestamp": { + "type": [ + "null", + "string" + ] + }, + "tts": { + "type": "boolean" + }, + "mention_everyone": { + "type": "boolean" + }, + "mentions": { + "type": "array", + "items": { + "$ref": "#/definitions/PartialUser" + } + }, + "mention_roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "mention_channels": { + "type": "array", + "items": { + "$ref": "#/definitions/PublicChannel" + } + }, + "attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/PublicAttachment" + } + }, + "embeds": { + "type": "array", + "items": { + "$ref": "#/definitions/Embed" + } + }, + "reactions": { + "type": "array", + "items": { + "$ref": "#/definitions/Reaction" + } + }, + "nonce": { + "type": [ + "string", + "integer" + ] + }, + "pinned": { + "type": "boolean" + }, + "webhook_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "type": { + "type": "integer" + }, + "activity": { + "$ref": "#/definitions/MessageActivity" + }, + "application_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "flags": { + "type": "integer" + }, + "message_reference": { + "$ref": "#/definitions/MessageReference" + }, + "referenced_message": { + "anyOf": [ + { + "$ref": "#/definitions/PublicMessage" + }, + { + "type": "null" + } + ] + }, + "message_snapshots": { + "type": "array", + "items": { + "$ref": "#/definitions/MessageSnapshot" + } + }, + "thread": { + "$ref": "#/definitions/PublicChannel" + }, + "components": { + "type": "array", + "items": { + "$ref": "#/definitions/MessageComponent" + } + }, + "stickers": { + "type": "array", + "items": { + "$ref": "#/definitions/Sticker" + } + }, + "poll": { + "$ref": "#/definitions/Poll" + }, + "changelog_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "potions": { + "type": "array", + "items": { + "$ref": "#/definitions/Potion" + } + }, + "shared_client_theme": { + "$ref": "#/definitions/SharedClientTheme" + } + }, + "additionalProperties": false, + "required": [ + "attachments", + "author", + "channel_id", + "components", + "content", + "edited_timestamp", + "embeds", + "flags", + "id", + "mention_everyone", + "mention_roles", + "mentions", + "pinned", + "timestamp", + "tts", + "type" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "PublicChannel": { + "type": "object", + "properties": { + "id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelType" + }, + "guild_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "$ref": "#/definitions/ChannelPermissionOverwrite" + } + }, + "name": { + "type": [ + "null", + "string" + ] + }, + "topic": { + "type": [ + "null", + "string" + ] + }, + "nsfw": { + "type": "boolean" + }, + "last_message_id": { + "type": [ + "null", + "string" + ] + }, + "last_pin_timestamp": { + "type": [ + "null", + "string" + ] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "recipients": { + "type": "array", + "items": { + "$ref": "#/definitions/PartialUser" + } + }, + "recipient_flags": { + "type": "integer" + }, + "icon": { + "type": [ + "null", + "string" + ] + }, + "managed": { + "type": "boolean" + }, + "blocked_user_warning_dismissed": { + "type": "boolean" + }, + "application_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "owner_id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "owner": { + "anyOf": [ + { + "$ref": "#/definitions/PublicMember" + }, + { + "type": "null" + } + ] + }, + "parent_id": { + "type": [ + "null", + "string" + ] + }, + "rtc_region": { + "type": [ + "null", + "string" + ] + }, + "video_quality_mode": { + "type": "integer" + }, + "total_message_sent": { + "type": "integer" + }, + "message_count": { + "type": "integer" + }, + "member_count": { + "type": "integer" + }, + "member_ids_preview": { + "type": "array", + "items": { + "type": "string" + } + }, + "thread_metadata": { + "$ref": "#/definitions/ThreadMetadata" + }, + "member": { + "$ref": "#/definitions/ThreadMember" + }, + "default_auto_archive_duration": { + "type": [ + "null", + "integer" + ] + }, + "default_thread_rate_limit_per_user": { + "type": "integer" + }, + "permissions": { + "type": "string" + }, + "flags": { + "type": "integer" + }, + "available_tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + }, + "applied_tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "default_reaction_emoji": { + "type": [ + "null", + "string" + ] + }, + "default_forum_layout": { + "type": "integer" + }, + "default_sort_order": { + "type": [ + "null", + "integer" + ] + }, + "default_tag_setting": { + "type": "string" + }, + "is_message_request": { + "type": "boolean" + }, + "is_message_request_timestamp": { + "type": [ + "null", + "string" + ] + }, + "is_spam": { + "type": "boolean" + }, + "theme_color": { + "type": [ + "null", + "integer" + ] + }, + "status": { + "type": [ + "null", + "string" + ] + }, + "hd_streaming_until": { + "type": [ + "null", + "string" + ] + }, + "hd_streaming_buyer_id": { + "type": [ + "null", + "string" + ] + }, + "is_linkable": { + "type": "boolean" + }, + "is_viewable_and_writeable_by_all_members": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "id", + "type" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "PublicMember": { + "additionalProperties": false, + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "flags": { + "type": "integer" + }, + "nick": { + "type": "string" + }, + "joined_at": { + "type": "string", + "format": "date-time" + }, + "pending": { + "type": "boolean" + }, + "deaf": { + "type": "boolean" + }, + "mute": { + "type": "boolean" + }, + "premium_since": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "theme_colors": { + "type": "array", + "items": { + "type": "integer" + } + }, + "pronouns": { + "type": "string" + }, + "communication_disabled_until": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ] + }, + "user": { + "$ref": "#/definitions/PublicUser" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "banner", + "bio", + "communication_disabled_until", + "deaf", + "flags", + "guild_id", + "id", + "joined_at", + "mute", + "pending", + "roles", + "user" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MessageActivity": { + "type": "object", + "properties": { + "type": { + "$ref": "#/definitions/MessageActivityType" + }, + "session_id": { + "type": "string" + }, + "party_id": { + "type": "string" + }, + "name_override": { + "type": "string" + }, + "icon_override": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "type" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MessageActivityType": { + "type": "number", + "enum": [ + 1, + 2, + 3, + 4, + 5 + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MessageReference": { + "type": "object", + "properties": { + "message_id": { + "type": "string" + }, + "channel_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "fail_if_not_exists": { + "type": "boolean" + }, + "type": { + "enum": [ + 0, + 1 + ], + "type": "number" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "Potion": { + "type": "object", + "properties": { + "used_by": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", + "type": "string" + }, + "type": { + "$ref": "#/definitions/PotionType" + }, + "emoji": { + "type": "array", + "items": { + "$ref": "#/definitions/PartialEmoji" + } + }, + "created_at": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "created_at", + "emoji", + "type", + "used_by" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "PotionType": { + "type": "number", + "const": 0, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "SharedClientTheme": { + "type": "object", + "properties": { + "colors": { + "type": "array", + "items": { + "type": "string" + } + }, + "gradient_angle": { + "type": "integer" + }, + "base_mix": { + "type": "integer" + }, + "base_theme": { + "enum": [ + 1, + 2, + 3, + 4 + ], + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "base_mix", + "colors", + "gradient_angle" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, "RefreshedUrl": { "type": "object", "properties": { @@ -14802,104 +15339,47 @@ ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "PublicMember": { - "additionalProperties": false, + "IntegrationGuild": { "type": "object", "properties": { "id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", "type": "string" }, - "guild_id": { - "type": "string" - }, - "flags": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "nick": { - "type": "string" - }, - "joined_at": { - "type": "string", - "format": "date-time" - }, - "pending": { - "type": "boolean" - }, - "deaf": { - "type": "boolean" - }, - "mute": { - "type": "boolean" - }, - "premium_since": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "theme_colors": { - "type": "array", - "items": { - "type": "integer" - } - }, - "pronouns": { + "name": { "type": "string" }, - "communication_disabled_until": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } + "icon": { + "type": [ + "null", + "string" ] - }, - "user": { - "$ref": "#/definitions/PublicUser" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } } }, + "additionalProperties": false, "required": [ - "banner", - "bio", - "communication_disabled_until", - "deaf", - "flags", - "guild_id", + "icon", "id", - "joined_at", - "mute", - "pending", - "roles", - "user" + "name" ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "InstanceUserDeleteSchemaContent": { + "WebhookChannel": { "type": "object", "properties": { - "reason": { + "id": { + "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", "type": "string" }, - "persistInstanceBan": { - "type": "boolean" + "name": { + "type": "string" } }, "additionalProperties": false, + "required": [ + "id", + "name" + ], "$schema": "http://json-schema.org/draft-07/schema#" }, "GameActivity": { @@ -15000,43 +15480,6 @@ ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "RoleTags": { - "type": "object", - "properties": { - "bot_id": { - "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", - "type": "string" - }, - "integration_id": { - "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", - "type": "string" - }, - "subscription_listing_id": { - "description": "A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z\n```\nIf we have a snowflake '266241948824764416' we can represent it as binary:\n\n64 22 17 12 0\n 000000111011000111100001101001000101000000 00001 00000 000000000000\n number of ms since Discord epoch worker pid increment\n```", - "type": "string" - }, - "premium_subscriber": { - "type": [ - "null", - "boolean" - ] - }, - "available_for_purchase": { - "type": [ - "null", - "boolean" - ] - }, - "guild_connections": { - "type": [ - "null", - "boolean" - ] - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, "GifTrendingCategory": { "type": "object", "properties": { @@ -15550,67 +15993,5 @@ "id" ], "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MessageReference": { - "type": "object", - "properties": { - "message_id": { - "type": "string" - }, - "channel_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "fail_if_not_exists": { - "type": "boolean" - }, - "type": { - "enum": [ - 0, - 1 - ], - "type": "number" - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MessageActivity": { - "type": "object", - "properties": { - "type": { - "$ref": "#/definitions/MessageActivityType" - }, - "session_id": { - "type": "string" - }, - "party_id": { - "type": "string" - }, - "name_override": { - "type": "string" - }, - "icon_override": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "type" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MessageActivityType": { - "type": "number", - "enum": [ - 1, - 2, - 3, - 4, - 5 - ], - "$schema": "http://json-schema.org/draft-07/schema#" } } \ No newline at end of file diff --git a/src/api/routes/channels/preload-messages.ts b/src/api/routes/channels/preload-messages.ts
index 80e0ddf7..1a7548e7 100644 --- a/src/api/routes/channels/preload-messages.ts +++ b/src/api/routes/channels/preload-messages.ts
@@ -20,7 +20,7 @@ import { Request, Response, Router } from "express"; import { route } from "@spacebar/api/util/handlers/route"; import { Message } from "@spacebar/database"; import { Config } from "@spacebar/util"; -import { PreloadMessagesRequestSchema, PreloadMessagesResponseSchema } from "@spacebar/schemas"; +import { PreloadMessagesRequestSchema, PublicMessageArray } from "@spacebar/schemas"; const router = Router({ mergeParams: true }); @@ -30,7 +30,7 @@ router.post( requestBody: "PreloadMessagesRequestSchema", responses: { 200: { - body: "PreloadMessagesResponse", + body: "PublicMessageArray", }, 400: { body: "APIErrorResponse", @@ -62,7 +62,7 @@ router.post( // https://docs.discord.food/resources/message#preload-messages - reactions are not included in the response x.reactions = undefined; return x; - }) as unknown as PreloadMessagesResponseSchema; + }) as unknown as PublicMessageArray; return res.status(200).send(filteredMessages); }, diff --git a/src/api/routes/interactions/index.ts b/src/api/routes/interactions/index.ts
index a556c380..4875d211 100644 --- a/src/api/routes/interactions/index.ts +++ b/src/api/routes/interactions/index.ts
@@ -92,24 +92,26 @@ router.post("/", route({}), async (req: Request, res: Response) => { } if (body.type === InteractionType.MessageComponent || body.data.type === InteractionType.ModalSubmit) { - interactionData.message = await Message.findOneOrFail({ - where: { id: body.message_id, flags: undefined }, - relations: { - author: true, - webhook: true, - application: true, - mentions: true, - mention_roles: true, - mention_channels: true, - sticker_items: true, - attachments: true, - thread: { - recipients: { - user: true, + interactionData.message = ( + await Message.findOneOrFail({ + where: { id: body.message_id, flags: undefined }, + relations: { + author: true, + webhook: true, + application: true, + mentions: true, + mention_roles: true, + mention_channels: true, + sticker_items: true, + attachments: true, + thread: { + recipients: { + user: true, + }, }, }, - }, - }); + }) + ).toJSON(); } await emitEvent({ diff --git a/src/schemas/api/bots/InteractionCreateSchema.ts b/src/schemas/api/bots/InteractionCreateSchema.ts
index ff7cfaf8..110e410b 100644 --- a/src/schemas/api/bots/InteractionCreateSchema.ts +++ b/src/schemas/api/bots/InteractionCreateSchema.ts
@@ -16,9 +16,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { PublicMember, PublicUser, Snowflake, InteractionType } from "@spacebar/schemas"; -// TODO: remove entity imports -import { Channel, Message } from "@spacebar/database"; +import { PublicMember, PublicUser, Snowflake, InteractionType, PublicMessage, PublicChannel } from "@spacebar/schemas"; export interface InteractionCreateSchema { version: number; // TODO: types? @@ -30,12 +28,12 @@ export interface InteractionCreateSchema { guild?: InteractionGuild; guild_id?: Snowflake; guild_locale?: string; - channel?: Channel; + channel?: PublicChannel; channel_id?: Snowflake; member?: PublicMember; user?: PublicUser; locale?: string; - message?: Message; + message?: PublicMessage; app_permissions: string; entitlements?: object[]; // TODO: types? entitlement_sku_ids?: Snowflake[]; // DEPRECATED diff --git a/src/schemas/api/channels/Webhook.ts b/src/schemas/api/channels/Webhook.ts
index cd87d365..22f78946 100644 --- a/src/schemas/api/channels/Webhook.ts +++ b/src/schemas/api/channels/Webhook.ts
@@ -16,9 +16,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ -// TODO: remove dependency on entities -import { User, Webhook } from "@spacebar/database"; -import { IntegrationGuild, PartialUser, Snowflake } from "@spacebar/schemas"; +import { IntegrationGuild, PartialUser, PublicUser, Snowflake } from "@spacebar/schemas"; export enum WebhookType { Incoming = 1, @@ -27,8 +25,8 @@ export enum WebhookType { } export interface WebhookCreateResponse { - user: User; - hook: Webhook; + user: PublicUser; + hook: WebhookResponse; } export type WebhookArray = WebhookResponse[]; diff --git a/src/schemas/api/messages/Message.ts b/src/schemas/api/messages/Message.ts
index a6d5f162..bc2bd447 100644 --- a/src/schemas/api/messages/Message.ts +++ b/src/schemas/api/messages/Message.ts
@@ -163,6 +163,7 @@ export interface MessageSnapshot { }; } +export type PublicMessageArray = PublicMessage[]; export interface PublicMessage { id: Snowflake; channel_id: Snowflake; diff --git a/src/schemas/responses/EmojiSourceResponse.ts b/src/schemas/responses/EmojiSourceResponse.ts
index 511ba380..5a9e8fac 100644 --- a/src/schemas/responses/EmojiSourceResponse.ts +++ b/src/schemas/responses/EmojiSourceResponse.ts
@@ -16,8 +16,7 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ -// TODO: remove entity import -import { Emoji } from "@spacebar/database"; +import { EmojiResponse } from "@spacebar/schemas/api/guilds/Emoji"; export interface EmojiSourceResponse { type: "GUILD" | "APPLICATION"; @@ -32,7 +31,7 @@ export interface EmojiGuild { icon?: string | null; description?: string | null; features: string[]; - emojis: Emoji[]; + emojis: EmojiResponse[]; premium_tier: number; premium_subscription_count?: number; approximate_member_count?: number; diff --git a/src/schemas/responses/GuildMessagesSearchResponse.ts b/src/schemas/responses/GuildMessagesSearchResponse.ts
index 3cc35ce2..df582b65 100644 --- a/src/schemas/responses/GuildMessagesSearchResponse.ts +++ b/src/schemas/responses/GuildMessagesSearchResponse.ts
@@ -18,7 +18,7 @@ // TODO: remove dependency on entities import { Role } from "@spacebar/database"; -import { BaseMessageComponents, Embed, MessageType, Poll, PublicUser } from "@spacebar/schemas"; +import { BaseMessageComponents, Embed, MessageType, Poll, PublicUser, RoleResponse } from "@spacebar/schemas"; import { PublicAttachment } from "../api/messages/Attachments"; export interface GuildMessagesSearchMessage { @@ -30,7 +30,7 @@ export interface GuildMessagesSearchMessage { attachments: PublicAttachment[]; embeds: Embed[]; mentions: PublicUser[]; - mention_roles: Role[]; + mention_roles: RoleResponse[]; pinned: boolean; mention_everyone?: boolean; tts: boolean; diff --git a/src/schemas/responses/MemberJoinGuildResponse.ts b/src/schemas/responses/MemberJoinGuildResponse.ts
index d37ed865..87e50239 100644 --- a/src/schemas/responses/MemberJoinGuildResponse.ts +++ b/src/schemas/responses/MemberJoinGuildResponse.ts
@@ -16,13 +16,12 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ -// TODO: remove entity imports -import { Emoji, Role, Sticker } from "@spacebar/database"; -import { GuildCreateResponse } from "@spacebar/schemas"; +import { GuildCreateResponse, RoleResponse, StickerResponse } from "@spacebar/schemas"; +import { EmojiResponse } from "@spacebar/schemas/api/guilds/Emoji"; export interface MemberJoinGuildResponse { guild: GuildCreateResponse; - emojis: Emoji[]; - roles: Role[]; - stickers: Sticker[]; + emojis: EmojiResponse[]; + roles: RoleResponse[]; + stickers: StickerResponse[]; } diff --git a/src/schemas/responses/PreloadMessagesResponseSchema.ts b/src/schemas/responses/PreloadMessagesResponseSchema.ts
index ea3d38d9..726d934e 100644 --- a/src/schemas/responses/PreloadMessagesResponseSchema.ts +++ b/src/schemas/responses/PreloadMessagesResponseSchema.ts
@@ -16,7 +16,6 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ -// TODO: remove entity import -import { Message } from "@spacebar/database"; +import { PublicMessage } from "@spacebar/schemas"; -export type PreloadMessagesResponseSchema = Message[]; +export type PreloadMessagesResponseSchema = PublicMessage[];