summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-09-28 22:27:01 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-09-28 22:27:01 +0200
commit3e9952ea8026743c86d25152c8febbe55722a135 (patch)
treef928ba0428a0f284ffc4c2146f412249c9693b7e
parentMerge branch 'master' of https://github.com/fosscord/fosscord-server (diff)
parent:bug: fix channel permission overwrites (diff)
downloadserver-3e9952ea8026743c86d25152c8febbe55722a135.tar.xz
Merge branch 'master' of https://github.com/fosscord/fosscord-server
-rw-r--r--api/assets/openapi.json12591
-rw-r--r--api/assets/schemas.json176
-rw-r--r--api/package.json4
-rw-r--r--api/scripts/generate_schema.js8
-rw-r--r--api/src/middlewares/TestClient.ts4
-rw-r--r--api/src/routes/channels/#channel_id/index.ts4
-rw-r--r--api/src/routes/channels/#channel_id/messages/index.ts5
-rw-r--r--api/src/routes/channels/#channel_id/permissions.ts21
-rw-r--r--api/src/routes/gateway.ts8
-rw-r--r--api/src/routes/guilds/index.ts28
-rw-r--r--api/src/util/cdn.ts53
-rw-r--r--api/src/util/route.ts4
-rw-r--r--bundle/src/Server.ts16
-rw-r--r--bundle/src/stats.ts10
-rw-r--r--cdn/src/routes/attachments.ts17
-rw-r--r--cdn/src/routes/avatars.ts3
-rw-r--r--util/src/entities/Channel.ts4
-rw-r--r--util/src/entities/Config.ts29
-rw-r--r--util/src/util/Config.ts58
-rw-r--r--util/src/util/Database.ts2
-rw-r--r--util/src/util/Permissions.ts15
-rw-r--r--util/src/util/cdn.ts4
22 files changed, 6255 insertions, 6809 deletions
diff --git a/api/assets/openapi.json b/api/assets/openapi.json
index a92fe706..15e55bf9 100644
--- a/api/assets/openapi.json
+++ b/api/assets/openapi.json
@@ -1,6598 +1,5995 @@
 {
-    "openapi": "3.0.0",
-    "servers": [
-        {
-            "url": "https://api.fosscord.com/v{version}",
-            "description": "Official fosscord instance",
-            "variables": {
-                "version": {
-                    "default": "9",
-                    "enum": [
-                        "8",
-                        "9"
-                    ]
-                }
-            }
-        }
-    ],
-    "info": {
-        "description": "Fosscord is a free open source selfhostable discord compatible chat, voice and video platform",
-        "version": "1.0.0",
-        "title": "Fosscord HTTP API Routes",
-        "termsOfService": "",
-        "contact": {
-            "name": "Fosscord"
-        },
-        "license": {
-            "name": "AGPLV3",
-            "url": "https://www.gnu.org/licenses/agpl-3.0.en.html"
-        }
-    },
-    "tags": [
-        {
-            "name": "voice"
-        },
-        {
-            "name": "users"
-        },
-        {
-            "name": "store"
-        },
-        {
-            "name": "sticker-packs"
-        },
-        {
-            "name": "science"
-        },
-        {
-            "name": "ping"
-        },
-        {
-            "name": "outbound-promotions"
-        },
-        {
-            "name": "invites"
-        },
-        {
-            "name": "guilds"
-        },
-        {
-            "name": "gateway"
-        },
-        {
-            "name": "experiments"
-        },
-        {
-            "name": "discoverable-guilds"
-        },
-        {
-            "name": "channels"
-        },
-        {
-            "name": "auth"
-        },
-        {
-            "name": "applications"
-        }
-    ],
-    "paths": {
-        "/users/{id}": {
-            "get": {
-                "summary": "",
-                "parameters": [
-                    {
-                        "name": "id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "user id"
-                    }
-                ],
-                "operationId": "",
-                "responses": {
-                    "200": {
-                        "description": "User found",
-                        "content": {
-                            "application/json": {
-                                "schema": {
-                                    "$ref": "#/components/schemas/UserPublic"
-                                }
-                            }
-                        }
-                    },
-                    "404": {
-                        "description": "User not found",
-                        "content": {
-                            "application/json": {
-                                "schema": {
-                                    "$ref": "#/components/schemas/Error"
-                                }
-                            }
-                        }
-                    }
-                },
-                "security": [
-                    {
-                        "Token": []
-                    }
-                ]
-            }
-        },
-        "/users/@me": {
-            "get": {
-                "summary": "",
-                "parameters": [],
-                "operationId": "",
-                "responses": {
-                    "200": {
-                        "description": "Authenticated user",
-                        "content": {
-                            "application/json": {
-                                "schema": {
-                                    "$ref": "#/components/schemas/UserPublic"
-                                }
-                            }
-                        }
-                    }
-                },
-                "security": [
-                    {
-                        "Token": []
-                    }
-                ]
-            }
-        },
-        "/voice/regions/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "voice"
-                ]
-            }
-        },
-        "/users/@me/settings/": {
-            "patch": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/UserSettingsSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/relationships/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users",
-                    "relationships"
-                ]
-            },
-            "post": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/RelationshipPostSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/relationships/{id}": {
-            "put": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/RelationshipPutSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "id"
-                    }
-                ],
-                "tags": [
-                    "users"
-                ]
-            },
-            "delete": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "id"
-                    }
-                ],
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/library/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            },
-            "patch": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/UserModifySchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/guilds/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/guilds/{id}": {
-            "delete": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "id"
-                    }
-                ],
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/disable/": {
-            "post": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/devices/": {
-            "post": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/delete/": {
-            "post": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/connections/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/channels/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            },
-            "post": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/DmChannelCreateSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/billing/subscriptions/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/billing/country-code/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/applications/{app_id}/entitlements/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "app_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "app_id"
-                    }
-                ],
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/affinities/users/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/@me/affinities/guilds/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/{id}/profile/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "200": {
-                        "content": {
-                            "application/json": {
-                                "schema": {
-                                    "$ref": "#/components/schemas/UserProfileResponse"
-                                }
-                            }
-                        },
-                        "description": ""
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "id"
-                    }
-                ],
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/users/{id}/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "id"
-                    }
-                ],
-                "tags": [
-                    "users"
-                ]
-            }
-        },
-        "/store/skus/skus/{id}": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "id"
-                    }
-                ],
-                "tags": [
-                    "store"
-                ]
-            }
-        },
-        "/store/applications/applications/{id}": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "id"
-                    }
-                ],
-                "tags": [
-                    "store"
-                ]
-            }
-        },
-        "/sticker-packs/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "sticker",
-                    "sticker-packs"
-                ]
-            }
-        },
-        "/sticker-packs/{id}/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "id"
-                    }
-                ],
-                "tags": [
-                    "sticker",
-                    "sticker-packs"
-                ]
-            }
-        },
-        "/science/": {
-            "post": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "science"
-                ]
-            }
-        },
-        "/ping/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "ping"
-                ]
-            }
-        },
-        "/outbound-promotions/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "outbound",
-                    "outbound-promotions"
-                ]
-            }
-        },
-        "/invites/{code}": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "code",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "code"
-                    }
-                ],
-                "tags": [
-                    "invites"
-                ]
-            },
-            "post": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "code",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "code"
-                    }
-                ],
-                "tags": [
-                    "invites"
-                ]
-            },
-            "delete": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "code",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "code"
-                    }
-                ],
-                "tags": [
-                    "invites"
-                ]
-            }
-        },
-        "/guilds/templates/{code}": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "code",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "code"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "post": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/GuildTemplateCreateSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "code",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "code"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/": {
-            "post": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/GuildCreateSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/widget.png/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/widget.json/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/widget/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "patch": {
-                "description": "##### Requires the ``MANAGE_GUILD`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/WidgetModifySchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/welcome_screen/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "patch": {
-                "description": "##### Requires the ``MANAGE_GUILD`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/GuildUpdateWelcomeScreenSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/voice-states/{user_id}/": {
-            "patch": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/VoiceStateUpdateSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "user_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "user_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/vanity-url/": {
-            "get": {
-                "description": "##### Requires the ``MANAGE_GUILD`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "patch": {
-                "description": "##### Requires the ``MANAGE_GUILD`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/VanityUrlSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/templates/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "post": {
-                "description": "##### Requires the ``MANAGE_GUILD`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/TemplateCreateSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/templates/{code}": {
-            "delete": {
-                "description": "##### Requires the ``MANAGE_GUILD`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "code",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "code"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "put": {
-                "description": "##### Requires the ``MANAGE_GUILD`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "code",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "code"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "patch": {
-                "description": "##### Requires the ``MANAGE_GUILD`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/TemplateModifySchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "code",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "code"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/roles/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "post": {
-                "description": "##### Requires the ``MANAGE_ROLES`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/RoleModifySchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "patch": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/RolePositionUpdateSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/roles/{role_id}": {
-            "delete": {
-                "description": "##### Requires the ``MANAGE_ROLES`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "role_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "role_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "patch": {
-                "description": "##### Requires the ``MANAGE_ROLES`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/RoleModifySchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "role_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "role_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/regions/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/members/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/members/{member_id}/nick/": {
-            "patch": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/MemberNickChangeSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "member_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "member_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/members/{member_id}/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "member_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "member_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "patch": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/MemberChangeSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "member_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "member_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "put": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "member_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "member_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "delete": {
-                "description": "##### Requires the ``KICK_MEMBERS`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "member_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "member_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/invites/": {
-            "get": {
-                "description": "##### Requires the ``MANAGE_GUILD`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "patch": {
-                "description": "##### Requires the ``MANAGE_GUILD`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/GuildUpdateSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/delete/": {
-            "post": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/channels/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "post": {
-                "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/ChannelModifySchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "patch": {
-                "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/ChannelReorderSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/bans/": {
-            "get": {
-                "description": "##### Requires the ``BAN_MEMBERS`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/bans/{user}": {
-            "get": {
-                "description": "##### Requires the ``BAN_MEMBERS`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "user",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "user"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/bans/{user_id}": {
-            "put": {
-                "description": "##### Requires the ``BAN_MEMBERS`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/BanCreateSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "user_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "user_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "delete": {
-                "description": "##### Requires the ``BAN_MEMBERS`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "user_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "user_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/gateway/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "gateway"
-                ]
-            }
-        },
-        "/gateway/bot": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "gateway"
-                ]
-            }
-        },
-        "/experiments/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "experiments"
-                ]
-            }
-        },
-        "/discoverable-guilds/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "discoverable",
-                    "discoverable-guilds"
-                ]
-            }
-        },
-        "/channels/{channel_id}/webhooks/": {
-            "post": {
-                "description": "##### Requires the ``MANAGE_WEBHOOKS`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/WebhookCreateSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            }
-        },
-        "/channels/{channel_id}/typing/": {
-            "post": {
-                "description": "##### Requires the ``SEND_MESSAGES`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            }
-        },
-        "/channels/{channel_id}/recipients/{user_id}": {
-            "put": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    },
-                    {
-                        "name": "user_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "user_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            },
-            "delete": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    },
-                    {
-                        "name": "user_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "user_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            }
-        },
-        "/channels/{channel_id}/pins/{message_id}": {
-            "put": {
-                "description": "##### Requires the ``VIEW_CHANNEL`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    },
-                    {
-                        "name": "message_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "message_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            },
-            "delete": {
-                "description": "##### Requires the ``VIEW_CHANNEL`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    },
-                    {
-                        "name": "message_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "message_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            }
-        },
-        "/channels/{channel_id}/pins/": {
-            "get": {
-                "description": "##### Requires the ``READ_MESSAGE_HISTORY`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            }
-        },
-        "/channels/{channel_id}/permissions/{overwrite_id}": {
-            "put": {
-                "description": "##### Requires the ``MANAGE_ROLES`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/ChannelPermissionOverwriteSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    },
-                    {
-                        "name": "overwrite_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "overwrite_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            },
-            "delete": {
-                "description": "##### Requires the ``MANAGE_ROLES`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    },
-                    {
-                        "name": "overwrite_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "overwrite_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            }
-        },
-        "/channels/{channel_id}/messages/bulk-delete/": {
-            "post": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/BulkDeleteSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            }
-        },
-        "/channels/{channel_id}/messages/{message_id}/reactions/": {
-            "delete": {
-                "description": "##### Requires the ``MANAGE_MESSAGES`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    },
-                    {
-                        "name": "message_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "message_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            }
-        },
-        "/channels/{channel_id}/messages/{message_id}/reactions/{emoji}": {
-            "delete": {
-                "description": "##### Requires the ``MANAGE_MESSAGES`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    },
-                    {
-                        "name": "message_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "message_id"
-                    },
-                    {
-                        "name": "emoji",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "emoji"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            },
-            "get": {
-                "description": "##### Requires the ``VIEW_CHANNEL`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    },
-                    {
-                        "name": "message_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "message_id"
-                    },
-                    {
-                        "name": "emoji",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "emoji"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            }
-        },
-        "/channels/{channel_id}/messages/{message_id}/reactions/{emoji}/{user_id}": {
-            "put": {
-                "description": "##### Requires the ``READ_MESSAGE_HISTORY`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    },
-                    {
-                        "name": "message_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "message_id"
-                    },
-                    {
-                        "name": "emoji",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "emoji"
-                    },
-                    {
-                        "name": "user_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "user_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            },
-            "delete": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    },
-                    {
-                        "name": "message_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "message_id"
-                    },
-                    {
-                        "name": "emoji",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "emoji"
-                    },
-                    {
-                        "name": "user_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "user_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            }
-        },
-        "/channels/{channel_id}/messages/{message_id}/": {
-            "patch": {
-                "description": "##### Requires the ``SEND_MESSAGES`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/MessageCreateSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    },
-                    {
-                        "name": "message_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "message_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            },
-            "delete": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    },
-                    {
-                        "name": "message_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "message_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            }
-        },
-        "/channels/{channel_id}/messages/{message_id}/ack/": {
-            "post": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/MessageAcknowledgeSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    },
-                    {
-                        "name": "message_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "message_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            }
-        },
-        "/channels/{channel_id}/invites/": {
-            "post": {
-                "description": "##### Requires the ``CREATE_INSTANT_INVITE`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/InviteCreateSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            },
-            "get": {
-                "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            }
-        },
-        "/channels/{channel_id}/": {
-            "get": {
-                "description": "##### Requires the ``VIEW_CHANNEL`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            },
-            "delete": {
-                "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            },
-            "patch": {
-                "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/ChannelModifySchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "channel_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "channel_id"
-                    }
-                ],
-                "tags": [
-                    "channels"
-                ]
-            }
-        },
-        "/auth/register/": {
-            "post": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/RegisterSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "auth"
-                ]
-            }
-        },
-        "/applications/detectable/": {
-            "get": {
-                "description": "",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "applications"
-                ]
-            }
-        },
-        "/guilds/{guild_id}/members/{member_id}/roles/{role_id}/": {
-            "delete": {
-                "description": "##### Requires the ``MANAGE_ROLES`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "member_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "member_id"
-                    },
-                    {
-                        "name": "role_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "role_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            },
-            "put": {
-                "description": "##### Requires the ``MANAGE_ROLES`` permission\n",
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "parameters": [
-                    {
-                        "name": "guild_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "guild_id"
-                    },
-                    {
-                        "name": "member_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "member_id"
-                    },
-                    {
-                        "name": "role_id",
-                        "in": "path",
-                        "required": true,
-                        "schema": {
-                            "type": "string"
-                        },
-                        "description": "role_id"
-                    }
-                ],
-                "tags": [
-                    "guilds"
-                ]
-            }
-        },
-        "/auth/login/": {
-            "post": {
-                "description": "",
-                "requestBody": {
-                    "required": true,
-                    "content": {
-                        "application/json": {
-                            "schema": {
-                                "$ref": "#/components/schemas/LoginSchema"
-                            }
-                        }
-                    }
-                },
-                "responses": {
-                    "default": {
-                        "description": "not documented"
-                    }
-                },
-                "tags": [
-                    "auth"
-                ]
-            }
-        }
-    },
-    "externalDocs": {
-        "url": "http://docs.fosscord.com/"
-    },
-    "components": {
-        "schemas": {
-            "Error": {
-                "type": "object",
-                "properties": {
-                    "code": {
-                        "type": "integer"
-                    },
-                    "message": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "code",
-                    "message"
-                ]
-            },
-            "RateLimit": {
-                "type": "object",
-                "properties": {
-                    "retry_after": {
-                        "type": "integer"
-                    },
-                    "message": {
-                        "type": "string"
-                    },
-                    "global": {
-                        "type": "boolean"
-                    }
-                },
-                "required": [
-                    "code",
-                    "message",
-                    "globa"
-                ]
-            },
-            "User": {
-                "type": "object",
-                "properties": {
-                    "username": {
-                        "type": "string"
-                    },
-                    "discriminator": {
-                        "type": "string"
-                    },
-                    "avatar": {
-                        "type": "string"
-                    },
-                    "accent_color": {
-                        "type": "integer"
-                    },
-                    "banner": {
-                        "type": "string"
-                    },
-                    "phone": {
-                        "type": "string"
-                    },
-                    "desktop": {
-                        "type": "boolean"
-                    },
-                    "mobile": {
-                        "type": "boolean"
-                    },
-                    "premium": {
-                        "type": "boolean"
-                    },
-                    "premium_type": {
-                        "type": "integer"
-                    },
-                    "bot": {
-                        "type": "boolean"
-                    },
-                    "bio": {
-                        "type": "string"
-                    },
-                    "system": {
-                        "type": "boolean"
-                    },
-                    "nsfw_allowed": {
-                        "type": "boolean"
-                    },
-                    "mfa_enabled": {
-                        "type": "boolean"
-                    },
-                    "created_at": {
-                        "type": "string",
-                        "format": "date-time"
-                    },
-                    "verified": {
-                        "type": "boolean"
-                    },
-                    "disabled": {
-                        "type": "boolean"
-                    },
-                    "deleted": {
-                        "type": "boolean"
-                    },
-                    "email": {
-                        "type": "string"
-                    },
-                    "flags": {
-                        "type": "string"
-                    },
-                    "public_flags": {
-                        "type": "string"
-                    },
-                    "relationships": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Relationship"
-                        }
-                    },
-                    "connected_accounts": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/ConnectedAccount"
-                        }
-                    },
-                    "data": {
-                        "type": "object",
-                        "properties": {
-                            "valid_tokens_since": {
-                                "type": "string",
-                                "format": "date-time"
-                            },
-                            "hash": {
-                                "type": "string"
-                            }
-                        },
-                        "additionalProperties": false,
-                        "required": [
-                            "valid_tokens_since"
-                        ]
-                    },
-                    "fingerprints": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    },
-                    "settings": {
-                        "$ref": "#/components/schemas/UserSettings"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "bio",
-                    "bot",
-                    "connected_accounts",
-                    "created_at",
-                    "data",
-                    "deleted",
-                    "desktop",
-                    "disabled",
-                    "discriminator",
-                    "fingerprints",
-                    "flags",
-                    "id",
-                    "mfa_enabled",
-                    "mobile",
-                    "nsfw_allowed",
-                    "premium",
-                    "premium_type",
-                    "public_flags",
-                    "relationships",
-                    "settings",
-                    "system",
-                    "username",
-                    "verified"
-                ]
-            },
-            "Relationship": {
-                "type": "object",
-                "properties": {
-                    "user_id": {
-                        "type": "string"
-                    },
-                    "user": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "nickname": {
-                        "type": "string"
-                    },
-                    "type": {
-                        "$ref": "#/components/schemas/RelationshipType"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "id",
-                    "type",
-                    "user",
-                    "user_id"
-                ]
-            },
-            "RelationshipType": {
-                "enum": [
-                    1,
-                    2,
-                    3,
-                    4
-                ],
-                "type": "number"
-            },
-            "ConnectedAccount": {
-                "type": "object",
-                "properties": {
-                    "user_id": {
-                        "type": "string"
-                    },
-                    "user": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "access_token": {
-                        "type": "string"
-                    },
-                    "friend_sync": {
-                        "type": "boolean"
-                    },
-                    "name": {
-                        "type": "string"
-                    },
-                    "revoked": {
-                        "type": "boolean"
-                    },
-                    "show_activity": {
-                        "type": "boolean"
-                    },
-                    "type": {
-                        "type": "string"
-                    },
-                    "verifie": {
-                        "type": "boolean"
-                    },
-                    "visibility": {
-                        "type": "integer"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "access_token",
-                    "friend_sync",
-                    "id",
-                    "name",
-                    "revoked",
-                    "show_activity",
-                    "type",
-                    "user",
-                    "user_id",
-                    "verifie",
-                    "visibility"
-                ]
-            },
-            "UserSettings": {
-                "type": "object",
-                "properties": {
-                    "afk_timeout": {
-                        "type": "integer"
-                    },
-                    "allow_accessibility_detection": {
-                        "type": "boolean"
-                    },
-                    "animate_emoji": {
-                        "type": "boolean"
-                    },
-                    "animate_stickers": {
-                        "type": "integer"
-                    },
-                    "contact_sync_enabled": {
-                        "type": "boolean"
-                    },
-                    "convert_emoticons": {
-                        "type": "boolean"
-                    },
-                    "custom_status": {
-                        "type": "object",
-                        "properties": {
-                            "emoji_id": {
-                                "type": "string"
-                            },
-                            "emoji_name": {
-                                "type": "string"
-                            },
-                            "expires_at": {
-                                "type": "integer"
-                            },
-                            "text": {
-                                "type": "string"
-                            }
-                        },
-                        "additionalProperties": false
-                    },
-                    "default_guilds_restricted": {
-                        "type": "boolean"
-                    },
-                    "detect_platform_accounts": {
-                        "type": "boolean"
-                    },
-                    "developer_mode": {
-                        "type": "boolean"
-                    },
-                    "disable_games_tab": {
-                        "type": "boolean"
-                    },
-                    "enable_tts_command": {
-                        "type": "boolean"
-                    },
-                    "explicit_content_filter": {
-                        "type": "integer"
-                    },
-                    "friend_source_flags": {
-                        "type": "object",
-                        "properties": {
-                            "all": {
-                                "type": "boolean"
-                            }
-                        },
-                        "additionalProperties": false,
-                        "required": [
-                            "all"
-                        ]
-                    },
-                    "gateway_connected": {
-                        "type": "boolean"
-                    },
-                    "gif_auto_play": {
-                        "type": "boolean"
-                    },
-                    "guild_folders": {
-                        "type": "array",
-                        "items": {
-                            "type": "object",
-                            "properties": {
-                                "color": {
-                                    "type": "integer"
-                                },
-                                "guild_ids": {
-                                    "type": "array",
-                                    "items": {
-                                        "type": "string"
-                                    }
-                                },
-                                "id": {
-                                    "type": "integer"
-                                },
-                                "name": {
-                                    "type": "string"
-                                }
-                            },
-                            "additionalProperties": false,
-                            "required": [
-                                "color",
-                                "guild_ids",
-                                "id",
-                                "name"
-                            ]
-                        }
-                    },
-                    "guild_positions": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    },
-                    "inline_attachment_media": {
-                        "type": "boolean"
-                    },
-                    "inline_embed_media": {
-                        "type": "boolean"
-                    },
-                    "locale": {
-                        "type": "string"
-                    },
-                    "message_display_compact": {
-                        "type": "boolean"
-                    },
-                    "native_phone_integration_enabled": {
-                        "type": "boolean"
-                    },
-                    "render_embeds": {
-                        "type": "boolean"
-                    },
-                    "render_reactions": {
-                        "type": "boolean"
-                    },
-                    "restricted_guilds": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    },
-                    "show_current_game": {
-                        "type": "boolean"
-                    },
-                    "status": {
-                        "enum": [
-                            "dnd",
-                            "idle",
-                            "offline",
-                            "online"
-                        ],
-                        "type": "string"
-                    },
-                    "stream_notifications_enabled": {
-                        "type": "boolean"
-                    },
-                    "theme": {
-                        "enum": [
-                            "dark",
-                            "white"
-                        ],
-                        "type": "string"
-                    },
-                    "timezone_offset": {
-                        "type": "integer"
-                    }
-                },
-                "required": [
-                    "afk_timeout",
-                    "allow_accessibility_detection",
-                    "animate_emoji",
-                    "animate_stickers",
-                    "contact_sync_enabled",
-                    "convert_emoticons",
-                    "custom_status",
-                    "default_guilds_restricted",
-                    "detect_platform_accounts",
-                    "developer_mode",
-                    "disable_games_tab",
-                    "enable_tts_command",
-                    "explicit_content_filter",
-                    "friend_source_flags",
-                    "gateway_connected",
-                    "gif_auto_play",
-                    "guild_folders",
-                    "guild_positions",
-                    "inline_attachment_media",
-                    "inline_embed_media",
-                    "locale",
-                    "message_display_compact",
-                    "native_phone_integration_enabled",
-                    "render_embeds",
-                    "render_reactions",
-                    "restricted_guilds",
-                    "show_current_game",
-                    "status",
-                    "stream_notifications_enabled",
-                    "theme",
-                    "timezone_offset"
-                ]
-            },
-            "Team": {
-                "type": "object",
-                "properties": {
-                    "icon": {
-                        "type": "string"
-                    },
-                    "members": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/TeamMember"
-                        }
-                    },
-                    "name": {
-                        "type": "string"
-                    },
-                    "owner_user_id": {
-                        "type": "string"
-                    },
-                    "owner_user": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "id",
-                    "members",
-                    "name",
-                    "owner_user",
-                    "owner_user_id"
-                ]
-            },
-            "TeamMember": {
-                "type": "object",
-                "properties": {
-                    "membership_state": {
-                        "$ref": "#/components/schemas/TeamMemberState"
-                    },
-                    "permissions": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    },
-                    "team_id": {
-                        "type": "string"
-                    },
-                    "team": {
-                        "$ref": "#/components/schemas/Team"
-                    },
-                    "user_id": {
-                        "type": "string"
-                    },
-                    "user": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "id",
-                    "membership_state",
-                    "permissions",
-                    "team",
-                    "team_id",
-                    "user",
-                    "user_id"
-                ]
-            },
-            "TeamMemberState": {
-                "enum": [
-                    1,
-                    2
-                ],
-                "type": "number"
-            },
-            "Guild": {
-                "type": "object",
-                "properties": {
-                    "afk_channel_id": {
-                        "type": "string"
-                    },
-                    "afk_channel": {
-                        "$ref": "#/components/schemas/Channel"
-                    },
-                    "afk_timeout": {
-                        "type": "integer"
-                    },
-                    "bans": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Ban"
-                        }
-                    },
-                    "banner": {
-                        "type": "string"
-                    },
-                    "default_message_notifications": {
-                        "type": "integer"
-                    },
-                    "description": {
-                        "type": "string"
-                    },
-                    "discovery_splash": {
-                        "type": "string"
-                    },
-                    "explicit_content_filter": {
-                        "type": "integer"
-                    },
-                    "features": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    },
-                    "icon": {
-                        "type": "string"
-                    },
-                    "large": {
-                        "type": "boolean"
-                    },
-                    "max_members": {
-                        "type": "integer"
-                    },
-                    "max_presences": {
-                        "type": "integer"
-                    },
-                    "max_video_channel_users": {
-                        "type": "integer"
-                    },
-                    "member_count": {
-                        "type": "integer"
-                    },
-                    "presence_count": {
-                        "type": "integer"
-                    },
-                    "members": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Member"
-                        }
-                    },
-                    "roles": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Role"
-                        }
-                    },
-                    "channels": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Channel"
-                        }
-                    },
-                    "template_id": {
-                        "type": "string"
-                    },
-                    "template": {
-                        "$ref": "#/components/schemas/Template"
-                    },
-                    "emojis": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Emoji"
-                        }
-                    },
-                    "stickers": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Sticker"
-                        }
-                    },
-                    "invites": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Invite"
-                        }
-                    },
-                    "voice_states": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/VoiceState"
-                        }
-                    },
-                    "webhooks": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Webhook"
-                        }
-                    },
-                    "mfa_level": {
-                        "type": "integer"
-                    },
-                    "name": {
-                        "type": "string"
-                    },
-                    "owner_id": {
-                        "type": "string"
-                    },
-                    "owner": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "preferred_locale": {
-                        "type": "string"
-                    },
-                    "premium_subscription_count": {
-                        "type": "integer"
-                    },
-                    "premium_tier": {
-                        "type": "integer"
-                    },
-                    "public_updates_channel_id": {
-                        "type": "string"
-                    },
-                    "public_updates_channel": {
-                        "$ref": "#/components/schemas/Channel"
-                    },
-                    "rules_channel_id": {
-                        "type": "string"
-                    },
-                    "rules_channel": {
-                        "type": "string"
-                    },
-                    "region": {
-                        "type": "string"
-                    },
-                    "splash": {
-                        "type": "string"
-                    },
-                    "system_channel_id": {
-                        "type": "string"
-                    },
-                    "system_channel": {
-                        "$ref": "#/components/schemas/Channel"
-                    },
-                    "system_channel_flags": {
-                        "type": "integer"
-                    },
-                    "unavailable": {
-                        "type": "boolean"
-                    },
-                    "vanity_url_code": {
-                        "type": "string"
-                    },
-                    "vanity_url": {
-                        "$ref": "#/components/schemas/Invite"
-                    },
-                    "verification_level": {
-                        "type": "integer"
-                    },
-                    "welcome_screen": {
-                        "type": "object",
-                        "properties": {
-                            "enabled": {
-                                "type": "boolean"
-                            },
-                            "description": {
-                                "type": "string"
-                            },
-                            "welcome_channels": {
-                                "type": "array",
-                                "items": {
-                                    "type": "object",
-                                    "properties": {
-                                        "description": {
-                                            "type": "string"
-                                        },
-                                        "emoji_id": {
-                                            "type": "string"
-                                        },
-                                        "emoji_name": {
-                                            "type": "string"
-                                        },
-                                        "channel_id": {
-                                            "type": "string"
-                                        }
-                                    },
-                                    "additionalProperties": false,
-                                    "required": [
-                                        "channel_id",
-                                        "description",
-                                        "emoji_name"
-                                    ]
-                                }
-                            }
-                        },
-                        "additionalProperties": false,
-                        "required": [
-                            "description",
-                            "enabled",
-                            "welcome_channels"
-                        ]
-                    },
-                    "widget_channel_id": {
-                        "type": "string"
-                    },
-                    "widget_channel": {
-                        "$ref": "#/components/schemas/Channel"
-                    },
-                    "widget_enabled": {
-                        "type": "boolean"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "bans",
-                    "channels",
-                    "emojis",
-                    "features",
-                    "id",
-                    "invites",
-                    "members",
-                    "name",
-                    "owner",
-                    "owner_id",
-                    "public_updates_channel_id",
-                    "roles",
-                    "stickers",
-                    "template",
-                    "template_id",
-                    "voice_states",
-                    "webhooks",
-                    "welcome_screen"
-                ]
-            },
-            "Channel": {
-                "type": "object",
-                "properties": {
-                    "created_at": {
-                        "type": "string",
-                        "format": "date-time"
-                    },
-                    "name": {
-                        "type": "string"
-                    },
-                    "type": {
-                        "$ref": "#/components/schemas/ChannelType"
-                    },
-                    "recipients": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Recipient"
-                        }
-                    },
-                    "last_message_id": {
-                        "type": "string"
-                    },
-                    "last_message": {
-                        "$ref": "#/components/schemas/Message"
-                    },
-                    "guild_id": {
-                        "type": "string"
-                    },
-                    "guild": {
-                        "$ref": "#/components/schemas/Guild"
-                    },
-                    "parent_id": {
-                        "type": "string"
-                    },
-                    "parent": {
-                        "$ref": "#/components/schemas/Channel"
-                    },
-                    "owner_id": {
-                        "type": "string"
-                    },
-                    "owner": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "last_pin_timestamp": {
-                        "type": "integer"
-                    },
-                    "default_auto_archive_duration": {
-                        "type": "integer"
-                    },
-                    "position": {
-                        "type": "integer"
-                    },
-                    "permission_overwrites": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/ChannelPermissionOverwrite"
-                        }
-                    },
-                    "video_quality_mode": {
-                        "type": "integer"
-                    },
-                    "bitrate": {
-                        "type": "integer"
-                    },
-                    "user_limit": {
-                        "type": "integer"
-                    },
-                    "nsfw": {
-                        "type": "boolean"
-                    },
-                    "rate_limit_per_user": {
-                        "type": "integer"
-                    },
-                    "topic": {
-                        "type": "string"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "created_at",
-                    "guild",
-                    "id",
-                    "last_message_id",
-                    "name",
-                    "owner",
-                    "owner_id",
-                    "parent_id",
-                    "permission_overwrites",
-                    "position",
-                    "type"
-                ]
-            },
-            "ChannelType": {
-                "enum": [
-                    0,
-                    1,
-                    2,
-                    3,
-                    4,
-                    5,
-                    6
-                ],
-                "type": "number"
-            },
-            "Recipient": {
-                "type": "object",
-                "properties": {
-                    "channel_id": {
-                        "type": "string"
-                    },
-                    "channel": {
-                        "$ref": "#/components/schemas/Channel"
-                    },
-                    "user": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "channel",
-                    "channel_id",
-                    "id",
-                    "user"
-                ]
-            },
-            "Message": {
-                "type": "object",
-                "properties": {
-                    "id": {
-                        "type": "string"
-                    },
-                    "channel_id": {
-                        "type": "string"
-                    },
-                    "channel": {
-                        "$ref": "#/components/schemas/Channel"
-                    },
-                    "guild_id": {
-                        "type": "string"
-                    },
-                    "guild": {
-                        "$ref": "#/components/schemas/Guild"
-                    },
-                    "author_id": {
-                        "type": "string"
-                    },
-                    "author": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "member_id": {
-                        "type": "string"
-                    },
-                    "member": {
-                        "$ref": "#/components/schemas/Member"
-                    },
-                    "webhook_id": {
-                        "type": "string"
-                    },
-                    "webhook": {
-                        "$ref": "#/components/schemas/Webhook"
-                    },
-                    "application_id": {
-                        "type": "string"
-                    },
-                    "application": {
-                        "$ref": "#/components/schemas/Application"
-                    },
-                    "content": {
-                        "type": "string"
-                    },
-                    "timestamp": {
-                        "type": "string",
-                        "format": "date-time"
-                    },
-                    "edited_timestamp": {
-                        "type": "string",
-                        "format": "date-time"
-                    },
-                    "tts": {
-                        "type": "boolean"
-                    },
-                    "mention_everyone": {
-                        "type": "boolean"
-                    },
-                    "mentions": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/User"
-                        }
-                    },
-                    "mention_roles": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Role"
-                        }
-                    },
-                    "mention_channels": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Channel"
-                        }
-                    },
-                    "sticker_items": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Sticker"
-                        }
-                    },
-                    "attachments": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Attachment"
-                        }
-                    },
-                    "embeds": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Embed"
-                        }
-                    },
-                    "reactions": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Reaction"
-                        }
-                    },
-                    "nonce": {
-                        "type": "string"
-                    },
-                    "pinned": {
-                        "type": "boolean"
-                    },
-                    "type": {
-                        "$ref": "#/components/schemas/MessageType"
-                    },
-                    "activity": {
-                        "type": "object",
-                        "properties": {
-                            "type": {
-                                "type": "integer"
-                            },
-                            "party_id": {
-                                "type": "string"
-                            }
-                        },
-                        "additionalProperties": false,
-                        "required": [
-                            "party_id",
-                            "type"
-                        ]
-                    },
-                    "flags": {
-                        "type": "string"
-                    },
-                    "message_reference": {
-                        "type": "object",
-                        "properties": {
-                            "message_id": {
-                                "type": "string"
-                            },
-                            "channel_id": {
-                                "type": "string"
-                            },
-                            "guild_id": {
-                                "type": "string"
-                            }
-                        },
-                        "additionalProperties": false,
-                        "required": [
-                            "message_id"
-                        ]
-                    },
-                    "referenced_message": {
-                        "$ref": "#/components/schemas/Message"
-                    },
-                    "interaction": {
-                        "type": "object",
-                        "properties": {
-                            "id": {
-                                "type": "string"
-                            },
-                            "type": {
-                                "$ref": "#/components/schemas/InteractionType"
-                            },
-                            "name": {
-                                "type": "string"
-                            },
-                            "user_id": {
-                                "type": "string"
-                            }
-                        },
-                        "additionalProperties": false,
-                        "required": [
-                            "id",
-                            "name",
-                            "type",
-                            "user_id"
-                        ]
-                    },
-                    "components": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/MessageComponent"
-                        }
-                    }
-                },
-                "required": [
-                    "application_id",
-                    "author_id",
-                    "channel",
-                    "channel_id",
-                    "embeds",
-                    "id",
-                    "member_id",
-                    "mention_channels",
-                    "mention_roles",
-                    "mentions",
-                    "reactions",
-                    "timestamp",
-                    "type",
-                    "webhook_id"
-                ]
-            },
-            "Member": {
-                "type": "object",
-                "properties": {
-                    "user_id": {
-                        "type": "string"
-                    },
-                    "user": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "guild_id": {
-                        "type": "string"
-                    },
-                    "guild": {
-                        "$ref": "#/components/schemas/Guild"
-                    },
-                    "nick": {
-                        "type": "string"
-                    },
-                    "roles": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Role"
-                        }
-                    },
-                    "joined_at": {
-                        "type": "string",
-                        "format": "date-time"
-                    },
-                    "premium_since": {
-                        "type": "integer"
-                    },
-                    "deaf": {
-                        "type": "boolean"
-                    },
-                    "mute": {
-                        "type": "boolean"
-                    },
-                    "pending": {
-                        "type": "boolean"
-                    },
-                    "settings": {
-                        "$ref": "#/components/schemas/UserGuildSettings"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "deaf",
-                    "guild",
-                    "guild_id",
-                    "id",
-                    "joined_at",
-                    "mute",
-                    "pending",
-                    "roles",
-                    "settings",
-                    "user",
-                    "user_id"
-                ]
-            },
-            "Role": {
-                "type": "object",
-                "properties": {
-                    "guild_id": {
-                        "type": "string"
-                    },
-                    "guild": {
-                        "$ref": "#/components/schemas/Guild"
-                    },
-                    "color": {
-                        "type": "integer"
-                    },
-                    "hoist": {
-                        "type": "boolean"
-                    },
-                    "managed": {
-                        "type": "boolean"
-                    },
-                    "mentionable": {
-                        "type": "boolean"
-                    },
-                    "name": {
-                        "type": "string"
-                    },
-                    "permissions": {
-                        "type": "string"
-                    },
-                    "position": {
-                        "type": "integer"
-                    },
-                    "tags": {
-                        "type": "object",
-                        "properties": {
-                            "bot_id": {
-                                "type": "string"
-                            },
-                            "integration_id": {
-                                "type": "string"
-                            },
-                            "premium_subscriber": {
-                                "type": "boolean"
-                            }
-                        },
-                        "additionalProperties": false
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "color",
-                    "guild",
-                    "guild_id",
-                    "hoist",
-                    "id",
-                    "managed",
-                    "mentionable",
-                    "name",
-                    "permissions",
-                    "position"
-                ]
-            },
-            "UserGuildSettings": {
-                "type": "object",
-                "properties": {
-                    "channel_overrides": {
-                        "type": "array",
-                        "items": {
-                            "type": "object",
-                            "properties": {
-                                "channel_id": {
-                                    "type": "string"
-                                },
-                                "message_notifications": {
-                                    "type": "integer"
-                                },
-                                "mute_config": {
-                                    "$ref": "#/components/schemas/MuteConfig"
-                                },
-                                "muted": {
-                                    "type": "boolean"
-                                }
-                            },
-                            "additionalProperties": false,
-                            "required": [
-                                "channel_id",
-                                "message_notifications",
-                                "mute_config",
-                                "muted"
-                            ]
-                        }
-                    },
-                    "message_notifications": {
-                        "type": "integer"
-                    },
-                    "mobile_push": {
-                        "type": "boolean"
-                    },
-                    "mute_config": {
-                        "$ref": "#/components/schemas/MuteConfig"
-                    },
-                    "muted": {
-                        "type": "boolean"
-                    },
-                    "suppress_everyone": {
-                        "type": "boolean"
-                    },
-                    "suppress_roles": {
-                        "type": "boolean"
-                    },
-                    "version": {
-                        "type": "integer"
-                    }
-                },
-                "required": [
-                    "channel_overrides",
-                    "message_notifications",
-                    "mobile_push",
-                    "mute_config",
-                    "muted",
-                    "suppress_everyone",
-                    "suppress_roles",
-                    "version"
-                ]
-            },
-            "MuteConfig": {
-                "type": "object",
-                "properties": {
-                    "end_time": {
-                        "type": "integer"
-                    },
-                    "selected_time_window": {
-                        "type": "integer"
-                    }
-                },
-                "required": [
-                    "end_time",
-                    "selected_time_window"
-                ]
-            },
-            "Webhook": {
-                "type": "object",
-                "properties": {
-                    "id": {
-                        "type": "string"
-                    },
-                    "type": {
-                        "$ref": "#/components/schemas/WebhookType"
-                    },
-                    "name": {
-                        "type": "string"
-                    },
-                    "avatar": {
-                        "type": "string"
-                    },
-                    "token": {
-                        "type": "string"
-                    },
-                    "guild_id": {
-                        "type": "string"
-                    },
-                    "guild": {
-                        "$ref": "#/components/schemas/Guild"
-                    },
-                    "channel_id": {
-                        "type": "string"
-                    },
-                    "channel": {
-                        "$ref": "#/components/schemas/Channel"
-                    },
-                    "application_id": {
-                        "type": "string"
-                    },
-                    "application": {
-                        "$ref": "#/components/schemas/Application"
-                    },
-                    "user_id": {
-                        "type": "string"
-                    },
-                    "user": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "source_guild_id": {
-                        "type": "string"
-                    },
-                    "source_guild": {
-                        "$ref": "#/components/schemas/Guild"
-                    }
-                },
-                "required": [
-                    "application",
-                    "application_id",
-                    "channel",
-                    "channel_id",
-                    "guild",
-                    "guild_id",
-                    "id",
-                    "source_guild",
-                    "source_guild_id",
-                    "type",
-                    "user",
-                    "user_id"
-                ]
-            },
-            "WebhookType": {
-                "enum": [
-                    1,
-                    2
-                ],
-                "type": "number"
-            },
-            "Application": {
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "type": "string"
-                    },
-                    "icon": {
-                        "type": "string"
-                    },
-                    "description": {
-                        "type": "string"
-                    },
-                    "rpc_origins": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    },
-                    "bot_public": {
-                        "type": "boolean"
-                    },
-                    "bot_require_code_grant": {
-                        "type": "boolean"
-                    },
-                    "terms_of_service_url": {
-                        "type": "string"
-                    },
-                    "privacy_policy_url": {
-                        "type": "string"
-                    },
-                    "owner": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "summary": {
-                        "type": "string"
-                    },
-                    "verify_key": {
-                        "type": "string"
-                    },
-                    "team": {
-                        "$ref": "#/components/schemas/Team"
-                    },
-                    "guild": {
-                        "$ref": "#/components/schemas/Guild"
-                    },
-                    "primary_sku_id": {
-                        "type": "string"
-                    },
-                    "slug": {
-                        "type": "string"
-                    },
-                    "cover_image": {
-                        "type": "string"
-                    },
-                    "flags": {
-                        "type": "string"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "bot_public",
-                    "bot_require_code_grant",
-                    "description",
-                    "flags",
-                    "guild",
-                    "id",
-                    "name",
-                    "verify_key"
-                ]
-            },
-            "Sticker": {
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "type": "string"
-                    },
-                    "description": {
-                        "type": "string"
-                    },
-                    "tags": {
-                        "type": "string"
-                    },
-                    "pack_id": {
-                        "type": "string"
-                    },
-                    "guild_id": {
-                        "type": "string"
-                    },
-                    "guild": {
-                        "$ref": "#/components/schemas/Guild"
-                    },
-                    "type": {
-                        "$ref": "#/components/schemas/StickerType"
-                    },
-                    "format_type": {
-                        "$ref": "#/components/schemas/StickerFormatType"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "format_type",
-                    "id",
-                    "name",
-                    "pack_id",
-                    "tags",
-                    "type"
-                ]
-            },
-            "StickerType": {
-                "enum": [
-                    1,
-                    2
-                ],
-                "type": "number"
-            },
-            "StickerFormatType": {
-                "enum": [
-                    1,
-                    2,
-                    3
-                ],
-                "type": "number"
-            },
-            "Attachment": {
-                "type": "object",
-                "properties": {
-                    "filename": {
-                        "type": "string"
-                    },
-                    "size": {
-                        "type": "integer"
-                    },
-                    "url": {
-                        "type": "string"
-                    },
-                    "proxy_url": {
-                        "type": "string"
-                    },
-                    "height": {
-                        "type": "integer"
-                    },
-                    "width": {
-                        "type": "integer"
-                    },
-                    "content_type": {
-                        "type": "string"
-                    },
-                    "message_id": {
-                        "type": "string"
-                    },
-                    "message": {
-                        "$ref": "#/components/schemas/Message"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "filename",
-                    "id",
-                    "message",
-                    "message_id",
-                    "proxy_url",
-                    "size",
-                    "url"
-                ]
-            },
-            "Embed": {
-                "type": "object",
-                "properties": {
-                    "title": {
-                        "type": "string"
-                    },
-                    "type": {
-                        "enum": [
-                            "article",
-                            "gifv",
-                            "image",
-                            "link",
-                            "rich",
-                            "video"
-                        ],
-                        "type": "string"
-                    },
-                    "description": {
-                        "type": "string"
-                    },
-                    "url": {
-                        "type": "string"
-                    },
-                    "timestamp": {
-                        "type": "string",
-                        "format": "date-time"
-                    },
-                    "color": {
-                        "type": "integer"
-                    },
-                    "footer": {
-                        "type": "object",
-                        "properties": {
-                            "text": {
-                                "type": "string"
-                            },
-                            "icon_url": {
-                                "type": "string"
-                            },
-                            "proxy_icon_url": {
-                                "type": "string"
-                            }
-                        },
-                        "additionalProperties": false,
-                        "required": [
-                            "text"
-                        ]
-                    },
-                    "image": {
-                        "$ref": "#/components/schemas/EmbedImage"
-                    },
-                    "thumbnail": {
-                        "$ref": "#/components/schemas/EmbedImage"
-                    },
-                    "video": {
-                        "$ref": "#/components/schemas/EmbedImage"
-                    },
-                    "provider": {
-                        "type": "object",
-                        "properties": {
-                            "name": {
-                                "type": "string"
-                            },
-                            "url": {
-                                "type": "string"
-                            }
-                        },
-                        "additionalProperties": false
-                    },
-                    "author": {
-                        "type": "object",
-                        "properties": {
-                            "name": {
-                                "type": "string"
-                            },
-                            "url": {
-                                "type": "string"
-                            },
-                            "icon_url": {
-                                "type": "string"
-                            },
-                            "proxy_icon_url": {
-                                "type": "string"
-                            }
-                        },
-                        "additionalProperties": false
-                    },
-                    "fields": {
-                        "type": "array",
-                        "items": {
-                            "type": "object",
-                            "properties": {
-                                "name": {
-                                    "type": "string"
-                                },
-                                "value": {
-                                    "type": "string"
-                                },
-                                "inline": {
-                                    "type": "boolean"
-                                }
-                            },
-                            "additionalProperties": false,
-                            "required": [
-                                "name",
-                                "value"
-                            ]
-                        }
-                    }
-                }
-            },
-            "EmbedType": {
-                "enum": [
-                    "article",
-                    "gifv",
-                    "image",
-                    "link",
-                    "rich",
-                    "video"
-                ],
-                "type": "string"
-            },
-            "EmbedImage": {
-                "type": "object",
-                "properties": {
-                    "url": {
-                        "type": "string"
-                    },
-                    "proxy_url": {
-                        "type": "string"
-                    },
-                    "height": {
-                        "type": "integer"
-                    },
-                    "width": {
-                        "type": "integer"
-                    }
-                }
-            },
-            "Reaction": {
-                "type": "object",
-                "properties": {
-                    "count": {
-                        "type": "integer"
-                    },
-                    "emoji": {
-                        "$ref": "#/components/schemas/PartialEmoji"
-                    },
-                    "user_ids": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    }
-                },
-                "required": [
-                    "count",
-                    "emoji",
-                    "user_ids"
-                ]
-            },
-            "PartialEmoji": {
-                "type": "object",
-                "properties": {
-                    "id": {
-                        "type": "string"
-                    },
-                    "name": {
-                        "type": "string"
-                    },
-                    "animated": {
-                        "type": "boolean"
-                    }
-                },
-                "required": [
-                    "name"
-                ]
-            },
-            "MessageType": {
-                "enum": [
-                    0,
-                    1,
-                    10,
-                    11,
-                    12,
-                    14,
-                    15,
-                    19,
-                    2,
-                    20,
-                    3,
-                    4,
-                    5,
-                    6,
-                    7,
-                    8,
-                    9
-                ],
-                "type": "number"
-            },
-            "InteractionType": {
-                "enum": [
-                    1,
-                    2
-                ],
-                "type": "number"
-            },
-            "MessageComponent": {
-                "type": "object",
-                "properties": {
-                    "type": {
-                        "type": "integer"
-                    },
-                    "style": {
-                        "type": "integer"
-                    },
-                    "label": {
-                        "type": "string"
-                    },
-                    "emoji": {
-                        "$ref": "#/components/schemas/PartialEmoji"
-                    },
-                    "custom_id": {
-                        "type": "string"
-                    },
-                    "url": {
-                        "type": "string"
-                    },
-                    "disabled": {
-                        "type": "boolean"
-                    },
-                    "components": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/MessageComponent"
-                        }
-                    }
-                },
-                "required": [
-                    "components",
-                    "type"
-                ]
-            },
-            "ChannelPermissionOverwrite": {
-                "type": "object",
-                "properties": {
-                    "allow": {
-                        "type": "number"
-                    },
-                    "deny": {
-                        "type": "number"
-                    },
-                    "id": {
-                        "type": "string"
-                    },
-                    "type": {
-                        "$ref": "#/components/schemas/ChannelPermissionOverwriteType"
-                    }
-                },
-                "required": [
-                    "allow",
-                    "deny",
-                    "id",
-                    "type"
-                ]
-            },
-            "ChannelPermissionOverwriteType": {
-                "enum": [
-                    0,
-                    1
-                ],
-                "type": "number"
-            },
-            "Ban": {
-                "type": "object",
-                "properties": {
-                    "user_id": {
-                        "type": "string"
-                    },
-                    "user": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "guild_id": {
-                        "type": "string"
-                    },
-                    "guild": {
-                        "$ref": "#/components/schemas/Guild"
-                    },
-                    "executor_id": {
-                        "type": "string"
-                    },
-                    "executor": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "ip": {
-                        "type": "string"
-                    },
-                    "reason": {
-                        "type": "string"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "executor",
-                    "executor_id",
-                    "guild",
-                    "guild_id",
-                    "id",
-                    "ip",
-                    "user",
-                    "user_id"
-                ]
-            },
-            "Template": {
-                "type": "object",
-                "properties": {
-                    "code": {
-                        "type": "string"
-                    },
-                    "name": {
-                        "type": "string"
-                    },
-                    "description": {
-                        "type": "string"
-                    },
-                    "usage_count": {
-                        "type": "integer"
-                    },
-                    "creator_id": {
-                        "type": "string"
-                    },
-                    "creator": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "created_at": {
-                        "type": "string",
-                        "format": "date-time"
-                    },
-                    "updated_at": {
-                        "type": "string",
-                        "format": "date-time"
-                    },
-                    "source_guild_id": {
-                        "type": "string"
-                    },
-                    "source_guild": {
-                        "$ref": "#/components/schemas/Guild"
-                    },
-                    "serialized_source_guild": {
-                        "$ref": "#/components/schemas/Guild"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "code",
-                    "created_at",
-                    "creator",
-                    "creator_id",
-                    "id",
-                    "name",
-                    "serialized_source_guild",
-                    "source_guild",
-                    "source_guild_id",
-                    "updated_at"
-                ]
-            },
-            "Emoji": {
-                "type": "object",
-                "properties": {
-                    "animated": {
-                        "type": "boolean"
-                    },
-                    "available": {
-                        "type": "boolean"
-                    },
-                    "guild_id": {
-                        "type": "string"
-                    },
-                    "guild": {
-                        "$ref": "#/components/schemas/Guild"
-                    },
-                    "managed": {
-                        "type": "boolean"
-                    },
-                    "name": {
-                        "type": "string"
-                    },
-                    "require_colons": {
-                        "type": "boolean"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "animated",
-                    "available",
-                    "guild",
-                    "guild_id",
-                    "id",
-                    "managed",
-                    "name",
-                    "require_colons"
-                ]
-            },
-            "Invite": {
-                "type": "object",
-                "properties": {
-                    "code": {
-                        "type": "string"
-                    },
-                    "temporary": {
-                        "type": "boolean"
-                    },
-                    "uses": {
-                        "type": "integer"
-                    },
-                    "max_uses": {
-                        "type": "integer"
-                    },
-                    "max_age": {
-                        "type": "integer"
-                    },
-                    "created_at": {
-                        "type": "string",
-                        "format": "date-time"
-                    },
-                    "expires_at": {
-                        "type": "string",
-                        "format": "date-time"
-                    },
-                    "guild_id": {
-                        "type": "string"
-                    },
-                    "guild": {
-                        "$ref": "#/components/schemas/Guild"
-                    },
-                    "channel_id": {
-                        "type": "string"
-                    },
-                    "channel": {
-                        "$ref": "#/components/schemas/Channel"
-                    },
-                    "inviter_id": {
-                        "type": "string"
-                    },
-                    "inviter": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "target_user_id": {
-                        "type": "string"
-                    },
-                    "target_user": {
-                        "type": "string"
-                    },
-                    "target_user_type": {
-                        "type": "integer"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "channel",
-                    "channel_id",
-                    "code",
-                    "created_at",
-                    "expires_at",
-                    "guild",
-                    "guild_id",
-                    "id",
-                    "inviter",
-                    "inviter_id",
-                    "max_age",
-                    "max_uses",
-                    "target_user_id",
-                    "temporary",
-                    "uses"
-                ]
-            },
-            "VoiceState": {
-                "type": "object",
-                "properties": {
-                    "guild_id": {
-                        "type": "string"
-                    },
-                    "guild": {
-                        "$ref": "#/components/schemas/Guild"
-                    },
-                    "channel_id": {
-                        "type": "string"
-                    },
-                    "channel": {
-                        "$ref": "#/components/schemas/Channel"
-                    },
-                    "user_id": {
-                        "type": "string"
-                    },
-                    "user": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "session_id": {
-                        "type": "string"
-                    },
-                    "deaf": {
-                        "type": "boolean"
-                    },
-                    "mute": {
-                        "type": "boolean"
-                    },
-                    "self_deaf": {
-                        "type": "boolean"
-                    },
-                    "self_mute": {
-                        "type": "boolean"
-                    },
-                    "self_stream": {
-                        "type": "boolean"
-                    },
-                    "self_video": {
-                        "type": "boolean"
-                    },
-                    "suppress": {
-                        "type": "boolean"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "channel",
-                    "channel_id",
-                    "deaf",
-                    "guild_id",
-                    "id",
-                    "mute",
-                    "self_deaf",
-                    "self_mute",
-                    "self_video",
-                    "session_id",
-                    "suppress",
-                    "user",
-                    "user_id"
-                ]
-            },
-            "AuditLogEvents": {
-                "enum": [
-                    1,
-                    10,
-                    11,
-                    12,
-                    13,
-                    14,
-                    15,
-                    20,
-                    21,
-                    22,
-                    23,
-                    24,
-                    25,
-                    26,
-                    27,
-                    28,
-                    30,
-                    31,
-                    32,
-                    40,
-                    41,
-                    42,
-                    50,
-                    51,
-                    52,
-                    60,
-                    61,
-                    62,
-                    72,
-                    73,
-                    74,
-                    75,
-                    80,
-                    81,
-                    82
-                ],
-                "type": "number"
-            },
-            "AuditLogChange": {
-                "type": "object",
-                "properties": {
-                    "new_value": {
-                        "$ref": "#/components/schemas/AuditLogChangeValue"
-                    },
-                    "old_value": {
-                        "$ref": "#/components/schemas/AuditLogChangeValue"
-                    },
-                    "key": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "key"
-                ]
-            },
-            "AuditLogChangeValue": {
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "type": "string"
-                    },
-                    "description": {
-                        "type": "string"
-                    },
-                    "icon_hash": {
-                        "type": "string"
-                    },
-                    "splash_hash": {
-                        "type": "string"
-                    },
-                    "discovery_splash_hash": {
-                        "type": "string"
-                    },
-                    "banner_hash": {
-                        "type": "string"
-                    },
-                    "owner_id": {
-                        "type": "string"
-                    },
-                    "region": {
-                        "type": "string"
-                    },
-                    "preferred_locale": {
-                        "type": "string"
-                    },
-                    "afk_channel_id": {
-                        "type": "string"
-                    },
-                    "afk_timeout": {
-                        "type": "integer"
-                    },
-                    "rules_channel_id": {
-                        "type": "string"
-                    },
-                    "public_updates_channel_id": {
-                        "type": "string"
-                    },
-                    "mfa_level": {
-                        "type": "integer"
-                    },
-                    "verification_level": {
-                        "type": "integer"
-                    },
-                    "explicit_content_filter": {
-                        "type": "integer"
-                    },
-                    "default_message_notifications": {
-                        "type": "integer"
-                    },
-                    "vanity_url_code": {
-                        "type": "string"
-                    },
-                    "$add": {
-                        "type": "array",
-                        "items": {
-                            "type": "object",
-                            "properties": {}
-                        }
-                    },
-                    "$remove": {
-                        "type": "array",
-                        "items": {
-                            "type": "object",
-                            "properties": {}
-                        }
-                    },
-                    "prune_delete_days": {
-                        "type": "integer"
-                    },
-                    "widget_enabled": {
-                        "type": "boolean"
-                    },
-                    "widget_channel_id": {
-                        "type": "string"
-                    },
-                    "system_channel_id": {
-                        "type": "string"
-                    },
-                    "position": {
-                        "type": "integer"
-                    },
-                    "topic": {
-                        "type": "string"
-                    },
-                    "bitrate": {
-                        "type": "integer"
-                    },
-                    "permission_overwrites": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/ChannelPermissionOverwrite"
-                        }
-                    },
-                    "nsfw": {
-                        "type": "boolean"
-                    },
-                    "application_id": {
-                        "type": "string"
-                    },
-                    "rate_limit_per_user": {
-                        "type": "integer"
-                    },
-                    "permissions": {
-                        "type": "string"
-                    },
-                    "color": {
-                        "type": "integer"
-                    },
-                    "hoist": {
-                        "type": "boolean"
-                    },
-                    "mentionable": {
-                        "type": "boolean"
-                    },
-                    "allow": {
-                        "type": "string"
-                    },
-                    "deny": {
-                        "type": "string"
-                    },
-                    "code": {
-                        "type": "string"
-                    },
-                    "channel_id": {
-                        "type": "string"
-                    },
-                    "inviter_id": {
-                        "type": "string"
-                    },
-                    "max_uses": {
-                        "type": "integer"
-                    },
-                    "uses": {
-                        "type": "integer"
-                    },
-                    "max_age": {
-                        "type": "integer"
-                    },
-                    "temporary": {
-                        "type": "boolean"
-                    },
-                    "deaf": {
-                        "type": "boolean"
-                    },
-                    "mute": {
-                        "type": "boolean"
-                    },
-                    "nick": {
-                        "type": "string"
-                    },
-                    "avatar_hash": {
-                        "type": "string"
-                    },
-                    "id": {
-                        "type": "string"
-                    },
-                    "type": {
-                        "type": "integer"
-                    },
-                    "enable_emoticons": {
-                        "type": "boolean"
-                    },
-                    "expire_behavior": {
-                        "type": "integer"
-                    },
-                    "expire_grace_period": {
-                        "type": "integer"
-                    },
-                    "user_limit": {
-                        "type": "integer"
-                    }
-                }
-            },
-            "AuditLog": {
-                "type": "object",
-                "properties": {
-                    "target": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "user_id": {
-                        "type": "string"
-                    },
-                    "user": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "action_type": {
-                        "$ref": "#/components/schemas/AuditLogEvents"
-                    },
-                    "options": {
-                        "type": "object",
-                        "properties": {
-                            "delete_member_days": {
-                                "type": "string"
-                            },
-                            "members_removed": {
-                                "type": "string"
-                            },
-                            "channel_id": {
-                                "type": "string"
-                            },
-                            "messaged_id": {
-                                "type": "string"
-                            },
-                            "count": {
-                                "type": "string"
-                            },
-                            "id": {
-                                "type": "string"
-                            },
-                            "type": {
-                                "type": "string"
-                            },
-                            "role_name": {
-                                "type": "string"
-                            }
-                        },
-                        "additionalProperties": false
-                    },
-                    "changes": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/AuditLogChange"
-                        }
-                    },
-                    "reason": {
-                        "type": "string"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "action_type",
-                    "changes",
-                    "id",
-                    "user",
-                    "user_id"
-                ]
-            },
-            "ReadState": {
-                "type": "object",
-                "properties": {
-                    "channel_id": {
-                        "type": "string"
-                    },
-                    "channel": {
-                        "$ref": "#/components/schemas/Channel"
-                    },
-                    "user_id": {
-                        "type": "string"
-                    },
-                    "user": {
-                        "$ref": "#/components/schemas/User"
-                    },
-                    "last_message_id": {
-                        "type": "string"
-                    },
-                    "last_message": {
-                        "$ref": "#/components/schemas/Message"
-                    },
-                    "last_pin_timestamp": {
-                        "type": "string",
-                        "format": "date-time"
-                    },
-                    "mention_count": {
-                        "type": "integer"
-                    },
-                    "manual": {
-                        "type": "boolean"
-                    },
-                    "id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "channel",
-                    "channel_id",
-                    "id",
-                    "last_message_id",
-                    "manual",
-                    "mention_count",
-                    "user",
-                    "user_id"
-                ]
-            },
-            "UserPublic": {
-                "type": "object",
-                "properties": {
-                    "username": {
-                        "type": "string"
-                    },
-                    "discriminator": {
-                        "type": "string"
-                    },
-                    "id": {
-                        "type": "string"
-                    },
-                    "public_flags": {
-                        "type": "integer"
-                    },
-                    "avatar": {
-                        "type": "string"
-                    },
-                    "accent_color": {
-                        "type": "integer"
-                    },
-                    "banner": {
-                        "type": "string"
-                    },
-                    "bio": {
-                        "type": "string"
-                    },
-                    "bot": {
-                        "type": "boolean"
-                    }
-                },
-                "required": [
-                    "bio",
-                    "bot",
-                    "discriminator",
-                    "id",
-                    "public_flags",
-                    "username"
-                ]
-            },
-            "UserPrivate": {
-                "type": "object",
-                "properties": {
-                    "locale": {
-                        "type": "string"
-                    },
-                    "disabled": {
-                        "type": "boolean"
-                    },
-                    "username": {
-                        "type": "string"
-                    },
-                    "discriminator": {
-                        "type": "string"
-                    },
-                    "id": {
-                        "type": "string"
-                    },
-                    "public_flags": {
-                        "type": "string"
-                    },
-                    "avatar": {
-                        "type": "string"
-                    },
-                    "accent_color": {
-                        "type": "integer"
-                    },
-                    "banner": {
-                        "type": "string"
-                    },
-                    "bio": {
-                        "type": "string"
-                    },
-                    "bot": {
-                        "type": "boolean"
-                    },
-                    "flags": {
-                        "type": "string"
-                    },
-                    "mfa_enabled": {
-                        "type": "boolean"
-                    },
-                    "email": {
-                        "type": "string"
-                    },
-                    "phone": {
-                        "type": "string"
-                    },
-                    "verified": {
-                        "type": "boolean"
-                    },
-                    "nsfw_allowed": {
-                        "type": "boolean"
-                    },
-                    "premium": {
-                        "type": "boolean"
-                    },
-                    "premium_type": {
-                        "type": "integer"
-                    }
-                },
-                "required": [
-                    "bio",
-                    "bot",
-                    "disabled",
-                    "discriminator",
-                    "flags",
-                    "id",
-                    "locale",
-                    "mfa_enabled",
-                    "nsfw_allowed",
-                    "premium",
-                    "premium_type",
-                    "public_flags",
-                    "username",
-                    "verified"
-                ]
-            },
-            "BanCreateSchema": {
-                "type": "object",
-                "properties": {
-                    "delete_message_days": {
-                        "type": "string"
-                    },
-                    "reason": {
-                        "type": "string"
-                    }
-                }
-            },
-            "DmChannelCreateSchema": {
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "type": "string"
-                    },
-                    "recipients": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    }
-                },
-                "required": [
-                    "recipients"
-                ]
-            },
-            "ChannelModifySchema": {
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "maxLength": 100,
-                        "type": "string"
-                    },
-                    "type": {
-                        "enum": [
-                            0,
-                            1,
-                            10,
-                            11,
-                            12,
-                            13,
-                            2,
-                            3,
-                            4,
-                            5,
-                            6
-                        ],
-                        "type": "number"
-                    },
-                    "topic": {
-                        "type": "string"
-                    },
-                    "icon": {
-                        "type": "string",
-                        "nullable": true
-                    },
-                    "bitrate": {
-                        "type": "integer"
-                    },
-                    "user_limit": {
-                        "type": "integer"
-                    },
-                    "rate_limit_per_user": {
-                        "type": "integer"
-                    },
-                    "position": {
-                        "type": "integer"
-                    },
-                    "permission_overwrites": {
-                        "type": "array",
-                        "items": {
-                            "type": "object",
-                            "properties": {
-                                "id": {
-                                    "type": "string"
-                                },
-                                "type": {
-                                    "$ref": "#/components/schemas/ChannelPermissionOverwriteType"
-                                },
-                                "allow": {
-                                    "type": "number"
-                                },
-                                "deny": {
-                                    "type": "number"
-                                }
-                            },
-                            "additionalProperties": false,
-                            "required": [
-                                "allow",
-                                "deny",
-                                "id",
-                                "type"
-                            ]
-                        }
-                    },
-                    "parent_id": {
-                        "type": "string"
-                    },
-                    "id": {
-                        "type": "string"
-                    },
-                    "nsfw": {
-                        "type": "boolean"
-                    },
-                    "rtc_region": {
-                        "type": "string"
-                    },
-                    "default_auto_archive_duration": {
-                        "type": "integer"
-                    }
-                }
-            },
-            "ChannelGuildPositionUpdateSchema": {
-                "type": "array",
-                "items": {
-                    "type": "object",
-                    "properties": {
-                        "id": {
-                            "type": "string"
-                        },
-                        "position": {
-                            "type": "integer"
-                        }
-                    },
-                    "additionalProperties": false,
-                    "required": [
-                        "id"
-                    ]
-                }
-            },
-            "EmojiCreateSchema": {
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "type": "string"
-                    },
-                    "image": {
-                        "type": "string"
-                    },
-                    "roles": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    }
-                },
-                "required": [
-                    "image",
-                    "name"
-                ]
-            },
-            "GuildCreateSchema": {
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "maxLength": 100,
-                        "type": "string"
-                    },
-                    "region": {
-                        "type": "string"
-                    },
-                    "icon": {
-                        "type": "string",
-                        "nullable": true
-                    },
-                    "channels": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/ChannelModifySchema"
-                        }
-                    },
-                    "guild_template_code": {
-                        "type": "string"
-                    },
-                    "system_channel_id": {
-                        "type": "string"
-                    },
-                    "rules_channel_id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "name"
-                ]
-            },
-            "GuildUpdateSchema": {
-                "type": "object",
-                "properties": {
-                    "banner": {
-                        "type": "string",
-                        "nullable": true
-                    },
-                    "splash": {
-                        "type": "string",
-                        "nullable": true
-                    },
-                    "description": {
-                        "type": "string"
-                    },
-                    "features": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    },
-                    "verification_level": {
-                        "type": "integer"
-                    },
-                    "default_message_notifications": {
-                        "type": "integer"
-                    },
-                    "system_channel_flags": {
-                        "type": "integer"
-                    },
-                    "explicit_content_filter": {
-                        "type": "integer"
-                    },
-                    "public_updates_channel_id": {
-                        "type": "string"
-                    },
-                    "afk_timeout": {
-                        "type": "integer"
-                    },
-                    "afk_channel_id": {
-                        "type": "string"
-                    },
-                    "preferred_locale": {
-                        "type": "string"
-                    },
-                    "name": {
-                        "maxLength": 100,
-                        "type": "string"
-                    },
-                    "region": {
-                        "type": "string"
-                    },
-                    "icon": {
-                        "type": "string",
-                        "nullable": true
-                    },
-                    "guild_template_code": {
-                        "type": "string"
-                    },
-                    "system_channel_id": {
-                        "type": "string"
-                    },
-                    "rules_channel_id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "name"
-                ]
-            },
-            "GuildTemplateCreateSchema": {
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "type": "string"
-                    },
-                    "avatar": {
-                        "type": "string",
-                        "nullable": true
-                    }
-                },
-                "required": [
-                    "name"
-                ]
-            },
-            "GuildUpdateWelcomeScreenSchema": {
-                "type": "object",
-                "properties": {
-                    "welcome_channels": {
-                        "type": "array",
-                        "items": {
-                            "type": "object",
-                            "properties": {
-                                "channel_id": {
-                                    "type": "string"
-                                },
-                                "description": {
-                                    "type": "string"
-                                },
-                                "emoji_id": {
-                                    "type": "string"
-                                },
-                                "emoji_name": {
-                                    "type": "string"
-                                }
-                            },
-                            "additionalProperties": false,
-                            "required": [
-                                "channel_id",
-                                "description",
-                                "emoji_name"
-                            ]
-                        }
-                    },
-                    "enabled": {
-                        "type": "boolean"
-                    },
-                    "description": {
-                        "type": "string"
-                    }
-                }
-            },
-            "InviteCreateSchema": {
-                "type": "object",
-                "properties": {
-                    "target_user_id": {
-                        "type": "string"
-                    },
-                    "target_type": {
-                        "type": "string"
-                    },
-                    "validate": {
-                        "type": "string"
-                    },
-                    "max_age": {
-                        "type": "integer"
-                    },
-                    "max_uses": {
-                        "type": "integer"
-                    },
-                    "temporary": {
-                        "type": "boolean"
-                    },
-                    "unique": {
-                        "type": "boolean"
-                    },
-                    "target_user": {
-                        "type": "string"
-                    },
-                    "target_user_type": {
-                        "type": "integer"
-                    }
-                }
-            },
-            "MemberCreateSchema": {
-                "type": "object",
-                "properties": {
-                    "id": {
-                        "type": "string"
-                    },
-                    "nick": {
-                        "type": "string"
-                    },
-                    "guild_id": {
-                        "type": "string"
-                    },
-                    "joined_at": {
-                        "type": "string",
-                        "format": "date-time"
-                    }
-                },
-                "required": [
-                    "guild_id",
-                    "id",
-                    "joined_at",
-                    "nick"
-                ]
-            },
-            "MemberNickChangeSchema": {
-                "type": "object",
-                "properties": {
-                    "nick": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "nick"
-                ]
-            },
-            "MemberChangeSchema": {
-                "type": "object",
-                "properties": {
-                    "roles": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    }
-                }
-            },
-            "MessageCreateSchema": {
-                "type": "object",
-                "properties": {
-                    "content": {
-                        "type": "string"
-                    },
-                    "nonce": {
-                        "type": "string"
-                    },
-                    "tts": {
-                        "type": "boolean"
-                    },
-                    "flags": {
-                        "type": "string"
-                    },
-                    "embeds": {
-                        "type": "array",
-                        "items": {
-                            "$ref": "#/components/schemas/Embed"
-                        }
-                    },
-                    "embed": {
-                        "$ref": "#/components/schemas/Embed"
-                    },
-                    "allowed_mentions": {
-                        "type": "object",
-                        "properties": {
-                            "parse": {
-                                "type": "array",
-                                "items": {
-                                    "type": "string"
-                                }
-                            },
-                            "roles": {
-                                "type": "array",
-                                "items": {
-                                    "type": "string"
-                                }
-                            },
-                            "users": {
-                                "type": "array",
-                                "items": {
-                                    "type": "string"
-                                }
-                            },
-                            "replied_user": {
-                                "type": "boolean"
-                            }
-                        },
-                        "additionalProperties": false
-                    },
-                    "message_reference": {
-                        "type": "object",
-                        "properties": {
-                            "message_id": {
-                                "type": "string"
-                            },
-                            "channel_id": {
-                                "type": "string"
-                            },
-                            "guild_id": {
-                                "type": "string"
-                            },
-                            "fail_if_not_exists": {
-                                "type": "boolean"
-                            }
-                        },
-                        "additionalProperties": false,
-                        "required": [
-                            "channel_id",
-                            "message_id"
-                        ]
-                    },
-                    "payload_json": {
-                        "type": "string"
-                    },
-                    "file": {},
-                    "attachments": {
-                        "type": "array",
-                        "items": {}
-                    }
-                }
-            },
-            "RoleModifySchema": {
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "type": "string"
-                    },
-                    "permissions": {
-                        "type": "number"
-                    },
-                    "color": {
-                        "type": "integer"
-                    },
-                    "hoist": {
-                        "type": "boolean"
-                    },
-                    "mentionable": {
-                        "type": "boolean"
-                    },
-                    "position": {
-                        "type": "integer"
-                    }
-                }
-            },
-            "TemplateCreateSchema": {
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "type": "string"
-                    },
-                    "description": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "name"
-                ]
-            },
-            "TemplateModifySchema": {
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "type": "string"
-                    },
-                    "description": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "name"
-                ]
-            },
-            "UserModifySchema": {
-                "type": "object",
-                "properties": {
-                    "username": {
-                        "minLength": 1,
-                        "maxLength": 100,
-                        "type": "string"
-                    },
-                    "avatar": {
-                        "type": "string",
-                        "nullable": true
-                    },
-                    "bio": {
-                        "maxLength": 1024,
-                        "type": "string"
-                    },
-                    "accent_color": {
-                        "type": "integer"
-                    },
-                    "banner": {
-                        "type": "string",
-                        "nullable": true
-                    },
-                    "password": {
-                        "type": "string"
-                    },
-                    "new_password": {
-                        "type": "string"
-                    },
-                    "code": {
-                        "type": "string"
-                    }
-                }
-            },
-            "UserSettingsSchema": {
-                "type": "object",
-                "properties": {
-                    "afk_timeout": {
-                        "type": "integer"
-                    },
-                    "allow_accessibility_detection": {
-                        "type": "boolean"
-                    },
-                    "animate_emoji": {
-                        "type": "boolean"
-                    },
-                    "animate_stickers": {
-                        "type": "integer"
-                    },
-                    "contact_sync_enabled": {
-                        "type": "boolean"
-                    },
-                    "convert_emoticons": {
-                        "type": "boolean"
-                    },
-                    "custom_status": {
-                        "type": "object",
-                        "properties": {
-                            "emoji_id": {
-                                "type": "string"
-                            },
-                            "emoji_name": {
-                                "type": "string"
-                            },
-                            "expires_at": {
-                                "type": "integer"
-                            },
-                            "text": {
-                                "type": "string"
-                            }
-                        },
-                        "additionalProperties": false
-                    },
-                    "default_guilds_restricted": {
-                        "type": "boolean"
-                    },
-                    "detect_platform_accounts": {
-                        "type": "boolean"
-                    },
-                    "developer_mode": {
-                        "type": "boolean"
-                    },
-                    "disable_games_tab": {
-                        "type": "boolean"
-                    },
-                    "enable_tts_command": {
-                        "type": "boolean"
-                    },
-                    "explicit_content_filter": {
-                        "type": "integer"
-                    },
-                    "friend_source_flags": {
-                        "type": "object",
-                        "properties": {
-                            "all": {
-                                "type": "boolean"
-                            }
-                        },
-                        "additionalProperties": false,
-                        "required": [
-                            "all"
-                        ]
-                    },
-                    "gateway_connected": {
-                        "type": "boolean"
-                    },
-                    "gif_auto_play": {
-                        "type": "boolean"
-                    },
-                    "guild_folders": {
-                        "type": "array",
-                        "items": {
-                            "type": "object",
-                            "properties": {
-                                "color": {
-                                    "type": "integer"
-                                },
-                                "guild_ids": {
-                                    "type": "array",
-                                    "items": {
-                                        "type": "string"
-                                    }
-                                },
-                                "id": {
-                                    "type": "integer"
-                                },
-                                "name": {
-                                    "type": "string"
-                                }
-                            },
-                            "additionalProperties": false,
-                            "required": [
-                                "color",
-                                "guild_ids",
-                                "id",
-                                "name"
-                            ]
-                        }
-                    },
-                    "guild_positions": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    },
-                    "inline_attachment_media": {
-                        "type": "boolean"
-                    },
-                    "inline_embed_media": {
-                        "type": "boolean"
-                    },
-                    "locale": {
-                        "type": "string"
-                    },
-                    "message_display_compact": {
-                        "type": "boolean"
-                    },
-                    "native_phone_integration_enabled": {
-                        "type": "boolean"
-                    },
-                    "render_embeds": {
-                        "type": "boolean"
-                    },
-                    "render_reactions": {
-                        "type": "boolean"
-                    },
-                    "restricted_guilds": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    },
-                    "show_current_game": {
-                        "type": "boolean"
-                    },
-                    "status": {
-                        "enum": [
-                            "dnd",
-                            "idle",
-                            "offline",
-                            "online"
-                        ],
-                        "type": "string"
-                    },
-                    "stream_notifications_enabled": {
-                        "type": "boolean"
-                    },
-                    "theme": {
-                        "enum": [
-                            "dark",
-                            "white"
-                        ],
-                        "type": "string"
-                    },
-                    "timezone_offset": {
-                        "type": "integer"
-                    }
-                },
-                "required": [
-                    "afk_timeout",
-                    "allow_accessibility_detection",
-                    "animate_emoji",
-                    "animate_stickers",
-                    "contact_sync_enabled",
-                    "convert_emoticons",
-                    "custom_status",
-                    "default_guilds_restricted",
-                    "detect_platform_accounts",
-                    "developer_mode",
-                    "disable_games_tab",
-                    "enable_tts_command",
-                    "explicit_content_filter",
-                    "friend_source_flags",
-                    "gateway_connected",
-                    "gif_auto_play",
-                    "guild_folders",
-                    "guild_positions",
-                    "inline_attachment_media",
-                    "inline_embed_media",
-                    "locale",
-                    "message_display_compact",
-                    "native_phone_integration_enabled",
-                    "render_embeds",
-                    "render_reactions",
-                    "restricted_guilds",
-                    "show_current_game",
-                    "status",
-                    "stream_notifications_enabled",
-                    "theme",
-                    "timezone_offset"
-                ]
-            },
-            "WidgetModifySchema": {
-                "type": "object",
-                "properties": {
-                    "enabled": {
-                        "type": "boolean"
-                    },
-                    "channel_id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "channel_id",
-                    "enabled"
-                ]
-            },
-            "RegisterSchema": {
-                "type": "object",
-                "properties": {
-                    "username": {
-                        "minLength": 2,
-                        "maxLength": 32,
-                        "type": "string"
-                    },
-                    "password": {
-                        "minLength": 1,
-                        "maxLength": 72,
-                        "type": "string"
-                    },
-                    "consent": {
-                        "type": "boolean"
-                    },
-                    "email": {
-                        "format": "email",
-                        "type": "string"
-                    },
-                    "fingerprint": {
-                        "type": "string"
-                    },
-                    "invite": {
-                        "type": "string"
-                    },
-                    "date_of_birth": {
-                        "type": "string"
-                    },
-                    "gift_code_sku_id": {
-                        "type": "string"
-                    },
-                    "captcha_key": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "consent",
-                    "username"
-                ]
-            },
-            "LoginSchema": {
-                "type": "object",
-                "properties": {
-                    "login": {
-                        "type": "string"
-                    },
-                    "password": {
-                        "type": "string"
-                    },
-                    "undelete": {
-                        "type": "boolean"
-                    },
-                    "captcha_key": {
-                        "type": "string"
-                    },
-                    "login_source": {
-                        "type": "string"
-                    },
-                    "gift_code_sku_id": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "login",
-                    "password"
-                ]
-            },
-            "MessageAcknowledgeSchema": {
-                "type": "object",
-                "properties": {
-                    "manual": {
-                        "type": "boolean"
-                    },
-                    "mention_count": {
-                        "type": "integer"
-                    }
-                }
-            },
-            "BulkDeleteSchema": {
-                "type": "object",
-                "properties": {
-                    "messages": {
-                        "type": "array",
-                        "items": {
-                            "type": "string"
-                        }
-                    }
-                },
-                "required": [
-                    "messages"
-                ]
-            },
-            "ChannelPermissionOverwriteSchema": {
-                "type": "object",
-                "properties": {
-                    "allow": {
-                        "type": "number"
-                    },
-                    "deny": {
-                        "type": "number"
-                    },
-                    "id": {
-                        "type": "string"
-                    },
-                    "type": {
-                        "$ref": "#/components/schemas/ChannelPermissionOverwriteType"
-                    }
-                },
-                "required": [
-                    "allow",
-                    "deny",
-                    "id",
-                    "type"
-                ]
-            },
-            "WebhookCreateSchema": {
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "maxLength": 80,
-                        "type": "string"
-                    },
-                    "avatar": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "avatar",
-                    "name"
-                ]
-            },
-            "ChannelReorderSchema": {
-                "type": "array",
-                "items": {
-                    "type": "object",
-                    "properties": {
-                        "id": {
-                            "type": "string"
-                        },
-                        "position": {
-                            "type": "integer"
-                        },
-                        "lock_permissions": {
-                            "type": "boolean"
-                        },
-                        "parent_id": {
-                            "type": "string"
-                        }
-                    },
-                    "additionalProperties": false,
-                    "required": [
-                        "id"
-                    ]
-                }
-            },
-            "RolePositionUpdateSchema": {
-                "type": "array",
-                "items": {
-                    "type": "object",
-                    "properties": {
-                        "id": {
-                            "type": "string"
-                        },
-                        "position": {
-                            "type": "integer"
-                        }
-                    },
-                    "additionalProperties": false,
-                    "required": [
-                        "id",
-                        "position"
-                    ]
-                }
-            },
-            "VanityUrlSchema": {
-                "type": "object",
-                "properties": {
-                    "code": {
-                        "minLength": 1,
-                        "maxLength": 20,
-                        "type": "string"
-                    }
-                }
-            },
-            "VoiceStateUpdateSchema": {
-                "type": "object",
-                "properties": {
-                    "channel_id": {
-                        "type": "string"
-                    },
-                    "guild_id": {
-                        "type": "string"
-                    },
-                    "suppress": {
-                        "type": "boolean"
-                    },
-                    "request_to_speak_timestamp": {
-                        "type": "string",
-                        "format": "date-time"
-                    },
-                    "self_mute": {
-                        "type": "boolean"
-                    },
-                    "self_deaf": {
-                        "type": "boolean"
-                    },
-                    "self_video": {
-                        "type": "boolean"
-                    }
-                },
-                "required": [
-                    "channel_id"
-                ]
-            },
-            "UserProfileResponse": {
-                "type": "object",
-                "properties": {
-                    "user": {
-                        "$ref": "#/components/schemas/UserPublic"
-                    },
-                    "connected_accounts": {
-                        "$ref": "#/components/schemas/PublicConnectedAccount"
-                    },
-                    "premium_guild_since": {
-                        "type": "string",
-                        "format": "date-time"
-                    },
-                    "premium_since": {
-                        "type": "string",
-                        "format": "date-time"
-                    }
-                },
-                "required": [
-                    "connected_accounts",
-                    "user"
-                ]
-            },
-            "RelationshipPutSchema": {
-                "type": "object",
-                "properties": {
-                    "type": {
-                        "enum": [
-                            1,
-                            2,
-                            3,
-                            4
-                        ],
-                        "type": "number"
-                    }
-                }
-            },
-            "RelationshipPostSchema": {
-                "type": "object",
-                "properties": {
-                    "discriminator": {
-                        "type": "string"
-                    },
-                    "username": {
-                        "type": "string"
-                    }
-                },
-                "required": [
-                    "discriminator",
-                    "username"
-                ]
-            },
-            "PublicConnectedAccount": {
-                "type": "object",
-                "properties": {
-                    "name": {
-                        "type": "string"
-                    },
-                    "type": {
-                        "type": "string"
-                    },
-                    "verifie": {
-                        "type": "boolean"
-                    }
-                },
-                "required": [
-                    "name",
-                    "type",
-                    "verifie"
-                ]
-            }
-        },
-        "requestBodies": {},
-        "securitySchemes": {
-            "Token": {
-                "type": "apiKey",
-                "name": "Authorization",
-                "in": "header"
-            }
-        },
-        "links": {},
-        "callbacks": {}
-    }
-}
\ No newline at end of file
+	"openapi": "3.0.0",
+	"servers": [
+		{
+			"url": "https://api.fosscord.com/v{version}",
+			"description": "Official fosscord instance",
+			"variables": {
+				"version": {
+					"default": "9",
+					"enum": ["8", "9"]
+				}
+			}
+		}
+	],
+	"info": {
+		"description": "Fosscord is a free open source selfhostable discord compatible chat, voice and video platform",
+		"version": "1.0.0",
+		"title": "Fosscord HTTP API Routes",
+		"termsOfService": "",
+		"contact": {
+			"name": "Fosscord"
+		},
+		"license": {
+			"name": "AGPLV3",
+			"url": "https://www.gnu.org/licenses/agpl-3.0.en.html"
+		}
+	},
+	"tags": [
+		{
+			"name": "auth"
+		},
+		{
+			"name": "applications"
+		},
+		{
+			"name": "channels"
+		},
+		{
+			"name": "discoverable-guilds"
+		},
+		{
+			"name": "experiments"
+		},
+		{
+			"name": "guilds"
+		},
+		{
+			"name": "gateway"
+		},
+		{
+			"name": "invites"
+		},
+		{
+			"name": "voice"
+		},
+		{
+			"name": "users"
+		},
+		{
+			"name": "outbound-promotions"
+		},
+		{
+			"name": "ping"
+		},
+		{
+			"name": "store"
+		},
+		{
+			"name": "sticker-packs"
+		},
+		{
+			"name": "science"
+		}
+	],
+	"paths": {
+		"/users/{id}": {
+			"get": {
+				"summary": "",
+				"parameters": [
+					{
+						"name": "id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "user id"
+					}
+				],
+				"operationId": "",
+				"responses": {
+					"200": {
+						"description": "User found",
+						"content": {
+							"application/json": {
+								"schema": {
+									"$ref": "#/components/schemas/UserPublic"
+								}
+							}
+						}
+					},
+					"404": {
+						"description": "User not found",
+						"content": {
+							"application/json": {
+								"schema": {
+									"$ref": "#/components/schemas/Error"
+								}
+							}
+						}
+					}
+				},
+				"security": [
+					{
+						"Token": []
+					}
+				]
+			}
+		},
+		"/users/@me": {
+			"get": {
+				"summary": "",
+				"parameters": [],
+				"operationId": "",
+				"responses": {
+					"200": {
+						"description": "Authenticated user",
+						"content": {
+							"application/json": {
+								"schema": {
+									"$ref": "#/components/schemas/UserPublic"
+								}
+							}
+						}
+					}
+				},
+				"security": [
+					{
+						"Token": []
+					}
+				]
+			}
+		},
+		"/voice/regions/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["voice"]
+			}
+		},
+		"/users/@me/settings/": {
+			"patch": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/UserSettingsSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/relationships/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users", "relationships"]
+			},
+			"post": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/RelationshipPostSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/relationships/{id}": {
+			"put": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/RelationshipPutSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "id"
+					}
+				],
+				"tags": ["users"]
+			},
+			"delete": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "id"
+					}
+				],
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/library/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			},
+			"patch": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/UserModifySchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/guilds/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/guilds/{id}": {
+			"delete": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "id"
+					}
+				],
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/disable/": {
+			"post": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/devices/": {
+			"post": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/delete/": {
+			"post": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/connections/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/channels/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			},
+			"post": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/DmChannelCreateSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/billing/subscriptions/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/billing/country-code/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/applications/{app_id}/entitlements/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "app_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "app_id"
+					}
+				],
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/affinities/users/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			}
+		},
+		"/users/@me/affinities/guilds/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["users"]
+			}
+		},
+		"/users/{id}/profile/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"200": {
+						"content": {
+							"application/json": {
+								"schema": {
+									"$ref": "#/components/schemas/UserProfileResponse"
+								}
+							}
+						},
+						"description": ""
+					}
+				},
+				"parameters": [
+					{
+						"name": "id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "id"
+					}
+				],
+				"tags": ["users"]
+			}
+		},
+		"/users/{id}/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "id"
+					}
+				],
+				"tags": ["users"]
+			}
+		},
+		"/store/skus/skus/{id}": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "id"
+					}
+				],
+				"tags": ["store"]
+			}
+		},
+		"/store/applications/applications/{id}": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "id"
+					}
+				],
+				"tags": ["store"]
+			}
+		},
+		"/sticker-packs/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["sticker", "sticker-packs"]
+			}
+		},
+		"/sticker-packs/{id}/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "id"
+					}
+				],
+				"tags": ["sticker", "sticker-packs"]
+			}
+		},
+		"/science/": {
+			"post": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["science"]
+			}
+		},
+		"/ping/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["ping"]
+			}
+		},
+		"/outbound-promotions/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["outbound", "outbound-promotions"]
+			}
+		},
+		"/invites/{code}": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "code",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "code"
+					}
+				],
+				"tags": ["invites"]
+			},
+			"post": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "code",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "code"
+					}
+				],
+				"tags": ["invites"]
+			},
+			"delete": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "code",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "code"
+					}
+				],
+				"tags": ["invites"]
+			}
+		},
+		"/guilds/templates/{code}": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "code",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "code"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"post": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/GuildTemplateCreateSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "code",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "code"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/": {
+			"post": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/GuildCreateSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/widget.png/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/widget.json/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/widget/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"patch": {
+				"description": "##### Requires the ``MANAGE_GUILD`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/WidgetModifySchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/welcome_screen/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"patch": {
+				"description": "##### Requires the ``MANAGE_GUILD`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/GuildUpdateWelcomeScreenSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/voice-states/{user_id}/": {
+			"patch": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/VoiceStateUpdateSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "user_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "user_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/vanity-url/": {
+			"get": {
+				"description": "##### Requires the ``MANAGE_GUILD`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"patch": {
+				"description": "##### Requires the ``MANAGE_GUILD`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/VanityUrlSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/templates/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"post": {
+				"description": "##### Requires the ``MANAGE_GUILD`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/TemplateCreateSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/templates/{code}": {
+			"delete": {
+				"description": "##### Requires the ``MANAGE_GUILD`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "code",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "code"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"put": {
+				"description": "##### Requires the ``MANAGE_GUILD`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "code",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "code"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"patch": {
+				"description": "##### Requires the ``MANAGE_GUILD`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/TemplateModifySchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "code",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "code"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/roles/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"post": {
+				"description": "##### Requires the ``MANAGE_ROLES`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/RoleModifySchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"patch": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/RolePositionUpdateSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/roles/{role_id}": {
+			"delete": {
+				"description": "##### Requires the ``MANAGE_ROLES`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "role_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "role_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"patch": {
+				"description": "##### Requires the ``MANAGE_ROLES`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/RoleModifySchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "role_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "role_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/regions/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/members/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/members/{member_id}/nick/": {
+			"patch": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/MemberNickChangeSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "member_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "member_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/members/{member_id}/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "member_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "member_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"patch": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/MemberChangeSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "member_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "member_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"put": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "member_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "member_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"delete": {
+				"description": "##### Requires the ``KICK_MEMBERS`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "member_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "member_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/invites/": {
+			"get": {
+				"description": "##### Requires the ``MANAGE_GUILD`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"patch": {
+				"description": "##### Requires the ``MANAGE_GUILD`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/GuildUpdateSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/delete/": {
+			"post": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/channels/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"post": {
+				"description": "##### Requires the ``MANAGE_CHANNELS`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/ChannelModifySchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"patch": {
+				"description": "##### Requires the ``MANAGE_CHANNELS`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/ChannelReorderSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/bans/": {
+			"get": {
+				"description": "##### Requires the ``BAN_MEMBERS`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/bans/{user}": {
+			"get": {
+				"description": "##### Requires the ``BAN_MEMBERS`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "user",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "user"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/guilds/{guild_id}/bans/{user_id}": {
+			"put": {
+				"description": "##### Requires the ``BAN_MEMBERS`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/BanCreateSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "user_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "user_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"delete": {
+				"description": "##### Requires the ``BAN_MEMBERS`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "user_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "user_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/gateway/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["gateway"]
+			}
+		},
+		"/gateway/bot": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["gateway"]
+			}
+		},
+		"/experiments/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["experiments"]
+			}
+		},
+		"/discoverable-guilds/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["discoverable", "discoverable-guilds"]
+			}
+		},
+		"/channels/{channel_id}/webhooks/": {
+			"post": {
+				"description": "##### Requires the ``MANAGE_WEBHOOKS`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/WebhookCreateSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					}
+				],
+				"tags": ["channels"]
+			}
+		},
+		"/channels/{channel_id}/typing/": {
+			"post": {
+				"description": "##### Requires the ``SEND_MESSAGES`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					}
+				],
+				"tags": ["channels"]
+			}
+		},
+		"/channels/{channel_id}/recipients/{user_id}": {
+			"put": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					},
+					{
+						"name": "user_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "user_id"
+					}
+				],
+				"tags": ["channels"]
+			},
+			"delete": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					},
+					{
+						"name": "user_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "user_id"
+					}
+				],
+				"tags": ["channels"]
+			}
+		},
+		"/channels/{channel_id}/pins/{message_id}": {
+			"put": {
+				"description": "##### Requires the ``VIEW_CHANNEL`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					},
+					{
+						"name": "message_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "message_id"
+					}
+				],
+				"tags": ["channels"]
+			},
+			"delete": {
+				"description": "##### Requires the ``VIEW_CHANNEL`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					},
+					{
+						"name": "message_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "message_id"
+					}
+				],
+				"tags": ["channels"]
+			}
+		},
+		"/channels/{channel_id}/pins/": {
+			"get": {
+				"description": "##### Requires the ``READ_MESSAGE_HISTORY`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					}
+				],
+				"tags": ["channels"]
+			}
+		},
+		"/channels/{channel_id}/permissions/{overwrite_id}": {
+			"put": {
+				"description": "##### Requires the ``MANAGE_ROLES`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/ChannelPermissionOverwriteSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					},
+					{
+						"name": "overwrite_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "overwrite_id"
+					}
+				],
+				"tags": ["channels"]
+			},
+			"delete": {
+				"description": "##### Requires the ``MANAGE_ROLES`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					},
+					{
+						"name": "overwrite_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "overwrite_id"
+					}
+				],
+				"tags": ["channels"]
+			}
+		},
+		"/channels/{channel_id}/messages/bulk-delete/": {
+			"post": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/BulkDeleteSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					}
+				],
+				"tags": ["channels"]
+			}
+		},
+		"/channels/{channel_id}/messages/{message_id}/reactions/": {
+			"delete": {
+				"description": "##### Requires the ``MANAGE_MESSAGES`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					},
+					{
+						"name": "message_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "message_id"
+					}
+				],
+				"tags": ["channels"]
+			}
+		},
+		"/channels/{channel_id}/messages/{message_id}/reactions/{emoji}": {
+			"delete": {
+				"description": "##### Requires the ``MANAGE_MESSAGES`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					},
+					{
+						"name": "message_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "message_id"
+					},
+					{
+						"name": "emoji",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "emoji"
+					}
+				],
+				"tags": ["channels"]
+			},
+			"get": {
+				"description": "##### Requires the ``VIEW_CHANNEL`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					},
+					{
+						"name": "message_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "message_id"
+					},
+					{
+						"name": "emoji",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "emoji"
+					}
+				],
+				"tags": ["channels"]
+			}
+		},
+		"/channels/{channel_id}/messages/{message_id}/reactions/{emoji}/{user_id}": {
+			"put": {
+				"description": "##### Requires the ``READ_MESSAGE_HISTORY`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					},
+					{
+						"name": "message_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "message_id"
+					},
+					{
+						"name": "emoji",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "emoji"
+					},
+					{
+						"name": "user_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "user_id"
+					}
+				],
+				"tags": ["channels"]
+			},
+			"delete": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					},
+					{
+						"name": "message_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "message_id"
+					},
+					{
+						"name": "emoji",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "emoji"
+					},
+					{
+						"name": "user_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "user_id"
+					}
+				],
+				"tags": ["channels"]
+			}
+		},
+		"/channels/{channel_id}/messages/{message_id}/": {
+			"patch": {
+				"description": "##### Requires the ``SEND_MESSAGES`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/MessageCreateSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					},
+					{
+						"name": "message_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "message_id"
+					}
+				],
+				"tags": ["channels"]
+			},
+			"delete": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					},
+					{
+						"name": "message_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "message_id"
+					}
+				],
+				"tags": ["channels"]
+			}
+		},
+		"/channels/{channel_id}/messages/{message_id}/ack/": {
+			"post": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/MessageAcknowledgeSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					},
+					{
+						"name": "message_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "message_id"
+					}
+				],
+				"tags": ["channels"]
+			}
+		},
+		"/channels/{channel_id}/invites/": {
+			"post": {
+				"description": "##### Requires the ``CREATE_INSTANT_INVITE`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/InviteCreateSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					}
+				],
+				"tags": ["channels"]
+			},
+			"get": {
+				"description": "##### Requires the ``MANAGE_CHANNELS`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					}
+				],
+				"tags": ["channels"]
+			}
+		},
+		"/channels/{channel_id}/": {
+			"get": {
+				"description": "##### Requires the ``VIEW_CHANNEL`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					}
+				],
+				"tags": ["channels"]
+			},
+			"delete": {
+				"description": "##### Requires the ``MANAGE_CHANNELS`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					}
+				],
+				"tags": ["channels"]
+			},
+			"patch": {
+				"description": "##### Requires the ``MANAGE_CHANNELS`` permission\n",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/ChannelModifySchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "channel_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "channel_id"
+					}
+				],
+				"tags": ["channels"]
+			}
+		},
+		"/auth/register/": {
+			"post": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/RegisterSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["auth"]
+			}
+		},
+		"/applications/detectable/": {
+			"get": {
+				"description": "",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["applications"]
+			}
+		},
+		"/guilds/{guild_id}/members/{member_id}/roles/{role_id}/": {
+			"delete": {
+				"description": "##### Requires the ``MANAGE_ROLES`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "member_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "member_id"
+					},
+					{
+						"name": "role_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "role_id"
+					}
+				],
+				"tags": ["guilds"]
+			},
+			"put": {
+				"description": "##### Requires the ``MANAGE_ROLES`` permission\n",
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"parameters": [
+					{
+						"name": "guild_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "guild_id"
+					},
+					{
+						"name": "member_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "member_id"
+					},
+					{
+						"name": "role_id",
+						"in": "path",
+						"required": true,
+						"schema": {
+							"type": "string"
+						},
+						"description": "role_id"
+					}
+				],
+				"tags": ["guilds"]
+			}
+		},
+		"/auth/login/": {
+			"post": {
+				"description": "",
+				"requestBody": {
+					"required": true,
+					"content": {
+						"application/json": {
+							"schema": {
+								"$ref": "#/components/schemas/LoginSchema"
+							}
+						}
+					}
+				},
+				"responses": {
+					"default": {
+						"description": "not documented"
+					}
+				},
+				"tags": ["auth"]
+			}
+		}
+	},
+	"externalDocs": {
+		"url": "http://docs.fosscord.com/"
+	},
+	"components": {
+		"schemas": {
+			"Error": {
+				"type": "object",
+				"properties": {
+					"code": {
+						"type": "integer"
+					},
+					"message": {
+						"type": "string"
+					}
+				},
+				"required": ["code", "message"]
+			},
+			"RateLimit": {
+				"type": "object",
+				"properties": {
+					"retry_after": {
+						"type": "integer"
+					},
+					"message": {
+						"type": "string"
+					},
+					"global": {
+						"type": "boolean"
+					}
+				},
+				"required": ["code", "message", "globa"]
+			},
+			"User": {
+				"type": "object",
+				"properties": {
+					"username": {
+						"type": "string"
+					},
+					"discriminator": {
+						"type": "string"
+					},
+					"avatar": {
+						"type": "string"
+					},
+					"accent_color": {
+						"type": "integer"
+					},
+					"banner": {
+						"type": "string"
+					},
+					"phone": {
+						"type": "string"
+					},
+					"desktop": {
+						"type": "boolean"
+					},
+					"mobile": {
+						"type": "boolean"
+					},
+					"premium": {
+						"type": "boolean"
+					},
+					"premium_type": {
+						"type": "integer"
+					},
+					"bot": {
+						"type": "boolean"
+					},
+					"bio": {
+						"type": "string"
+					},
+					"system": {
+						"type": "boolean"
+					},
+					"nsfw_allowed": {
+						"type": "boolean"
+					},
+					"mfa_enabled": {
+						"type": "boolean"
+					},
+					"created_at": {
+						"type": "string",
+						"format": "date-time"
+					},
+					"verified": {
+						"type": "boolean"
+					},
+					"disabled": {
+						"type": "boolean"
+					},
+					"deleted": {
+						"type": "boolean"
+					},
+					"email": {
+						"type": "string"
+					},
+					"flags": {
+						"type": "string"
+					},
+					"public_flags": {
+						"type": "string"
+					},
+					"relationships": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Relationship"
+						}
+					},
+					"connected_accounts": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/ConnectedAccount"
+						}
+					},
+					"data": {
+						"type": "object",
+						"properties": {
+							"valid_tokens_since": {
+								"type": "string",
+								"format": "date-time"
+							},
+							"hash": {
+								"type": "string"
+							}
+						},
+						"additionalProperties": false,
+						"required": ["valid_tokens_since"]
+					},
+					"fingerprints": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					},
+					"settings": {
+						"$ref": "#/components/schemas/UserSettings"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": [
+					"bio",
+					"bot",
+					"connected_accounts",
+					"created_at",
+					"data",
+					"deleted",
+					"desktop",
+					"disabled",
+					"discriminator",
+					"fingerprints",
+					"flags",
+					"id",
+					"mfa_enabled",
+					"mobile",
+					"nsfw_allowed",
+					"premium",
+					"premium_type",
+					"public_flags",
+					"relationships",
+					"settings",
+					"system",
+					"username",
+					"verified"
+				]
+			},
+			"Relationship": {
+				"type": "object",
+				"properties": {
+					"user_id": {
+						"type": "string"
+					},
+					"user": {
+						"$ref": "#/components/schemas/User"
+					},
+					"nickname": {
+						"type": "string"
+					},
+					"type": {
+						"$ref": "#/components/schemas/RelationshipType"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": ["id", "type", "user", "user_id"]
+			},
+			"RelationshipType": {
+				"enum": [1, 2, 3, 4],
+				"type": "number"
+			},
+			"ConnectedAccount": {
+				"type": "object",
+				"properties": {
+					"user_id": {
+						"type": "string"
+					},
+					"user": {
+						"$ref": "#/components/schemas/User"
+					},
+					"access_token": {
+						"type": "string"
+					},
+					"friend_sync": {
+						"type": "boolean"
+					},
+					"name": {
+						"type": "string"
+					},
+					"revoked": {
+						"type": "boolean"
+					},
+					"show_activity": {
+						"type": "boolean"
+					},
+					"type": {
+						"type": "string"
+					},
+					"verifie": {
+						"type": "boolean"
+					},
+					"visibility": {
+						"type": "integer"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": [
+					"access_token",
+					"friend_sync",
+					"id",
+					"name",
+					"revoked",
+					"show_activity",
+					"type",
+					"user",
+					"user_id",
+					"verifie",
+					"visibility"
+				]
+			},
+			"UserSettings": {
+				"type": "object",
+				"properties": {
+					"afk_timeout": {
+						"type": "integer"
+					},
+					"allow_accessibility_detection": {
+						"type": "boolean"
+					},
+					"animate_emoji": {
+						"type": "boolean"
+					},
+					"animate_stickers": {
+						"type": "integer"
+					},
+					"contact_sync_enabled": {
+						"type": "boolean"
+					},
+					"convert_emoticons": {
+						"type": "boolean"
+					},
+					"custom_status": {
+						"type": "object",
+						"properties": {
+							"emoji_id": {
+								"type": "string"
+							},
+							"emoji_name": {
+								"type": "string"
+							},
+							"expires_at": {
+								"type": "integer"
+							},
+							"text": {
+								"type": "string"
+							}
+						},
+						"additionalProperties": false
+					},
+					"default_guilds_restricted": {
+						"type": "boolean"
+					},
+					"detect_platform_accounts": {
+						"type": "boolean"
+					},
+					"developer_mode": {
+						"type": "boolean"
+					},
+					"disable_games_tab": {
+						"type": "boolean"
+					},
+					"enable_tts_command": {
+						"type": "boolean"
+					},
+					"explicit_content_filter": {
+						"type": "integer"
+					},
+					"friend_source_flags": {
+						"type": "object",
+						"properties": {
+							"all": {
+								"type": "boolean"
+							}
+						},
+						"additionalProperties": false,
+						"required": ["all"]
+					},
+					"gateway_connected": {
+						"type": "boolean"
+					},
+					"gif_auto_play": {
+						"type": "boolean"
+					},
+					"guild_folders": {
+						"type": "array",
+						"items": {
+							"type": "object",
+							"properties": {
+								"color": {
+									"type": "integer"
+								},
+								"guild_ids": {
+									"type": "array",
+									"items": {
+										"type": "string"
+									}
+								},
+								"id": {
+									"type": "integer"
+								},
+								"name": {
+									"type": "string"
+								}
+							},
+							"additionalProperties": false,
+							"required": ["color", "guild_ids", "id", "name"]
+						}
+					},
+					"guild_positions": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					},
+					"inline_attachment_media": {
+						"type": "boolean"
+					},
+					"inline_embed_media": {
+						"type": "boolean"
+					},
+					"locale": {
+						"type": "string"
+					},
+					"message_display_compact": {
+						"type": "boolean"
+					},
+					"native_phone_integration_enabled": {
+						"type": "boolean"
+					},
+					"render_embeds": {
+						"type": "boolean"
+					},
+					"render_reactions": {
+						"type": "boolean"
+					},
+					"restricted_guilds": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					},
+					"show_current_game": {
+						"type": "boolean"
+					},
+					"status": {
+						"enum": ["dnd", "idle", "offline", "online"],
+						"type": "string"
+					},
+					"stream_notifications_enabled": {
+						"type": "boolean"
+					},
+					"theme": {
+						"enum": ["dark", "white"],
+						"type": "string"
+					},
+					"timezone_offset": {
+						"type": "integer"
+					}
+				},
+				"required": [
+					"afk_timeout",
+					"allow_accessibility_detection",
+					"animate_emoji",
+					"animate_stickers",
+					"contact_sync_enabled",
+					"convert_emoticons",
+					"custom_status",
+					"default_guilds_restricted",
+					"detect_platform_accounts",
+					"developer_mode",
+					"disable_games_tab",
+					"enable_tts_command",
+					"explicit_content_filter",
+					"friend_source_flags",
+					"gateway_connected",
+					"gif_auto_play",
+					"guild_folders",
+					"guild_positions",
+					"inline_attachment_media",
+					"inline_embed_media",
+					"locale",
+					"message_display_compact",
+					"native_phone_integration_enabled",
+					"render_embeds",
+					"render_reactions",
+					"restricted_guilds",
+					"show_current_game",
+					"status",
+					"stream_notifications_enabled",
+					"theme",
+					"timezone_offset"
+				]
+			},
+			"Team": {
+				"type": "object",
+				"properties": {
+					"icon": {
+						"type": "string"
+					},
+					"members": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/TeamMember"
+						}
+					},
+					"name": {
+						"type": "string"
+					},
+					"owner_user_id": {
+						"type": "string"
+					},
+					"owner_user": {
+						"$ref": "#/components/schemas/User"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": ["id", "members", "name", "owner_user", "owner_user_id"]
+			},
+			"TeamMember": {
+				"type": "object",
+				"properties": {
+					"membership_state": {
+						"$ref": "#/components/schemas/TeamMemberState"
+					},
+					"permissions": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					},
+					"team_id": {
+						"type": "string"
+					},
+					"team": {
+						"$ref": "#/components/schemas/Team"
+					},
+					"user_id": {
+						"type": "string"
+					},
+					"user": {
+						"$ref": "#/components/schemas/User"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": ["id", "membership_state", "permissions", "team", "team_id", "user", "user_id"]
+			},
+			"TeamMemberState": {
+				"enum": [1, 2],
+				"type": "number"
+			},
+			"Guild": {
+				"type": "object",
+				"properties": {
+					"afk_channel_id": {
+						"type": "string"
+					},
+					"afk_channel": {
+						"$ref": "#/components/schemas/Channel"
+					},
+					"afk_timeout": {
+						"type": "integer"
+					},
+					"bans": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Ban"
+						}
+					},
+					"banner": {
+						"type": "string"
+					},
+					"default_message_notifications": {
+						"type": "integer"
+					},
+					"description": {
+						"type": "string"
+					},
+					"discovery_splash": {
+						"type": "string"
+					},
+					"explicit_content_filter": {
+						"type": "integer"
+					},
+					"features": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					},
+					"icon": {
+						"type": "string"
+					},
+					"large": {
+						"type": "boolean"
+					},
+					"max_members": {
+						"type": "integer"
+					},
+					"max_presences": {
+						"type": "integer"
+					},
+					"max_video_channel_users": {
+						"type": "integer"
+					},
+					"member_count": {
+						"type": "integer"
+					},
+					"presence_count": {
+						"type": "integer"
+					},
+					"members": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Member"
+						}
+					},
+					"roles": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Role"
+						}
+					},
+					"channels": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Channel"
+						}
+					},
+					"template_id": {
+						"type": "string"
+					},
+					"template": {
+						"$ref": "#/components/schemas/Template"
+					},
+					"emojis": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Emoji"
+						}
+					},
+					"stickers": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Sticker"
+						}
+					},
+					"invites": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Invite"
+						}
+					},
+					"voice_states": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/VoiceState"
+						}
+					},
+					"webhooks": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Webhook"
+						}
+					},
+					"mfa_level": {
+						"type": "integer"
+					},
+					"name": {
+						"type": "string"
+					},
+					"owner_id": {
+						"type": "string"
+					},
+					"owner": {
+						"$ref": "#/components/schemas/User"
+					},
+					"preferred_locale": {
+						"type": "string"
+					},
+					"premium_subscription_count": {
+						"type": "integer"
+					},
+					"premium_tier": {
+						"type": "integer"
+					},
+					"public_updates_channel_id": {
+						"type": "string"
+					},
+					"public_updates_channel": {
+						"$ref": "#/components/schemas/Channel"
+					},
+					"rules_channel_id": {
+						"type": "string"
+					},
+					"rules_channel": {
+						"type": "string"
+					},
+					"region": {
+						"type": "string"
+					},
+					"splash": {
+						"type": "string"
+					},
+					"system_channel_id": {
+						"type": "string"
+					},
+					"system_channel": {
+						"$ref": "#/components/schemas/Channel"
+					},
+					"system_channel_flags": {
+						"type": "integer"
+					},
+					"unavailable": {
+						"type": "boolean"
+					},
+					"vanity_url_code": {
+						"type": "string"
+					},
+					"vanity_url": {
+						"$ref": "#/components/schemas/Invite"
+					},
+					"verification_level": {
+						"type": "integer"
+					},
+					"welcome_screen": {
+						"type": "object",
+						"properties": {
+							"enabled": {
+								"type": "boolean"
+							},
+							"description": {
+								"type": "string"
+							},
+							"welcome_channels": {
+								"type": "array",
+								"items": {
+									"type": "object",
+									"properties": {
+										"description": {
+											"type": "string"
+										},
+										"emoji_id": {
+											"type": "string"
+										},
+										"emoji_name": {
+											"type": "string"
+										},
+										"channel_id": {
+											"type": "string"
+										}
+									},
+									"additionalProperties": false,
+									"required": ["channel_id", "description", "emoji_name"]
+								}
+							}
+						},
+						"additionalProperties": false,
+						"required": ["description", "enabled", "welcome_channels"]
+					},
+					"widget_channel_id": {
+						"type": "string"
+					},
+					"widget_channel": {
+						"$ref": "#/components/schemas/Channel"
+					},
+					"widget_enabled": {
+						"type": "boolean"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": [
+					"bans",
+					"channels",
+					"emojis",
+					"features",
+					"id",
+					"invites",
+					"members",
+					"name",
+					"owner",
+					"owner_id",
+					"public_updates_channel_id",
+					"roles",
+					"stickers",
+					"template",
+					"template_id",
+					"voice_states",
+					"webhooks",
+					"welcome_screen"
+				]
+			},
+			"Channel": {
+				"type": "object",
+				"properties": {
+					"created_at": {
+						"type": "string",
+						"format": "date-time"
+					},
+					"name": {
+						"type": "string"
+					},
+					"type": {
+						"$ref": "#/components/schemas/ChannelType"
+					},
+					"recipients": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Recipient"
+						}
+					},
+					"last_message_id": {
+						"type": "string"
+					},
+					"last_message": {
+						"$ref": "#/components/schemas/Message"
+					},
+					"guild_id": {
+						"type": "string"
+					},
+					"guild": {
+						"$ref": "#/components/schemas/Guild"
+					},
+					"parent_id": {
+						"type": "string"
+					},
+					"parent": {
+						"$ref": "#/components/schemas/Channel"
+					},
+					"owner_id": {
+						"type": "string"
+					},
+					"owner": {
+						"$ref": "#/components/schemas/User"
+					},
+					"last_pin_timestamp": {
+						"type": "integer"
+					},
+					"default_auto_archive_duration": {
+						"type": "integer"
+					},
+					"position": {
+						"type": "integer"
+					},
+					"permission_overwrites": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/ChannelPermissionOverwrite"
+						}
+					},
+					"video_quality_mode": {
+						"type": "integer"
+					},
+					"bitrate": {
+						"type": "integer"
+					},
+					"user_limit": {
+						"type": "integer"
+					},
+					"nsfw": {
+						"type": "boolean"
+					},
+					"rate_limit_per_user": {
+						"type": "integer"
+					},
+					"topic": {
+						"type": "string"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": [
+					"created_at",
+					"guild",
+					"id",
+					"last_message_id",
+					"name",
+					"owner",
+					"owner_id",
+					"parent_id",
+					"permission_overwrites",
+					"position",
+					"type"
+				]
+			},
+			"ChannelType": {
+				"enum": [0, 1, 2, 3, 4, 5, 6],
+				"type": "number"
+			},
+			"Recipient": {
+				"type": "object",
+				"properties": {
+					"channel_id": {
+						"type": "string"
+					},
+					"channel": {
+						"$ref": "#/components/schemas/Channel"
+					},
+					"user": {
+						"$ref": "#/components/schemas/User"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": ["channel", "channel_id", "id", "user"]
+			},
+			"Message": {
+				"type": "object",
+				"properties": {
+					"id": {
+						"type": "string"
+					},
+					"channel_id": {
+						"type": "string"
+					},
+					"channel": {
+						"$ref": "#/components/schemas/Channel"
+					},
+					"guild_id": {
+						"type": "string"
+					},
+					"guild": {
+						"$ref": "#/components/schemas/Guild"
+					},
+					"author_id": {
+						"type": "string"
+					},
+					"author": {
+						"$ref": "#/components/schemas/User"
+					},
+					"member_id": {
+						"type": "string"
+					},
+					"member": {
+						"$ref": "#/components/schemas/Member"
+					},
+					"webhook_id": {
+						"type": "string"
+					},
+					"webhook": {
+						"$ref": "#/components/schemas/Webhook"
+					},
+					"application_id": {
+						"type": "string"
+					},
+					"application": {
+						"$ref": "#/components/schemas/Application"
+					},
+					"content": {
+						"type": "string"
+					},
+					"timestamp": {
+						"type": "string",
+						"format": "date-time"
+					},
+					"edited_timestamp": {
+						"type": "string",
+						"format": "date-time"
+					},
+					"tts": {
+						"type": "boolean"
+					},
+					"mention_everyone": {
+						"type": "boolean"
+					},
+					"mentions": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/User"
+						}
+					},
+					"mention_roles": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Role"
+						}
+					},
+					"mention_channels": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Channel"
+						}
+					},
+					"sticker_items": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Sticker"
+						}
+					},
+					"attachments": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Attachment"
+						}
+					},
+					"embeds": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Embed"
+						}
+					},
+					"reactions": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Reaction"
+						}
+					},
+					"nonce": {
+						"type": "string"
+					},
+					"pinned": {
+						"type": "boolean"
+					},
+					"type": {
+						"$ref": "#/components/schemas/MessageType"
+					},
+					"activity": {
+						"type": "object",
+						"properties": {
+							"type": {
+								"type": "integer"
+							},
+							"party_id": {
+								"type": "string"
+							}
+						},
+						"additionalProperties": false,
+						"required": ["party_id", "type"]
+					},
+					"flags": {
+						"type": "string"
+					},
+					"message_reference": {
+						"type": "object",
+						"properties": {
+							"message_id": {
+								"type": "string"
+							},
+							"channel_id": {
+								"type": "string"
+							},
+							"guild_id": {
+								"type": "string"
+							}
+						},
+						"additionalProperties": false,
+						"required": ["message_id"]
+					},
+					"referenced_message": {
+						"$ref": "#/components/schemas/Message"
+					},
+					"interaction": {
+						"type": "object",
+						"properties": {
+							"id": {
+								"type": "string"
+							},
+							"type": {
+								"$ref": "#/components/schemas/InteractionType"
+							},
+							"name": {
+								"type": "string"
+							},
+							"user_id": {
+								"type": "string"
+							}
+						},
+						"additionalProperties": false,
+						"required": ["id", "name", "type", "user_id"]
+					},
+					"components": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/MessageComponent"
+						}
+					}
+				},
+				"required": [
+					"application_id",
+					"author_id",
+					"channel",
+					"channel_id",
+					"embeds",
+					"id",
+					"member_id",
+					"mention_channels",
+					"mention_roles",
+					"mentions",
+					"reactions",
+					"timestamp",
+					"type",
+					"webhook_id"
+				]
+			},
+			"Member": {
+				"type": "object",
+				"properties": {
+					"user_id": {
+						"type": "string"
+					},
+					"user": {
+						"$ref": "#/components/schemas/User"
+					},
+					"guild_id": {
+						"type": "string"
+					},
+					"guild": {
+						"$ref": "#/components/schemas/Guild"
+					},
+					"nick": {
+						"type": "string"
+					},
+					"roles": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Role"
+						}
+					},
+					"joined_at": {
+						"type": "string",
+						"format": "date-time"
+					},
+					"premium_since": {
+						"type": "integer"
+					},
+					"deaf": {
+						"type": "boolean"
+					},
+					"mute": {
+						"type": "boolean"
+					},
+					"pending": {
+						"type": "boolean"
+					},
+					"settings": {
+						"$ref": "#/components/schemas/UserGuildSettings"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": ["deaf", "guild", "guild_id", "id", "joined_at", "mute", "pending", "roles", "settings", "user", "user_id"]
+			},
+			"Role": {
+				"type": "object",
+				"properties": {
+					"guild_id": {
+						"type": "string"
+					},
+					"guild": {
+						"$ref": "#/components/schemas/Guild"
+					},
+					"color": {
+						"type": "integer"
+					},
+					"hoist": {
+						"type": "boolean"
+					},
+					"managed": {
+						"type": "boolean"
+					},
+					"mentionable": {
+						"type": "boolean"
+					},
+					"name": {
+						"type": "string"
+					},
+					"permissions": {
+						"type": "string"
+					},
+					"position": {
+						"type": "integer"
+					},
+					"tags": {
+						"type": "object",
+						"properties": {
+							"bot_id": {
+								"type": "string"
+							},
+							"integration_id": {
+								"type": "string"
+							},
+							"premium_subscriber": {
+								"type": "boolean"
+							}
+						},
+						"additionalProperties": false
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": ["color", "guild", "guild_id", "hoist", "id", "managed", "mentionable", "name", "permissions", "position"]
+			},
+			"UserGuildSettings": {
+				"type": "object",
+				"properties": {
+					"channel_overrides": {
+						"type": "array",
+						"items": {
+							"type": "object",
+							"properties": {
+								"channel_id": {
+									"type": "string"
+								},
+								"message_notifications": {
+									"type": "integer"
+								},
+								"mute_config": {
+									"$ref": "#/components/schemas/MuteConfig"
+								},
+								"muted": {
+									"type": "boolean"
+								}
+							},
+							"additionalProperties": false,
+							"required": ["channel_id", "message_notifications", "mute_config", "muted"]
+						}
+					},
+					"message_notifications": {
+						"type": "integer"
+					},
+					"mobile_push": {
+						"type": "boolean"
+					},
+					"mute_config": {
+						"$ref": "#/components/schemas/MuteConfig"
+					},
+					"muted": {
+						"type": "boolean"
+					},
+					"suppress_everyone": {
+						"type": "boolean"
+					},
+					"suppress_roles": {
+						"type": "boolean"
+					},
+					"version": {
+						"type": "integer"
+					}
+				},
+				"required": [
+					"channel_overrides",
+					"message_notifications",
+					"mobile_push",
+					"mute_config",
+					"muted",
+					"suppress_everyone",
+					"suppress_roles",
+					"version"
+				]
+			},
+			"MuteConfig": {
+				"type": "object",
+				"properties": {
+					"end_time": {
+						"type": "integer"
+					},
+					"selected_time_window": {
+						"type": "integer"
+					}
+				},
+				"required": ["end_time", "selected_time_window"]
+			},
+			"Webhook": {
+				"type": "object",
+				"properties": {
+					"id": {
+						"type": "string"
+					},
+					"type": {
+						"$ref": "#/components/schemas/WebhookType"
+					},
+					"name": {
+						"type": "string"
+					},
+					"avatar": {
+						"type": "string"
+					},
+					"token": {
+						"type": "string"
+					},
+					"guild_id": {
+						"type": "string"
+					},
+					"guild": {
+						"$ref": "#/components/schemas/Guild"
+					},
+					"channel_id": {
+						"type": "string"
+					},
+					"channel": {
+						"$ref": "#/components/schemas/Channel"
+					},
+					"application_id": {
+						"type": "string"
+					},
+					"application": {
+						"$ref": "#/components/schemas/Application"
+					},
+					"user_id": {
+						"type": "string"
+					},
+					"user": {
+						"$ref": "#/components/schemas/User"
+					},
+					"source_guild_id": {
+						"type": "string"
+					},
+					"source_guild": {
+						"$ref": "#/components/schemas/Guild"
+					}
+				},
+				"required": [
+					"application",
+					"application_id",
+					"channel",
+					"channel_id",
+					"guild",
+					"guild_id",
+					"id",
+					"source_guild",
+					"source_guild_id",
+					"type",
+					"user",
+					"user_id"
+				]
+			},
+			"WebhookType": {
+				"enum": [1, 2],
+				"type": "number"
+			},
+			"Application": {
+				"type": "object",
+				"properties": {
+					"name": {
+						"type": "string"
+					},
+					"icon": {
+						"type": "string"
+					},
+					"description": {
+						"type": "string"
+					},
+					"rpc_origins": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					},
+					"bot_public": {
+						"type": "boolean"
+					},
+					"bot_require_code_grant": {
+						"type": "boolean"
+					},
+					"terms_of_service_url": {
+						"type": "string"
+					},
+					"privacy_policy_url": {
+						"type": "string"
+					},
+					"owner": {
+						"$ref": "#/components/schemas/User"
+					},
+					"summary": {
+						"type": "string"
+					},
+					"verify_key": {
+						"type": "string"
+					},
+					"team": {
+						"$ref": "#/components/schemas/Team"
+					},
+					"guild": {
+						"$ref": "#/components/schemas/Guild"
+					},
+					"primary_sku_id": {
+						"type": "string"
+					},
+					"slug": {
+						"type": "string"
+					},
+					"cover_image": {
+						"type": "string"
+					},
+					"flags": {
+						"type": "string"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": ["bot_public", "bot_require_code_grant", "description", "flags", "guild", "id", "name", "verify_key"]
+			},
+			"Sticker": {
+				"type": "object",
+				"properties": {
+					"name": {
+						"type": "string"
+					},
+					"description": {
+						"type": "string"
+					},
+					"tags": {
+						"type": "string"
+					},
+					"pack_id": {
+						"type": "string"
+					},
+					"guild_id": {
+						"type": "string"
+					},
+					"guild": {
+						"$ref": "#/components/schemas/Guild"
+					},
+					"type": {
+						"$ref": "#/components/schemas/StickerType"
+					},
+					"format_type": {
+						"$ref": "#/components/schemas/StickerFormatType"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": ["format_type", "id", "name", "pack_id", "tags", "type"]
+			},
+			"StickerType": {
+				"enum": [1, 2],
+				"type": "number"
+			},
+			"StickerFormatType": {
+				"enum": [1, 2, 3],
+				"type": "number"
+			},
+			"Attachment": {
+				"type": "object",
+				"properties": {
+					"filename": {
+						"type": "string"
+					},
+					"size": {
+						"type": "integer"
+					},
+					"url": {
+						"type": "string"
+					},
+					"proxy_url": {
+						"type": "string"
+					},
+					"height": {
+						"type": "integer"
+					},
+					"width": {
+						"type": "integer"
+					},
+					"content_type": {
+						"type": "string"
+					},
+					"message_id": {
+						"type": "string"
+					},
+					"message": {
+						"$ref": "#/components/schemas/Message"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": ["filename", "id", "message", "message_id", "proxy_url", "size", "url"]
+			},
+			"Embed": {
+				"type": "object",
+				"properties": {
+					"title": {
+						"type": "string"
+					},
+					"type": {
+						"enum": ["article", "gifv", "image", "link", "rich", "video"],
+						"type": "string"
+					},
+					"description": {
+						"type": "string"
+					},
+					"url": {
+						"type": "string"
+					},
+					"timestamp": {
+						"type": "string",
+						"format": "date-time"
+					},
+					"color": {
+						"type": "integer"
+					},
+					"footer": {
+						"type": "object",
+						"properties": {
+							"text": {
+								"type": "string"
+							},
+							"icon_url": {
+								"type": "string"
+							},
+							"proxy_icon_url": {
+								"type": "string"
+							}
+						},
+						"additionalProperties": false,
+						"required": ["text"]
+					},
+					"image": {
+						"$ref": "#/components/schemas/EmbedImage"
+					},
+					"thumbnail": {
+						"$ref": "#/components/schemas/EmbedImage"
+					},
+					"video": {
+						"$ref": "#/components/schemas/EmbedImage"
+					},
+					"provider": {
+						"type": "object",
+						"properties": {
+							"name": {
+								"type": "string"
+							},
+							"url": {
+								"type": "string"
+							}
+						},
+						"additionalProperties": false
+					},
+					"author": {
+						"type": "object",
+						"properties": {
+							"name": {
+								"type": "string"
+							},
+							"url": {
+								"type": "string"
+							},
+							"icon_url": {
+								"type": "string"
+							},
+							"proxy_icon_url": {
+								"type": "string"
+							}
+						},
+						"additionalProperties": false
+					},
+					"fields": {
+						"type": "array",
+						"items": {
+							"type": "object",
+							"properties": {
+								"name": {
+									"type": "string"
+								},
+								"value": {
+									"type": "string"
+								},
+								"inline": {
+									"type": "boolean"
+								}
+							},
+							"additionalProperties": false,
+							"required": ["name", "value"]
+						}
+					}
+				}
+			},
+			"EmbedType": {
+				"enum": ["article", "gifv", "image", "link", "rich", "video"],
+				"type": "string"
+			},
+			"EmbedImage": {
+				"type": "object",
+				"properties": {
+					"url": {
+						"type": "string"
+					},
+					"proxy_url": {
+						"type": "string"
+					},
+					"height": {
+						"type": "integer"
+					},
+					"width": {
+						"type": "integer"
+					}
+				}
+			},
+			"Reaction": {
+				"type": "object",
+				"properties": {
+					"count": {
+						"type": "integer"
+					},
+					"emoji": {
+						"$ref": "#/components/schemas/PartialEmoji"
+					},
+					"user_ids": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					}
+				},
+				"required": ["count", "emoji", "user_ids"]
+			},
+			"PartialEmoji": {
+				"type": "object",
+				"properties": {
+					"id": {
+						"type": "string"
+					},
+					"name": {
+						"type": "string"
+					},
+					"animated": {
+						"type": "boolean"
+					}
+				},
+				"required": ["name"]
+			},
+			"MessageType": {
+				"enum": [0, 1, 10, 11, 12, 14, 15, 19, 2, 20, 3, 4, 5, 6, 7, 8, 9],
+				"type": "number"
+			},
+			"InteractionType": {
+				"enum": [1, 2],
+				"type": "number"
+			},
+			"MessageComponent": {
+				"type": "object",
+				"properties": {
+					"type": {
+						"type": "integer"
+					},
+					"style": {
+						"type": "integer"
+					},
+					"label": {
+						"type": "string"
+					},
+					"emoji": {
+						"$ref": "#/components/schemas/PartialEmoji"
+					},
+					"custom_id": {
+						"type": "string"
+					},
+					"url": {
+						"type": "string"
+					},
+					"disabled": {
+						"type": "boolean"
+					},
+					"components": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/MessageComponent"
+						}
+					}
+				},
+				"required": ["components", "type"]
+			},
+			"ChannelPermissionOverwrite": {
+				"type": "object",
+				"properties": {
+					"allow": {
+						"type": "number"
+					},
+					"deny": {
+						"type": "number"
+					},
+					"id": {
+						"type": "string"
+					},
+					"type": {
+						"$ref": "#/components/schemas/ChannelPermissionOverwriteType"
+					}
+				},
+				"required": ["allow", "deny", "id", "type"]
+			},
+			"ChannelPermissionOverwriteType": {
+				"enum": [0, 1],
+				"type": "number"
+			},
+			"Ban": {
+				"type": "object",
+				"properties": {
+					"user_id": {
+						"type": "string"
+					},
+					"user": {
+						"$ref": "#/components/schemas/User"
+					},
+					"guild_id": {
+						"type": "string"
+					},
+					"guild": {
+						"$ref": "#/components/schemas/Guild"
+					},
+					"executor_id": {
+						"type": "string"
+					},
+					"executor": {
+						"$ref": "#/components/schemas/User"
+					},
+					"ip": {
+						"type": "string"
+					},
+					"reason": {
+						"type": "string"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": ["executor", "executor_id", "guild", "guild_id", "id", "ip", "user", "user_id"]
+			},
+			"Template": {
+				"type": "object",
+				"properties": {
+					"code": {
+						"type": "string"
+					},
+					"name": {
+						"type": "string"
+					},
+					"description": {
+						"type": "string"
+					},
+					"usage_count": {
+						"type": "integer"
+					},
+					"creator_id": {
+						"type": "string"
+					},
+					"creator": {
+						"$ref": "#/components/schemas/User"
+					},
+					"created_at": {
+						"type": "string",
+						"format": "date-time"
+					},
+					"updated_at": {
+						"type": "string",
+						"format": "date-time"
+					},
+					"source_guild_id": {
+						"type": "string"
+					},
+					"source_guild": {
+						"$ref": "#/components/schemas/Guild"
+					},
+					"serialized_source_guild": {
+						"$ref": "#/components/schemas/Guild"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": [
+					"code",
+					"created_at",
+					"creator",
+					"creator_id",
+					"id",
+					"name",
+					"serialized_source_guild",
+					"source_guild",
+					"source_guild_id",
+					"updated_at"
+				]
+			},
+			"Emoji": {
+				"type": "object",
+				"properties": {
+					"animated": {
+						"type": "boolean"
+					},
+					"available": {
+						"type": "boolean"
+					},
+					"guild_id": {
+						"type": "string"
+					},
+					"guild": {
+						"$ref": "#/components/schemas/Guild"
+					},
+					"managed": {
+						"type": "boolean"
+					},
+					"name": {
+						"type": "string"
+					},
+					"require_colons": {
+						"type": "boolean"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": ["animated", "available", "guild", "guild_id", "id", "managed", "name", "require_colons"]
+			},
+			"Invite": {
+				"type": "object",
+				"properties": {
+					"code": {
+						"type": "string"
+					},
+					"temporary": {
+						"type": "boolean"
+					},
+					"uses": {
+						"type": "integer"
+					},
+					"max_uses": {
+						"type": "integer"
+					},
+					"max_age": {
+						"type": "integer"
+					},
+					"created_at": {
+						"type": "string",
+						"format": "date-time"
+					},
+					"expires_at": {
+						"type": "string",
+						"format": "date-time"
+					},
+					"guild_id": {
+						"type": "string"
+					},
+					"guild": {
+						"$ref": "#/components/schemas/Guild"
+					},
+					"channel_id": {
+						"type": "string"
+					},
+					"channel": {
+						"$ref": "#/components/schemas/Channel"
+					},
+					"inviter_id": {
+						"type": "string"
+					},
+					"inviter": {
+						"$ref": "#/components/schemas/User"
+					},
+					"target_user_id": {
+						"type": "string"
+					},
+					"target_user": {
+						"type": "string"
+					},
+					"target_user_type": {
+						"type": "integer"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": [
+					"channel",
+					"channel_id",
+					"code",
+					"created_at",
+					"expires_at",
+					"guild",
+					"guild_id",
+					"id",
+					"inviter",
+					"inviter_id",
+					"max_age",
+					"max_uses",
+					"target_user_id",
+					"temporary",
+					"uses"
+				]
+			},
+			"VoiceState": {
+				"type": "object",
+				"properties": {
+					"guild_id": {
+						"type": "string"
+					},
+					"guild": {
+						"$ref": "#/components/schemas/Guild"
+					},
+					"channel_id": {
+						"type": "string"
+					},
+					"channel": {
+						"$ref": "#/components/schemas/Channel"
+					},
+					"user_id": {
+						"type": "string"
+					},
+					"user": {
+						"$ref": "#/components/schemas/User"
+					},
+					"session_id": {
+						"type": "string"
+					},
+					"deaf": {
+						"type": "boolean"
+					},
+					"mute": {
+						"type": "boolean"
+					},
+					"self_deaf": {
+						"type": "boolean"
+					},
+					"self_mute": {
+						"type": "boolean"
+					},
+					"self_stream": {
+						"type": "boolean"
+					},
+					"self_video": {
+						"type": "boolean"
+					},
+					"suppress": {
+						"type": "boolean"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": [
+					"channel",
+					"channel_id",
+					"deaf",
+					"guild_id",
+					"id",
+					"mute",
+					"self_deaf",
+					"self_mute",
+					"self_video",
+					"session_id",
+					"suppress",
+					"user",
+					"user_id"
+				]
+			},
+			"AuditLogEvents": {
+				"enum": [
+					1, 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 40, 41, 42, 50, 51, 52, 60, 61, 62, 72, 73,
+					74, 75, 80, 81, 82
+				],
+				"type": "number"
+			},
+			"AuditLogChange": {
+				"type": "object",
+				"properties": {
+					"new_value": {
+						"$ref": "#/components/schemas/AuditLogChangeValue"
+					},
+					"old_value": {
+						"$ref": "#/components/schemas/AuditLogChangeValue"
+					},
+					"key": {
+						"type": "string"
+					}
+				},
+				"required": ["key"]
+			},
+			"AuditLogChangeValue": {
+				"type": "object",
+				"properties": {
+					"name": {
+						"type": "string"
+					},
+					"description": {
+						"type": "string"
+					},
+					"icon_hash": {
+						"type": "string"
+					},
+					"splash_hash": {
+						"type": "string"
+					},
+					"discovery_splash_hash": {
+						"type": "string"
+					},
+					"banner_hash": {
+						"type": "string"
+					},
+					"owner_id": {
+						"type": "string"
+					},
+					"region": {
+						"type": "string"
+					},
+					"preferred_locale": {
+						"type": "string"
+					},
+					"afk_channel_id": {
+						"type": "string"
+					},
+					"afk_timeout": {
+						"type": "integer"
+					},
+					"rules_channel_id": {
+						"type": "string"
+					},
+					"public_updates_channel_id": {
+						"type": "string"
+					},
+					"mfa_level": {
+						"type": "integer"
+					},
+					"verification_level": {
+						"type": "integer"
+					},
+					"explicit_content_filter": {
+						"type": "integer"
+					},
+					"default_message_notifications": {
+						"type": "integer"
+					},
+					"vanity_url_code": {
+						"type": "string"
+					},
+					"$add": {
+						"type": "array",
+						"items": {
+							"type": "object",
+							"properties": {}
+						}
+					},
+					"$remove": {
+						"type": "array",
+						"items": {
+							"type": "object",
+							"properties": {}
+						}
+					},
+					"prune_delete_days": {
+						"type": "integer"
+					},
+					"widget_enabled": {
+						"type": "boolean"
+					},
+					"widget_channel_id": {
+						"type": "string"
+					},
+					"system_channel_id": {
+						"type": "string"
+					},
+					"position": {
+						"type": "integer"
+					},
+					"topic": {
+						"type": "string"
+					},
+					"bitrate": {
+						"type": "integer"
+					},
+					"permission_overwrites": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/ChannelPermissionOverwrite"
+						}
+					},
+					"nsfw": {
+						"type": "boolean"
+					},
+					"application_id": {
+						"type": "string"
+					},
+					"rate_limit_per_user": {
+						"type": "integer"
+					},
+					"permissions": {
+						"type": "string"
+					},
+					"color": {
+						"type": "integer"
+					},
+					"hoist": {
+						"type": "boolean"
+					},
+					"mentionable": {
+						"type": "boolean"
+					},
+					"allow": {
+						"type": "string"
+					},
+					"deny": {
+						"type": "string"
+					},
+					"code": {
+						"type": "string"
+					},
+					"channel_id": {
+						"type": "string"
+					},
+					"inviter_id": {
+						"type": "string"
+					},
+					"max_uses": {
+						"type": "integer"
+					},
+					"uses": {
+						"type": "integer"
+					},
+					"max_age": {
+						"type": "integer"
+					},
+					"temporary": {
+						"type": "boolean"
+					},
+					"deaf": {
+						"type": "boolean"
+					},
+					"mute": {
+						"type": "boolean"
+					},
+					"nick": {
+						"type": "string"
+					},
+					"avatar_hash": {
+						"type": "string"
+					},
+					"id": {
+						"type": "string"
+					},
+					"type": {
+						"type": "integer"
+					},
+					"enable_emoticons": {
+						"type": "boolean"
+					},
+					"expire_behavior": {
+						"type": "integer"
+					},
+					"expire_grace_period": {
+						"type": "integer"
+					},
+					"user_limit": {
+						"type": "integer"
+					}
+				}
+			},
+			"AuditLog": {
+				"type": "object",
+				"properties": {
+					"target": {
+						"$ref": "#/components/schemas/User"
+					},
+					"user_id": {
+						"type": "string"
+					},
+					"user": {
+						"$ref": "#/components/schemas/User"
+					},
+					"action_type": {
+						"$ref": "#/components/schemas/AuditLogEvents"
+					},
+					"options": {
+						"type": "object",
+						"properties": {
+							"delete_member_days": {
+								"type": "string"
+							},
+							"members_removed": {
+								"type": "string"
+							},
+							"channel_id": {
+								"type": "string"
+							},
+							"messaged_id": {
+								"type": "string"
+							},
+							"count": {
+								"type": "string"
+							},
+							"id": {
+								"type": "string"
+							},
+							"type": {
+								"type": "string"
+							},
+							"role_name": {
+								"type": "string"
+							}
+						},
+						"additionalProperties": false
+					},
+					"changes": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/AuditLogChange"
+						}
+					},
+					"reason": {
+						"type": "string"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": ["action_type", "changes", "id", "user", "user_id"]
+			},
+			"ReadState": {
+				"type": "object",
+				"properties": {
+					"channel_id": {
+						"type": "string"
+					},
+					"channel": {
+						"$ref": "#/components/schemas/Channel"
+					},
+					"user_id": {
+						"type": "string"
+					},
+					"user": {
+						"$ref": "#/components/schemas/User"
+					},
+					"last_message_id": {
+						"type": "string"
+					},
+					"last_message": {
+						"$ref": "#/components/schemas/Message"
+					},
+					"last_pin_timestamp": {
+						"type": "string",
+						"format": "date-time"
+					},
+					"mention_count": {
+						"type": "integer"
+					},
+					"manual": {
+						"type": "boolean"
+					},
+					"id": {
+						"type": "string"
+					}
+				},
+				"required": ["channel", "channel_id", "id", "last_message_id", "manual", "mention_count", "user", "user_id"]
+			},
+			"UserPublic": {
+				"type": "object",
+				"properties": {
+					"username": {
+						"type": "string"
+					},
+					"discriminator": {
+						"type": "string"
+					},
+					"id": {
+						"type": "string"
+					},
+					"public_flags": {
+						"type": "integer"
+					},
+					"avatar": {
+						"type": "string"
+					},
+					"accent_color": {
+						"type": "integer"
+					},
+					"banner": {
+						"type": "string"
+					},
+					"bio": {
+						"type": "string"
+					},
+					"bot": {
+						"type": "boolean"
+					}
+				},
+				"required": ["bio", "bot", "discriminator", "id", "public_flags", "username"]
+			},
+			"UserPrivate": {
+				"type": "object",
+				"properties": {
+					"locale": {
+						"type": "string"
+					},
+					"disabled": {
+						"type": "boolean"
+					},
+					"username": {
+						"type": "string"
+					},
+					"discriminator": {
+						"type": "string"
+					},
+					"id": {
+						"type": "string"
+					},
+					"public_flags": {
+						"type": "string"
+					},
+					"avatar": {
+						"type": "string"
+					},
+					"accent_color": {
+						"type": "integer"
+					},
+					"banner": {
+						"type": "string"
+					},
+					"bio": {
+						"type": "string"
+					},
+					"bot": {
+						"type": "boolean"
+					},
+					"flags": {
+						"type": "string"
+					},
+					"mfa_enabled": {
+						"type": "boolean"
+					},
+					"email": {
+						"type": "string"
+					},
+					"phone": {
+						"type": "string"
+					},
+					"verified": {
+						"type": "boolean"
+					},
+					"nsfw_allowed": {
+						"type": "boolean"
+					},
+					"premium": {
+						"type": "boolean"
+					},
+					"premium_type": {
+						"type": "integer"
+					}
+				},
+				"required": [
+					"bio",
+					"bot",
+					"disabled",
+					"discriminator",
+					"flags",
+					"id",
+					"locale",
+					"mfa_enabled",
+					"nsfw_allowed",
+					"premium",
+					"premium_type",
+					"public_flags",
+					"username",
+					"verified"
+				]
+			},
+			"BanCreateSchema": {
+				"type": "object",
+				"properties": {
+					"delete_message_days": {
+						"type": "string"
+					},
+					"reason": {
+						"type": "string"
+					}
+				}
+			},
+			"DmChannelCreateSchema": {
+				"type": "object",
+				"properties": {
+					"name": {
+						"type": "string"
+					},
+					"recipients": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					}
+				},
+				"required": ["recipients"]
+			},
+			"ChannelModifySchema": {
+				"type": "object",
+				"properties": {
+					"name": {
+						"maxLength": 100,
+						"type": "string"
+					},
+					"type": {
+						"enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6],
+						"type": "number"
+					},
+					"topic": {
+						"type": "string"
+					},
+					"icon": {
+						"type": "string",
+						"nullable": true
+					},
+					"bitrate": {
+						"type": "integer"
+					},
+					"user_limit": {
+						"type": "integer"
+					},
+					"rate_limit_per_user": {
+						"type": "integer"
+					},
+					"position": {
+						"type": "integer"
+					},
+					"permission_overwrites": {
+						"type": "array",
+						"items": {
+							"type": "object",
+							"properties": {
+								"id": {
+									"type": "string"
+								},
+								"type": {
+									"$ref": "#/components/schemas/ChannelPermissionOverwriteType"
+								},
+								"allow": {
+									"type": "number"
+								},
+								"deny": {
+									"type": "number"
+								}
+							},
+							"additionalProperties": false,
+							"required": ["allow", "deny", "id", "type"]
+						}
+					},
+					"parent_id": {
+						"type": "string"
+					},
+					"id": {
+						"type": "string"
+					},
+					"nsfw": {
+						"type": "boolean"
+					},
+					"rtc_region": {
+						"type": "string"
+					},
+					"default_auto_archive_duration": {
+						"type": "integer"
+					}
+				}
+			},
+			"ChannelGuildPositionUpdateSchema": {
+				"type": "array",
+				"items": {
+					"type": "object",
+					"properties": {
+						"id": {
+							"type": "string"
+						},
+						"position": {
+							"type": "integer"
+						}
+					},
+					"additionalProperties": false,
+					"required": ["id"]
+				}
+			},
+			"EmojiCreateSchema": {
+				"type": "object",
+				"properties": {
+					"name": {
+						"type": "string"
+					},
+					"image": {
+						"type": "string"
+					},
+					"roles": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					}
+				},
+				"required": ["image", "name"]
+			},
+			"GuildCreateSchema": {
+				"type": "object",
+				"properties": {
+					"name": {
+						"maxLength": 100,
+						"type": "string"
+					},
+					"region": {
+						"type": "string"
+					},
+					"icon": {
+						"type": "string",
+						"nullable": true
+					},
+					"channels": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/ChannelModifySchema"
+						}
+					},
+					"guild_template_code": {
+						"type": "string"
+					},
+					"system_channel_id": {
+						"type": "string"
+					},
+					"rules_channel_id": {
+						"type": "string"
+					}
+				},
+				"required": ["name"]
+			},
+			"GuildUpdateSchema": {
+				"type": "object",
+				"properties": {
+					"banner": {
+						"type": "string",
+						"nullable": true
+					},
+					"splash": {
+						"type": "string",
+						"nullable": true
+					},
+					"description": {
+						"type": "string"
+					},
+					"features": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					},
+					"verification_level": {
+						"type": "integer"
+					},
+					"default_message_notifications": {
+						"type": "integer"
+					},
+					"system_channel_flags": {
+						"type": "integer"
+					},
+					"explicit_content_filter": {
+						"type": "integer"
+					},
+					"public_updates_channel_id": {
+						"type": "string"
+					},
+					"afk_timeout": {
+						"type": "integer"
+					},
+					"afk_channel_id": {
+						"type": "string"
+					},
+					"preferred_locale": {
+						"type": "string"
+					},
+					"name": {
+						"maxLength": 100,
+						"type": "string"
+					},
+					"region": {
+						"type": "string"
+					},
+					"icon": {
+						"type": "string",
+						"nullable": true
+					},
+					"guild_template_code": {
+						"type": "string"
+					},
+					"system_channel_id": {
+						"type": "string"
+					},
+					"rules_channel_id": {
+						"type": "string"
+					}
+				},
+				"required": ["name"]
+			},
+			"GuildTemplateCreateSchema": {
+				"type": "object",
+				"properties": {
+					"name": {
+						"type": "string"
+					},
+					"avatar": {
+						"type": "string",
+						"nullable": true
+					}
+				},
+				"required": ["name"]
+			},
+			"GuildUpdateWelcomeScreenSchema": {
+				"type": "object",
+				"properties": {
+					"welcome_channels": {
+						"type": "array",
+						"items": {
+							"type": "object",
+							"properties": {
+								"channel_id": {
+									"type": "string"
+								},
+								"description": {
+									"type": "string"
+								},
+								"emoji_id": {
+									"type": "string"
+								},
+								"emoji_name": {
+									"type": "string"
+								}
+							},
+							"additionalProperties": false,
+							"required": ["channel_id", "description", "emoji_name"]
+						}
+					},
+					"enabled": {
+						"type": "boolean"
+					},
+					"description": {
+						"type": "string"
+					}
+				}
+			},
+			"InviteCreateSchema": {
+				"type": "object",
+				"properties": {
+					"target_user_id": {
+						"type": "string"
+					},
+					"target_type": {
+						"type": "string"
+					},
+					"validate": {
+						"type": "string"
+					},
+					"max_age": {
+						"type": "integer"
+					},
+					"max_uses": {
+						"type": "integer"
+					},
+					"temporary": {
+						"type": "boolean"
+					},
+					"unique": {
+						"type": "boolean"
+					},
+					"target_user": {
+						"type": "string"
+					},
+					"target_user_type": {
+						"type": "integer"
+					}
+				}
+			},
+			"MemberCreateSchema": {
+				"type": "object",
+				"properties": {
+					"id": {
+						"type": "string"
+					},
+					"nick": {
+						"type": "string"
+					},
+					"guild_id": {
+						"type": "string"
+					},
+					"joined_at": {
+						"type": "string",
+						"format": "date-time"
+					}
+				},
+				"required": ["guild_id", "id", "joined_at", "nick"]
+			},
+			"MemberNickChangeSchema": {
+				"type": "object",
+				"properties": {
+					"nick": {
+						"type": "string"
+					}
+				},
+				"required": ["nick"]
+			},
+			"MemberChangeSchema": {
+				"type": "object",
+				"properties": {
+					"roles": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					}
+				}
+			},
+			"MessageCreateSchema": {
+				"type": "object",
+				"properties": {
+					"content": {
+						"type": "string"
+					},
+					"nonce": {
+						"type": "string"
+					},
+					"tts": {
+						"type": "boolean"
+					},
+					"flags": {
+						"type": "string"
+					},
+					"embeds": {
+						"type": "array",
+						"items": {
+							"$ref": "#/components/schemas/Embed"
+						}
+					},
+					"embed": {
+						"$ref": "#/components/schemas/Embed"
+					},
+					"allowed_mentions": {
+						"type": "object",
+						"properties": {
+							"parse": {
+								"type": "array",
+								"items": {
+									"type": "string"
+								}
+							},
+							"roles": {
+								"type": "array",
+								"items": {
+									"type": "string"
+								}
+							},
+							"users": {
+								"type": "array",
+								"items": {
+									"type": "string"
+								}
+							},
+							"replied_user": {
+								"type": "boolean"
+							}
+						},
+						"additionalProperties": false
+					},
+					"message_reference": {
+						"type": "object",
+						"properties": {
+							"message_id": {
+								"type": "string"
+							},
+							"channel_id": {
+								"type": "string"
+							},
+							"guild_id": {
+								"type": "string"
+							},
+							"fail_if_not_exists": {
+								"type": "boolean"
+							}
+						},
+						"additionalProperties": false,
+						"required": ["channel_id", "message_id"]
+					},
+					"payload_json": {
+						"type": "string"
+					},
+					"file": {},
+					"attachments": {
+						"type": "array",
+						"items": {}
+					}
+				}
+			},
+			"RoleModifySchema": {
+				"type": "object",
+				"properties": {
+					"name": {
+						"type": "string"
+					},
+					"permissions": {
+						"type": "number"
+					},
+					"color": {
+						"type": "integer"
+					},
+					"hoist": {
+						"type": "boolean"
+					},
+					"mentionable": {
+						"type": "boolean"
+					},
+					"position": {
+						"type": "integer"
+					}
+				}
+			},
+			"TemplateCreateSchema": {
+				"type": "object",
+				"properties": {
+					"name": {
+						"type": "string"
+					},
+					"description": {
+						"type": "string"
+					}
+				},
+				"required": ["name"]
+			},
+			"TemplateModifySchema": {
+				"type": "object",
+				"properties": {
+					"name": {
+						"type": "string"
+					},
+					"description": {
+						"type": "string"
+					}
+				},
+				"required": ["name"]
+			},
+			"UserModifySchema": {
+				"type": "object",
+				"properties": {
+					"username": {
+						"minLength": 1,
+						"maxLength": 100,
+						"type": "string"
+					},
+					"avatar": {
+						"type": "string",
+						"nullable": true
+					},
+					"bio": {
+						"maxLength": 1024,
+						"type": "string"
+					},
+					"accent_color": {
+						"type": "integer"
+					},
+					"banner": {
+						"type": "string",
+						"nullable": true
+					},
+					"password": {
+						"type": "string"
+					},
+					"new_password": {
+						"type": "string"
+					},
+					"code": {
+						"type": "string"
+					}
+				}
+			},
+			"UserSettingsSchema": {
+				"type": "object",
+				"properties": {
+					"afk_timeout": {
+						"type": "integer"
+					},
+					"allow_accessibility_detection": {
+						"type": "boolean"
+					},
+					"animate_emoji": {
+						"type": "boolean"
+					},
+					"animate_stickers": {
+						"type": "integer"
+					},
+					"contact_sync_enabled": {
+						"type": "boolean"
+					},
+					"convert_emoticons": {
+						"type": "boolean"
+					},
+					"custom_status": {
+						"type": "object",
+						"properties": {
+							"emoji_id": {
+								"type": "string"
+							},
+							"emoji_name": {
+								"type": "string"
+							},
+							"expires_at": {
+								"type": "integer"
+							},
+							"text": {
+								"type": "string"
+							}
+						},
+						"additionalProperties": false
+					},
+					"default_guilds_restricted": {
+						"type": "boolean"
+					},
+					"detect_platform_accounts": {
+						"type": "boolean"
+					},
+					"developer_mode": {
+						"type": "boolean"
+					},
+					"disable_games_tab": {
+						"type": "boolean"
+					},
+					"enable_tts_command": {
+						"type": "boolean"
+					},
+					"explicit_content_filter": {
+						"type": "integer"
+					},
+					"friend_source_flags": {
+						"type": "object",
+						"properties": {
+							"all": {
+								"type": "boolean"
+							}
+						},
+						"additionalProperties": false,
+						"required": ["all"]
+					},
+					"gateway_connected": {
+						"type": "boolean"
+					},
+					"gif_auto_play": {
+						"type": "boolean"
+					},
+					"guild_folders": {
+						"type": "array",
+						"items": {
+							"type": "object",
+							"properties": {
+								"color": {
+									"type": "integer"
+								},
+								"guild_ids": {
+									"type": "array",
+									"items": {
+										"type": "string"
+									}
+								},
+								"id": {
+									"type": "integer"
+								},
+								"name": {
+									"type": "string"
+								}
+							},
+							"additionalProperties": false,
+							"required": ["color", "guild_ids", "id", "name"]
+						}
+					},
+					"guild_positions": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					},
+					"inline_attachment_media": {
+						"type": "boolean"
+					},
+					"inline_embed_media": {
+						"type": "boolean"
+					},
+					"locale": {
+						"type": "string"
+					},
+					"message_display_compact": {
+						"type": "boolean"
+					},
+					"native_phone_integration_enabled": {
+						"type": "boolean"
+					},
+					"render_embeds": {
+						"type": "boolean"
+					},
+					"render_reactions": {
+						"type": "boolean"
+					},
+					"restricted_guilds": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					},
+					"show_current_game": {
+						"type": "boolean"
+					},
+					"status": {
+						"enum": ["dnd", "idle", "offline", "online"],
+						"type": "string"
+					},
+					"stream_notifications_enabled": {
+						"type": "boolean"
+					},
+					"theme": {
+						"enum": ["dark", "white"],
+						"type": "string"
+					},
+					"timezone_offset": {
+						"type": "integer"
+					}
+				},
+				"required": [
+					"afk_timeout",
+					"allow_accessibility_detection",
+					"animate_emoji",
+					"animate_stickers",
+					"contact_sync_enabled",
+					"convert_emoticons",
+					"custom_status",
+					"default_guilds_restricted",
+					"detect_platform_accounts",
+					"developer_mode",
+					"disable_games_tab",
+					"enable_tts_command",
+					"explicit_content_filter",
+					"friend_source_flags",
+					"gateway_connected",
+					"gif_auto_play",
+					"guild_folders",
+					"guild_positions",
+					"inline_attachment_media",
+					"inline_embed_media",
+					"locale",
+					"message_display_compact",
+					"native_phone_integration_enabled",
+					"render_embeds",
+					"render_reactions",
+					"restricted_guilds",
+					"show_current_game",
+					"status",
+					"stream_notifications_enabled",
+					"theme",
+					"timezone_offset"
+				]
+			},
+			"WidgetModifySchema": {
+				"type": "object",
+				"properties": {
+					"enabled": {
+						"type": "boolean"
+					},
+					"channel_id": {
+						"type": "string"
+					}
+				},
+				"required": ["channel_id", "enabled"]
+			},
+			"RegisterSchema": {
+				"type": "object",
+				"properties": {
+					"username": {
+						"minLength": 2,
+						"maxLength": 32,
+						"type": "string"
+					},
+					"password": {
+						"minLength": 1,
+						"maxLength": 72,
+						"type": "string"
+					},
+					"consent": {
+						"type": "boolean"
+					},
+					"email": {
+						"format": "email",
+						"type": "string"
+					},
+					"fingerprint": {
+						"type": "string"
+					},
+					"invite": {
+						"type": "string"
+					},
+					"date_of_birth": {
+						"type": "string"
+					},
+					"gift_code_sku_id": {
+						"type": "string"
+					},
+					"captcha_key": {
+						"type": "string"
+					}
+				},
+				"required": ["consent", "username"]
+			},
+			"LoginSchema": {
+				"type": "object",
+				"properties": {
+					"login": {
+						"type": "string"
+					},
+					"password": {
+						"type": "string"
+					},
+					"undelete": {
+						"type": "boolean"
+					},
+					"captcha_key": {
+						"type": "string"
+					},
+					"login_source": {
+						"type": "string"
+					},
+					"gift_code_sku_id": {
+						"type": "string"
+					}
+				},
+				"required": ["login", "password"]
+			},
+			"MessageAcknowledgeSchema": {
+				"type": "object",
+				"properties": {
+					"manual": {
+						"type": "boolean"
+					},
+					"mention_count": {
+						"type": "integer"
+					}
+				}
+			},
+			"BulkDeleteSchema": {
+				"type": "object",
+				"properties": {
+					"messages": {
+						"type": "array",
+						"items": {
+							"type": "string"
+						}
+					}
+				},
+				"required": ["messages"]
+			},
+			"ChannelPermissionOverwriteSchema": {
+				"type": "object",
+				"properties": {
+					"allow": {
+						"type": "number"
+					},
+					"deny": {
+						"type": "number"
+					},
+					"id": {
+						"type": "string"
+					},
+					"type": {
+						"$ref": "#/components/schemas/ChannelPermissionOverwriteType"
+					}
+				},
+				"required": ["allow", "deny", "id", "type"]
+			},
+			"WebhookCreateSchema": {
+				"type": "object",
+				"properties": {
+					"name": {
+						"maxLength": 80,
+						"type": "string"
+					},
+					"avatar": {
+						"type": "string"
+					}
+				},
+				"required": ["avatar", "name"]
+			},
+			"ChannelReorderSchema": {
+				"type": "array",
+				"items": {
+					"type": "object",
+					"properties": {
+						"id": {
+							"type": "string"
+						},
+						"position": {
+							"type": "integer"
+						},
+						"lock_permissions": {
+							"type": "boolean"
+						},
+						"parent_id": {
+							"type": "string"
+						}
+					},
+					"additionalProperties": false,
+					"required": ["id"]
+				}
+			},
+			"RolePositionUpdateSchema": {
+				"type": "array",
+				"items": {
+					"type": "object",
+					"properties": {
+						"id": {
+							"type": "string"
+						},
+						"position": {
+							"type": "integer"
+						}
+					},
+					"additionalProperties": false,
+					"required": ["id", "position"]
+				}
+			},
+			"VanityUrlSchema": {
+				"type": "object",
+				"properties": {
+					"code": {
+						"minLength": 1,
+						"maxLength": 20,
+						"type": "string"
+					}
+				}
+			},
+			"VoiceStateUpdateSchema": {
+				"type": "object",
+				"properties": {
+					"channel_id": {
+						"type": "string"
+					},
+					"guild_id": {
+						"type": "string"
+					},
+					"suppress": {
+						"type": "boolean"
+					},
+					"request_to_speak_timestamp": {
+						"type": "string",
+						"format": "date-time"
+					},
+					"self_mute": {
+						"type": "boolean"
+					},
+					"self_deaf": {
+						"type": "boolean"
+					},
+					"self_video": {
+						"type": "boolean"
+					}
+				},
+				"required": ["channel_id"]
+			},
+			"UserProfileResponse": {
+				"type": "object",
+				"properties": {
+					"user": {
+						"$ref": "#/components/schemas/UserPublic"
+					},
+					"connected_accounts": {
+						"$ref": "#/components/schemas/PublicConnectedAccount"
+					},
+					"premium_guild_since": {
+						"type": "string",
+						"format": "date-time"
+					},
+					"premium_since": {
+						"type": "string",
+						"format": "date-time"
+					}
+				},
+				"required": ["connected_accounts", "user"]
+			},
+			"RelationshipPutSchema": {
+				"type": "object",
+				"properties": {
+					"type": {
+						"enum": [1, 2, 3, 4],
+						"type": "number"
+					}
+				}
+			},
+			"RelationshipPostSchema": {
+				"type": "object",
+				"properties": {
+					"discriminator": {
+						"type": "string"
+					},
+					"username": {
+						"type": "string"
+					}
+				},
+				"required": ["discriminator", "username"]
+			},
+			"PublicConnectedAccount": {
+				"type": "object",
+				"properties": {
+					"name": {
+						"type": "string"
+					},
+					"type": {
+						"type": "string"
+					},
+					"verifie": {
+						"type": "boolean"
+					}
+				},
+				"required": ["name", "type", "verifie"]
+			}
+		},
+		"requestBodies": {},
+		"securitySchemes": {
+			"Token": {
+				"type": "apiKey",
+				"name": "Authorization",
+				"in": "header"
+			}
+		},
+		"links": {},
+		"callbacks": {}
+	}
+}
diff --git a/api/assets/schemas.json b/api/assets/schemas.json
index 76ad3b16..023f2092 100644
--- a/api/assets/schemas.json
+++ b/api/assets/schemas.json
@@ -1,73 +1,73 @@
 {
-    "RegisterSchema": {
+    "LoginSchema": {
         "type": "object",
         "properties": {
-            "username": {
-                "minLength": 2,
-                "maxLength": 32,
+            "login": {
                 "type": "string"
             },
             "password": {
-                "minLength": 1,
-                "maxLength": 72,
                 "type": "string"
             },
-            "consent": {
+            "undelete": {
                 "type": "boolean"
             },
-            "email": {
-                "format": "email",
-                "type": "string"
-            },
-            "fingerprint": {
-                "type": "string"
-            },
-            "invite": {
+            "captcha_key": {
                 "type": "string"
             },
-            "date_of_birth": {
+            "login_source": {
                 "type": "string"
             },
             "gift_code_sku_id": {
                 "type": "string"
-            },
-            "captcha_key": {
-                "type": "string"
             }
         },
         "additionalProperties": false,
         "required": [
-            "consent",
-            "username"
+            "login",
+            "password"
         ],
         "$schema": "http://json-schema.org/draft-07/schema#"
     },
-    "LoginSchema": {
+    "RegisterSchema": {
         "type": "object",
         "properties": {
-            "login": {
+            "username": {
+                "minLength": 2,
+                "maxLength": 32,
                 "type": "string"
             },
             "password": {
+                "minLength": 1,
+                "maxLength": 72,
                 "type": "string"
             },
-            "undelete": {
+            "consent": {
                 "type": "boolean"
             },
-            "captcha_key": {
+            "email": {
+                "format": "email",
                 "type": "string"
             },
-            "login_source": {
+            "fingerprint": {
+                "type": "string"
+            },
+            "invite": {
+                "type": "string"
+            },
+            "date_of_birth": {
                 "type": "string"
             },
             "gift_code_sku_id": {
                 "type": "string"
+            },
+            "captcha_key": {
+                "type": "string"
             }
         },
         "additionalProperties": false,
         "required": [
-            "login",
-            "password"
+            "consent",
+            "username"
         ],
         "$schema": "http://json-schema.org/draft-07/schema#"
     },
@@ -127,10 +127,10 @@
                             "$ref": "#/definitions/ChannelPermissionOverwriteType"
                         },
                         "allow": {
-                            "type": "bigint"
+                            "type": "string"
                         },
                         "deny": {
-                            "type": "bigint"
+                            "type": "string"
                         }
                     },
                     "additionalProperties": false,
@@ -353,10 +353,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -727,10 +727,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -1050,10 +1050,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -1352,10 +1352,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -1657,10 +1657,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -1758,10 +1758,10 @@
         "type": "object",
         "properties": {
             "allow": {
-                "type": "bigint"
+                "type": "string"
             },
             "deny": {
-                "type": "bigint"
+                "type": "string"
             },
             "id": {
                 "type": "string"
@@ -1971,10 +1971,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -2278,10 +2278,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -2580,10 +2580,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -2894,10 +2894,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -3221,10 +3221,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -3587,10 +3587,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -3889,10 +3889,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -4191,10 +4191,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -4505,10 +4505,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -4814,10 +4814,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -5119,10 +5119,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -5424,10 +5424,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -5725,10 +5725,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -6046,10 +6046,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -6374,10 +6374,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -6680,10 +6680,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -6988,10 +6988,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -7302,10 +7302,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -7610,10 +7610,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -7939,10 +7939,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -8244,10 +8244,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -8550,10 +8550,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
@@ -9039,10 +9039,10 @@
                                     "$ref": "#/definitions/ChannelPermissionOverwriteType"
                                 },
                                 "allow": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 },
                                 "deny": {
-                                    "type": "bigint"
+                                    "type": "string"
                                 }
                             },
                             "additionalProperties": false,
diff --git a/api/package.json b/api/package.json
index cc47a45a..8fc55e94 100644
--- a/api/package.json
+++ b/api/package.json
@@ -14,8 +14,8 @@
 		"dev": "tsnd --respawn src/start.ts",
 		"patch": "ts-patch install -s && npx patch-package",
 		"postinstall": "npm run patch",
-		"generate:docs": "node scripts/generate_openapi.ts",
-		"generate:schema": "node scripts/generate_schema.ts"
+		"generate:docs": "node scripts/generate_openapi",
+		"generate:schema": "node scripts/generate_schema"
 	},
 	"repository": {
 		"type": "git",
diff --git a/api/scripts/generate_schema.js b/api/scripts/generate_schema.js
index 22d0b02e..fc787c22 100644
--- a/api/scripts/generate_schema.js
+++ b/api/scripts/generate_schema.js
@@ -1,9 +1,9 @@
 // https://mermade.github.io/openapi-gui/#
 // https://editor.swagger.io/
-import path from "path";
-import fs from "fs";
-import * as TJS from "typescript-json-schema";
-import "missing-native-js-functions";
+const path = require("path");
+const fs = require("fs");
+const TJS = require("typescript-json-schema");
+require("missing-native-js-functions");
 const schemaPath = path.join(__dirname, "..", "assets", "schemas.json");
 
 const settings = {
diff --git a/api/src/middlewares/TestClient.ts b/api/src/middlewares/TestClient.ts
index 79f8f442..7db35285 100644
--- a/api/src/middlewares/TestClient.ts
+++ b/api/src/middlewares/TestClient.ts
@@ -9,11 +9,11 @@ export default function TestClient(app: Application) {
 	const indexHTML = fs.readFileSync(path.join(__dirname, "..", "..", "client_test", "index.html"), { encoding: "utf8" });
 
 	var html = indexHTML;
-	const CDN_ENDPOINT = (Config.get().cdn.endpointClient || Config.get()?.cdn.endpoint || process.env.CDN || "").replace(
+	const CDN_ENDPOINT = (Config.get().cdn.endpointClient || Config.get()?.cdn.endpointPublic || process.env.CDN || "").replace(
 		/(https?)?(:\/\/?)/g,
 		""
 	);
-	const GATEWAY_ENDPOINT = Config.get().gateway.endpointClient || Config.get()?.gateway.endpoint || process.env.GATEWAY || "";
+	const GATEWAY_ENDPOINT = Config.get().gateway.endpointClient || Config.get()?.gateway.endpointPublic || process.env.GATEWAY || "";
 
 	if (CDN_ENDPOINT) {
 		html = html.replace(/CDN_HOST: .+/, `CDN_HOST: \`${CDN_ENDPOINT}\`,`);
diff --git a/api/src/routes/channels/#channel_id/index.ts b/api/src/routes/channels/#channel_id/index.ts
index 61c851e8..2fca4fdf 100644
--- a/api/src/routes/channels/#channel_id/index.ts
+++ b/api/src/routes/channels/#channel_id/index.ts
@@ -62,8 +62,8 @@ export interface ChannelModifySchema {
 	permission_overwrites?: {
 		id: string;
 		type: ChannelPermissionOverwriteType;
-		allow: bigint;
-		deny: bigint;
+		allow: string;
+		deny: string;
 	}[];
 	parent_id?: string;
 	id?: string; // is not used (only for guild create)
diff --git a/api/src/routes/channels/#channel_id/messages/index.ts b/api/src/routes/channels/#channel_id/messages/index.ts
index fab20977..d3321fae 100644
--- a/api/src/routes/channels/#channel_id/messages/index.ts
+++ b/api/src/routes/channels/#channel_id/messages/index.ts
@@ -3,6 +3,7 @@ import {
 	Attachment,
 	Channel,
 	ChannelType,
+	Config,
 	DmChannelDTO,
 	Embed,
 	emitEvent,
@@ -15,6 +16,7 @@ import { HTTPError } from "lambert-server";
 import { handleMessage, postHandleMessage, route } from "@fosscord/api";
 import multer from "multer";
 import { FindManyOptions, LessThan, MoreThan } from "typeorm";
+import { URL } from "url";
 
 const router: Router = Router();
 
@@ -111,6 +113,9 @@ router.get("/", async (req: Request, res: Response) => {
 			});
 			// @ts-ignore
 			if (!x.author) x.author = { discriminator: "0000", username: "Deleted User", public_flags: "0", avatar: null };
+			x.attachments?.forEach((x) => {
+				x.proxy_url = `${Config.get().cdn.endpointPublic || "http://localhost:3003"}${new URL(x.proxy_url).pathname}`;
+			});
 
 			return x;
 		})
diff --git a/api/src/routes/channels/#channel_id/permissions.ts b/api/src/routes/channels/#channel_id/permissions.ts
index bc7ad5b8..6ebf721a 100644
--- a/api/src/routes/channels/#channel_id/permissions.ts
+++ b/api/src/routes/channels/#channel_id/permissions.ts
@@ -1,4 +1,13 @@
-import { Channel, ChannelPermissionOverwrite, ChannelUpdateEvent, emitEvent, getPermission, Member, Role } from "@fosscord/util";
+import {
+	Channel,
+	ChannelPermissionOverwrite,
+	ChannelPermissionOverwriteType,
+	ChannelUpdateEvent,
+	emitEvent,
+	getPermission,
+	Member,
+	Role
+} from "@fosscord/util";
 import { Router, Response, Request } from "express";
 import { HTTPError } from "lambert-server";
 
@@ -14,7 +23,7 @@ router.put(
 	route({ body: "ChannelPermissionOverwriteSchema", permission: "MANAGE_ROLES" }),
 	async (req: Request, res: Response) => {
 		const { channel_id, overwrite_id } = req.params;
-		const body = req.body as { allow: bigint; deny: bigint; type: number; id: string };
+		const body = req.body as ChannelPermissionOverwriteSchema;
 
 		var channel = await Channel.findOneOrFail({ id: channel_id });
 		if (!channel.guild_id) throw new HTTPError("Channel not found", 404);
@@ -31,14 +40,12 @@ router.put(
 			// @ts-ignore
 			overwrite = {
 				id: overwrite_id,
-				type: body.type,
-				allow: body.allow,
-				deny: body.deny
+				type: body.type
 			};
 			channel.permission_overwrites!.push(overwrite);
 		}
-		overwrite.allow = body.allow;
-		overwrite.deny = body.deny;
+		overwrite.allow = String(req.permission!.bitfield & (BigInt(body.allow) || 0n));
+		overwrite.deny = String(req.permission!.bitfield & (BigInt(body.deny) || 0n));
 
 		await Promise.all([
 			channel.save(),
diff --git a/api/src/routes/gateway.ts b/api/src/routes/gateway.ts
index 88d9dfda..4b3a0ea6 100644
--- a/api/src/routes/gateway.ts
+++ b/api/src/routes/gateway.ts
@@ -5,14 +5,14 @@ import { route } from "@fosscord/api";
 const router = Router();
 
 router.get("/", route({}), (req: Request, res: Response) => {
-	const { endpoint } = Config.get().gateway;
-	res.json({ url: endpoint || process.env.GATEWAY || "ws://localhost:3002" });
+	const { endpointPublic } = Config.get().gateway;
+	res.json({ url: endpointPublic || process.env.GATEWAY || "ws://localhost:3002" });
 });
 
 router.get("/bot", route({}), (req: Request, res: Response) => {
-	const { endpoint } = Config.get().gateway;
+	const { endpointPublic } = Config.get().gateway;
 	res.json({
-		url: endpoint || process.env.GATEWAY || "ws://localhost:3002",
+		url: endpointPublic || process.env.GATEWAY || "ws://localhost:3002",
 		shards: 1,
 		session_start_limit: {
 			total: 1000,
diff --git a/api/src/routes/guilds/index.ts b/api/src/routes/guilds/index.ts
index abde147d..6a325ae2 100644
--- a/api/src/routes/guilds/index.ts
+++ b/api/src/routes/guilds/index.ts
@@ -87,19 +87,21 @@ router.post("/", route({ body: "GuildCreateSchema" }), async (req: Request, res:
 	});
 
 	await Promise.all(
-		body.channels?.map((x) => {
-			var id = ids.get(x.id) || Snowflake.generate();
-
-			// TODO: should we abort if parent_id is a category? (to disallow sub category channels)
-			var parent_id = ids.get(x.parent_id);
-
-			return Channel.createChannel({ ...x, guild_id, id, parent_id }, req.user_id, {
-				keepId: true,
-				skipExistsCheck: true,
-				skipPermissionCheck: true,
-				skipEventEmit: true
-			});
-		})
+		body.channels
+			?.sort((a, b) => (a.parent_id ? -1 : 1))
+			.map((x) => {
+				var id = ids.get(x.id) || Snowflake.generate();
+
+				// TODO: should we abort if parent_id is a category? (to disallow sub category channels)
+				var parent_id = ids.get(x.parent_id);
+
+				return Channel.createChannel({ ...x, guild_id, id, parent_id }, req.user_id, {
+					keepId: true,
+					skipExistsCheck: true,
+					skipPermissionCheck: true,
+					skipEventEmit: true
+				});
+			})
 	);
 
 	await Member.addToGuild(req.user_id, guild_id);
diff --git a/api/src/util/cdn.ts b/api/src/util/cdn.ts
deleted file mode 100644
index 8c6e9ac9..00000000
--- a/api/src/util/cdn.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { Config } from "@fosscord/util";
-import FormData from "form-data";
-import { HTTPError } from "lambert-server";
-import fetch from "node-fetch";
-
-export async function uploadFile(path: string, file: Express.Multer.File) {
-	const form = new FormData();
-	form.append("file", file.buffer, {
-		contentType: file.mimetype,
-		filename: file.originalname
-	});
-
-	const response = await fetch(`${Config.get().cdn.endpoint || "http://localhost:3003"}${path}`, {
-		headers: {
-			signature: Config.get().security.requestSignature,
-			...form.getHeaders()
-		},
-		method: "POST",
-		body: form
-	});
-	const result = await response.json();
-
-	if (response.status !== 200) throw result;
-	return result;
-}
-
-export async function handleFile(path: string, body?: string): Promise<string | undefined> {
-	if (!body || !body.startsWith("data:")) return body;
-	try {
-		const mimetype = body.split(":")[1].split(";")[0];
-		const buffer = Buffer.from(body.split(",")[1], "base64");
-
-		// @ts-ignore
-		const { id } = await uploadFile(path, { buffer, mimetype, originalname: "banner" });
-		return id;
-	} catch (error) {
-		console.error(error);
-		throw new HTTPError("Invalid " + path);
-	}
-}
-
-export async function deleteFile(path: string) {
-	const response = await fetch(`${Config.get().cdn.endpoint || "http://localhost:3003"}${path}`, {
-		headers: {
-			signature: Config.get().security.requestSignature
-		},
-		method: "DELETE"
-	});
-	const result = await response.json();
-
-	if (response.status !== 200) throw result;
-	return result;
-}
diff --git a/api/src/util/route.ts b/api/src/util/route.ts
index e7c7ed1c..45882d8a 100644
--- a/api/src/util/route.ts
+++ b/api/src/util/route.ts
@@ -81,10 +81,10 @@ export function route(opts: RouteOptions) {
 	return async (req: Request, res: Response, next: NextFunction) => {
 		if (opts.permission) {
 			const required = new Permissions(opts.permission);
-			const permission = await getPermission(req.user_id, req.params.guild_id, req.params.channel_id);
+			req.permission = await getPermission(req.user_id, req.params.guild_id, req.params.channel_id);
 
 			// bitfield comparison: check if user lacks certain permission
-			if (!permission.has(required)) {
+			if (!req.permission.has(required)) {
 				throw DiscordApiErrors.MISSING_PERMISSIONS.withParams(opts.permission as string);
 			}
 		}
diff --git a/bundle/src/Server.ts b/bundle/src/Server.ts
index 56c82cd1..62764e8e 100644
--- a/bundle/src/Server.ts
+++ b/bundle/src/Server.ts
@@ -24,16 +24,24 @@ const gateway = new GatewayServer({ server, port, production });
 async function main() {
 	await initDatabase();
 	await Config.init();
+	// only set endpointPublic, if not already set
 	await Config.set({
 		cdn: {
 			endpointClient: "${location.host}",
-			endpoint: `http://localhost:${port}`,
+			endpointPrivate: `http://localhost:${port}`,
+			...(!Config.get().cdn.endpointPublic && {
+				endpointPublic: `http://localhost:${port}`,
+			}),
 		},
 		gateway: {
-			endpointClient: '${location.protocol === "https:" ? "wss://" : "ws://"}${location.host}',
-			endpoint: `ws://localhost:${port}`,
+			endpointClient:
+				'${location.protocol === "https:" ? "wss://" : "ws://"}${location.host}',
+			endpointPrivate: `ws://localhost:${port}`,
+			...(!Config.get().gateway.endpointPublic && {
+				endpointPublic: `http://localhost:${port}`,
+			}),
 		},
-	});
+	} as any);
 
 	await Promise.all([api.start(), cdn.start(), gateway.start()]);
 	console.log(`[Server] listening on port ${port}`);
diff --git a/bundle/src/stats.ts b/bundle/src/stats.ts
index 37ddb4e2..e6941db2 100644
--- a/bundle/src/stats.ts
+++ b/bundle/src/stats.ts
@@ -9,16 +9,20 @@ export function initStats() {
 	console.log(`[Process] running with pid: ${process.pid}`);
 
 	setInterval(async () => {
-		const [cpuUsed, memory, network] = await Promise.all([osu.cpu.usage(), osu.mem.info(), osu.netstat.inOut()]);
+		const [cpuUsed, memory, network] = await Promise.all([
+			osu.cpu.usage(),
+			osu.mem.info(),
+			osu.netstat.inOut(),
+		]);
 		var networkUsage = "";
 		if (typeof network === "object") {
 			networkUsage = `| [Network]: in ${network.total.inputMb}mb | out ${network.total.outputMb}mb`;
 		}
 
 		console.log(
-			`[CPU] ${cpuUsed.toFixed(2)}% | [Memory] ${Math.round(
+			`[CPU] ${cpuUsed.toPrecision(3)}% | [Memory] ${Math.round(
 				process.memoryUsage().rss / 1024 / 1024
 			)}mb/${memory.totalMemMb.toFixed(0)}mb ${networkUsage}`
 		);
-	}, 1000 * 30);
+	}, 1000 * 5);
 }
diff --git a/cdn/src/routes/attachments.ts b/cdn/src/routes/attachments.ts
index 7c55998b..49ceb1b6 100644
--- a/cdn/src/routes/attachments.ts
+++ b/cdn/src/routes/attachments.ts
@@ -8,6 +8,13 @@ import imageSize from "image-size";
 
 const router = Router();
 
+const SANITIZED_CONTENT_TYPE = [
+	"text/html",
+	"text/mhtml",
+	"multipart/related",
+	"application/xhtml+xml",
+];
+
 router.post(
 	"/:channel_id",
 	multer.single("file"),
@@ -24,7 +31,8 @@ router.post(
 		const id = Snowflake.generate();
 		const path = `attachments/${channel_id}/${id}/${filename}`;
 
-		const endpoint = Config.get()?.cdn.endpoint || "http://localhost:3003";
+		const endpoint =
+			Config.get()?.cdn.endpointPublic || "http://localhost:3003";
 
 		await storage.set(path, buffer);
 		var width;
@@ -61,8 +69,13 @@ router.get(
 		);
 		if (!file) throw new HTTPError("File not found");
 		const type = await FileType.fromBuffer(file);
+		let content_type = type?.mime || "application/octet-stream";
+
+		if (SANITIZED_CONTENT_TYPE.includes(content_type)) {
+			content_type = "application/octet-stream";
+		}
 
-		res.set("Content-Type", type?.mime);
+		res.set("Content-Type", content_type);
 		res.set("Cache-Control", "public, max-age=31536000");
 
 		return res.send(file);
diff --git a/cdn/src/routes/avatars.ts b/cdn/src/routes/avatars.ts
index 3d745f90..93045925 100644
--- a/cdn/src/routes/avatars.ts
+++ b/cdn/src/routes/avatars.ts
@@ -44,7 +44,8 @@ router.post(
 		if (ANIMATED_MIME_TYPES.includes(type.mime)) hash = `a_${hash}`; // animated icons have a_ infront of the hash
 
 		const path = `avatars/${user_id}/${hash}`;
-		const endpoint = Config.get().cdn.endpoint || "http://localhost:3003";
+		const endpoint =
+			Config.get().cdn.endpointPublic || "http://localhost:3003";
 
 		await storage.set(path, buffer);
 
diff --git a/util/src/entities/Channel.ts b/util/src/entities/Channel.ts
index ece82bd0..1644b265 100644
--- a/util/src/entities/Channel.ts
+++ b/util/src/entities/Channel.ts
@@ -320,8 +320,8 @@ export class Channel extends BaseClass {
 }
 
 export interface ChannelPermissionOverwrite {
-	allow: bigint; // for bitfields we use bigints
-	deny: bigint; // for bitfields we use bigints
+	allow: string;
+	deny: string;
 	id: string;
 	type: ChannelPermissionOverwriteType;
 }
diff --git a/util/src/entities/Config.ts b/util/src/entities/Config.ts
index a460b437..6d9db470 100644
--- a/util/src/entities/Config.ts
+++ b/util/src/entities/Config.ts
@@ -1,12 +1,15 @@
-import { Column, Entity, JoinColumn, ManyToOne } from "typeorm";
-import { BaseClass } from "./BaseClass";
+import { Column, Entity, JoinColumn, ManyToOne, PrimaryColumn } from "typeorm";
+import { BaseClass, BaseClassWithoutId } from "./BaseClass";
 import crypto from "crypto";
 import { Snowflake } from "../util/Snowflake";
 
 @Entity("config")
-export class ConfigEntity extends BaseClass {
-	@Column({ type: "simple-json" })
-	value: ConfigValue;
+export class ConfigEntity extends BaseClassWithoutId {
+	@PrimaryColumn()
+	key: string;
+
+	@Column({ type: "simple-json", nullable: true })
+	value: number | boolean | null | string | undefined;
 }
 
 export interface RateLimitOptions {
@@ -37,14 +40,16 @@ export interface KafkaBroker {
 export interface ConfigValue {
 	gateway: {
 		endpointClient: string | null;
-		endpoint: string | null;
+		endpointPrivate: string | null;
+		endpointPublic: string | null;
 	};
 	cdn: {
 		endpointClient: string | null;
-		endpoint: string | null;
+		endpointPublic: string | null;
+		endpointPrivate: string | null;
 	};
 	general: {
-		instance_id: string;
+		instanceId: string;
 	};
 	permissions: {
 		user: {
@@ -149,14 +154,16 @@ export interface ConfigValue {
 export const DefaultConfigOptions: ConfigValue = {
 	gateway: {
 		endpointClient: null,
-		endpoint: null,
+		endpointPrivate: null,
+		endpointPublic: null,
 	},
 	cdn: {
 		endpointClient: null,
-		endpoint: null,
+		endpointPrivate: null,
+		endpointPublic: null,
 	},
 	general: {
-		instance_id: Snowflake.generate(),
+		instanceId: Snowflake.generate(),
 	},
 	permissions: {
 		user: {
diff --git a/util/src/util/Config.ts b/util/src/util/Config.ts
index c87d598e..6a9e0e5a 100644
--- a/util/src/util/Config.ts
+++ b/util/src/util/Config.ts
@@ -1,22 +1,66 @@
 import "missing-native-js-functions";
 import { ConfigValue, ConfigEntity, DefaultConfigOptions } from "../entities/Config";
 
-var config: ConfigEntity;
+var config: ConfigValue;
+var pairs: ConfigEntity[];
+
 // TODO: use events to inform about config updates
+// Config keys are separated with _
 
 export const Config = {
 	init: async function init() {
 		if (config) return config;
-		config = (await ConfigEntity.findOne({ id: "0" })) || new ConfigEntity({ id: "0" });
+		pairs = await ConfigEntity.find();
+		config = pairsToConfig(pairs);
 
-		return this.set((config.value || {}).merge(DefaultConfigOptions));
+		return this.set((config || {}).merge(DefaultConfigOptions));
 	},
 	get: function get() {
-		return config.value as ConfigValue;
+		return config;
 	},
 	set: function set(val: Partial<ConfigValue>) {
-		if (!config) return;
-		config.value = val.merge(config?.value || {});
-		return config.save();
+		if (!config || !val) return;
+		config = val.merge(config);
+		console.log(config);
+
+		return applyConfig(config);
 	},
 };
+
+function applyConfig(val: ConfigValue) {
+	async function apply(obj: any, key = ""): Promise<any> {
+		if (typeof obj === "object" && obj !== null)
+			return Promise.all(Object.keys(obj).map((k) => apply(obj[k], key ? `${key}_${k}` : k)));
+
+		let pair = pairs.find((x) => x.key === key);
+		if (!pair) pair = new ConfigEntity();
+
+		pair.key = key;
+		pair.value = obj;
+		return pair.save();
+	}
+
+	return apply(val);
+}
+
+function pairsToConfig(pairs: ConfigEntity[]) {
+	var value: any = {};
+
+	pairs.forEach((p) => {
+		const keys = p.key.split("_");
+		let prev = "";
+		let obj = value;
+		let i = 0;
+
+		for (const key of keys) {
+			if (Number(key) && !obj[prev]) obj = obj[prev] = [];
+			if (i++ === keys.length - 1) obj[key] = p.value;
+			else if (!obj[key]) obj[key] = {};
+
+			prev = key;
+			obj = obj[key];
+		}
+	});
+
+	return value as ConfigValue;
+}
diff --git a/util/src/util/Database.ts b/util/src/util/Database.ts
index 0c3d7cef..ab7c70c5 100644
--- a/util/src/util/Database.ts
+++ b/util/src/util/Database.ts
@@ -22,7 +22,7 @@ export function initDatabase() {
 		//
 		entities: Object.values(Models).filter((x) => x.constructor.name !== "Object"),
 		synchronize: true,
-		logging: true,
+		logging: false,
 		cache: {
 			duration: 1000 * 3, // cache all find queries for 3 seconds
 		},
diff --git a/util/src/util/Permissions.ts b/util/src/util/Permissions.ts
index 44852f1e..f0012c96 100644
--- a/util/src/util/Permissions.ts
+++ b/util/src/util/Permissions.ts
@@ -3,6 +3,7 @@
 import { Channel, ChannelPermissionOverwrite, Guild, Member, Role } from "../entities";
 import { BitField } from "./BitField";
 import "missing-native-js-functions";
+import { BitFieldResolvable } from ".";
 // TODO: check role hierarchy permission
 
 var HTTPError: any;
@@ -17,11 +18,19 @@ export type PermissionResolvable = bigint | number | Permissions | PermissionRes
 
 type PermissionString = keyof typeof Permissions.FLAGS;
 
-const CUSTOM_PERMISSION_OFFSET = BigInt(1) << BigInt(48); // 16 free custom permission bits, and 11 for discord to add new ones
+// BigInt doesn't have a bit limit (https://stackoverflow.com/questions/53335545/whats-the-biggest-bigint-value-in-js-as-per-spec)
+const CUSTOM_PERMISSION_OFFSET = BigInt(1) << BigInt(64); // 27 permission bits left for discord to add new ones
 
 export class Permissions extends BitField {
 	cache: PermissionCache = {};
 
+	constructor(bits: BitFieldResolvable = 0) {
+		super(bits);
+		if (this.bitfield & Permissions.FLAGS.ADMINISTRATOR) {
+			this.bitfield = ALL_PERMISSIONS;
+		}
+	}
+
 	static FLAGS = {
 		CREATE_INSTANT_INVITE: BigInt(1) << BigInt(0),
 		KICK_MEMBERS: BigInt(1) << BigInt(1),
@@ -92,7 +101,7 @@ export class Permissions extends BitField {
 	}
 
 	overwriteChannel(overwrites: ChannelPermissionOverwrite[]) {
-		if (!overwrites) return this
+		if (!overwrites) return this;
 		if (!this.cache) throw new Error("permission chache not available");
 		overwrites = overwrites.filter((x) => {
 			if (x.type === 0 && this.cache.roles?.some((r) => r.id === x.id)) return true;
@@ -175,6 +184,8 @@ export class Permissions extends BitField {
 	}
 }
 
+const ALL_PERMISSIONS = Object.values(Permissions.FLAGS).reduce((total, val) => total | val, BigInt(0));
+
 export type PermissionCache = {
 	channel?: Channel | undefined;
 	member?: Member | undefined;
diff --git a/util/src/util/cdn.ts b/util/src/util/cdn.ts
index 754d6244..2de23f5d 100644
--- a/util/src/util/cdn.ts
+++ b/util/src/util/cdn.ts
@@ -11,7 +11,7 @@ export async function uploadFile(path: string, file: Express.Multer.File) {
 		filename: file.originalname,
 	});
 
-	const response = await fetch(`${Config.get().cdn.endpoint || "http://localhost:3003"}${path}`, {
+	const response = await fetch(`${Config.get().cdn.endpointPrivate || "http://localhost:3003"}${path}`, {
 		headers: {
 			signature: Config.get().security.requestSignature,
 			...form.getHeaders(),
@@ -41,7 +41,7 @@ export async function handleFile(path: string, body?: string): Promise<string |
 }
 
 export async function deleteFile(path: string) {
-	const response = await fetch(`${Config.get().cdn.endpoint || "http://localhost:3003"}${path}`, {
+	const response = await fetch(`${Config.get().cdn.endpointPrivate || "http://localhost:3003"}${path}`, {
 		headers: {
 			signature: Config.get().security.requestSignature,
 		},