@faable/auth-sdk 2.7.25 → 2.7.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/generated-client.d.ts +22 -0
- package/dist/api/generated-client.js +20 -0
- package/dist/api/types.d.ts +141 -0
- package/dist/version.js +2 -2
- package/package.json +1 -1
- package/spec/openapi.json +235 -1
|
@@ -2761,6 +2761,28 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
|
|
|
2761
2761
|
updatedAt?: string | undefined;
|
|
2762
2762
|
}>>;
|
|
2763
2763
|
};
|
|
2764
|
+
/**
|
|
2765
|
+
* `POST /internal/mgmt-token` — operationId: `internal/mintMgmtToken`
|
|
2766
|
+
*
|
|
2767
|
+
* Mint a tenant management token for a user (internal)
|
|
2768
|
+
*
|
|
2769
|
+
* Internal, service-to-service. Issues a short-lived Management API token bound to `account_id`, acting for the platform user `user_id`. Only the platform's own client_credentials clients listed in `MGMT_TOKEN_MINTER_CLIENT_IDS` may call it; the caller is responsible for checking that the user may manage that tenant. The target is taken from the body, never from `x-faableauth-account`.
|
|
2770
|
+
*
|
|
2771
|
+
* @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
2772
|
+
* @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
|
|
2773
|
+
* @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
|
|
2774
|
+
* @throws {FaableApiError} `user_suspended` (403) — The user is suspended and cannot sign in or be modified.
|
|
2775
|
+
* @throws {FaableApiError} `insufficient_scope` (403) — The token lacks a scope this operation requires. `message` names it.
|
|
2776
|
+
* @throws {FaableApiError} `account_not_found` (404) — No Auth Account matches the request (domain, header or token).
|
|
2777
|
+
* @throws {FaableApiError} `not_found` (404) — The resource does not exist in this account.
|
|
2778
|
+
* @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
|
|
2779
|
+
* @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
|
|
2780
|
+
*/
|
|
2781
|
+
internalMintMgmtToken(data: OpBody<"internal/mintMgmtToken">): Promise<{
|
|
2782
|
+
access_token: string;
|
|
2783
|
+
token_type: "Bearer";
|
|
2784
|
+
expires_in: number;
|
|
2785
|
+
}>;
|
|
2764
2786
|
/**
|
|
2765
2787
|
* `GET /internal/usage/sms` — operationId: `internal/smsUsage`
|
|
2766
2788
|
*
|
|
@@ -982,6 +982,26 @@ export class GeneratedFaableAuthApi extends FaableApi {
|
|
|
982
982
|
identityList(params) {
|
|
983
983
|
return this.paginator({ url: `/identity`, params });
|
|
984
984
|
}
|
|
985
|
+
/**
|
|
986
|
+
* `POST /internal/mgmt-token` — operationId: `internal/mintMgmtToken`
|
|
987
|
+
*
|
|
988
|
+
* Mint a tenant management token for a user (internal)
|
|
989
|
+
*
|
|
990
|
+
* Internal, service-to-service. Issues a short-lived Management API token bound to `account_id`, acting for the platform user `user_id`. Only the platform's own client_credentials clients listed in `MGMT_TOKEN_MINTER_CLIENT_IDS` may call it; the caller is responsible for checking that the user may manage that tenant. The target is taken from the body, never from `x-faableauth-account`.
|
|
991
|
+
*
|
|
992
|
+
* @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
|
|
993
|
+
* @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
|
|
994
|
+
* @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
|
|
995
|
+
* @throws {FaableApiError} `user_suspended` (403) — The user is suspended and cannot sign in or be modified.
|
|
996
|
+
* @throws {FaableApiError} `insufficient_scope` (403) — The token lacks a scope this operation requires. `message` names it.
|
|
997
|
+
* @throws {FaableApiError} `account_not_found` (404) — No Auth Account matches the request (domain, header or token).
|
|
998
|
+
* @throws {FaableApiError} `not_found` (404) — The resource does not exist in this account.
|
|
999
|
+
* @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
|
|
1000
|
+
* @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
|
|
1001
|
+
*/
|
|
1002
|
+
internalMintMgmtToken(data) {
|
|
1003
|
+
return this.fetcher.post(`/internal/mgmt-token`, data);
|
|
1004
|
+
}
|
|
985
1005
|
/**
|
|
986
1006
|
* `GET /internal/usage/sms` — operationId: `internal/smsUsage`
|
|
987
1007
|
*
|
package/dist/api/types.d.ts
CHANGED
|
@@ -164,6 +164,26 @@ export interface paths {
|
|
|
164
164
|
patch?: never;
|
|
165
165
|
trace?: never;
|
|
166
166
|
};
|
|
167
|
+
"/internal/mgmt-token": {
|
|
168
|
+
parameters: {
|
|
169
|
+
query?: never;
|
|
170
|
+
header?: never;
|
|
171
|
+
path?: never;
|
|
172
|
+
cookie?: never;
|
|
173
|
+
};
|
|
174
|
+
get?: never;
|
|
175
|
+
put?: never;
|
|
176
|
+
/**
|
|
177
|
+
* Mint a tenant management token for a user (internal)
|
|
178
|
+
* @description Internal, service-to-service. Issues a short-lived Management API token bound to `account_id`, acting for the platform user `user_id`. Only the platform's own client_credentials clients listed in `MGMT_TOKEN_MINTER_CLIENT_IDS` may call it; the caller is responsible for checking that the user may manage that tenant. The target is taken from the body, never from `x-faableauth-account`.
|
|
179
|
+
*/
|
|
180
|
+
post: operations["internal/mintMgmtToken"];
|
|
181
|
+
delete?: never;
|
|
182
|
+
options?: never;
|
|
183
|
+
head?: never;
|
|
184
|
+
patch?: never;
|
|
185
|
+
trace?: never;
|
|
186
|
+
};
|
|
167
187
|
"/recovery-channels/capabilities": {
|
|
168
188
|
parameters: {
|
|
169
189
|
query?: never;
|
|
@@ -7671,6 +7691,127 @@ export interface operations {
|
|
|
7671
7691
|
};
|
|
7672
7692
|
};
|
|
7673
7693
|
};
|
|
7694
|
+
"internal/mintMgmtToken": {
|
|
7695
|
+
parameters: {
|
|
7696
|
+
query?: never;
|
|
7697
|
+
header?: never;
|
|
7698
|
+
path?: never;
|
|
7699
|
+
cookie?: never;
|
|
7700
|
+
};
|
|
7701
|
+
requestBody: {
|
|
7702
|
+
content: {
|
|
7703
|
+
"application/json": {
|
|
7704
|
+
/** @description The tenant the token will manage. */
|
|
7705
|
+
account_id: string;
|
|
7706
|
+
/** @description The platform (root) user the caller acts for. The caller has already checked that this user may manage the tenant. */
|
|
7707
|
+
user_id: string;
|
|
7708
|
+
/**
|
|
7709
|
+
* @description Lifetime in seconds.
|
|
7710
|
+
* @default 900
|
|
7711
|
+
*/
|
|
7712
|
+
ttl?: number;
|
|
7713
|
+
};
|
|
7714
|
+
};
|
|
7715
|
+
};
|
|
7716
|
+
responses: {
|
|
7717
|
+
/** @description Default Response */
|
|
7718
|
+
200: {
|
|
7719
|
+
headers: {
|
|
7720
|
+
[name: string]: unknown;
|
|
7721
|
+
};
|
|
7722
|
+
content: {
|
|
7723
|
+
"application/json": {
|
|
7724
|
+
access_token: string;
|
|
7725
|
+
/** @enum {string} */
|
|
7726
|
+
token_type: "Bearer";
|
|
7727
|
+
expires_in: number;
|
|
7728
|
+
};
|
|
7729
|
+
};
|
|
7730
|
+
};
|
|
7731
|
+
/** @description `validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field. */
|
|
7732
|
+
400: {
|
|
7733
|
+
headers: {
|
|
7734
|
+
[name: string]: unknown;
|
|
7735
|
+
};
|
|
7736
|
+
content: {
|
|
7737
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
7738
|
+
/** @enum {string} */
|
|
7739
|
+
error_code?: "validation_error";
|
|
7740
|
+
};
|
|
7741
|
+
};
|
|
7742
|
+
};
|
|
7743
|
+
/** @description `unauthorized` — The request carries no valid credentials. */
|
|
7744
|
+
401: {
|
|
7745
|
+
headers: {
|
|
7746
|
+
[name: string]: unknown;
|
|
7747
|
+
};
|
|
7748
|
+
content: {
|
|
7749
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
7750
|
+
/** @enum {string} */
|
|
7751
|
+
error_code?: "unauthorized";
|
|
7752
|
+
};
|
|
7753
|
+
};
|
|
7754
|
+
};
|
|
7755
|
+
/**
|
|
7756
|
+
* @description `forbidden` — The credentials are valid but do not allow this operation.
|
|
7757
|
+
*
|
|
7758
|
+
* `user_suspended` — The user is suspended and cannot sign in or be modified.
|
|
7759
|
+
*
|
|
7760
|
+
* `insufficient_scope` — The token lacks a scope this operation requires. `message` names it.
|
|
7761
|
+
*/
|
|
7762
|
+
403: {
|
|
7763
|
+
headers: {
|
|
7764
|
+
[name: string]: unknown;
|
|
7765
|
+
};
|
|
7766
|
+
content: {
|
|
7767
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
7768
|
+
/** @enum {string} */
|
|
7769
|
+
error_code?: "forbidden" | "user_suspended" | "insufficient_scope";
|
|
7770
|
+
};
|
|
7771
|
+
};
|
|
7772
|
+
};
|
|
7773
|
+
/**
|
|
7774
|
+
* @description `account_not_found` — No Auth Account matches the request (domain, header or token).
|
|
7775
|
+
*
|
|
7776
|
+
* `not_found` — The resource does not exist in this account.
|
|
7777
|
+
*/
|
|
7778
|
+
404: {
|
|
7779
|
+
headers: {
|
|
7780
|
+
[name: string]: unknown;
|
|
7781
|
+
};
|
|
7782
|
+
content: {
|
|
7783
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
7784
|
+
/** @enum {string} */
|
|
7785
|
+
error_code?: "account_not_found" | "not_found";
|
|
7786
|
+
};
|
|
7787
|
+
};
|
|
7788
|
+
};
|
|
7789
|
+
/** @description `too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header. */
|
|
7790
|
+
429: {
|
|
7791
|
+
headers: {
|
|
7792
|
+
[name: string]: unknown;
|
|
7793
|
+
};
|
|
7794
|
+
content: {
|
|
7795
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
7796
|
+
/** @enum {string} */
|
|
7797
|
+
error_code?: "too_many_requests";
|
|
7798
|
+
};
|
|
7799
|
+
};
|
|
7800
|
+
};
|
|
7801
|
+
/** @description `internal_error` — Unexpected server error. Retry later; the request id is logged. */
|
|
7802
|
+
500: {
|
|
7803
|
+
headers: {
|
|
7804
|
+
[name: string]: unknown;
|
|
7805
|
+
};
|
|
7806
|
+
content: {
|
|
7807
|
+
"application/json": components["schemas"]["ErrorResponse"] & {
|
|
7808
|
+
/** @enum {string} */
|
|
7809
|
+
error_code?: "internal_error";
|
|
7810
|
+
};
|
|
7811
|
+
};
|
|
7812
|
+
};
|
|
7813
|
+
};
|
|
7814
|
+
};
|
|
7674
7815
|
"account/recoveryChannelsCapabilities": {
|
|
7675
7816
|
parameters: {
|
|
7676
7817
|
query?: never;
|
package/dist/version.js
CHANGED
|
@@ -9,13 +9,13 @@
|
|
|
9
9
|
// login pages could not import the SDK at all. Same pattern as auth-js.
|
|
10
10
|
//
|
|
11
11
|
// The sentinels MUST stay byte-identical to the `from` values in `.releaserc`.
|
|
12
|
-
export const version = "2.7.
|
|
12
|
+
export const version = "2.7.27";
|
|
13
13
|
// Short git SHA of the released commit. The version dates a build; this names
|
|
14
14
|
// the exact tree, so a canonical log line or an audit entry leads straight to
|
|
15
15
|
// `git show <sha>`. Deliberately NOT hex: an unreleased build (dev, a local
|
|
16
16
|
// link) cannot be mistaken for a real commit — auth only records values that
|
|
17
17
|
// look like a SHA, and this one never will.
|
|
18
|
-
export const commit = "
|
|
18
|
+
export const commit = "ffc252f";
|
|
19
19
|
// What this SDK writes in `x-faable-client`. Exported for a consumer that
|
|
20
20
|
// builds a strategy on its own (outside `FaableAuthApi`) and still wants the
|
|
21
21
|
// token request attributed — a bare `authClientCredentials` stamps only what
|
package/package.json
CHANGED
package/spec/openapi.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "@faablecloud/auth",
|
|
5
5
|
"description": "Auth Platform made by Faable. Manage Users and Roles",
|
|
6
|
-
"version": "2.
|
|
6
|
+
"version": "2.33.0",
|
|
7
7
|
"license": {
|
|
8
8
|
"name": "private",
|
|
9
9
|
"url": "https://faable.com/docs/platform/privacy-policy"
|
|
@@ -10917,6 +10917,240 @@
|
|
|
10917
10917
|
}
|
|
10918
10918
|
}
|
|
10919
10919
|
},
|
|
10920
|
+
"/internal/mgmt-token": {
|
|
10921
|
+
"post": {
|
|
10922
|
+
"operationId": "internal/mintMgmtToken",
|
|
10923
|
+
"summary": "Mint a tenant management token for a user (internal)",
|
|
10924
|
+
"tags": [
|
|
10925
|
+
"account"
|
|
10926
|
+
],
|
|
10927
|
+
"description": "Internal, service-to-service. Issues a short-lived Management API token bound to `account_id`, acting for the platform user `user_id`. Only the platform's own client_credentials clients listed in `MGMT_TOKEN_MINTER_CLIENT_IDS` may call it; the caller is responsible for checking that the user may manage that tenant. The target is taken from the body, never from `x-faableauth-account`.",
|
|
10928
|
+
"requestBody": {
|
|
10929
|
+
"required": true,
|
|
10930
|
+
"content": {
|
|
10931
|
+
"application/json": {
|
|
10932
|
+
"schema": {
|
|
10933
|
+
"type": "object",
|
|
10934
|
+
"required": [
|
|
10935
|
+
"account_id",
|
|
10936
|
+
"user_id"
|
|
10937
|
+
],
|
|
10938
|
+
"properties": {
|
|
10939
|
+
"account_id": {
|
|
10940
|
+
"type": "string",
|
|
10941
|
+
"pattern": "^account_[0-9a-f]{24}$",
|
|
10942
|
+
"description": "The tenant the token will manage."
|
|
10943
|
+
},
|
|
10944
|
+
"user_id": {
|
|
10945
|
+
"type": "string",
|
|
10946
|
+
"pattern": "^user_[0-9a-f]{24}$",
|
|
10947
|
+
"description": "The platform (root) user the caller acts for. The caller has already checked that this user may manage the tenant."
|
|
10948
|
+
},
|
|
10949
|
+
"ttl": {
|
|
10950
|
+
"type": "integer",
|
|
10951
|
+
"minimum": 60,
|
|
10952
|
+
"maximum": 900,
|
|
10953
|
+
"default": 900,
|
|
10954
|
+
"description": "Lifetime in seconds."
|
|
10955
|
+
}
|
|
10956
|
+
},
|
|
10957
|
+
"additionalProperties": false
|
|
10958
|
+
}
|
|
10959
|
+
}
|
|
10960
|
+
}
|
|
10961
|
+
},
|
|
10962
|
+
"security": [
|
|
10963
|
+
{
|
|
10964
|
+
"bearerAuth": []
|
|
10965
|
+
}
|
|
10966
|
+
],
|
|
10967
|
+
"x-internal": true,
|
|
10968
|
+
"responses": {
|
|
10969
|
+
"200": {
|
|
10970
|
+
"description": "Default Response",
|
|
10971
|
+
"content": {
|
|
10972
|
+
"application/json": {
|
|
10973
|
+
"schema": {
|
|
10974
|
+
"type": "object",
|
|
10975
|
+
"required": [
|
|
10976
|
+
"access_token",
|
|
10977
|
+
"token_type",
|
|
10978
|
+
"expires_in"
|
|
10979
|
+
],
|
|
10980
|
+
"properties": {
|
|
10981
|
+
"access_token": {
|
|
10982
|
+
"type": "string"
|
|
10983
|
+
},
|
|
10984
|
+
"token_type": {
|
|
10985
|
+
"type": "string",
|
|
10986
|
+
"enum": [
|
|
10987
|
+
"Bearer"
|
|
10988
|
+
]
|
|
10989
|
+
},
|
|
10990
|
+
"expires_in": {
|
|
10991
|
+
"type": "integer"
|
|
10992
|
+
}
|
|
10993
|
+
}
|
|
10994
|
+
}
|
|
10995
|
+
}
|
|
10996
|
+
}
|
|
10997
|
+
},
|
|
10998
|
+
"400": {
|
|
10999
|
+
"description": "`validation_error` — The body, query or path failed schema validation. `details.issues` lists each failing field.",
|
|
11000
|
+
"content": {
|
|
11001
|
+
"application/json": {
|
|
11002
|
+
"schema": {
|
|
11003
|
+
"allOf": [
|
|
11004
|
+
{
|
|
11005
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
11006
|
+
},
|
|
11007
|
+
{
|
|
11008
|
+
"type": "object",
|
|
11009
|
+
"properties": {
|
|
11010
|
+
"error_code": {
|
|
11011
|
+
"type": "string",
|
|
11012
|
+
"enum": [
|
|
11013
|
+
"validation_error"
|
|
11014
|
+
]
|
|
11015
|
+
}
|
|
11016
|
+
}
|
|
11017
|
+
}
|
|
11018
|
+
]
|
|
11019
|
+
}
|
|
11020
|
+
}
|
|
11021
|
+
}
|
|
11022
|
+
},
|
|
11023
|
+
"401": {
|
|
11024
|
+
"description": "`unauthorized` — The request carries no valid credentials.",
|
|
11025
|
+
"content": {
|
|
11026
|
+
"application/json": {
|
|
11027
|
+
"schema": {
|
|
11028
|
+
"allOf": [
|
|
11029
|
+
{
|
|
11030
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
11031
|
+
},
|
|
11032
|
+
{
|
|
11033
|
+
"type": "object",
|
|
11034
|
+
"properties": {
|
|
11035
|
+
"error_code": {
|
|
11036
|
+
"type": "string",
|
|
11037
|
+
"enum": [
|
|
11038
|
+
"unauthorized"
|
|
11039
|
+
]
|
|
11040
|
+
}
|
|
11041
|
+
}
|
|
11042
|
+
}
|
|
11043
|
+
]
|
|
11044
|
+
}
|
|
11045
|
+
}
|
|
11046
|
+
}
|
|
11047
|
+
},
|
|
11048
|
+
"403": {
|
|
11049
|
+
"description": "`forbidden` — The credentials are valid but do not allow this operation.\n\n`user_suspended` — The user is suspended and cannot sign in or be modified.\n\n`insufficient_scope` — The token lacks a scope this operation requires. `message` names it.",
|
|
11050
|
+
"content": {
|
|
11051
|
+
"application/json": {
|
|
11052
|
+
"schema": {
|
|
11053
|
+
"allOf": [
|
|
11054
|
+
{
|
|
11055
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
11056
|
+
},
|
|
11057
|
+
{
|
|
11058
|
+
"type": "object",
|
|
11059
|
+
"properties": {
|
|
11060
|
+
"error_code": {
|
|
11061
|
+
"type": "string",
|
|
11062
|
+
"enum": [
|
|
11063
|
+
"forbidden",
|
|
11064
|
+
"user_suspended",
|
|
11065
|
+
"insufficient_scope"
|
|
11066
|
+
]
|
|
11067
|
+
}
|
|
11068
|
+
}
|
|
11069
|
+
}
|
|
11070
|
+
]
|
|
11071
|
+
}
|
|
11072
|
+
}
|
|
11073
|
+
}
|
|
11074
|
+
},
|
|
11075
|
+
"404": {
|
|
11076
|
+
"description": "`account_not_found` — No Auth Account matches the request (domain, header or token).\n\n`not_found` — The resource does not exist in this account.",
|
|
11077
|
+
"content": {
|
|
11078
|
+
"application/json": {
|
|
11079
|
+
"schema": {
|
|
11080
|
+
"allOf": [
|
|
11081
|
+
{
|
|
11082
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
11083
|
+
},
|
|
11084
|
+
{
|
|
11085
|
+
"type": "object",
|
|
11086
|
+
"properties": {
|
|
11087
|
+
"error_code": {
|
|
11088
|
+
"type": "string",
|
|
11089
|
+
"enum": [
|
|
11090
|
+
"account_not_found",
|
|
11091
|
+
"not_found"
|
|
11092
|
+
]
|
|
11093
|
+
}
|
|
11094
|
+
}
|
|
11095
|
+
}
|
|
11096
|
+
]
|
|
11097
|
+
}
|
|
11098
|
+
}
|
|
11099
|
+
}
|
|
11100
|
+
},
|
|
11101
|
+
"429": {
|
|
11102
|
+
"description": "`too_many_requests` — Rate limit exceeded. Honour the `Retry-After` header.",
|
|
11103
|
+
"content": {
|
|
11104
|
+
"application/json": {
|
|
11105
|
+
"schema": {
|
|
11106
|
+
"allOf": [
|
|
11107
|
+
{
|
|
11108
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
11109
|
+
},
|
|
11110
|
+
{
|
|
11111
|
+
"type": "object",
|
|
11112
|
+
"properties": {
|
|
11113
|
+
"error_code": {
|
|
11114
|
+
"type": "string",
|
|
11115
|
+
"enum": [
|
|
11116
|
+
"too_many_requests"
|
|
11117
|
+
]
|
|
11118
|
+
}
|
|
11119
|
+
}
|
|
11120
|
+
}
|
|
11121
|
+
]
|
|
11122
|
+
}
|
|
11123
|
+
}
|
|
11124
|
+
}
|
|
11125
|
+
},
|
|
11126
|
+
"500": {
|
|
11127
|
+
"description": "`internal_error` — Unexpected server error. Retry later; the request id is logged.",
|
|
11128
|
+
"content": {
|
|
11129
|
+
"application/json": {
|
|
11130
|
+
"schema": {
|
|
11131
|
+
"allOf": [
|
|
11132
|
+
{
|
|
11133
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
11134
|
+
},
|
|
11135
|
+
{
|
|
11136
|
+
"type": "object",
|
|
11137
|
+
"properties": {
|
|
11138
|
+
"error_code": {
|
|
11139
|
+
"type": "string",
|
|
11140
|
+
"enum": [
|
|
11141
|
+
"internal_error"
|
|
11142
|
+
]
|
|
11143
|
+
}
|
|
11144
|
+
}
|
|
11145
|
+
}
|
|
11146
|
+
]
|
|
11147
|
+
}
|
|
11148
|
+
}
|
|
11149
|
+
}
|
|
11150
|
+
}
|
|
11151
|
+
}
|
|
11152
|
+
}
|
|
11153
|
+
},
|
|
10920
11154
|
"/recovery-channels/capabilities": {
|
|
10921
11155
|
"get": {
|
|
10922
11156
|
"operationId": "account/recoveryChannelsCapabilities",
|