diff --git a/assets/client_test/verify.html b/assets/client_test/verify.html
new file mode 100644
index 00000000..0de6fc6b
--- /dev/null
+++ b/assets/client_test/verify.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html class="theme-dark" data-theme="dark">
+
+<head>
+ <meta charset="utf-8" />
+ <meta content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no" name="viewport" />
+
+ <link rel="stylesheet" href="/assets/40532.bb53efb11e3ed4046082.css" integrity="" />
+ <link rel="icon" href="/assets/847541504914fd33810e70a0ea73177e.ico" />
+ <title>Fosscord Test Client</title>
+ <meta charset="utf-8" data-react-helmet="true" />
+</head>
+
+<body>
+ <div id="app-mount"></div>
+ <script>
+ window.__OVERLAY__ = /overlay/.test(location.pathname);
+ window.__BILLING_STANDALONE__ = /^\/billing/.test(location.pathname);
+ window.GLOBAL_ENV = {
+ API_ENDPOINT: "/api",
+ API_VERSION: 9,
+ GATEWAY_ENDPOINT: `${location.protocol === "https:" ? "wss://" : "ws://"}${location.host}`,
+ WEBAPP_ENDPOINT: "",
+ CDN_HOST: `${location.hostname}`,
+ ASSET_ENDPOINT: "",
+ MEDIA_PROXY_ENDPOINT: "https://media.discordapp.net",
+ WIDGET_ENDPOINT: `//${location.host}/widget`,
+ INVITE_HOST: `${location.hostname}/invite`,
+ GUILD_TEMPLATE_HOST: "${location.host}/template",
+ GIFT_CODE_HOST: "${location.hostname}/gift",
+ RELEASE_CHANNEL: "canary",
+ MARKETING_ENDPOINT: "//discord.com",
+ BRAINTREE_KEY: "production_5st77rrc_49pp2rp4phym7387",
+ STRIPE_KEY: "pk_live_CUQtlpQUF0vufWpnpUmQvcdi",
+ NETWORKING_ENDPOINT: "//router.discordapp.net",
+ RTC_LATENCY_ENDPOINT: "//${location.hostname}/rtc",
+ ACTIVITY_APPLICATION_HOST: "discordsays.com",
+ PROJECT_ENV: "production",
+ REMOTE_AUTH_ENDPOINT: "//localhost:3020",
+ SENTRY_TAGS: { buildId: "d5b97e42230075cb9634c419c0cf4d2f8f9ada53", buildType: "normal" },
+ MIGRATION_SOURCE_ORIGIN: "https://${location.hostname}",
+ MIGRATION_DESTINATION_ORIGIN: "https://${location.hostname}",
+ HTML_TIMESTAMP: Date.now(),
+ ALGOLIA_KEY: "aca0d7082e4e63af5ba5917d5e96bed0"
+ };
+ window.localStorage.setItem("gatewayURL", window.GLOBAL_ENV.GATEWAY_ENDPOINT);
+ window.localStorage.setItem(
+ "DeveloperOptionsStore",
+ `{"trace":false,"canary":true,"logGatewayEvents":true,"logOverlayEvents":true,"logAnalyticsEvents":true,"sourceMapsEnabled":false,"axeEnabled":false}`
+ );
+ </script>
+ <script src="/assets/33329b5e3fc4ba0db663.js"></script>
+ <script src="/assets/c31f5155b71da969ec04.js"></script>
+ <script src="/assets/bba695569f6557775f9c.js"></script>
+ <script src="/assets/867449841939756f0ab0.js"></script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/assets/email_templates/new_login_location.html b/assets/email_templates/new_login_location.html
new file mode 100644
index 00000000..ff262e99
--- /dev/null
+++ b/assets/email_templates/new_login_location.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta http-equiv="Content-Type" content="text/html charset=UTF-8" />
+ <title>Verify {instanceName} Login from New Location</title>
+
+ <style>
+ * {
+ font-size: 16px;
+ line-height: 24px;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+ p {
+ color: white;
+ }
+ .ExternalClass {
+ width: 100%;
+ }
+ </style>
+ </head>
+ <body>
+ <div style="background-color: #202225;">
+ <img
+ src="https://raw.githubusercontent.com/fosscord/fosscord/master/assets-rebrand/svg/Fosscord-Wordmark-Orange.svg"
+ alt="Branding"
+ style="
+ width: 100%;
+ max-width: 200px;
+ margin: 0 auto;
+ display: block;
+ padding: 20px;
+ "
+ />
+ <div
+ style="
+ width: 100%;
+ max-width: 500px;
+ margin: 0 auto;
+ padding: 40px 50px;
+ background-color: #32353b;
+ border-radius: 5px;
+ "
+ >
+ <p
+ style="
+ font-weight: 600;
+ font-size: 20px;
+ letter-spacing: 0.27px;
+ line-height: 24px;
+ "
+ >
+ Hey {userUsername},
+ </p>
+ <p>
+ It looks like someone tried to log into your {instanceName}
+ account from a new location. If this is you, follow the link
+ below to authorize logging in from this location on your
+ account. If this isn't you, we suggest changing your
+ password as soon as possible.
+ </p>
+ <p>
+ <strong>IP Address:</strong> {ipAddress}
+ <br />
+ <strong>Location:</strong> {locationCity}, {locationRegion},
+ {locationCountryName}
+ </p>
+ <div>
+ <div
+ style="
+ text-align: center;
+ justify-content: center;
+ padding-bottom: 10px;
+ "
+ >
+ <a
+ href="{verifyUrl}"
+ target="_blank"
+ style="
+ font-size: 15px;
+ border: none;
+ border-radius: 3px;
+ text-decoration: none;
+ color: white;
+ cursor: pointer;
+ padding: 15px 19px;
+ background-color: #ff5f00;
+ border-radius: 5px;
+ "
+ >Verify Login</a
+ >
+ </div>
+ <hr />
+ <div
+ style="
+ text-align: center;
+ justify-content: center;
+ padding-bottom: 10px;
+ "
+ >
+ <p>
+ Alternatively, you can directly paste this link into
+ your browser:
+ </p>
+ <a href="{verifyUrl}" target="_blank" style="word-wrap: break-word;">{verifyUrl}</a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/assets/email_templates/password_changed.html b/assets/email_templates/password_changed.html
new file mode 100644
index 00000000..399108a2
--- /dev/null
+++ b/assets/email_templates/password_changed.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta http-equiv="Content-Type" content="text/html charset=UTF-8" />
+ <title>{instanceName} Password Changed</title>
+
+ <style>
+ * {
+ font-size: 16px;
+ line-height: 24px;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+ p {
+ color: white;
+ }
+ .ExternalClass {
+ width: 100%;
+ }
+ </style>
+ </head>
+ <body>
+ <div style="background-color: #202225;">
+ <img
+ src="https://raw.githubusercontent.com/fosscord/fosscord/master/assets-rebrand/svg/Fosscord-Wordmark-Orange.svg"
+ alt="Branding"
+ style="
+ width: 100%;
+ max-width: 200px;
+ margin: 0 auto;
+ display: block;
+ padding: 20px;
+ "
+ />
+ <div
+ style="
+ width: 100%;
+ max-width: 500px;
+ margin: 0 auto;
+ padding: 40px 50px;
+ background-color: #32353b;
+ border-radius: 5px;
+ "
+ >
+ <p
+ style="
+ font-weight: 600;
+ font-size: 20px;
+ letter-spacing: 0.27px;
+ line-height: 24px;
+ "
+ >
+ Hey {userUsername},
+ </p>
+ <p>Your {instanceName} password has been changed.</p>
+ <p>
+ If this wasn't done by you, please immediately reset the
+ password to your {instanceName} account.
+ </p>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/assets/email_templates/password_reset_request.html b/assets/email_templates/password_reset_request.html
new file mode 100644
index 00000000..b770e7ba
--- /dev/null
+++ b/assets/email_templates/password_reset_request.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta http-equiv="Content-Type" content="text/html charset=UTF-8" />
+ <title>Password Reset Request for {instanceName}</title>
+
+ <style>
+ * {
+ font-size: 16px;
+ line-height: 24px;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+ p {
+ color: white;
+ }
+ .ExternalClass {
+ width: 100%;
+ }
+ </style>
+ </head>
+ <body>
+ <div style="background-color: #202225;">
+ <img
+ src="https://raw.githubusercontent.com/fosscord/fosscord/master/assets-rebrand/svg/Fosscord-Wordmark-Orange.svg"
+ alt="Branding"
+ style="
+ width: 100%;
+ max-width: 200px;
+ margin: 0 auto;
+ display: block;
+ padding: 20px;
+ "
+ />
+ <div
+ style="
+ width: 100%;
+ max-width: 500px;
+ margin: 0 auto;
+ padding: 40px 50px;
+ background-color: #32353b;
+ border-radius: 5px;
+ "
+ >
+ <p
+ style="
+ font-weight: 600;
+ font-size: 20px;
+ letter-spacing: 0.27px;
+ line-height: 24px;
+ "
+ >
+ Hey {userUsername},
+ </p>
+ <p>
+ Your {instanceName} password can be reset by clicking the
+ button below. If you did not request a new password, please
+ ignore this email.
+ </p>
+ <div>
+ <div
+ style="
+ text-align: center;
+ justify-content: center;
+ padding-bottom: 10px;
+ "
+ >
+ <a
+ href="{passwordResetUrl}"
+ target="_blank"
+ style="
+ font-size: 15px;
+ border: none;
+ border-radius: 3px;
+ text-decoration: none;
+ color: white;
+ cursor: pointer;
+ padding: 15px 19px;
+ background-color: #ff5f00;
+ border-radius: 5px;
+ "
+ >Reset Password</a
+ >
+ </div>
+ <hr />
+ <div style="text-align: center">
+ <p>
+ Alternatively, you can directly paste this link into
+ your browser:
+ </p>
+ <a href="{passwordResetUrl}" target="_blank" style="word-wrap: break-word;"
+ >{passwordResetUrl}</a
+ >
+ </div>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/assets/email_templates/phone_removed.html b/assets/email_templates/phone_removed.html
new file mode 100644
index 00000000..65807e29
--- /dev/null
+++ b/assets/email_templates/phone_removed.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta http-equiv="Content-Type" content="text/html charset=UTF-8" />
+ <title>Phone Removed From {instanceName} Account</title>
+
+ <style>
+ * {
+ font-size: 16px;
+ line-height: 24px;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+ p {
+ color: white;
+ }
+ .ExternalClass {
+ width: 100%;
+ }
+ </style>
+ </head>
+ <body>
+ <div style="background-color: #202225;">
+ <img
+ src="https://raw.githubusercontent.com/fosscord/fosscord/master/assets-rebrand/svg/Fosscord-Wordmark-Orange.svg"
+ alt="Branding"
+ style="
+ width: 100%;
+ max-width: 200px;
+ margin: 0 auto;
+ display: block;
+ padding: 20px;
+ "
+ />
+ <div
+ style="
+ width: 100%;
+ max-width: 500px;
+ margin: 0 auto;
+ padding: 40px 50px;
+ background-color: #32353b;
+ border-radius: 5px;
+ "
+ >
+ <p
+ style="
+ font-weight: 600;
+ font-size: 20px;
+ letter-spacing: 0.27px;
+ line-height: 24px;
+ "
+ >
+ Hey {userUsername},
+ </p>
+ <p>
+ Your phone number ********{phoneNumber} was recently removed
+ from this account and added to a different {instanceName}
+ account.
+ </p>
+ <p>
+ Please note that your phone number can only be linked to one
+ {instanceName} account at a time.
+ </p>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/assets/email_templates/verify_email.html b/assets/email_templates/verify_email.html
new file mode 100644
index 00000000..481a46d4
--- /dev/null
+++ b/assets/email_templates/verify_email.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <meta http-equiv="Content-Type" content="text/html charset=UTF-8" />
+ <title>Verify Email Address for {instanceName}</title>
+
+ <style>
+ * {
+ font-size: 16px;
+ line-height: 24px;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+ p {
+ color: white;
+ }
+ .ExternalClass {
+ width: 100%;
+ }
+ </style>
+ </head>
+ <body>
+ <div style="background-color: #202225;">
+ <img
+ src="https://raw.githubusercontent.com/fosscord/fosscord/master/assets-rebrand/svg/Fosscord-Wordmark-Orange.svg"
+ alt="Branding"
+ style="
+ width: 100%;
+ max-width: 200px;
+ margin: 0 auto;
+ display: block;
+ padding: 20px;
+ "
+ />
+ <div
+ style="
+ width: 100%;
+ max-width: 500px;
+ margin: 0 auto;
+ padding: 40px 50px;
+ background-color: #32353b;
+ border-radius: 5px;
+ "
+ >
+ <p
+ style="
+ font-weight: 600;
+ font-size: 20px;
+ letter-spacing: 0.27px;
+ line-height: 24px;
+ "
+ >
+ Hey {userUsername},
+ </p>
+ <p>
+ Thanks for registering for an account on {instanceName}!
+ Before we get started, we just need to confirm that this is
+ you. Click below to verify your email address:
+ </p>
+ <div>
+ <div
+ style="
+ text-align: center;
+ justify-content: center;
+ padding-bottom: 10px;
+ "
+ >
+ <a
+ class="btn"
+ href="{emailVerificationUrl}"
+ target="_blank"
+ style="
+ font-size: 15px;
+ border: none;
+ border-radius: 3px;
+ text-decoration: none;
+ color: white;
+ cursor: pointer;
+ padding: 15px 19px;
+ background-color: #ff5f00;
+ border-radius: 5px;
+ "
+ >Verify Email</a
+ >
+ </div>
+ <hr />
+ <div style="text-align: center">
+ <p>
+ Alternatively, you can directly paste this link into
+ your browser:
+ </p>
+ <a href="{emailVerificationUrl}" target="_blank" style="word-wrap: break-word;"
+ >{emailVerificationUrl}</a
+ >
+ </div>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/assets/locales/en/auth.json b/assets/locales/en/auth.json
index 2178548e..0521a902 100644
--- a/assets/locales/en/auth.json
+++ b/assets/locales/en/auth.json
@@ -16,5 +16,9 @@
"USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another",
"GUESTS_DISABLED": "Guest users are disabled",
"TOO_MANY_REGISTRATIONS": "Too many registrations, please try again later"
+ },
+ "password_reset": {
+ "EMAIL_DOES_NOT_EXIST": "Email does not exist.",
+ "INVALID_TOKEN": "Invalid token."
}
}
diff --git a/assets/schemas.json b/assets/schemas.json
index 1c221cab..1fdfa361 100644
--- a/assets/schemas.json
+++ b/assets/schemas.json
@@ -36,6 +36,34 @@
],
"$schema": "http://json-schema.org/draft-07/schema#"
},
+ "SMTPConnection.CustomAuthenticationResponse": {
+ "type": "object",
+ "properties": {
+ "command": {
+ "type": "string"
+ },
+ "response": {
+ "type": "string"
+ },
+ "status": {
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ },
+ "code": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "command",
+ "response",
+ "status",
+ "text"
+ ],
+ "$schema": "http://json-schema.org/draft-07/schema#"
+ },
"TransportMakeRequestResponse": {
"type": "object",
"properties": {
@@ -4556,6 +4584,599 @@
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
+ "ForgotPasswordSchema": {
+ "type": "object",
+ "properties": {
+ "login": {
+ "type": "string"
+ },
+ "captcha_key": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "login"
+ ],
+ "definitions": {
+ "ChannelPermissionOverwriteType": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "number"
+ },
+ "ChannelModifySchema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ 0,
+ 1,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 2,
+ 255,
+ 3,
+ 33,
+ 34,
+ 35,
+ 4,
+ 5,
+ 6,
+ 64,
+ 7,
+ 8,
+ 9
+ ],
+ "type": "number"
+ },
+ "topic": {
+ "type": "string"
+ },
+ "icon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "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": "#/definitions/ChannelPermissionOverwriteType"
+ },
+ "allow": {
+ "type": "string"
+ },
+ "deny": {
+ "type": "string"
+ }
+ },
+ "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"
+ },
+ "default_reaction_emoji": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flags": {
+ "type": "integer"
+ },
+ "default_thread_rate_limit_per_user": {
+ "type": "integer"
+ },
+ "video_quality_mode": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ActivitySchema": {
+ "type": "object",
+ "properties": {
+ "afk": {
+ "type": "boolean"
+ },
+ "status": {
+ "$ref": "#/definitions/Status"
+ },
+ "activities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Activity"
+ }
+ },
+ "since": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "status"
+ ]
+ },
+ "Status": {
+ "enum": [
+ "dnd",
+ "idle",
+ "invisible",
+ "offline",
+ "online"
+ ],
+ "type": "string"
+ },
+ "Activity": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "$ref": "#/definitions/ActivityType"
+ },
+ "url": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "integer"
+ },
+ "timestamps": {
+ "type": "object",
+ "properties": {
+ "start": {
+ "type": "integer"
+ },
+ "end": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "end",
+ "start"
+ ]
+ },
+ "application_id": {
+ "type": "string"
+ },
+ "details": {
+ "type": "string"
+ },
+ "state": {
+ "type": "string"
+ },
+ "emoji": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "animated": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "animated",
+ "name"
+ ]
+ },
+ "party": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "size": {
+ "type": "array",
+ "items": [
+ {
+ "type": "integer"
+ }
+ ],
+ "minItems": 1,
+ "maxItems": 1
+ }
+ },
+ "additionalProperties": false
+ },
+ "assets": {
+ "type": "object",
+ "properties": {
+ "large_image": {
+ "type": "string"
+ },
+ "large_text": {
+ "type": "string"
+ },
+ "small_image": {
+ "type": "string"
+ },
+ "small_text": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "secrets": {
+ "type": "object",
+ "properties": {
+ "join": {
+ "type": "string"
+ },
+ "spectate": {
+ "type": "string"
+ },
+ "match": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "instance": {
+ "type": "boolean"
+ },
+ "flags": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "sync_id": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "properties": {
+ "context_uri": {
+ "type": "string"
+ },
+ "album_id": {
+ "type": "string"
+ },
+ "artist_ids": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "album_id",
+ "artist_ids"
+ ]
+ },
+ "session_id": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "flags",
+ "name",
+ "session_id",
+ "type"
+ ]
+ },
+ "ActivityType": {
+ "enum": [
+ 0,
+ 1,
+ 2,
+ 4,
+ 5
+ ],
+ "type": "number"
+ },
+ "Record<string,[number,number][]>": {
+ "type": "object",
+ "additionalProperties": false
+ },
+ "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": "#/definitions/EmbedImage"
+ },
+ "thumbnail": {
+ "$ref": "#/definitions/EmbedImage"
+ },
+ "video": {
+ "$ref": "#/definitions/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"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "EmbedImage": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string"
+ },
+ "proxy_url": {
+ "type": "string"
+ },
+ "height": {
+ "type": "integer"
+ },
+ "width": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Partial<ChannelOverride>": {
+ "type": "object",
+ "properties": {
+ "message_notifications": {
+ "type": "integer"
+ },
+ "mute_config": {
+ "$ref": "#/definitions/MuteConfig"
+ },
+ "muted": {
+ "type": "boolean"
+ },
+ "channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "additionalProperties": false
+ },
+ "MuteConfig": {
+ "type": "object",
+ "properties": {
+ "end_time": {
+ "type": "integer"
+ },
+ "selected_time_window": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "end_time",
+ "selected_time_window"
+ ]
+ },
+ "CustomStatus": {
+ "type": "object",
+ "properties": {
+ "emoji_id": {
+ "type": "string"
+ },
+ "emoji_name": {
+ "type": "string"
+ },
+ "expires_at": {
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "FriendSourceFlags": {
+ "type": "object",
+ "properties": {
+ "all": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "all"
+ ]
+ },
+ "GuildFolder": {
+ "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"
+ ]
+ },
+ "Partial<GenerateWebAuthnCredentialsSchema>": {
+ "type": "object",
+ "properties": {
+ "password": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Partial<CreateWebAuthnCredentialSchema>": {
+ "type": "object",
+ "properties": {
+ "credential": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "ticket": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "$schema": "http://json-schema.org/draft-07/schema#"
+ },
"GuildCreateSchema": {
"type": "object",
"properties": {
@@ -12127,6 +12748,704 @@
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
+ "MessageEditSchema": {
+ "type": "object",
+ "properties": {
+ "file": {
+ "type": "object",
+ "properties": {
+ "filename": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "filename"
+ ]
+ },
+ "embed": {
+ "$ref": "#/definitions/Embed"
+ },
+ "flags": {
+ "type": "string"
+ },
+ "content": {
+ "type": "string"
+ },
+ "nonce": {
+ "type": "string"
+ },
+ "channel_id": {
+ "type": "string"
+ },
+ "tts": {
+ "type": "boolean"
+ },
+ "embeds": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/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"
+ },
+ "attachments": {
+ "description": "TODO: we should create an interface for attachments\nTODO: OpenWAAO<-->attachment-style metadata conversion",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "filename": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "filename",
+ "id"
+ ]
+ }
+ },
+ "sticker_ids": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "definitions": {
+ "ChannelPermissionOverwriteType": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "number"
+ },
+ "ChannelModifySchema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ 0,
+ 1,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 2,
+ 255,
+ 3,
+ 33,
+ 34,
+ 35,
+ 4,
+ 5,
+ 6,
+ 64,
+ 7,
+ 8,
+ 9
+ ],
+ "type": "number"
+ },
+ "topic": {
+ "type": "string"
+ },
+ "icon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "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": "#/definitions/ChannelPermissionOverwriteType"
+ },
+ "allow": {
+ "type": "string"
+ },
+ "deny": {
+ "type": "string"
+ }
+ },
+ "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"
+ },
+ "default_reaction_emoji": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flags": {
+ "type": "integer"
+ },
+ "default_thread_rate_limit_per_user": {
+ "type": "integer"
+ },
+ "video_quality_mode": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ActivitySchema": {
+ "type": "object",
+ "properties": {
+ "afk": {
+ "type": "boolean"
+ },
+ "status": {
+ "$ref": "#/definitions/Status"
+ },
+ "activities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Activity"
+ }
+ },
+ "since": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "status"
+ ]
+ },
+ "Status": {
+ "enum": [
+ "dnd",
+ "idle",
+ "invisible",
+ "offline",
+ "online"
+ ],
+ "type": "string"
+ },
+ "Activity": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "$ref": "#/definitions/ActivityType"
+ },
+ "url": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "integer"
+ },
+ "timestamps": {
+ "type": "object",
+ "properties": {
+ "start": {
+ "type": "integer"
+ },
+ "end": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "end",
+ "start"
+ ]
+ },
+ "application_id": {
+ "type": "string"
+ },
+ "details": {
+ "type": "string"
+ },
+ "state": {
+ "type": "string"
+ },
+ "emoji": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "animated": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "animated",
+ "name"
+ ]
+ },
+ "party": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "size": {
+ "type": "array",
+ "items": [
+ {
+ "type": "integer"
+ }
+ ],
+ "minItems": 1,
+ "maxItems": 1
+ }
+ },
+ "additionalProperties": false
+ },
+ "assets": {
+ "type": "object",
+ "properties": {
+ "large_image": {
+ "type": "string"
+ },
+ "large_text": {
+ "type": "string"
+ },
+ "small_image": {
+ "type": "string"
+ },
+ "small_text": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "secrets": {
+ "type": "object",
+ "properties": {
+ "join": {
+ "type": "string"
+ },
+ "spectate": {
+ "type": "string"
+ },
+ "match": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "instance": {
+ "type": "boolean"
+ },
+ "flags": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "sync_id": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "properties": {
+ "context_uri": {
+ "type": "string"
+ },
+ "album_id": {
+ "type": "string"
+ },
+ "artist_ids": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "album_id",
+ "artist_ids"
+ ]
+ },
+ "session_id": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "flags",
+ "name",
+ "session_id",
+ "type"
+ ]
+ },
+ "ActivityType": {
+ "enum": [
+ 0,
+ 1,
+ 2,
+ 4,
+ 5
+ ],
+ "type": "number"
+ },
+ "Record<string,[number,number][]>": {
+ "type": "object",
+ "additionalProperties": false
+ },
+ "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": "#/definitions/EmbedImage"
+ },
+ "thumbnail": {
+ "$ref": "#/definitions/EmbedImage"
+ },
+ "video": {
+ "$ref": "#/definitions/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"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "EmbedImage": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string"
+ },
+ "proxy_url": {
+ "type": "string"
+ },
+ "height": {
+ "type": "integer"
+ },
+ "width": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Partial<ChannelOverride>": {
+ "type": "object",
+ "properties": {
+ "message_notifications": {
+ "type": "integer"
+ },
+ "mute_config": {
+ "$ref": "#/definitions/MuteConfig"
+ },
+ "muted": {
+ "type": "boolean"
+ },
+ "channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "additionalProperties": false
+ },
+ "MuteConfig": {
+ "type": "object",
+ "properties": {
+ "end_time": {
+ "type": "integer"
+ },
+ "selected_time_window": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "end_time",
+ "selected_time_window"
+ ]
+ },
+ "CustomStatus": {
+ "type": "object",
+ "properties": {
+ "emoji_id": {
+ "type": "string"
+ },
+ "emoji_name": {
+ "type": "string"
+ },
+ "expires_at": {
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "FriendSourceFlags": {
+ "type": "object",
+ "properties": {
+ "all": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "all"
+ ]
+ },
+ "GuildFolder": {
+ "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"
+ ]
+ },
+ "Partial<GenerateWebAuthnCredentialsSchema>": {
+ "type": "object",
+ "properties": {
+ "password": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Partial<CreateWebAuthnCredentialSchema>": {
+ "type": "object",
+ "properties": {
+ "credential": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "ticket": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "$schema": "http://json-schema.org/draft-07/schema#"
+ },
"MfaCodesSchema": {
"type": "object",
"properties": {
@@ -13321,6 +14640,600 @@
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
+ "PasswordResetSchema": {
+ "type": "object",
+ "properties": {
+ "password": {
+ "type": "string"
+ },
+ "token": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "password",
+ "token"
+ ],
+ "definitions": {
+ "ChannelPermissionOverwriteType": {
+ "enum": [
+ 0,
+ 1,
+ 2
+ ],
+ "type": "number"
+ },
+ "ChannelModifySchema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "maxLength": 100,
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ 0,
+ 1,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 2,
+ 255,
+ 3,
+ 33,
+ 34,
+ 35,
+ 4,
+ 5,
+ 6,
+ 64,
+ 7,
+ 8,
+ 9
+ ],
+ "type": "number"
+ },
+ "topic": {
+ "type": "string"
+ },
+ "icon": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "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": "#/definitions/ChannelPermissionOverwriteType"
+ },
+ "allow": {
+ "type": "string"
+ },
+ "deny": {
+ "type": "string"
+ }
+ },
+ "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"
+ },
+ "default_reaction_emoji": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "flags": {
+ "type": "integer"
+ },
+ "default_thread_rate_limit_per_user": {
+ "type": "integer"
+ },
+ "video_quality_mode": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ActivitySchema": {
+ "type": "object",
+ "properties": {
+ "afk": {
+ "type": "boolean"
+ },
+ "status": {
+ "$ref": "#/definitions/Status"
+ },
+ "activities": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Activity"
+ }
+ },
+ "since": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "status"
+ ]
+ },
+ "Status": {
+ "enum": [
+ "dnd",
+ "idle",
+ "invisible",
+ "offline",
+ "online"
+ ],
+ "type": "string"
+ },
+ "Activity": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "$ref": "#/definitions/ActivityType"
+ },
+ "url": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "integer"
+ },
+ "timestamps": {
+ "type": "object",
+ "properties": {
+ "start": {
+ "type": "integer"
+ },
+ "end": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "end",
+ "start"
+ ]
+ },
+ "application_id": {
+ "type": "string"
+ },
+ "details": {
+ "type": "string"
+ },
+ "state": {
+ "type": "string"
+ },
+ "emoji": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "animated": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "animated",
+ "name"
+ ]
+ },
+ "party": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "size": {
+ "type": "array",
+ "items": [
+ {
+ "type": "integer"
+ }
+ ],
+ "minItems": 1,
+ "maxItems": 1
+ }
+ },
+ "additionalProperties": false
+ },
+ "assets": {
+ "type": "object",
+ "properties": {
+ "large_image": {
+ "type": "string"
+ },
+ "large_text": {
+ "type": "string"
+ },
+ "small_image": {
+ "type": "string"
+ },
+ "small_text": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "secrets": {
+ "type": "object",
+ "properties": {
+ "join": {
+ "type": "string"
+ },
+ "spectate": {
+ "type": "string"
+ },
+ "match": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "instance": {
+ "type": "boolean"
+ },
+ "flags": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "sync_id": {
+ "type": "string"
+ },
+ "metadata": {
+ "type": "object",
+ "properties": {
+ "context_uri": {
+ "type": "string"
+ },
+ "album_id": {
+ "type": "string"
+ },
+ "artist_ids": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "album_id",
+ "artist_ids"
+ ]
+ },
+ "session_id": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "flags",
+ "name",
+ "session_id",
+ "type"
+ ]
+ },
+ "ActivityType": {
+ "enum": [
+ 0,
+ 1,
+ 2,
+ 4,
+ 5
+ ],
+ "type": "number"
+ },
+ "Record<string,[number,number][]>": {
+ "type": "object",
+ "additionalProperties": false
+ },
+ "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": "#/definitions/EmbedImage"
+ },
+ "thumbnail": {
+ "$ref": "#/definitions/EmbedImage"
+ },
+ "video": {
+ "$ref": "#/definitions/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"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
+ },
+ "EmbedImage": {
+ "type": "object",
+ "properties": {
+ "url": {
+ "type": "string"
+ },
+ "proxy_url": {
+ "type": "string"
+ },
+ "height": {
+ "type": "integer"
+ },
+ "width": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Partial<ChannelOverride>": {
+ "type": "object",
+ "properties": {
+ "message_notifications": {
+ "type": "integer"
+ },
+ "mute_config": {
+ "$ref": "#/definitions/MuteConfig"
+ },
+ "muted": {
+ "type": "boolean"
+ },
+ "channel_id": {
+ "type": [
+ "null",
+ "string"
+ ]
+ }
+ },
+ "additionalProperties": false
+ },
+ "MuteConfig": {
+ "type": "object",
+ "properties": {
+ "end_time": {
+ "type": "integer"
+ },
+ "selected_time_window": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "end_time",
+ "selected_time_window"
+ ]
+ },
+ "CustomStatus": {
+ "type": "object",
+ "properties": {
+ "emoji_id": {
+ "type": "string"
+ },
+ "emoji_name": {
+ "type": "string"
+ },
+ "expires_at": {
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "FriendSourceFlags": {
+ "type": "object",
+ "properties": {
+ "all": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "all"
+ ]
+ },
+ "GuildFolder": {
+ "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"
+ ]
+ },
+ "Partial<GenerateWebAuthnCredentialsSchema>": {
+ "type": "object",
+ "properties": {
+ "password": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Partial<CreateWebAuthnCredentialSchema>": {
+ "type": "object",
+ "properties": {
+ "credential": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "ticket": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "$schema": "http://json-schema.org/draft-07/schema#"
+ },
"PurgeSchema": {
"type": "object",
"properties": {
@@ -29808,125 +31721,8 @@
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
- "MessageEditSchema": {
- "type": "object",
- "properties": {
- "file": {
- "type": "object",
- "properties": {
- "filename": {
- "type": "string"
- }
- },
- "additionalProperties": false,
- "required": [
- "filename"
- ]
- },
- "embed": {
- "$ref": "#/definitions/Embed"
- },
- "flags": {
- "type": "string"
- },
- "content": {
- "type": "string"
- },
- "nonce": {
- "type": "string"
- },
- "channel_id": {
- "type": "string"
- },
- "tts": {
- "type": "boolean"
- },
- "embeds": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/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"
- },
- "attachments": {
- "description": "TODO: we should create an interface for attachments\nTODO: OpenWAAO<-->attachment-style metadata conversion",
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "filename": {
- "type": "string"
- }
- },
- "additionalProperties": false,
- "required": [
- "filename",
- "id"
- ]
- }
- },
- "sticker_ids": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "additionalProperties": false,
+ "ActivitySchema": {
+ "$ref": "#/definitions/ActivitySchema",
"definitions": {
"ChannelPermissionOverwriteType": {
"enum": [
@@ -30506,8 +32302,20 @@
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
- "ActivitySchema": {
- "$ref": "#/definitions/ActivitySchema",
+ "BulkDeleteSchema": {
+ "type": "object",
+ "properties": {
+ "messages": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "messages"
+ ],
"definitions": {
"ChannelPermissionOverwriteType": {
"enum": [
@@ -31087,19 +32895,16 @@
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
- "BulkDeleteSchema": {
+ "MemberNickChangeSchema": {
"type": "object",
"properties": {
- "messages": {
- "type": "array",
- "items": {
- "type": "string"
- }
+ "nick": {
+ "type": "string"
}
},
"additionalProperties": false,
"required": [
- "messages"
+ "nick"
],
"definitions": {
"ChannelPermissionOverwriteType": {
@@ -31680,16 +33485,16 @@
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
- "MemberNickChangeSchema": {
+ "PruneSchema": {
"type": "object",
"properties": {
- "nick": {
- "type": "string"
+ "days": {
+ "type": "integer"
}
},
"additionalProperties": false,
"required": [
- "nick"
+ "days"
],
"definitions": {
"ChannelPermissionOverwriteType": {
@@ -32270,16 +34075,22 @@
},
"$schema": "http://json-schema.org/draft-07/schema#"
},
- "PruneSchema": {
+ "VerifyEmailSchema": {
"type": "object",
"properties": {
- "days": {
- "type": "integer"
+ "captcha_key": {
+ "type": [
+ "null",
+ "string"
+ ]
+ },
+ "token": {
+ "type": "string"
}
},
"additionalProperties": false,
"required": [
- "days"
+ "token"
],
"definitions": {
"ChannelPermissionOverwriteType": {
|