From a71b9f5c02c277a8dd218df2301d12a9250a9475 Mon Sep 17 00:00:00 2001 From: Stoat CI Date: Thu, 16 Oct 2025 17:21:36 +0000 Subject: [PATCH] chore: build library from latest spec [skip ci] --- src/baseURL.ts | 2 +- src/params.ts | 4 +- src/routes.ts | 6 +- src/schema.ts | 161 ++++++++++++++++++++++++++++++++++++++----------- src/types.ts | 5 +- 5 files changed, 136 insertions(+), 42 deletions(-) diff --git a/src/baseURL.ts b/src/baseURL.ts index 2331908..b8e0feb 100644 --- a/src/baseURL.ts +++ b/src/baseURL.ts @@ -1,2 +1,2 @@ // This file was auto-generated by @insertish/oapi! -export const defaultBaseURL = "https://stoat.chat/api"; \ No newline at end of file +export const defaultBaseURL = "https://api.revolt.chat"; \ No newline at end of file diff --git a/src/params.ts b/src/params.ts index a6f7ece..953bc49 100644 --- a/src/params.ts +++ b/src/params.ts @@ -1,3 +1,3 @@ // This file was auto-generated by @insertish/oapi! -export const pathResolve = {"1":[[""]],"2":[["users","@me"],["users",["{target}"]],["users","dms"],["users","friend"],["bots","create"],["bots",["{bot}"]],["bots","@me"],["bots",["{target}"]],["channels",["{target}"]],["channels","create"],["servers","create"],["servers",["{target}"]],["invites",["{target}"]],["safety","report"],["onboard","hello"],["onboard","complete"],["policy","acknowledge"],["push","subscribe"],["push","unsubscribe"],["sync","unreads"],["webhooks",["{webhook_id}"]]],"3":[["users",["{target}"],"flags"],["users","@me","username"],["users",["{target}"],"default_avatar"],["users",["{target}"],"profile"],["users",["{target}"],"dm"],["users",["{target}"],"mutual"],["users",["{target}"],"friend"],["users",["{target}"],"block"],["bots",["{target}"],"invite"],["channels",["{target}"],"members"],["channels",["{target}"],"invites"],["channels",["{target}"],"messages"],["channels",["{target}"],"search"],["channels",["{target}"],"join_call"],["channels",["{target}"],"webhooks"],["channels",["{channel_id}"],"webhooks"],["servers",["{target}"],"ack"],["servers",["{server}"],"channels"],["servers",["{target}"],"members"],["servers",["{target}"],"members_experimental_query"],["servers",["{target}"],"bans"],["servers",["{target}"],"invites"],["servers",["{target}"],"roles"],["servers",["{target}"],"emojis"],["custom","emoji",["{id}"]],["custom","emoji",["{emoji_id}"]],["auth","account","create"],["auth","account","reverify"],["auth","account","delete"],["auth","account",""],["auth","account","disable"],["auth","account","reset_password"],["auth","session","login"],["auth","session","logout"],["auth","session","all"],["auth","session",["{id}"]],["auth","mfa","ticket"],["auth","mfa",""],["auth","mfa","recovery"],["auth","mfa","methods"],["auth","mfa","totp"],["sync","settings","fetch"],["sync","settings","set"],["webhooks",["{webhook_id}"],["{token}"]]],"4":[["channels",["{target}"],"ack",["{message}"]],["channels",["{target}"],"messages",["{msg}"]],["channels",["{target}"],"messages","bulk"],["channels",["{group_id}"],"recipients",["{member_id}"]],["channels",["{target}"],"recipients",["{member}"]],["channels",["{target}"],"permissions",["{role_id}"]],["channels",["{target}"],"permissions","default"],["servers",["{target}"],"members",["{member}"]],["servers",["{server}"],"members",["{member}"]],["servers",["{server}"],"bans",["{target}"]],["servers",["{target}"],"roles",["{role_id}"]],["servers",["{target}"],"permissions",["{role_id}"]],["servers",["{target}"],"permissions","default"],["servers",["{target}"],"roles","ranks"],["auth","account","change","password"],["auth","account","change","email"],["auth","account","verify",["{code}"]],["webhooks",["{webhook_id}"],["{token}"],"github"]],"5":[["channels",["{target}"],"messages",["{msg}"],"pin"],["channels",["{target}"],"messages",["{msg}"],"reactions"]],"6":[["channels",["{target}"],"messages",["{msg}"],"reactions",["{emoji}"]]]}; -export const queryParams = {"/":{"get":[]},"/users/@me":{"get":[]},"/users/{target}":{"get":[],"patch":[]},"/users/{target}/flags":{"get":[]},"/users/@me/username":{"patch":[]},"/users/{target}/default_avatar":{"get":[]},"/users/{target}/profile":{"get":[]},"/users/dms":{"get":[]},"/users/{target}/dm":{"get":[]},"/users/{target}/mutual":{"get":[]},"/users/{target}/friend":{"put":[],"delete":[]},"/users/{target}/block":{"put":[],"delete":[]},"/users/friend":{"post":[]},"/bots/create":{"post":[]},"/bots/{target}/invite":{"get":[],"post":[]},"/bots/{bot}":{"get":[]},"/bots/@me":{"get":[]},"/bots/{target}":{"delete":[],"patch":[]},"/channels/{target}/ack/{message}":{"put":[]},"/channels/{target}":{"get":[],"delete":["leave_silently"],"patch":[]},"/channels/{target}/members":{"get":[]},"/channels/{target}/invites":{"post":[]},"/channels/{target}/messages":{"get":["limit","before","after","sort","nearby","include_users"],"post":[]},"/channels/{target}/search":{"post":[]},"/channels/{target}/messages/{msg}/pin":{"post":[],"delete":[]},"/channels/{target}/messages/{msg}":{"get":[],"delete":[],"patch":[]},"/channels/{target}/messages/bulk":{"delete":[]},"/channels/create":{"post":[]},"/channels/{group_id}/recipients/{member_id}":{"put":[]},"/channels/{target}/recipients/{member}":{"delete":[]},"/channels/{target}/join_call":{"post":[]},"/channels/{target}/permissions/{role_id}":{"put":[]},"/channels/{target}/permissions/default":{"put":[]},"/channels/{target}/messages/{msg}/reactions/{emoji}":{"put":[],"delete":["user_id","remove_all"]},"/channels/{target}/messages/{msg}/reactions":{"delete":[]},"/channels/{target}/webhooks":{"post":[]},"/channels/{channel_id}/webhooks":{"get":[]},"/servers/create":{"post":[]},"/servers/{target}":{"get":["include_channels"],"delete":["leave_silently"],"patch":[]},"/servers/{target}/ack":{"put":[]},"/servers/{server}/channels":{"post":[]},"/servers/{target}/members":{"get":["exclude_offline"]},"/servers/{target}/members/{member}":{"get":["roles"],"delete":[]},"/servers/{server}/members/{member}":{"patch":[]},"/servers/{target}/members_experimental_query":{"get":["query","experimental_api"]},"/servers/{server}/bans/{target}":{"put":[],"delete":[]},"/servers/{target}/bans":{"get":[]},"/servers/{target}/invites":{"get":[]},"/servers/{target}/roles":{"post":[]},"/servers/{target}/roles/{role_id}":{"get":[],"delete":[],"patch":[]},"/servers/{target}/permissions/{role_id}":{"put":[]},"/servers/{target}/permissions/default":{"put":[]},"/servers/{target}/emojis":{"get":[]},"/servers/{target}/roles/ranks":{"patch":[]},"/invites/{target}":{"get":[],"post":[],"delete":[]},"/custom/emoji/{id}":{"put":[]},"/custom/emoji/{emoji_id}":{"get":[],"delete":[]},"/safety/report":{"post":[]},"/auth/account/create":{"post":[]},"/auth/account/reverify":{"post":[]},"/auth/account/delete":{"put":[],"post":[]},"/auth/account/":{"get":[]},"/auth/account/disable":{"post":[]},"/auth/account/change/password":{"patch":[]},"/auth/account/change/email":{"patch":[]},"/auth/account/verify/{code}":{"post":[]},"/auth/account/reset_password":{"post":[],"patch":[]},"/auth/session/login":{"post":[]},"/auth/session/logout":{"post":[]},"/auth/session/all":{"get":[],"delete":["revoke_self"]},"/auth/session/{id}":{"delete":[],"patch":[]},"/auth/mfa/ticket":{"put":[]},"/auth/mfa/":{"get":[]},"/auth/mfa/recovery":{"post":[],"patch":[]},"/auth/mfa/methods":{"get":[]},"/auth/mfa/totp":{"put":[],"post":[],"delete":[]},"/onboard/hello":{"get":[]},"/onboard/complete":{"post":[]},"/policy/acknowledge":{"post":[]},"/push/subscribe":{"post":[]},"/push/unsubscribe":{"post":[]},"/sync/settings/fetch":{"post":[]},"/sync/settings/set":{"post":["timestamp"]},"/sync/unreads":{"get":[]},"/webhooks/{webhook_id}/{token}":{"get":[],"post":[],"delete":[],"patch":[]},"/webhooks/{webhook_id}":{"get":[],"delete":[],"patch":[]},"/webhooks/{webhook_id}/{token}/github":{"post":[]}}; \ No newline at end of file +export const pathResolve = {"1":[[""]],"2":[["users","@me"],["users",["{target}"]],["users","dms"],["users","friend"],["bots","create"],["bots",["{bot}"]],["bots","@me"],["bots",["{target}"]],["channels",["{target}"]],["channels","create"],["servers","create"],["servers",["{target}"]],["invites",["{target}"]],["safety","report"],["onboard","hello"],["onboard","complete"],["policy","acknowledge"],["push","subscribe"],["push","unsubscribe"],["sync","unreads"],["webhooks",["{webhook_id}"]]],"3":[["users",["{target}"],"flags"],["users","@me","username"],["users",["{target}"],"default_avatar"],["users",["{target}"],"profile"],["users",["{target}"],"dm"],["users",["{target}"],"mutual"],["users",["{target}"],"friend"],["users",["{target}"],"block"],["bots",["{target}"],"invite"],["channels",["{target}"],"members"],["channels",["{target}"],"invites"],["channels",["{target}"],"messages"],["channels",["{target}"],"search"],["channels",["{target}"],"join_call"],["channels",["{target}"],"webhooks"],["channels",["{channel_id}"],"webhooks"],["servers",["{target}"],"ack"],["servers",["{server}"],"channels"],["servers",["{target}"],"members"],["servers",["{target}"],"members_experimental_query"],["servers",["{target}"],"bans"],["servers",["{target}"],"invites"],["servers",["{target}"],"roles"],["servers",["{target}"],"emojis"],["custom","emoji",["{id}"]],["custom","emoji",["{emoji_id}"]],["auth","account","create"],["auth","account","reverify"],["auth","account","delete"],["auth","account",""],["auth","account","disable"],["auth","account","reset_password"],["auth","session","login"],["auth","session","logout"],["auth","session","all"],["auth","session",["{id}"]],["auth","mfa","ticket"],["auth","mfa",""],["auth","mfa","recovery"],["auth","mfa","methods"],["auth","mfa","totp"],["sync","settings","fetch"],["sync","settings","set"],["webhooks",["{webhook_id}"],["{token}"]]],"4":[["channels",["{target}"],"ack",["{message}"]],["channels",["{target}"],"messages",["{msg}"]],["channels",["{target}"],"messages","bulk"],["channels",["{group_id}"],"recipients",["{member_id}"]],["channels",["{target}"],"recipients",["{member}"]],["channels",["{target}"],"end_ring",["{target_user}"]],["channels",["{target}"],"permissions",["{role_id}"]],["channels",["{target}"],"permissions","default"],["servers",["{target}"],"members",["{member}"]],["servers",["{server}"],"members",["{member}"]],["servers",["{server}"],"bans",["{target}"]],["servers",["{target}"],"roles",["{role_id}"]],["servers",["{target}"],"permissions",["{role_id}"]],["servers",["{target}"],"permissions","default"],["servers",["{target}"],"roles","ranks"],["auth","account","change","password"],["auth","account","change","email"],["auth","account","verify",["{code}"]],["webhooks",["{webhook_id}"],["{token}"],"github"]],"5":[["channels",["{target}"],"messages",["{msg}"],"pin"],["channels",["{target}"],"messages",["{msg}"],"reactions"]],"6":[["channels",["{target}"],"messages",["{msg}"],"reactions",["{emoji}"]]]}; +export const queryParams = {"/":{"get":[]},"/users/@me":{"get":[]},"/users/{target}":{"get":[],"patch":[]},"/users/{target}/flags":{"get":[]},"/users/@me/username":{"patch":[]},"/users/{target}/default_avatar":{"get":[]},"/users/{target}/profile":{"get":[]},"/users/dms":{"get":[]},"/users/{target}/dm":{"get":[]},"/users/{target}/mutual":{"get":[]},"/users/{target}/friend":{"put":[],"delete":[]},"/users/{target}/block":{"put":[],"delete":[]},"/users/friend":{"post":[]},"/bots/create":{"post":[]},"/bots/{target}/invite":{"get":[],"post":[]},"/bots/{bot}":{"get":[]},"/bots/@me":{"get":[]},"/bots/{target}":{"delete":[],"patch":[]},"/channels/{target}/ack/{message}":{"put":[]},"/channels/{target}":{"get":[],"delete":["leave_silently"],"patch":[]},"/channels/{target}/members":{"get":[]},"/channels/{target}/invites":{"post":[]},"/channels/{target}/messages":{"get":["limit","before","after","sort","nearby","include_users"],"post":[]},"/channels/{target}/search":{"post":[]},"/channels/{target}/messages/{msg}/pin":{"post":[],"delete":[]},"/channels/{target}/messages/{msg}":{"get":[],"delete":[],"patch":[]},"/channels/{target}/messages/bulk":{"delete":[]},"/channels/create":{"post":[]},"/channels/{group_id}/recipients/{member_id}":{"put":[]},"/channels/{target}/recipients/{member}":{"delete":[]},"/channels/{target}/join_call":{"post":[]},"/channels/{target}/end_ring/{target_user}":{"put":[]},"/channels/{target}/permissions/{role_id}":{"put":[]},"/channels/{target}/permissions/default":{"put":[]},"/channels/{target}/messages/{msg}/reactions/{emoji}":{"put":[],"delete":["user_id","remove_all"]},"/channels/{target}/messages/{msg}/reactions":{"delete":[]},"/channels/{target}/webhooks":{"post":[]},"/channels/{channel_id}/webhooks":{"get":[]},"/servers/create":{"post":[]},"/servers/{target}":{"get":["include_channels"],"delete":["leave_silently"],"patch":[]},"/servers/{target}/ack":{"put":[]},"/servers/{server}/channels":{"post":[]},"/servers/{target}/members":{"get":["exclude_offline"]},"/servers/{target}/members/{member}":{"get":["roles"],"delete":[]},"/servers/{server}/members/{member}":{"patch":[]},"/servers/{target}/members_experimental_query":{"get":["query","experimental_api"]},"/servers/{server}/bans/{target}":{"put":[],"delete":[]},"/servers/{target}/bans":{"get":[]},"/servers/{target}/invites":{"get":[]},"/servers/{target}/roles":{"post":[]},"/servers/{target}/roles/{role_id}":{"get":[],"delete":[],"patch":[]},"/servers/{target}/permissions/{role_id}":{"put":[]},"/servers/{target}/permissions/default":{"put":[]},"/servers/{target}/emojis":{"get":[]},"/servers/{target}/roles/ranks":{"patch":[]},"/invites/{target}":{"get":[],"post":[],"delete":[]},"/custom/emoji/{id}":{"put":[]},"/custom/emoji/{emoji_id}":{"get":[],"delete":[]},"/safety/report":{"post":[]},"/auth/account/create":{"post":[]},"/auth/account/reverify":{"post":[]},"/auth/account/delete":{"put":[],"post":[]},"/auth/account/":{"get":[]},"/auth/account/disable":{"post":[]},"/auth/account/change/password":{"patch":[]},"/auth/account/change/email":{"patch":[]},"/auth/account/verify/{code}":{"post":[]},"/auth/account/reset_password":{"post":[],"patch":[]},"/auth/session/login":{"post":[]},"/auth/session/logout":{"post":[]},"/auth/session/all":{"get":[],"delete":["revoke_self"]},"/auth/session/{id}":{"delete":[],"patch":[]},"/auth/mfa/ticket":{"put":[]},"/auth/mfa/":{"get":[]},"/auth/mfa/recovery":{"post":[],"patch":[]},"/auth/mfa/methods":{"get":[]},"/auth/mfa/totp":{"put":[],"post":[],"delete":[]},"/onboard/hello":{"get":[]},"/onboard/complete":{"post":[]},"/policy/acknowledge":{"post":[]},"/push/subscribe":{"post":[]},"/push/unsubscribe":{"post":[]},"/sync/settings/fetch":{"post":[]},"/sync/settings/set":{"post":["timestamp"]},"/sync/unreads":{"get":[]},"/webhooks/{webhook_id}/{token}":{"get":[],"post":[],"delete":[],"patch":[]},"/webhooks/{webhook_id}":{"get":[],"delete":[],"patch":[]},"/webhooks/{webhook_id}/{token}/github":{"post":[]}}; \ No newline at end of file diff --git a/src/routes.ts b/src/routes.ts index 92f23ed..aaf5e61 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -75,8 +75,10 @@ export type APIRoutes = | { method: 'put', path: '-/channels/{group_id}/recipients/{member_id}', parts: 4, params: undefined, response: undefined } | { method: 'delete', path: `/channels/${string}/recipients/${string}`, parts: 4, params: undefined, response: undefined } | { method: 'delete', path: '-/channels/{target}/recipients/{member}', parts: 4, params: undefined, response: undefined } -| { method: 'post', path: `/channels/${string}/join_call`, parts: 3, params: undefined, response: paths['/channels/{target}/join_call']['post']['responses']['200']['content']['application/json'] } -| { method: 'post', path: '-/channels/{target}/join_call', parts: 3, params: undefined, response: paths['/channels/{target}/join_call']['post']['responses']['200']['content']['application/json'] } +| { method: 'post', path: `/channels/${string}/join_call`, parts: 3, params: paths['/channels/{target}/join_call']['post']['requestBody']['content']['application/json'], response: paths['/channels/{target}/join_call']['post']['responses']['200']['content']['application/json'] } +| { method: 'post', path: '-/channels/{target}/join_call', parts: 3, params: paths['/channels/{target}/join_call']['post']['requestBody']['content']['application/json'], response: paths['/channels/{target}/join_call']['post']['responses']['200']['content']['application/json'] } +| { method: 'put', path: `/channels/${string}/end_ring/${string}`, parts: 4, params: undefined, response: undefined } +| { method: 'put', path: '-/channels/{target}/end_ring/{target_user}', parts: 4, params: undefined, response: undefined } | { method: 'put', path: `/channels/${string}/permissions/${string}`, parts: 4, params: paths['/channels/{target}/permissions/{role_id}']['put']['requestBody']['content']['application/json'], response: paths['/channels/{target}/permissions/{role_id}']['put']['responses']['200']['content']['application/json'] } | { method: 'put', path: '-/channels/{target}/permissions/{role_id}', parts: 4, params: paths['/channels/{target}/permissions/{role_id}']['put']['requestBody']['content']['application/json'], response: paths['/channels/{target}/permissions/{role_id}']['put']['responses']['200']['content']['application/json'] } | { method: 'put', path: `/channels/${string}/permissions/default`, parts: 4, params: paths['/channels/{target}/permissions/default']['put']['requestBody']['content']['application/json'], response: paths['/channels/{target}/permissions/default']['put']['responses']['200']['content']['application/json'] } diff --git a/src/schema.ts b/src/schema.ts index e57c6db..229886b 100644 --- a/src/schema.ts +++ b/src/schema.ts @@ -172,11 +172,15 @@ export interface paths { /** Asks the voice server for a token to join the call. */ post: operations["voice_join_call"]; }; + "/channels/{target}/end_ring/{target_user}": { + /** Stops ringing a specific user in a dm call. You must be in the call to use this endpoint, returns NotConnected otherwise. Only valid in DM/Group channels, will return NoEffect in servers. Returns NotFound if the user is not in the dm/group channel */ + put: operations["voice_stop_ring_stop_ring"]; + }; "/channels/{target}/permissions/{role_id}": { /** * Sets permissions for the specified role in this channel. * - * Channel must be a `TextChannel` or `VoiceChannel`. + * Channel must be a `TextChannel`. */ put: operations["permissions_set_set_role_permissions"]; }; @@ -184,7 +188,7 @@ export interface paths { /** * Sets permissions for the default role in this channel. * - * Channel must be a `Group`, `TextChannel` or `VoiceChannel`. + * Channel must be a `Group` or `TextChannel`. */ put: operations["permissions_set_default_set_default_channel_permissions"]; }; @@ -496,7 +500,7 @@ export interface components { /** @description Proxy service configuration */ january: components["schemas"]["Feature"]; /** @description Voice server configuration */ - voso: components["schemas"]["VoiceFeature"]; + livekit: components["schemas"]["VoiceFeature"]; }; /** hCaptcha Configuration */ CaptchaFeature: { @@ -516,10 +520,17 @@ export interface components { VoiceFeature: { /** @description Whether voice is enabled */ enabled: boolean; - /** @description URL pointing to the voice API */ - url: string; - /** @description URL pointing to the voice WebSocket server */ - ws: string; + /** @description All livekit nodes */ + nodes: components["schemas"]["VoiceNode"][]; + }; + /** Information about a livekit node */ + VoiceNode: { + name: string; + /** Format: double */ + lat: number; + /** Format: double */ + lon: number; + public_url: string; }; /** Build Information */ BuildInformation: { @@ -802,6 +813,26 @@ export interface components { type: "FailedValidation"; error: string; } + | { + /** @enum {string} */ + type: "LiveKitUnavailable"; + } + | { + /** @enum {string} */ + type: "NotAVoiceChannel"; + } + | { + /** @enum {string} */ + type: "AlreadyConnected"; + } + | { + /** @enum {string} */ + type: "NotConnected"; + } + | { + /** @enum {string} */ + type: "UnknownNode"; + } | { /** @enum {string} */ type: "ProxyError"; @@ -1108,28 +1139,8 @@ export interface components { }; /** @description Whether this channel is marked as not safe for work */ nsfw?: boolean; - } - | { - /** @enum {string} */ - channel_type: "VoiceChannel"; - /** @description Unique Id */ - _id: string; - /** @description Id of the server this channel belongs to */ - server: string; - /** @description Display name of the channel */ - name: string; - /** @description Channel description */ - description?: string | null; - /** @description Custom icon attachment */ - icon?: components["schemas"]["File"] | null; - /** @description Default permissions assigned to users in this channel */ - default_permissions?: components["schemas"]["OverrideField"] | null; - /** @description Permissions assigned based on role to this channel */ - role_permissions?: { - [key: string]: components["schemas"]["OverrideField"]; - }; - /** @description Whether this channel is marked as not safe for work */ - nsfw?: boolean; + /** @description Voice Information for when this channel is also a voice channel */ + voice?: components["schemas"]["VoiceInformation"] | null; }; /** @description Representation of a single permission override as it appears on models and in the database */ OverrideField: { @@ -1144,6 +1155,14 @@ export interface components { */ d: number; }; + /** @description Voice information for a channel */ + VoiceInformation: { + /** + * Format: uint + * @description Maximium amount of users allowed in the voice channel at once + */ + max_users?: number | null; + }; /** @description Mutual friends, servers, groups and DMs response */ MutualResponse: { /** @description Array of mutual user IDs that both users are friends with */ @@ -1300,6 +1319,8 @@ export interface components { nsfw?: boolean | null; /** @description Whether this channel is archived */ archived?: boolean | null; + /** @description Voice Information for voice channels */ + voice?: components["schemas"]["VoiceInformation"] | null; /** * @description Fields to remove from channel * @default [] @@ -1310,7 +1331,7 @@ export interface components { * @description Optional fields on channel object * @enum {string} */ - FieldsChannel: "Description" | "Icon" | "DefaultPermissions"; + FieldsChannel: "Description" | "Icon" | "DefaultPermissions" | "Voice"; /** @description Invite */ Invite: | { @@ -1397,6 +1418,10 @@ export interface components { roles?: string[]; /** @description Timestamp this member is timed out until */ timeout?: components["schemas"]["ISO8601 Timestamp"] | null; + /** @description Whether the member is server-wide voice muted */ + can_publish?: boolean; + /** @description Whether the member is server-wide voice deafened */ + can_receive?: boolean; }; /** @description Composite primary key consisting of server and user id */ MemberCompositeKey: { @@ -1488,6 +1513,12 @@ export interface components { type: "message_unpinned"; id: string; by: string; + } + | { + /** @enum {string} */ + type: "call_started"; + by: string; + finished_at?: components["schemas"]["ISO8601 Timestamp"] | null; }; /** @description Embed */ Embed: @@ -1824,9 +1855,28 @@ export interface components { nsfw?: boolean | null; }; /** @description Voice server token response */ - LegacyCreateVoiceUserResponse: { + CreateVoiceUserResponse: { /** @description Token for authenticating with the voice server */ token: string; + /** @description Url of the livekit server to connect to */ + url: string; + }; + /** @description Join a voice channel */ + DataJoinCall: { + /** @description Name of the node to join */ + node?: string | null; + /** + * @description Whether to force disconnect any other existing voice connections + * + * Useful for disconnecting on another device and joining on a new. + */ + force_disconnect?: boolean | null; + /** + * @description Users which should be notified of the call starting + * + * Only used when the user is the first one connected. + */ + recipients?: string[] | null; }; /** @description New role permissions */ DataSetRolePermissions: { @@ -1856,7 +1906,7 @@ export interface components { permissions: number; } | { - /** @description Allow / deny values to set for members in this `TextChannel` or `VoiceChannel` */ + /** @description Allow / deny values to set for members in this server channel */ permissions: components["schemas"]["Override"]; }; /** @description Webhook */ @@ -2079,6 +2129,8 @@ export interface components { description?: string | null; /** @description Whether this channel is age restricted */ nsfw?: boolean | null; + /** @description Voice Information for when this channel is also a voice channel */ + voice?: components["schemas"]["VoiceInformation"] | null; }; /** @description Server Channel Type */ LegacyServerChannelType: "Text" | "Voice"; @@ -2106,6 +2158,12 @@ export interface components { roles?: string[] | null; /** @description Timestamp this member is timed out until */ timeout?: components["schemas"]["ISO8601 Timestamp"] | null; + /** @description server-wide voice muted */ + can_publish?: boolean | null; + /** @description server-wide voice deafened */ + can_receive?: boolean | null; + /** @description voice channel to move to if already in a voice channel */ + voice_channel?: string | null; /** * @description Fields to remove from channel object * @default [] @@ -2116,7 +2174,14 @@ export interface components { * @description Optional fields on server member object * @enum {string} */ - FieldsMember: "Nickname" | "Avatar" | "Roles" | "Timeout" | "JoinedAt"; + FieldsMember: + | "Nickname" + | "Avatar" + | "Roles" + | "Timeout" + | "CanReceive" + | "CanPublish" + | "JoinedAt"; /** Query members by name */ MemberQueryResponse: { /** @description List of members */ @@ -3648,7 +3713,7 @@ export interface operations { responses: { 200: { content: { - "application/json": components["schemas"]["LegacyCreateVoiceUserResponse"]; + "application/json": components["schemas"]["CreateVoiceUserResponse"]; }; }; /** An error occurred. */ @@ -3658,11 +3723,35 @@ export interface operations { }; }; }; + requestBody: { + content: { + "application/json": components["schemas"]["DataJoinCall"]; + }; + }; + }; + /** Stops ringing a specific user in a dm call. You must be in the call to use this endpoint, returns NotConnected otherwise. Only valid in DM/Group channels, will return NoEffect in servers. Returns NotFound if the user is not in the dm/group channel */ + voice_stop_ring_stop_ring: { + parameters: { + path: { + target: components["schemas"]["Id"]; + target_user: components["schemas"]["Id"]; + }; + }; + responses: { + /** Success */ + 204: never; + /** An error occurred. */ + default: { + content: { + "application/json": components["schemas"]["Error"]; + }; + }; + }; }; /** * Sets permissions for the specified role in this channel. * - * Channel must be a `TextChannel` or `VoiceChannel`. + * Channel must be a `TextChannel`. */ permissions_set_set_role_permissions: { parameters: { @@ -3693,7 +3782,7 @@ export interface operations { /** * Sets permissions for the default role in this channel. * - * Channel must be a `Group`, `TextChannel` or `VoiceChannel`. + * Channel must be a `Group` or `TextChannel`. */ permissions_set_default_set_default_channel_permissions: { parameters: { diff --git a/src/types.ts b/src/types.ts index eed6012..d2a3e8f 100644 --- a/src/types.ts +++ b/src/types.ts @@ -5,6 +5,7 @@ export type RevoltFeatures = components['schemas']['RevoltFeatures']; export type CaptchaFeature = components['schemas']['CaptchaFeature']; export type Feature = components['schemas']['Feature']; export type VoiceFeature = components['schemas']['VoiceFeature']; +export type VoiceNode = components['schemas']['VoiceNode']; export type BuildInformation = components['schemas']['BuildInformation']; export type Error = components['schemas']['Error']; export type User = components['schemas']['User']; @@ -24,6 +25,7 @@ export type DataChangeUsername = components['schemas']['DataChangeUsername']; export type UserProfile = components['schemas']['UserProfile']; export type Channel = components['schemas']['Channel']; export type OverrideField = components['schemas']['OverrideField']; +export type VoiceInformation = components['schemas']['VoiceInformation']; export type MutualResponse = components['schemas']['MutualResponse']; export type DataSendFriendRequest = components['schemas']['DataSendFriendRequest']; export type BotWithUserResponse = components['schemas']['BotWithUserResponse']; @@ -63,7 +65,8 @@ export type DataMessageSearch = components['schemas']['DataMessageSearch']; export type DataEditMessage = components['schemas']['DataEditMessage']; export type OptionsBulkDelete = components['schemas']['OptionsBulkDelete']; export type DataCreateGroup = components['schemas']['DataCreateGroup']; -export type LegacyCreateVoiceUserResponse = components['schemas']['LegacyCreateVoiceUserResponse']; +export type CreateVoiceUserResponse = components['schemas']['CreateVoiceUserResponse']; +export type DataJoinCall = components['schemas']['DataJoinCall']; export type DataSetRolePermissions = components['schemas']['DataSetRolePermissions']; export type Override = components['schemas']['Override']; export type DataDefaultChannelPermissions = components['schemas']['DataDefaultChannelPermissions'];