refactor progress
This commit is contained in:
25
fluxer_docs/schemas/events/AUTH_SESSION_CHANGE.json
Normal file
25
fluxer_docs/schemas/events/AUTH_SESSION_CHANGE.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "AUTH_SESSION_CHANGE",
|
||||
"description": "Authentication session has changed. Sent when the user's token is rotated due to a security-sensitive operation like password change.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["PATCH /users/@me (when password is changed)"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"old_auth_session_id_hash": {
|
||||
"type": "string",
|
||||
"description": "Base64url-encoded hash of the old session ID"
|
||||
},
|
||||
"new_auth_session_id_hash": {
|
||||
"type": "string",
|
||||
"description": "Base64url-encoded hash of the new session ID"
|
||||
},
|
||||
"new_token": {
|
||||
"type": "string",
|
||||
"description": "The new authentication token"
|
||||
}
|
||||
},
|
||||
"required": ["old_auth_session_id_hash", "new_auth_session_id_hash", "new_token"]
|
||||
}
|
||||
}
|
||||
36
fluxer_docs/schemas/events/CALL_CREATE.json
Normal file
36
fluxer_docs/schemas/events/CALL_CREATE.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "CALL_CREATE",
|
||||
"description": "Sent when a DM or group DM call is started.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["gateway"],
|
||||
"note": "Dispatched to all recipients of the DM/group DM when a call is initiated",
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID of the call"
|
||||
},
|
||||
"message_id": {
|
||||
"type": "string",
|
||||
"description": "ID of the call message"
|
||||
},
|
||||
"region": {
|
||||
"type": ["string", "null"],
|
||||
"description": "Voice region for the call"
|
||||
},
|
||||
"ringing": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"description": "Array of user IDs currently being rung"
|
||||
},
|
||||
"voice_states": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "VoiceStateResponse"},
|
||||
"description": "Voice states of current participants in the call"
|
||||
}
|
||||
},
|
||||
"required": ["channel_id", "message_id", "ringing", "voice_states"]
|
||||
}
|
||||
}
|
||||
18
fluxer_docs/schemas/events/CALL_DELETE.json
Normal file
18
fluxer_docs/schemas/events/CALL_DELETE.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "CALL_DELETE",
|
||||
"description": "Sent when a DM or group DM call ends.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["gateway"],
|
||||
"note": "Dispatched to all recipients when the call terminates (all participants leave or timeout)",
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID of the ended call"
|
||||
}
|
||||
},
|
||||
"required": ["channel_id"]
|
||||
}
|
||||
}
|
||||
36
fluxer_docs/schemas/events/CALL_UPDATE.json
Normal file
36
fluxer_docs/schemas/events/CALL_UPDATE.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "CALL_UPDATE",
|
||||
"description": "Sent when a DM or group DM call is updated (participants join/leave, ringing state changes).",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["gateway"],
|
||||
"note": "Dispatched to all recipients when call state changes",
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID of the call"
|
||||
},
|
||||
"message_id": {
|
||||
"type": "string",
|
||||
"description": "ID of the call message"
|
||||
},
|
||||
"region": {
|
||||
"type": ["string", "null"],
|
||||
"description": "Voice region for the call"
|
||||
},
|
||||
"ringing": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"description": "Array of user IDs currently being rung"
|
||||
},
|
||||
"voice_states": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "VoiceStateResponse"},
|
||||
"description": "Voice states of current participants in the call"
|
||||
}
|
||||
},
|
||||
"required": ["channel_id", "message_id", "ringing", "voice_states"]
|
||||
}
|
||||
}
|
||||
17
fluxer_docs/schemas/events/CHANNEL_CREATE.json
Normal file
17
fluxer_docs/schemas/events/CHANNEL_CREATE.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "CHANNEL_CREATE",
|
||||
"description": "Sent when a new channel is created or opened for a user.",
|
||||
"scope": "channel",
|
||||
"scopeNote": "Guild channels dispatch to guild scope; DMs dispatch to presence scope for each recipient",
|
||||
"dispatchedBy": [
|
||||
"POST /guilds/:guild_id/channels",
|
||||
"POST /users/@me/channels",
|
||||
"PUT /channels/:channel_id/recipients/:user_id",
|
||||
"POST /invites/:invite_code (group DM invites)"
|
||||
],
|
||||
"payload": {
|
||||
"$ref": "ChannelResponse",
|
||||
"description": "The created or opened channel object"
|
||||
}
|
||||
}
|
||||
12
fluxer_docs/schemas/events/CHANNEL_DELETE.json
Normal file
12
fluxer_docs/schemas/events/CHANNEL_DELETE.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "CHANNEL_DELETE",
|
||||
"description": "Sent when a channel is deleted or closed for a user.",
|
||||
"scope": "channel",
|
||||
"scopeNote": "Guild channels dispatch to guild scope; DMs dispatch to presence scope for each recipient",
|
||||
"dispatchedBy": ["DELETE /channels/:channel_id", "DELETE /channels/:channel_id/recipients/:user_id"],
|
||||
"payload": {
|
||||
"$ref": "ChannelResponse",
|
||||
"description": "The deleted or closed channel object"
|
||||
}
|
||||
}
|
||||
22
fluxer_docs/schemas/events/CHANNEL_PINS_ACK.json
Normal file
22
fluxer_docs/schemas/events/CHANNEL_PINS_ACK.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "CHANNEL_PINS_ACK",
|
||||
"description": "Sent when channel pins were acknowledged by the user.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["POST /channels/:channel_id/pins/ack"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID"
|
||||
},
|
||||
"timestamp": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "Timestamp of acknowledgement"
|
||||
}
|
||||
},
|
||||
"required": ["channel_id", "timestamp"]
|
||||
}
|
||||
}
|
||||
23
fluxer_docs/schemas/events/CHANNEL_PINS_UPDATE.json
Normal file
23
fluxer_docs/schemas/events/CHANNEL_PINS_UPDATE.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "CHANNEL_PINS_UPDATE",
|
||||
"description": "Sent when a message is pinned or unpinned.",
|
||||
"scope": "channel",
|
||||
"scopeNote": "Guild channels dispatch to guild scope; DMs dispatch to presence scope",
|
||||
"dispatchedBy": ["PUT /channels/:channel_id/pins/:message_id", "DELETE /channels/:channel_id/pins/:message_id"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID"
|
||||
},
|
||||
"last_pin_timestamp": {
|
||||
"type": ["string", "null"],
|
||||
"format": "date-time",
|
||||
"description": "ISO 8601 timestamp of the last pinned message, or null if no pins remain"
|
||||
}
|
||||
},
|
||||
"required": ["channel_id", "last_pin_timestamp"]
|
||||
}
|
||||
}
|
||||
21
fluxer_docs/schemas/events/CHANNEL_RECIPIENT_ADD.json
Normal file
21
fluxer_docs/schemas/events/CHANNEL_RECIPIENT_ADD.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "CHANNEL_RECIPIENT_ADD",
|
||||
"description": "Sent when a user is added to a group DM. Dispatched to existing members only (the new user receives CHANNEL_CREATE instead).",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["PUT /channels/:channel_id/recipients/:user_id", "POST /invites/:invite_code (group DM invites)"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID of the group DM"
|
||||
},
|
||||
"user": {
|
||||
"$ref": "UserPartialResponse",
|
||||
"description": "The user that was added"
|
||||
}
|
||||
},
|
||||
"required": ["channel_id", "user"]
|
||||
}
|
||||
}
|
||||
21
fluxer_docs/schemas/events/CHANNEL_RECIPIENT_REMOVE.json
Normal file
21
fluxer_docs/schemas/events/CHANNEL_RECIPIENT_REMOVE.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "CHANNEL_RECIPIENT_REMOVE",
|
||||
"description": "Sent when a user is removed from a group DM.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["DELETE /channels/:channel_id/recipients/:user_id"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID of the group DM"
|
||||
},
|
||||
"user": {
|
||||
"$ref": "UserPartialResponse",
|
||||
"description": "The user that was removed"
|
||||
}
|
||||
},
|
||||
"required": ["channel_id", "user"]
|
||||
}
|
||||
}
|
||||
16
fluxer_docs/schemas/events/CHANNEL_UPDATE.json
Normal file
16
fluxer_docs/schemas/events/CHANNEL_UPDATE.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "CHANNEL_UPDATE",
|
||||
"description": "Sent when a channel is updated.",
|
||||
"scope": "channel",
|
||||
"scopeNote": "Guild channels dispatch to guild scope; DMs dispatch to presence scope",
|
||||
"dispatchedBy": [
|
||||
"PATCH /channels/:channel_id",
|
||||
"PUT /channels/:channel_id/permissions/:overwrite_id",
|
||||
"DELETE /channels/:channel_id/permissions/:overwrite_id"
|
||||
],
|
||||
"payload": {
|
||||
"$ref": "ChannelResponse",
|
||||
"description": "The updated channel object"
|
||||
}
|
||||
}
|
||||
18
fluxer_docs/schemas/events/CHANNEL_UPDATE_BULK.json
Normal file
18
fluxer_docs/schemas/events/CHANNEL_UPDATE_BULK.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "CHANNEL_UPDATE_BULK",
|
||||
"description": "Sent when multiple channels are updated (e.g. reordering).",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": ["PATCH /guilds/:guild_id/channels"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channels": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "ChannelResponse"},
|
||||
"description": "Array of updated channels (filtered by user permissions)"
|
||||
}
|
||||
},
|
||||
"required": ["channels"]
|
||||
}
|
||||
}
|
||||
11
fluxer_docs/schemas/events/FAVORITE_MEME_CREATE.json
Normal file
11
fluxer_docs/schemas/events/FAVORITE_MEME_CREATE.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "FAVORITE_MEME_CREATE",
|
||||
"description": "A favourite meme was added to the user's collection.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["POST /users/@me/memes", "POST /channels/:channel_id/messages/:message_id/memes"],
|
||||
"payload": {
|
||||
"$ref": "FavoriteMemeResponse",
|
||||
"description": "The created favourite meme"
|
||||
}
|
||||
}
|
||||
17
fluxer_docs/schemas/events/FAVORITE_MEME_DELETE.json
Normal file
17
fluxer_docs/schemas/events/FAVORITE_MEME_DELETE.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "FAVORITE_MEME_DELETE",
|
||||
"description": "A favourite meme was deleted from the user's collection.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["DELETE /users/@me/memes/:meme_id"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"meme_id": {
|
||||
"type": "string",
|
||||
"description": "ID of the deleted favourite meme"
|
||||
}
|
||||
},
|
||||
"required": ["meme_id"]
|
||||
}
|
||||
}
|
||||
11
fluxer_docs/schemas/events/FAVORITE_MEME_UPDATE.json
Normal file
11
fluxer_docs/schemas/events/FAVORITE_MEME_UPDATE.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "FAVORITE_MEME_UPDATE",
|
||||
"description": "A favourite meme was updated in the user's collection.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["PATCH /users/@me/memes/:meme_id"],
|
||||
"payload": {
|
||||
"$ref": "FavoriteMemeResponse",
|
||||
"description": "The updated favourite meme"
|
||||
}
|
||||
}
|
||||
25
fluxer_docs/schemas/events/GUILD_BAN_ADD.json
Normal file
25
fluxer_docs/schemas/events/GUILD_BAN_ADD.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "GUILD_BAN_ADD",
|
||||
"description": "Sent when a user is banned from a guild.",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": ["PUT /guilds/:guild_id/bans/:user_id"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"guild_id": {
|
||||
"type": "string",
|
||||
"description": "Guild ID"
|
||||
},
|
||||
"user": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {"type": "string", "description": "User ID"}
|
||||
},
|
||||
"required": ["id"],
|
||||
"description": "Partial user object"
|
||||
}
|
||||
},
|
||||
"required": ["guild_id", "user"]
|
||||
}
|
||||
}
|
||||
25
fluxer_docs/schemas/events/GUILD_BAN_REMOVE.json
Normal file
25
fluxer_docs/schemas/events/GUILD_BAN_REMOVE.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "GUILD_BAN_REMOVE",
|
||||
"description": "Sent when a user is unbanned from a guild.",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": ["DELETE /guilds/:guild_id/bans/:user_id"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"guild_id": {
|
||||
"type": "string",
|
||||
"description": "Guild ID"
|
||||
},
|
||||
"user": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {"type": "string", "description": "User ID"}
|
||||
},
|
||||
"required": ["id"],
|
||||
"description": "Partial user object"
|
||||
}
|
||||
},
|
||||
"required": ["guild_id", "user"]
|
||||
}
|
||||
}
|
||||
38
fluxer_docs/schemas/events/GUILD_CREATE.json
Normal file
38
fluxer_docs/schemas/events/GUILD_CREATE.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "GUILD_CREATE",
|
||||
"description": "Sent when a guild becomes available, when the user joins a new guild, or for lazy-loading of unavailable guilds.",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": ["POST /guilds", "POST /invites/:invite_code", "gateway"],
|
||||
"payload": {
|
||||
"$ref": "GuildResponse",
|
||||
"description": "The guild object with additional fields for full state",
|
||||
"additionalProperties": {
|
||||
"channels": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "ChannelResponse"},
|
||||
"description": "Channels in the guild"
|
||||
},
|
||||
"members": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "GuildMemberResponse"},
|
||||
"description": "Members in the guild (user field contains only id for deduplication)"
|
||||
},
|
||||
"presences": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "PresenceResponse"},
|
||||
"description": "Presences of online members"
|
||||
},
|
||||
"voice_states": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "VoiceStateResponse"},
|
||||
"description": "Voice states of members in voice channels"
|
||||
},
|
||||
"joined_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "When the current user joined the guild"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
21
fluxer_docs/schemas/events/GUILD_DELETE.json
Normal file
21
fluxer_docs/schemas/events/GUILD_DELETE.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "GUILD_DELETE",
|
||||
"description": "Sent when a guild becomes unavailable or the user is removed from a guild.",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": ["DELETE /guilds/:guild_id", "DELETE /users/@me/guilds/:guild_id", "gateway"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "Guild ID"
|
||||
},
|
||||
"unavailable": {
|
||||
"type": "boolean",
|
||||
"description": "True if the guild is unavailable due to an outage (not a leave/kick)"
|
||||
}
|
||||
},
|
||||
"required": ["id"]
|
||||
}
|
||||
}
|
||||
23
fluxer_docs/schemas/events/GUILD_EMOJIS_UPDATE.json
Normal file
23
fluxer_docs/schemas/events/GUILD_EMOJIS_UPDATE.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "GUILD_EMOJIS_UPDATE",
|
||||
"description": "Sent when guild emojis were updated.",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": [
|
||||
"POST /guilds/:guild_id/emojis",
|
||||
"POST /guilds/:guild_id/emojis/bulk",
|
||||
"PATCH /guilds/:guild_id/emojis/:emoji_id",
|
||||
"DELETE /guilds/:guild_id/emojis/:emoji_id"
|
||||
],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"emojis": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "GuildEmojiResponse"},
|
||||
"description": "Array of all emojis in the guild"
|
||||
}
|
||||
},
|
||||
"required": ["emojis"]
|
||||
}
|
||||
}
|
||||
11
fluxer_docs/schemas/events/GUILD_MEMBER_ADD.json
Normal file
11
fluxer_docs/schemas/events/GUILD_MEMBER_ADD.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "GUILD_MEMBER_ADD",
|
||||
"description": "Sent when a new user joins a guild.",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": ["POST /invites/:invite_code", "PUT /guilds/:guild_id/members/:user_id"],
|
||||
"payload": {
|
||||
"$ref": "GuildMemberResponse",
|
||||
"description": "The guild member object"
|
||||
}
|
||||
}
|
||||
25
fluxer_docs/schemas/events/GUILD_MEMBER_REMOVE.json
Normal file
25
fluxer_docs/schemas/events/GUILD_MEMBER_REMOVE.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "GUILD_MEMBER_REMOVE",
|
||||
"description": "Sent when a user is removed from a guild (leave, kick, or ban).",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": [
|
||||
"DELETE /guilds/:guild_id/members/:user_id",
|
||||
"DELETE /users/@me/guilds/:guild_id",
|
||||
"PUT /guilds/:guild_id/bans/:user_id"
|
||||
],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"user": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {"type": "string", "description": "User ID"}
|
||||
},
|
||||
"required": ["id"],
|
||||
"description": "Partial user object containing only the user ID"
|
||||
}
|
||||
},
|
||||
"required": ["user"]
|
||||
}
|
||||
}
|
||||
16
fluxer_docs/schemas/events/GUILD_MEMBER_UPDATE.json
Normal file
16
fluxer_docs/schemas/events/GUILD_MEMBER_UPDATE.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "GUILD_MEMBER_UPDATE",
|
||||
"description": "Sent when a guild member is updated.",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": [
|
||||
"PATCH /guilds/:guild_id/members/:user_id",
|
||||
"PATCH /guilds/:guild_id/members/@me",
|
||||
"PUT /guilds/:guild_id/members/:user_id/roles/:role_id",
|
||||
"DELETE /guilds/:guild_id/members/:user_id/roles/:role_id"
|
||||
],
|
||||
"payload": {
|
||||
"$ref": "GuildMemberResponse",
|
||||
"description": "The updated guild member object"
|
||||
}
|
||||
}
|
||||
17
fluxer_docs/schemas/events/GUILD_ROLE_CREATE.json
Normal file
17
fluxer_docs/schemas/events/GUILD_ROLE_CREATE.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "GUILD_ROLE_CREATE",
|
||||
"description": "Sent when a guild role is created.",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": ["POST /guilds/:guild_id/roles"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"role": {
|
||||
"$ref": "GuildRoleResponse",
|
||||
"description": "The created role"
|
||||
}
|
||||
},
|
||||
"required": ["role"]
|
||||
}
|
||||
}
|
||||
17
fluxer_docs/schemas/events/GUILD_ROLE_DELETE.json
Normal file
17
fluxer_docs/schemas/events/GUILD_ROLE_DELETE.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "GUILD_ROLE_DELETE",
|
||||
"description": "Sent when a guild role is deleted.",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": ["DELETE /guilds/:guild_id/roles/:role_id"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"role_id": {
|
||||
"type": "string",
|
||||
"description": "ID of the deleted role"
|
||||
}
|
||||
},
|
||||
"required": ["role_id"]
|
||||
}
|
||||
}
|
||||
17
fluxer_docs/schemas/events/GUILD_ROLE_UPDATE.json
Normal file
17
fluxer_docs/schemas/events/GUILD_ROLE_UPDATE.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "GUILD_ROLE_UPDATE",
|
||||
"description": "Sent when a guild role is updated.",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": ["PATCH /guilds/:guild_id/roles/:role_id"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"role": {
|
||||
"$ref": "GuildRoleResponse",
|
||||
"description": "The updated role"
|
||||
}
|
||||
},
|
||||
"required": ["role"]
|
||||
}
|
||||
}
|
||||
22
fluxer_docs/schemas/events/GUILD_ROLE_UPDATE_BULK.json
Normal file
22
fluxer_docs/schemas/events/GUILD_ROLE_UPDATE_BULK.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "GUILD_ROLE_UPDATE_BULK",
|
||||
"description": "Sent when multiple guild roles are updated (e.g. reordering or hoist position changes).",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": [
|
||||
"PATCH /guilds/:guild_id/roles",
|
||||
"PATCH /guilds/:guild_id/roles/hoist-positions",
|
||||
"DELETE /guilds/:guild_id/roles/hoist-positions"
|
||||
],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"roles": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "GuildRoleResponse"},
|
||||
"description": "The updated roles"
|
||||
}
|
||||
},
|
||||
"required": ["roles"]
|
||||
}
|
||||
}
|
||||
23
fluxer_docs/schemas/events/GUILD_STICKERS_UPDATE.json
Normal file
23
fluxer_docs/schemas/events/GUILD_STICKERS_UPDATE.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "GUILD_STICKERS_UPDATE",
|
||||
"description": "Sent when guild stickers were updated.",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": [
|
||||
"POST /guilds/:guild_id/stickers",
|
||||
"POST /guilds/:guild_id/stickers/bulk",
|
||||
"PATCH /guilds/:guild_id/stickers/:sticker_id",
|
||||
"DELETE /guilds/:guild_id/stickers/:sticker_id"
|
||||
],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"stickers": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "GuildStickerResponse"},
|
||||
"description": "Array of all stickers in the guild"
|
||||
}
|
||||
},
|
||||
"required": ["stickers"]
|
||||
}
|
||||
}
|
||||
11
fluxer_docs/schemas/events/GUILD_UPDATE.json
Normal file
11
fluxer_docs/schemas/events/GUILD_UPDATE.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "GUILD_UPDATE",
|
||||
"description": "Sent when a guild is updated.",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": ["PATCH /guilds/:guild_id"],
|
||||
"payload": {
|
||||
"$ref": "GuildResponse",
|
||||
"description": "The updated guild object"
|
||||
}
|
||||
}
|
||||
220
fluxer_docs/schemas/events/INVITE_CREATE.json
Normal file
220
fluxer_docs/schemas/events/INVITE_CREATE.json
Normal file
@@ -0,0 +1,220 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "INVITE_CREATE",
|
||||
"description": "Sent when an invite to a channel or pack is created. The payload structure varies based on invite type.",
|
||||
"scope": "guild",
|
||||
"scopeNote": "Guild scope for guild invites (MANAGE_CHANNELS permission required), presence scope for group DM invites (sent to all recipients)",
|
||||
"dispatchedBy": ["POST /channels/:channel_id/invites", "POST /packs/:pack_id/invites"],
|
||||
"payload": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"description": "Guild invite metadata response",
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string",
|
||||
"description": "The unique invite code"
|
||||
},
|
||||
"type": {
|
||||
"type": "integer",
|
||||
"const": 0,
|
||||
"description": "Invite type (0 = guild)"
|
||||
},
|
||||
"guild": {
|
||||
"$ref": "GuildPartialResponse",
|
||||
"description": "The guild this invite is for"
|
||||
},
|
||||
"channel": {
|
||||
"$ref": "ChannelPartialResponse",
|
||||
"description": "The channel this invite is for"
|
||||
},
|
||||
"inviter": {
|
||||
"$ref": "UserPartialResponse",
|
||||
"description": "User who created the invite"
|
||||
},
|
||||
"member_count": {
|
||||
"type": "integer",
|
||||
"description": "Approximate total member count of the guild"
|
||||
},
|
||||
"presence_count": {
|
||||
"type": "integer",
|
||||
"description": "Approximate online member count of the guild"
|
||||
},
|
||||
"expires_at": {
|
||||
"type": ["string", "null"],
|
||||
"format": "date-time",
|
||||
"description": "ISO8601 timestamp of when the invite expires"
|
||||
},
|
||||
"temporary": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the invite grants temporary membership"
|
||||
},
|
||||
"created_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "ISO8601 timestamp of when the invite was created"
|
||||
},
|
||||
"uses": {
|
||||
"type": "integer",
|
||||
"description": "Number of times the invite has been used"
|
||||
},
|
||||
"max_uses": {
|
||||
"type": "integer",
|
||||
"description": "Maximum number of times the invite can be used"
|
||||
},
|
||||
"max_age": {
|
||||
"type": "integer",
|
||||
"description": "Duration in seconds before the invite expires"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"code",
|
||||
"type",
|
||||
"guild",
|
||||
"channel",
|
||||
"member_count",
|
||||
"presence_count",
|
||||
"temporary",
|
||||
"created_at",
|
||||
"uses",
|
||||
"max_uses",
|
||||
"max_age"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"description": "Group DM invite metadata response",
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string",
|
||||
"description": "The unique invite code"
|
||||
},
|
||||
"type": {
|
||||
"type": "integer",
|
||||
"const": 1,
|
||||
"description": "Invite type (1 = group DM)"
|
||||
},
|
||||
"channel": {
|
||||
"$ref": "ChannelPartialResponse",
|
||||
"description": "The group DM channel this invite is for"
|
||||
},
|
||||
"inviter": {
|
||||
"$ref": "UserPartialResponse",
|
||||
"description": "User who created the invite"
|
||||
},
|
||||
"member_count": {
|
||||
"type": "integer",
|
||||
"description": "Current member count of the group DM"
|
||||
},
|
||||
"expires_at": {
|
||||
"type": ["string", "null"],
|
||||
"format": "date-time",
|
||||
"description": "ISO8601 timestamp of when the invite expires"
|
||||
},
|
||||
"temporary": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the invite grants temporary membership"
|
||||
},
|
||||
"created_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "ISO8601 timestamp of when the invite was created"
|
||||
},
|
||||
"uses": {
|
||||
"type": "integer",
|
||||
"description": "Number of times the invite has been used"
|
||||
},
|
||||
"max_uses": {
|
||||
"type": "integer",
|
||||
"description": "Maximum number of times the invite can be used"
|
||||
}
|
||||
},
|
||||
"required": ["code", "type", "channel", "member_count", "temporary", "created_at", "uses", "max_uses"]
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"description": "Pack invite metadata response (emoji or sticker pack)",
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string",
|
||||
"description": "The unique invite code"
|
||||
},
|
||||
"type": {
|
||||
"type": "integer",
|
||||
"enum": [2, 3],
|
||||
"description": "Invite type (2 = emoji pack, 3 = sticker pack)"
|
||||
},
|
||||
"pack": {
|
||||
"type": "object",
|
||||
"description": "The pack this invite is for",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "Pack ID"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Pack name"
|
||||
},
|
||||
"description": {
|
||||
"type": ["string", "null"],
|
||||
"description": "Pack description"
|
||||
},
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": ["emoji", "sticker"],
|
||||
"description": "Pack type"
|
||||
},
|
||||
"creator_id": {
|
||||
"type": "string",
|
||||
"description": "ID of the user who created the pack"
|
||||
},
|
||||
"created_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "ISO8601 timestamp of when the pack was created"
|
||||
},
|
||||
"updated_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "ISO8601 timestamp of when the pack was last updated"
|
||||
},
|
||||
"creator": {
|
||||
"$ref": "UserPartialResponse",
|
||||
"description": "The user who created the pack"
|
||||
}
|
||||
},
|
||||
"required": ["id", "name", "type", "creator_id", "created_at", "updated_at", "creator"]
|
||||
},
|
||||
"inviter": {
|
||||
"$ref": "UserPartialResponse",
|
||||
"description": "User who created the invite"
|
||||
},
|
||||
"expires_at": {
|
||||
"type": ["string", "null"],
|
||||
"format": "date-time",
|
||||
"description": "ISO8601 timestamp of when the invite expires"
|
||||
},
|
||||
"temporary": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the invite grants temporary access"
|
||||
},
|
||||
"created_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"description": "ISO8601 timestamp of when the invite was created"
|
||||
},
|
||||
"uses": {
|
||||
"type": "integer",
|
||||
"description": "Number of times the invite has been used"
|
||||
},
|
||||
"max_uses": {
|
||||
"type": "integer",
|
||||
"description": "Maximum number of times the invite can be used"
|
||||
}
|
||||
},
|
||||
"required": ["code", "type", "pack", "temporary", "created_at", "uses", "max_uses"]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
26
fluxer_docs/schemas/events/INVITE_DELETE.json
Normal file
26
fluxer_docs/schemas/events/INVITE_DELETE.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "INVITE_DELETE",
|
||||
"description": "Sent when an invite to a channel is deleted.",
|
||||
"scope": "guild",
|
||||
"scopeNote": "Guild scope for guild invites (MANAGE_CHANNELS permission required), presence scope for group DM invites (sent to all recipients)",
|
||||
"dispatchedBy": ["DELETE /invites/:invite_code"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string",
|
||||
"description": "The invite code that was deleted"
|
||||
},
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID the invite was for (present for guild and group DM invites)"
|
||||
},
|
||||
"guild_id": {
|
||||
"type": "string",
|
||||
"description": "Guild ID (present for guild invites only)"
|
||||
}
|
||||
},
|
||||
"required": ["code"]
|
||||
}
|
||||
}
|
||||
30
fluxer_docs/schemas/events/MESSAGE_ACK.json
Normal file
30
fluxer_docs/schemas/events/MESSAGE_ACK.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "MESSAGE_ACK",
|
||||
"description": "Sent when a message is acknowledged (marked as read).",
|
||||
"scope": "presence",
|
||||
"scopeNote": "Always dispatched to the user's presence scope only",
|
||||
"dispatchedBy": ["POST /channels/:channel_id/messages/:message_id/ack"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID"
|
||||
},
|
||||
"message_id": {
|
||||
"type": "string",
|
||||
"description": "ID of the last read message"
|
||||
},
|
||||
"mention_count": {
|
||||
"type": "integer",
|
||||
"description": "Remaining unread mention count after this acknowledgement"
|
||||
},
|
||||
"manual": {
|
||||
"type": "boolean",
|
||||
"description": "Whether this was a manual acknowledgement"
|
||||
}
|
||||
},
|
||||
"required": ["channel_id", "message_id", "mention_count"]
|
||||
}
|
||||
}
|
||||
24
fluxer_docs/schemas/events/MESSAGE_CREATE.json
Normal file
24
fluxer_docs/schemas/events/MESSAGE_CREATE.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "MESSAGE_CREATE",
|
||||
"description": "Sent when a message is created.",
|
||||
"scope": "channel",
|
||||
"scopeNote": "Guild channels dispatch to guild scope; DMs dispatch to presence scope; personal notes dispatch to presence scope",
|
||||
"dispatchedBy": [
|
||||
"POST /channels/:channel_id/messages",
|
||||
"POST /webhooks/:webhook_id/:token",
|
||||
"POST /webhooks/:webhook_id/:token/github",
|
||||
"POST /webhooks/:webhook_id/:token/slack",
|
||||
"POST /webhooks/:webhook_id/:token/sentry"
|
||||
],
|
||||
"payload": {
|
||||
"$ref": "MessageResponse",
|
||||
"description": "The created message object with additional channel_type field",
|
||||
"additionalProperties": {
|
||||
"channel_type": {
|
||||
"type": "integer",
|
||||
"description": "Type of the channel the message was sent in"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
34
fluxer_docs/schemas/events/MESSAGE_DELETE.json
Normal file
34
fluxer_docs/schemas/events/MESSAGE_DELETE.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "MESSAGE_DELETE",
|
||||
"description": "Sent when a message is deleted.",
|
||||
"scope": "channel",
|
||||
"scopeNote": "Guild channels dispatch to guild scope; DMs dispatch to presence scope",
|
||||
"dispatchedBy": [
|
||||
"DELETE /channels/:channel_id/messages/:message_id",
|
||||
"internal:admin_message_delete",
|
||||
"internal:bulk_delete_user_messages"
|
||||
],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "ID of the deleted message"
|
||||
},
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID"
|
||||
},
|
||||
"content": {
|
||||
"type": "string",
|
||||
"description": "Content of the deleted message (for audit purposes)"
|
||||
},
|
||||
"author_id": {
|
||||
"type": "string",
|
||||
"description": "ID of the message author"
|
||||
}
|
||||
},
|
||||
"required": ["id", "channel_id"]
|
||||
}
|
||||
}
|
||||
23
fluxer_docs/schemas/events/MESSAGE_DELETE_BULK.json
Normal file
23
fluxer_docs/schemas/events/MESSAGE_DELETE_BULK.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "MESSAGE_DELETE_BULK",
|
||||
"description": "Sent when multiple messages are deleted at once.",
|
||||
"scope": "channel",
|
||||
"scopeNote": "Guild channels dispatch to guild scope; DMs dispatch to presence scope",
|
||||
"dispatchedBy": ["POST /channels/:channel_id/messages/bulk-delete", "internal:bulk_delete_user_messages"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"ids": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"description": "IDs of the deleted messages"
|
||||
},
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID"
|
||||
}
|
||||
},
|
||||
"required": ["ids", "channel_id"]
|
||||
}
|
||||
}
|
||||
51
fluxer_docs/schemas/events/MESSAGE_REACTION_ADD.json
Normal file
51
fluxer_docs/schemas/events/MESSAGE_REACTION_ADD.json
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "MESSAGE_REACTION_ADD",
|
||||
"description": "Sent when a user adds a reaction to a message.",
|
||||
"scope": "channel",
|
||||
"scopeNote": "Guild channels dispatch to guild scope; DMs dispatch to presence scope.",
|
||||
"dispatchedBy": ["PUT /channels/:channel_id/messages/:message_id/reactions/:emoji/@me"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID"
|
||||
},
|
||||
"message_id": {
|
||||
"type": "string",
|
||||
"description": "Message ID"
|
||||
},
|
||||
"emoji": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {"type": "string", "description": "Emoji ID (only present for custom emoji)"},
|
||||
"name": {"type": "string", "description": "Emoji name (unicode character or custom emoji name)"},
|
||||
"animated": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the emoji is animated (only present for custom emoji)"
|
||||
}
|
||||
},
|
||||
"required": ["name"],
|
||||
"description": "The emoji used"
|
||||
},
|
||||
"user_id": {
|
||||
"type": "string",
|
||||
"description": "ID of the user who reacted"
|
||||
},
|
||||
"session_id": {
|
||||
"type": "string",
|
||||
"description": "Session ID of the user who reacted"
|
||||
},
|
||||
"guild_id": {
|
||||
"type": "string",
|
||||
"description": "Guild ID (only present for guild channels)"
|
||||
},
|
||||
"member": {
|
||||
"$ref": "GuildMemberResponse",
|
||||
"description": "Guild member object (only present for guild channels)"
|
||||
}
|
||||
},
|
||||
"required": ["channel_id", "message_id", "emoji", "user_id"]
|
||||
}
|
||||
}
|
||||
57
fluxer_docs/schemas/events/MESSAGE_REACTION_ADD_MANY.json
Normal file
57
fluxer_docs/schemas/events/MESSAGE_REACTION_ADD_MANY.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "MESSAGE_REACTION_ADD_MANY",
|
||||
"description": "Sent when multiple reaction add events are batched together within a debounce window. Only dispatched to sessions that set the DEBOUNCE_MESSAGE_REACTIONS identify flag. When only a single reaction occurs within the window, a regular MESSAGE_REACTION_ADD is sent instead.",
|
||||
"scope": "channel",
|
||||
"scopeNote": "Guild channels dispatch to guild scope; DMs dispatch to presence scope. This is a virtual event synthesised by the gateway from buffered MESSAGE_REACTION_ADD events.",
|
||||
"dispatchedBy": ["PUT /channels/:channel_id/messages/:message_id/reactions/:emoji/@me"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID"
|
||||
},
|
||||
"message_id": {
|
||||
"type": "string",
|
||||
"description": "Message ID"
|
||||
},
|
||||
"guild_id": {
|
||||
"type": "string",
|
||||
"description": "Guild ID (only present for guild channels)"
|
||||
},
|
||||
"reactions": {
|
||||
"type": "array",
|
||||
"description": "Array of individual reaction entries",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"user_id": {
|
||||
"type": "string",
|
||||
"description": "ID of the user who reacted"
|
||||
},
|
||||
"emoji": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {"type": "string", "description": "Emoji ID (only present for custom emoji)"},
|
||||
"name": {"type": "string", "description": "Emoji name (unicode character or custom emoji name)"},
|
||||
"animated": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the emoji is animated (only present for custom emoji)"
|
||||
}
|
||||
},
|
||||
"required": ["name"],
|
||||
"description": "The emoji used"
|
||||
},
|
||||
"member": {
|
||||
"$ref": "GuildMemberResponse",
|
||||
"description": "Guild member object (only present for guild channels)"
|
||||
}
|
||||
},
|
||||
"required": ["user_id", "emoji"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": ["channel_id", "message_id", "reactions"]
|
||||
}
|
||||
}
|
||||
50
fluxer_docs/schemas/events/MESSAGE_REACTION_REMOVE.json
Normal file
50
fluxer_docs/schemas/events/MESSAGE_REACTION_REMOVE.json
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "MESSAGE_REACTION_REMOVE",
|
||||
"description": "Sent when a user removes a reaction from a message.",
|
||||
"scope": "channel",
|
||||
"scopeNote": "Guild channels dispatch to guild scope; DMs dispatch to presence scope.",
|
||||
"dispatchedBy": [
|
||||
"DELETE /channels/:channel_id/messages/:message_id/reactions/:emoji/@me",
|
||||
"DELETE /channels/:channel_id/messages/:message_id/reactions/:emoji/:user_id"
|
||||
],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID"
|
||||
},
|
||||
"message_id": {
|
||||
"type": "string",
|
||||
"description": "Message ID"
|
||||
},
|
||||
"emoji": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {"type": "string", "description": "Emoji ID (only present for custom emoji)"},
|
||||
"name": {"type": "string", "description": "Emoji name (unicode character or custom emoji name)"}
|
||||
},
|
||||
"required": ["name"],
|
||||
"description": "The emoji that was removed"
|
||||
},
|
||||
"user_id": {
|
||||
"type": "string",
|
||||
"description": "ID of the user whose reaction was removed"
|
||||
},
|
||||
"session_id": {
|
||||
"type": "string",
|
||||
"description": "Session ID of the user whose reaction was removed"
|
||||
},
|
||||
"guild_id": {
|
||||
"type": "string",
|
||||
"description": "Guild ID (only present for guild channels)"
|
||||
},
|
||||
"member": {
|
||||
"$ref": "GuildMemberResponse",
|
||||
"description": "Guild member object (only present for guild channels)"
|
||||
}
|
||||
},
|
||||
"required": ["channel_id", "message_id", "emoji", "user_id"]
|
||||
}
|
||||
}
|
||||
22
fluxer_docs/schemas/events/MESSAGE_REACTION_REMOVE_ALL.json
Normal file
22
fluxer_docs/schemas/events/MESSAGE_REACTION_REMOVE_ALL.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "MESSAGE_REACTION_REMOVE_ALL",
|
||||
"description": "Sent when all reactions are removed from a message.",
|
||||
"scope": "channel",
|
||||
"scopeNote": "Guild channels dispatch to guild scope; DMs dispatch to presence scope.",
|
||||
"dispatchedBy": ["DELETE /channels/:channel_id/messages/:message_id/reactions"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID"
|
||||
},
|
||||
"message_id": {
|
||||
"type": "string",
|
||||
"description": "Message ID"
|
||||
}
|
||||
},
|
||||
"required": ["channel_id", "message_id"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "MESSAGE_REACTION_REMOVE_EMOJI",
|
||||
"description": "Sent when all reactions for a specific emoji are removed from a message.",
|
||||
"scope": "channel",
|
||||
"scopeNote": "Guild channels dispatch to guild scope; DMs dispatch to presence scope.",
|
||||
"dispatchedBy": ["DELETE /channels/:channel_id/messages/:message_id/reactions/:emoji"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID"
|
||||
},
|
||||
"message_id": {
|
||||
"type": "string",
|
||||
"description": "Message ID"
|
||||
},
|
||||
"emoji": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {"type": "string", "description": "Emoji ID (only present for custom emoji)"},
|
||||
"name": {"type": "string", "description": "Emoji name (unicode character or custom emoji name)"}
|
||||
},
|
||||
"required": ["name"],
|
||||
"description": "The emoji that was removed"
|
||||
}
|
||||
},
|
||||
"required": ["channel_id", "message_id", "emoji"]
|
||||
}
|
||||
}
|
||||
17
fluxer_docs/schemas/events/MESSAGE_UPDATE.json
Normal file
17
fluxer_docs/schemas/events/MESSAGE_UPDATE.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "MESSAGE_UPDATE",
|
||||
"description": "Sent when a message is edited or updated (e.g., embeds added).",
|
||||
"scope": "channel",
|
||||
"scopeNote": "Guild channels dispatch to guild scope; DMs dispatch to presence scope",
|
||||
"dispatchedBy": [
|
||||
"PATCH /channels/:channel_id/messages/:message_id",
|
||||
"internal:embed_processing",
|
||||
"internal:pin_update",
|
||||
"internal:reaction_update"
|
||||
],
|
||||
"payload": {
|
||||
"$ref": "MessageResponse",
|
||||
"description": "The updated message object"
|
||||
}
|
||||
}
|
||||
49
fluxer_docs/schemas/events/PRESENCE_UPDATE.json
Normal file
49
fluxer_docs/schemas/events/PRESENCE_UPDATE.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "PRESENCE_UPDATE",
|
||||
"description": "User presence was updated. Sent when a friend's or group DM member's status changes.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["gateway"],
|
||||
"note": "Dispatched to users who are subscribed to the target user's presence (friends, group DM members)",
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"user": {
|
||||
"type": "object",
|
||||
"description": "Normalized user object",
|
||||
"properties": {
|
||||
"id": {"type": "string", "description": "User ID"},
|
||||
"username": {"type": "string", "description": "Username"},
|
||||
"display_name": {"type": ["string", "null"], "description": "Display name"},
|
||||
"avatar": {"type": ["string", "null"], "description": "Avatar hash"},
|
||||
"bot": {"type": "boolean", "description": "Whether user is a bot"}
|
||||
},
|
||||
"required": ["id"]
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"enum": ["online", "idle", "dnd", "offline", "invisible"],
|
||||
"description": "User's current status"
|
||||
},
|
||||
"mobile": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the user has any mobile session active"
|
||||
},
|
||||
"afk": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the user is marked as AFK"
|
||||
},
|
||||
"custom_status": {
|
||||
"type": ["object", "null"],
|
||||
"description": "User's custom status (null if offline/invisible or not set)",
|
||||
"properties": {
|
||||
"text": {"type": ["string", "null"], "description": "Custom status text"},
|
||||
"emoji_id": {"type": ["string", "null"], "description": "Custom emoji ID"},
|
||||
"emoji_name": {"type": ["string", "null"], "description": "Emoji name (for unicode emoji)"},
|
||||
"expires_at": {"type": ["string", "null"], "description": "ISO8601 timestamp when status expires"}
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": ["user", "status", "mobile", "afk", "custom_status"]
|
||||
}
|
||||
}
|
||||
121
fluxer_docs/schemas/events/READY.json
Normal file
121
fluxer_docs/schemas/events/READY.json
Normal file
@@ -0,0 +1,121 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "READY",
|
||||
"description": "Contains initial state information sent after identifying. This is the first event received after a successful IDENTIFY.",
|
||||
"scope": "session",
|
||||
"dispatchedBy": ["gateway"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"version": {
|
||||
"type": "integer",
|
||||
"description": "Gateway protocol version"
|
||||
},
|
||||
"session_id": {
|
||||
"type": "string",
|
||||
"description": "Session ID for resuming"
|
||||
},
|
||||
"user": {
|
||||
"$ref": "UserPrivateResponse",
|
||||
"description": "The current user"
|
||||
},
|
||||
"guilds": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "GuildReadyResponse"},
|
||||
"description": "Guilds the user is in (includes full guild data for non-bots, unavailable placeholders for bots)"
|
||||
},
|
||||
"private_channels": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "ChannelResponse"},
|
||||
"description": "DM and group DM channels"
|
||||
},
|
||||
"relationships": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {"type": "string", "description": "User ID of the related user"},
|
||||
"type": {
|
||||
"type": "integer",
|
||||
"description": "Relationship type (1=friend, 2=blocked, 3=incoming_request, 4=outgoing_request)"
|
||||
},
|
||||
"since": {"type": "string", "description": "ISO8601 timestamp of when the relationship was established"},
|
||||
"nickname": {"type": "string", "nullable": true, "description": "Custom nickname for the related user"}
|
||||
},
|
||||
"required": ["id", "type"],
|
||||
"description": "Relationship with user field stripped (user data in users array)"
|
||||
},
|
||||
"description": "User relationships (friends, blocked, pending) with user objects stripped"
|
||||
},
|
||||
"users": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "UserPartialResponse"},
|
||||
"description": "Users referenced by relationships, channels, and guild members (deduped)"
|
||||
},
|
||||
"presences": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "PresenceResponse"},
|
||||
"description": "Presences of friends and group DM recipients"
|
||||
},
|
||||
"sessions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"session_id": {
|
||||
"type": "string",
|
||||
"description": "Session identifier ('all' for aggregated, or specific ID)"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"enum": ["online", "offline", "idle", "dnd", "invisible"],
|
||||
"description": "Session status"
|
||||
},
|
||||
"mobile": {"type": "boolean", "description": "Whether the session is from a mobile device"},
|
||||
"afk": {"type": "boolean", "description": "Whether the session is AFK"}
|
||||
},
|
||||
"required": ["session_id", "status", "mobile", "afk"]
|
||||
},
|
||||
"description": "Active gateway sessions for the current user"
|
||||
},
|
||||
"user_settings": {
|
||||
"$ref": "UserSettingsResponse",
|
||||
"description": "User settings"
|
||||
},
|
||||
"user_guild_settings": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "UserGuildSettingsResponse"},
|
||||
"description": "Per-guild notification settings"
|
||||
},
|
||||
"read_states": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "ReadStateResponse"},
|
||||
"description": "Channel read state (last read message IDs)"
|
||||
},
|
||||
"notes": {
|
||||
"type": "object",
|
||||
"additionalProperties": {"type": "string"},
|
||||
"description": "User notes keyed by user ID"
|
||||
},
|
||||
"country_code": {
|
||||
"type": "string",
|
||||
"description": "Two-letter country code based on IP geolocation"
|
||||
},
|
||||
"pinned_dms": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"description": "Array of pinned DM channel IDs"
|
||||
},
|
||||
"favorite_memes": {
|
||||
"type": "array",
|
||||
"items": {"$ref": "FavoriteMemeResponse"},
|
||||
"description": "User's favourite memes"
|
||||
},
|
||||
"auth_session_id_hash": {
|
||||
"type": "string",
|
||||
"description": "Hash of the authentication session ID"
|
||||
}
|
||||
},
|
||||
"required": ["version", "session_id", "user", "guilds"]
|
||||
}
|
||||
}
|
||||
17
fluxer_docs/schemas/events/RECENT_MENTION_DELETE.json
Normal file
17
fluxer_docs/schemas/events/RECENT_MENTION_DELETE.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "RECENT_MENTION_DELETE",
|
||||
"description": "A recent mention was deleted from the user's mentions list.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["DELETE /users/@me/mentions/:message_id"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"message_id": {
|
||||
"type": "string",
|
||||
"description": "ID of the deleted mention's message"
|
||||
}
|
||||
},
|
||||
"required": ["message_id"]
|
||||
}
|
||||
}
|
||||
15
fluxer_docs/schemas/events/RELATIONSHIP_ADD.json
Normal file
15
fluxer_docs/schemas/events/RELATIONSHIP_ADD.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "RELATIONSHIP_ADD",
|
||||
"description": "Sent when a user relationship is added (friend request sent/received, blocked).",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": [
|
||||
"PUT /users/@me/relationships/:user_id",
|
||||
"POST /users/@me/relationships",
|
||||
"POST /users/@me/relationships/:user_id"
|
||||
],
|
||||
"payload": {
|
||||
"$ref": "RelationshipResponse",
|
||||
"description": "The relationship object"
|
||||
}
|
||||
}
|
||||
18
fluxer_docs/schemas/events/RELATIONSHIP_REMOVE.json
Normal file
18
fluxer_docs/schemas/events/RELATIONSHIP_REMOVE.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "RELATIONSHIP_REMOVE",
|
||||
"description": "Sent when a user relationship is removed (unfriended, unblocked, request cancelled, or replaced by a block).",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["DELETE /users/@me/relationships/:user_id", "PUT /users/@me/relationships/:user_id"],
|
||||
"dispatchedByNote": "Also dispatched via PUT when blocking a user replaces an existing friend or pending relationship",
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "ID of the user whose relationship was removed"
|
||||
}
|
||||
},
|
||||
"required": ["id"]
|
||||
}
|
||||
}
|
||||
11
fluxer_docs/schemas/events/RELATIONSHIP_UPDATE.json
Normal file
11
fluxer_docs/schemas/events/RELATIONSHIP_UPDATE.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "RELATIONSHIP_UPDATE",
|
||||
"description": "Sent when a user relationship is updated (friend request accepted, nickname changed).",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["PUT /users/@me/relationships/:user_id", "PATCH /users/@me/relationships/:user_id"],
|
||||
"payload": {
|
||||
"$ref": "RelationshipResponse",
|
||||
"description": "The updated relationship object"
|
||||
}
|
||||
}
|
||||
11
fluxer_docs/schemas/events/RESUMED.json
Normal file
11
fluxer_docs/schemas/events/RESUMED.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "RESUMED",
|
||||
"description": "Response to a successful resume request. The client should replay any missed events from the buffer.",
|
||||
"scope": "session",
|
||||
"dispatchedBy": ["gateway"],
|
||||
"payload": {
|
||||
"type": "null",
|
||||
"description": "Null payload; presence of this event indicates successful resume"
|
||||
}
|
||||
}
|
||||
11
fluxer_docs/schemas/events/SAVED_MESSAGE_CREATE.json
Normal file
11
fluxer_docs/schemas/events/SAVED_MESSAGE_CREATE.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "SAVED_MESSAGE_CREATE",
|
||||
"description": "A message was saved to the user's saved messages.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["POST /users/@me/saved-messages"],
|
||||
"payload": {
|
||||
"$ref": "MessageResponse",
|
||||
"description": "The saved message"
|
||||
}
|
||||
}
|
||||
17
fluxer_docs/schemas/events/SAVED_MESSAGE_DELETE.json
Normal file
17
fluxer_docs/schemas/events/SAVED_MESSAGE_DELETE.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "SAVED_MESSAGE_DELETE",
|
||||
"description": "A saved message was deleted from the user's saved messages.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["DELETE /users/@me/saved-messages/:message_id"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"message_id": {
|
||||
"type": "string",
|
||||
"description": "ID of the deleted saved message"
|
||||
}
|
||||
},
|
||||
"required": ["message_id"]
|
||||
}
|
||||
}
|
||||
34
fluxer_docs/schemas/events/SESSIONS_REPLACE.json
Normal file
34
fluxer_docs/schemas/events/SESSIONS_REPLACE.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "SESSIONS_REPLACE",
|
||||
"description": "User sessions have been replaced. Sent when sessions are updated across devices.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["gateway"],
|
||||
"payload": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"session_id": {
|
||||
"type": "string",
|
||||
"description": "Session identifier ('all' for aggregated status, or specific session ID)"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"enum": ["online", "offline", "idle", "dnd", "invisible"],
|
||||
"description": "Current status of the session"
|
||||
},
|
||||
"mobile": {
|
||||
"type": "boolean",
|
||||
"description": "Whether this session is from a mobile device"
|
||||
},
|
||||
"afk": {
|
||||
"type": "boolean",
|
||||
"description": "Whether this session is AFK"
|
||||
}
|
||||
},
|
||||
"required": ["session_id", "status", "mobile", "afk"]
|
||||
},
|
||||
"description": "Array of session status entries. Includes an 'all' entry with aggregated status plus individual session entries."
|
||||
}
|
||||
}
|
||||
34
fluxer_docs/schemas/events/TYPING_START.json
Normal file
34
fluxer_docs/schemas/events/TYPING_START.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "TYPING_START",
|
||||
"description": "Sent when a user starts typing in a channel.",
|
||||
"scope": "channel",
|
||||
"scopeNote": "Guild channels dispatch to guild scope; DMs dispatch to presence scope. May be disabled per-guild via guild settings.",
|
||||
"dispatchedBy": ["POST /channels/:channel_id/typing"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID"
|
||||
},
|
||||
"user_id": {
|
||||
"type": "string",
|
||||
"description": "ID of the user who started typing"
|
||||
},
|
||||
"timestamp": {
|
||||
"type": "integer",
|
||||
"description": "Unix timestamp (milliseconds) when typing started"
|
||||
},
|
||||
"guild_id": {
|
||||
"type": "string",
|
||||
"description": "Guild ID (only present for guild channels)"
|
||||
},
|
||||
"member": {
|
||||
"$ref": "GuildMemberResponse",
|
||||
"description": "Guild member object (only present for guild channels)"
|
||||
}
|
||||
},
|
||||
"required": ["channel_id", "user_id", "timestamp"]
|
||||
}
|
||||
}
|
||||
11
fluxer_docs/schemas/events/USER_GUILD_SETTINGS_UPDATE.json
Normal file
11
fluxer_docs/schemas/events/USER_GUILD_SETTINGS_UPDATE.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "USER_GUILD_SETTINGS_UPDATE",
|
||||
"description": "User guild settings have been updated.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["PATCH /users/@me/guilds/:guild_id/settings"],
|
||||
"payload": {
|
||||
"$ref": "UserGuildSettingsResponse",
|
||||
"description": "The updated guild settings for the user"
|
||||
}
|
||||
}
|
||||
21
fluxer_docs/schemas/events/USER_NOTE_UPDATE.json
Normal file
21
fluxer_docs/schemas/events/USER_NOTE_UPDATE.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "USER_NOTE_UPDATE",
|
||||
"description": "User note for a target user has been updated.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["PUT /users/@me/notes/:user_id"],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "User ID the note is about"
|
||||
},
|
||||
"note": {
|
||||
"type": "string",
|
||||
"description": "The note content"
|
||||
}
|
||||
},
|
||||
"required": ["id", "note"]
|
||||
}
|
||||
}
|
||||
12
fluxer_docs/schemas/events/USER_PINNED_DMS_UPDATE.json
Normal file
12
fluxer_docs/schemas/events/USER_PINNED_DMS_UPDATE.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "USER_PINNED_DMS_UPDATE",
|
||||
"description": "User pinned DMs have been updated.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["PUT /users/@me/channels/:channel_id/pin", "DELETE /users/@me/channels/:channel_id/pin"],
|
||||
"payload": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"description": "Array of pinned channel IDs (snowflakes as strings)"
|
||||
}
|
||||
}
|
||||
11
fluxer_docs/schemas/events/USER_SETTINGS_UPDATE.json
Normal file
11
fluxer_docs/schemas/events/USER_SETTINGS_UPDATE.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "USER_SETTINGS_UPDATE",
|
||||
"description": "User settings have been updated.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["PATCH /users/@me/settings"],
|
||||
"payload": {
|
||||
"$ref": "UserSettingsResponse",
|
||||
"description": "The updated user settings"
|
||||
}
|
||||
}
|
||||
11
fluxer_docs/schemas/events/USER_UPDATE.json
Normal file
11
fluxer_docs/schemas/events/USER_UPDATE.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "USER_UPDATE",
|
||||
"description": "Properties about the current user changed.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["PATCH /users/@me", "PATCH /users/@me/profile"],
|
||||
"payload": {
|
||||
"$ref": "UserPrivateResponse",
|
||||
"description": "The updated user object"
|
||||
}
|
||||
}
|
||||
34
fluxer_docs/schemas/events/VOICE_SERVER_UPDATE.json
Normal file
34
fluxer_docs/schemas/events/VOICE_SERVER_UPDATE.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "VOICE_SERVER_UPDATE",
|
||||
"description": "Sent when the voice server for a guild or call is updated.",
|
||||
"scope": "presence",
|
||||
"dispatchedBy": ["gateway"],
|
||||
"note": "Sent after joining a voice channel or when the voice server changes. Includes channel_id for both guild voice and DM calls.",
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"token": {
|
||||
"type": "string",
|
||||
"description": "Voice connection token for authenticating with the voice server"
|
||||
},
|
||||
"endpoint": {
|
||||
"type": "string",
|
||||
"description": "Voice server host (hostname:port)"
|
||||
},
|
||||
"connection_id": {
|
||||
"type": "string",
|
||||
"description": "Connection ID for this voice connection"
|
||||
},
|
||||
"guild_id": {
|
||||
"type": "string",
|
||||
"description": "Guild ID (present for guild voice channels)"
|
||||
},
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID"
|
||||
}
|
||||
},
|
||||
"required": ["token", "endpoint", "connection_id"]
|
||||
}
|
||||
}
|
||||
88
fluxer_docs/schemas/events/VOICE_STATE_UPDATE.json
Normal file
88
fluxer_docs/schemas/events/VOICE_STATE_UPDATE.json
Normal file
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "VOICE_STATE_UPDATE",
|
||||
"description": "Sent when a user's voice state is updated (join/leave/move voice channel, mute/deafen).",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": ["gateway"],
|
||||
"note": "Triggered by client sending VOICE_STATE_UPDATE opcode (4)",
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"guild_id": {
|
||||
"type": "string",
|
||||
"description": "Guild ID (only present for guild voice, not for DM calls)"
|
||||
},
|
||||
"channel_id": {
|
||||
"type": ["string", "null"],
|
||||
"description": "Channel ID the user is in (null if disconnected)"
|
||||
},
|
||||
"user_id": {
|
||||
"type": "string",
|
||||
"description": "User ID"
|
||||
},
|
||||
"connection_id": {
|
||||
"type": "string",
|
||||
"description": "Connection ID for this voice state"
|
||||
},
|
||||
"session_id": {
|
||||
"type": "string",
|
||||
"description": "Session ID for this voice state"
|
||||
},
|
||||
"member": {
|
||||
"$ref": "GuildMemberResponse",
|
||||
"description": "Guild member object (if guild voice)"
|
||||
},
|
||||
"deaf": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the user is server deafened"
|
||||
},
|
||||
"mute": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the user is server muted"
|
||||
},
|
||||
"self_deaf": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the user is self deafened"
|
||||
},
|
||||
"self_mute": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the user is self muted"
|
||||
},
|
||||
"self_video": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the user's camera is on"
|
||||
},
|
||||
"self_stream": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the user is streaming"
|
||||
},
|
||||
"is_mobile": {
|
||||
"type": "boolean",
|
||||
"description": "Whether the user is connected from a mobile device"
|
||||
},
|
||||
"viewer_stream_keys": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "An array of stream keys the user is currently viewing"
|
||||
},
|
||||
"version": {
|
||||
"type": "integer",
|
||||
"description": "Voice state version number, incremented on each update"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"user_id",
|
||||
"connection_id",
|
||||
"mute",
|
||||
"deaf",
|
||||
"self_mute",
|
||||
"self_deaf",
|
||||
"self_video",
|
||||
"self_stream",
|
||||
"is_mobile",
|
||||
"version"
|
||||
]
|
||||
}
|
||||
}
|
||||
23
fluxer_docs/schemas/events/WEBHOOKS_UPDATE.json
Normal file
23
fluxer_docs/schemas/events/WEBHOOKS_UPDATE.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"name": "WEBHOOKS_UPDATE",
|
||||
"description": "Sent when a guild channel webhook is created, updated, or deleted. Indicates that webhooks for the channel should be re-fetched.",
|
||||
"scope": "guild",
|
||||
"dispatchedBy": [
|
||||
"POST /channels/:channel_id/webhooks",
|
||||
"PATCH /webhooks/:webhook_id",
|
||||
"DELETE /webhooks/:webhook_id",
|
||||
"PATCH /webhooks/:webhook_id/:token",
|
||||
"DELETE /webhooks/:webhook_id/:token"
|
||||
],
|
||||
"payload": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"channel_id": {
|
||||
"type": "string",
|
||||
"description": "Channel ID whose webhooks were updated"
|
||||
}
|
||||
},
|
||||
"required": ["channel_id"]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user