diff options
-rw-r--r-- | assets/schemas.json | 2048 | ||||
-rw-r--r-- | src/api/routes/auth/login.ts | 23 | ||||
-rw-r--r-- | src/api/routes/auth/mfa/totp.ts | 5 | ||||
-rw-r--r-- | src/api/routes/auth/mfa/webauthn.ts | 5 | ||||
-rw-r--r-- | src/api/routes/users/@me/mfa/totp/enable.ts | 10 | ||||
-rw-r--r-- | src/api/routes/users/@me/mfa/webauthn/credentials/index.ts | 34 | ||||
-rw-r--r-- | src/util/config/types/subconfigurations/security/TwoFactor.ts | 2 | ||||
-rw-r--r-- | src/util/entities/User.ts | 9 | ||||
-rw-r--r-- | src/util/util/WebAuthn.ts | 9 |
9 files changed, 2133 insertions, 12 deletions
diff --git a/assets/schemas.json b/assets/schemas.json index a0ab1697..91e23f1a 100644 --- a/assets/schemas.json +++ b/assets/schemas.json @@ -1655,12 +1655,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -2101,6 +2109,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -5874,12 +5890,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -6320,6 +6344,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -10093,12 +10125,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -10539,6 +10579,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -14307,12 +14355,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -14753,6 +14809,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -18557,12 +18621,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -19003,6 +19075,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -22776,12 +22856,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -23222,6 +23310,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -26986,12 +27082,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -27432,6 +27536,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -31199,12 +31311,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -31645,6 +31765,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -35421,12 +35549,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -35867,6 +36003,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -39631,12 +39775,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -40077,6 +40229,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -43841,12 +44001,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -44287,6 +44455,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -48070,12 +48246,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -48516,6 +48700,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -52283,12 +52475,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -52729,6 +52929,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -56556,12 +56764,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -57002,6 +57218,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -60788,12 +61012,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -61234,6 +61466,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -65161,12 +65401,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -65607,6 +65855,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -69392,12 +69648,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -69838,6 +70102,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -73633,12 +73905,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -74079,6 +74359,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -77856,12 +78144,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -78302,6 +78598,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -82085,12 +82389,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -82531,6 +82843,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -86304,12 +86624,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -86750,6 +87078,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -90511,12 +90847,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -90957,6 +91301,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -94836,12 +95188,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -95282,6 +95642,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -99158,12 +99526,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -99604,6 +99980,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -103368,12 +103752,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -103814,6 +104206,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -107586,12 +107986,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -108032,6 +108440,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -111797,12 +112213,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -112243,6 +112667,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -116008,12 +116440,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -116454,6 +116894,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -120254,12 +120702,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -120700,6 +121156,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -124465,12 +124929,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -124911,6 +125383,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -128675,12 +129155,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -129121,6 +129609,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -132900,12 +133396,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -133346,6 +133850,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -137114,12 +137626,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -137560,6 +138080,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -141402,12 +141930,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -141848,6 +142384,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -145612,12 +146156,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -146058,6 +146610,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -149822,12 +150382,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -150268,6 +150836,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -154029,12 +154605,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -154475,6 +155059,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -158242,12 +158834,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -158688,6 +159288,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -162465,12 +163073,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -162911,6 +163527,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -166672,12 +167296,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -167118,6 +167750,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -170928,12 +171568,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -171374,6 +172022,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -175170,12 +175826,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -175616,6 +176280,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -179377,12 +180049,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -179823,6 +180503,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -183609,12 +184297,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -184055,6 +184751,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -187930,12 +188634,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -188376,6 +189088,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -192136,12 +192856,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -192582,6 +193310,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -196381,12 +197117,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -196827,6 +197571,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -200614,12 +201366,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -201060,6 +201820,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -204899,12 +205667,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -205345,6 +206121,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -209106,12 +209890,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -209552,6 +210344,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -213321,12 +214121,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -213767,6 +214575,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -217526,12 +218342,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -217972,6 +218796,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -221737,12 +222569,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -222183,6 +223023,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -225948,12 +226796,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -226394,6 +227250,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -230159,12 +231023,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -230605,6 +231477,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -234402,12 +235282,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -234848,6 +235736,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -238617,12 +239513,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -239063,6 +239967,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -242822,12 +243734,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -243268,6 +244188,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -247033,12 +247961,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -247479,6 +248415,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -251255,12 +252199,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -251701,6 +252653,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -255491,12 +256451,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -255937,6 +256905,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -259698,12 +260674,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -260144,6 +261128,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -263908,12 +264900,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -264354,6 +265354,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -268147,12 +269155,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -268593,6 +269609,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -272354,12 +273378,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -272800,6 +273832,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -276640,12 +277680,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -277086,6 +278134,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -280854,12 +281910,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -281300,6 +282364,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -285061,12 +286133,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -285507,6 +286587,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -289268,12 +290356,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -289714,6 +290810,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -293482,12 +294586,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -293928,6 +295040,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -297693,12 +298813,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -298139,6 +299267,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -301900,12 +303036,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -302346,6 +303490,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -306182,12 +307334,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -306628,6 +307788,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -310400,12 +311568,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -310846,6 +312022,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -314619,12 +315803,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -315065,6 +316257,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -318888,12 +320088,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -319334,6 +320542,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -323116,12 +324332,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -323562,6 +324786,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -327350,12 +328582,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -327796,6 +329036,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -331578,12 +332826,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -332024,6 +333280,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -335785,12 +337049,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -336231,6 +337503,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -340020,12 +341300,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -340466,6 +341754,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -344267,12 +345563,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -344713,6 +346017,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -348468,12 +349780,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -348914,6 +350234,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -352679,12 +354007,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -353125,6 +354461,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -356886,12 +358230,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -357332,6 +358684,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -361100,12 +362460,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -361546,6 +362914,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -365518,12 +366894,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -365964,6 +367348,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -369716,12 +371108,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -370162,6 +371562,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -374008,12 +375416,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -374454,6 +375870,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -378209,12 +379633,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -378655,6 +380087,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -382410,12 +383850,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -382856,6 +384304,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -386611,12 +388067,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -387057,6 +388521,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -390906,12 +392378,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -391352,6 +392832,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -395105,12 +396593,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -395551,6 +397047,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -399304,12 +400808,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -399750,6 +401262,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -403503,12 +405023,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -403949,6 +405477,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -407704,12 +409240,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -408150,6 +409694,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -411905,12 +413457,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -412351,6 +413911,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -416106,12 +417674,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -416552,6 +418128,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -420307,12 +421891,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -420753,6 +422345,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -424508,12 +426108,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -424954,6 +426562,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -428773,12 +430389,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -429219,6 +430843,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -432974,12 +434606,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -433420,6 +435060,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -437175,12 +438823,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -437621,6 +439277,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -441376,12 +443040,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -441822,6 +443494,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -445624,12 +447304,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -446070,6 +447758,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -450061,12 +451757,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -450507,6 +452211,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -454262,12 +455974,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -454708,6 +456428,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -458463,12 +460191,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -458909,6 +460645,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -462664,12 +464408,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -463110,6 +464862,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -466865,12 +468625,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -467311,6 +469079,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -471092,12 +472868,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -471538,6 +473322,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -475293,12 +477085,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -475739,6 +477539,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -479515,12 +481323,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -479961,6 +481777,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -483730,12 +485554,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -484176,6 +486008,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -488057,12 +489897,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -488503,6 +490351,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -492276,12 +494132,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -492722,6 +494586,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -496501,12 +498373,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -496947,6 +498827,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -500712,12 +502600,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -501158,6 +503054,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -504923,12 +506827,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -505369,6 +507281,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -509121,12 +511041,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -509567,6 +511495,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -513331,12 +515267,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -513777,6 +515721,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -517556,12 +519508,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -518002,6 +519962,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -521785,12 +523753,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -522231,6 +524207,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -525993,12 +527977,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -526439,6 +528431,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -530200,12 +532200,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -530646,6 +532654,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -534407,12 +536423,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -534853,6 +536877,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { @@ -538620,12 +540652,20 @@ "$ref": "#/definitions/SecurityKey" } }, + "authenticator_types": { + "type": "array", + "items": { + "$ref": "#/definitions/AuthenticatorType" + }, + "default": [] + }, "id": { "type": "string" } }, "additionalProperties": false, "required": [ + "authenticator_types", "bio", "bot", "connected_accounts", @@ -539066,6 +541106,14 @@ "user_id" ] }, + "AuthenticatorType": { + "enum": [ + 1, + 2, + 3 + ], + "type": "number" + }, "ChannelPermissionOverwrite": { "type": "object", "properties": { diff --git a/src/api/routes/auth/login.ts b/src/api/routes/auth/login.ts index a2100333..d2384337 100644 --- a/src/api/routes/auth/login.ts +++ b/src/api/routes/auth/login.ts @@ -139,7 +139,9 @@ router.post( ticket: ticket, mfa: true, sms: false, // TODO - token: null, + totp: true, + backup: true, + user_id: user.id, }); } @@ -172,7 +174,9 @@ router.post( ticket: ticket, mfa: true, sms: false, // TODO - token: null, + totp: true, + backup: true, + user_id: user.id, webauthn: challenge, }); } @@ -202,7 +206,13 @@ router.post( // Discord header is just the user id as string, which is not possible with npm-jsonwebtoken package // https://user-images.githubusercontent.com/6506416/81051916-dd8c9900-8ec2-11ea-8794-daf12d6f31f0.png - res.json({ token, settings: { ...user.settings, index: undefined } }); + res.json({ + token, + settings: { + locale: user.settings.locale, + theme: user.settings.theme, + }, + }); }, ); @@ -211,15 +221,12 @@ router.post( * @argument { login: "email@gmail.com", password: "cleartextpassword", undelete: false, captcha_key: null, login_source: null, gift_code_sku_id: null, } * MFA required: - * @returns {"token": null, "mfa": true, "sms": true, "ticket": "SOME TICKET JWT TOKEN"} - - * WebAuthn MFA required: - * @returns {"token": null, "mfa": true, "webauthn": true, "sms": true, "ticket": "SOME TICKET JWT TOKEN"} + * @returns {"mfa": true, "sms": boolean, "totp": boolean, "backup": true, "ticket": "SOME TICKET JWT TOKEN", "user_id": "USER ID", "webauthn": "WEBAUTHN DATA or null"} * Captcha required: * @returns {"captcha_key": ["captcha-required"], "captcha_sitekey": null, "captcha_service": "recaptcha"} * Sucess: - * @returns {"token": "USERTOKEN", "settings": {"locale": "en", "theme": "dark"}} + * @returns {"token": "USERTOKEN", "user_id": "USER ID", "settings": {"locale": "en-US", "theme": "dark"}} */ diff --git a/src/api/routes/auth/mfa/totp.ts b/src/api/routes/auth/mfa/totp.ts index 4df408f9..20ecd7a1 100644 --- a/src/api/routes/auth/mfa/totp.ts +++ b/src/api/routes/auth/mfa/totp.ts @@ -73,7 +73,10 @@ router.post( return res.json({ token: await generateToken(user.id), - settings: { ...user.settings, index: undefined }, + settings: { + locale: user.settings.locale, + theme: user.settings.theme, + }, }); }, ); diff --git a/src/api/routes/auth/mfa/webauthn.ts b/src/api/routes/auth/mfa/webauthn.ts index b58d2944..687fdcd8 100644 --- a/src/api/routes/auth/mfa/webauthn.ts +++ b/src/api/routes/auth/mfa/webauthn.ts @@ -114,7 +114,10 @@ router.post( return res.json({ token: await generateToken(user.id), - user_settings: user.settings, + user_settings: { + locale: user.settings.locale, + theme: user.settings.theme, + }, }); }, ); diff --git a/src/api/routes/users/@me/mfa/totp/enable.ts b/src/api/routes/users/@me/mfa/totp/enable.ts index 19836e4d..5471e0b5 100644 --- a/src/api/routes/users/@me/mfa/totp/enable.ts +++ b/src/api/routes/users/@me/mfa/totp/enable.ts @@ -18,6 +18,7 @@ import { route } from "@spacebar/api"; import { + AuthenticatorType, TotpEnableSchema, User, generateMfaBackupCodes, @@ -74,7 +75,14 @@ router.post( await Promise.all(backup_codes.map((x) => x.save())); await User.update( { id: req.user_id }, - { mfa_enabled: true, totp_secret: body.secret }, + { + mfa_enabled: true, + totp_secret: body.secret, + authenticator_types: [ + ...user.authenticator_types, + AuthenticatorType.TOTP, + ], + }, ); res.send({ diff --git a/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts b/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts index f383ffb7..c8e5b67a 100644 --- a/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts +++ b/src/api/routes/users/@me/mfa/webauthn/credentials/index.ts @@ -18,9 +18,12 @@ import { route } from "@spacebar/api"; import { + AuthenticatorType, + BackupCode, CreateWebAuthnCredentialSchema, DiscordApiErrors, FieldErrors, + generateMfaBackupCodes, GenerateWebAuthnCredentialsSchema, generateWebAuthnTicket, SecurityKey, @@ -193,12 +196,41 @@ router.post( await Promise.all([ securityKey.save(), - User.update({ id: req.user_id }, { webauthn_enabled: true }), + User.update( + { id: req.user_id }, + { + webauthn_enabled: true, + authenticator_types: [ + ...user.authenticator_types, + AuthenticatorType.WEBAUTHN, + ], + }, + ), ]); + // try and get the users existing backup codes + let backup_codes = await BackupCode.find({ + where: { + user: { + id: req.user_id, + }, + }, + }); + + // if there arent any, create them + if (!backup_codes.length) { + backup_codes = generateMfaBackupCodes(req.user_id); + await Promise.all(backup_codes.map((x) => x.save())); + } + return res.json({ name, id: securityKey.id, + type: AuthenticatorType.WEBAUTHN, // I think thats what this is? + backup_codes: backup_codes.map((x) => ({ + ...x, + expired: undefined, + })), }); } else { throw DiscordApiErrors.INVALID_AUTHENTICATION_TOKEN; diff --git a/src/util/config/types/subconfigurations/security/TwoFactor.ts b/src/util/config/types/subconfigurations/security/TwoFactor.ts index 75757124..dfa493a7 100644 --- a/src/util/config/types/subconfigurations/security/TwoFactor.ts +++ b/src/util/config/types/subconfigurations/security/TwoFactor.ts @@ -18,4 +18,6 @@ export class TwoFactorConfiguration { generateBackupCodes: boolean = true; + webauthnAttestation: "none" | "indirect" | "direct" = "none"; + webauthnTimeout: number = 60000; } diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts index c6582b00..25586793 100644 --- a/src/util/entities/User.ts +++ b/src/util/entities/User.ts @@ -85,6 +85,12 @@ export interface UserPrivate extends Pick<User, PrivateUserKeys> { locale: string; } +export enum AuthenticatorType { + WEBAUTHN = 1, + TOTP = 2, + SMS = 3, +} + @Entity("users") export class User extends BaseClass { @Column() @@ -231,6 +237,9 @@ export class User extends BaseClass { @OneToMany(() => SecurityKey, (key: SecurityKey) => key.user) security_keys: SecurityKey[]; + @Column({ type: "simple-array", select: false }) + authenticator_types: AuthenticatorType[] = []; + // TODO: I don't like this method? validate() { if (this.discriminator) { diff --git a/src/util/util/WebAuthn.ts b/src/util/util/WebAuthn.ts index b0027b13..599efe33 100644 --- a/src/util/util/WebAuthn.ts +++ b/src/util/util/WebAuthn.ts @@ -33,6 +33,15 @@ export const WebAuthn: { init: function () { this.fido2 = new Fido2Lib({ challengeSize: 128, + rpName: Config.get().general.instanceName, + rpId: + Config.get().general.frontPage ?? + Config.get().general.instanceName.toLowerCase(), + attestation: Config.get().security.twoFactor.webauthnAttestation, + // rpIcon: + timeout: Config.get().security.twoFactor.webauthnTimeout, + authenticatorRequireResidentKey: false, + authenticatorUserVerification: "preferred", }); }, }; |