@cubist-labs/cubesigner-sdk 0.1.26 → 0.1.77

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.
Files changed (44) hide show
  1. package/README.md +94 -33
  2. package/dist/src/ethers/index.d.ts +25 -5
  3. package/dist/src/ethers/index.js +58 -16
  4. package/dist/src/fido.d.ts +76 -0
  5. package/dist/src/fido.js +148 -0
  6. package/dist/src/index.d.ts +148 -35
  7. package/dist/src/index.js +320 -53
  8. package/dist/src/key.d.ts +64 -8
  9. package/dist/src/key.js +91 -19
  10. package/dist/src/org.d.ts +98 -9
  11. package/dist/src/org.js +144 -29
  12. package/dist/src/paginator.d.ts +76 -0
  13. package/dist/src/paginator.js +99 -0
  14. package/dist/src/role.d.ts +20 -8
  15. package/dist/src/role.js +7 -5
  16. package/dist/src/schema.d.ts +2395 -393
  17. package/dist/src/schema.js +1 -1
  18. package/dist/src/session/cognito_manager.d.ts +59 -0
  19. package/dist/src/session/cognito_manager.js +111 -0
  20. package/dist/src/session/session_manager.d.ts +15 -0
  21. package/dist/src/session/session_manager.js +21 -2
  22. package/dist/src/session/session_storage.js +1 -1
  23. package/dist/src/session/signer_session_manager.d.ts +24 -12
  24. package/dist/src/session/signer_session_manager.js +45 -20
  25. package/dist/src/signer_session.d.ts +136 -38
  26. package/dist/src/signer_session.js +187 -80
  27. package/dist/src/util.d.ts +20 -0
  28. package/dist/src/util.js +31 -2
  29. package/package.json +12 -7
  30. package/src/ethers/index.ts +88 -16
  31. package/src/fido.ts +166 -0
  32. package/src/index.ts +366 -77
  33. package/src/key.ts +112 -16
  34. package/src/org.ts +200 -37
  35. package/src/paginator.ts +122 -0
  36. package/src/role.ts +24 -11
  37. package/src/schema.ts +2458 -449
  38. package/src/session/{management_session_manager.ts → cognito_manager.ts} +13 -15
  39. package/src/session/session_manager.ts +25 -1
  40. package/src/session/session_storage.ts +1 -1
  41. package/src/session/signer_session_manager.ts +57 -27
  42. package/src/signer_session.ts +266 -89
  43. package/src/util.ts +41 -0
  44. package/src/session/oidc_session_manager.ts +0 -193
package/src/schema.ts CHANGED
@@ -4,20 +4,16 @@
4
4
  */
5
5
 
6
6
 
7
- /** OneOf type helpers */
8
- type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };
9
- type XOR<T, U> = (T | U) extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
10
- type OneOf<T extends any[]> = T extends [infer Only] ? Only : T extends [infer A, infer B, ...infer Rest] ? OneOf<[XOR<A, B>, ...Rest]> : never;
11
-
12
7
  export interface paths {
13
8
  "/v0/about_me": {
14
9
  /**
15
10
  * User Info
11
+ * @deprecated
16
12
  * @description User Info
17
13
  *
18
14
  * Retrieves information about the current user.
19
15
  */
20
- get: operations["aboutMe"];
16
+ get: operations["aboutMeLegacy"];
21
17
  };
22
18
  "/v0/org/{org_id}": {
23
19
  /**
@@ -35,6 +31,16 @@ export interface paths {
35
31
  */
36
32
  patch: operations["updateOrg"];
37
33
  };
34
+ "/v0/org/{org_id}/ava/sign/{pubkey}": {
35
+ /**
36
+ * Sign Avalanche X- or P-Chain Message
37
+ * @description Sign Avalanche X- or P-Chain Message
38
+ *
39
+ * Signs an Avalanche message with a given SecpAva key.
40
+ * This is a pre-release feature.
41
+ */
42
+ post: operations["avaSign"];
43
+ };
38
44
  "/v0/org/{org_id}/btc/sign/{pubkey}": {
39
45
  /**
40
46
  * Sign Bitcoin Transaction
@@ -45,6 +51,66 @@ export interface paths {
45
51
  */
46
52
  post: operations["btcSign"];
47
53
  };
54
+ "/v0/org/{org_id}/derive_key": {
55
+ /**
56
+ * Derive Key From Long-Lived Mnemonic
57
+ * @description Derive Key From Long-Lived Mnemonic
58
+ *
59
+ * Derives a key of a specified type using a supplied derivation path and an
60
+ * existing long-lived mnemonic.
61
+ */
62
+ put: operations["deriveKey"];
63
+ };
64
+ "/v0/org/{org_id}/evm/eip712/sign/{pubkey}": {
65
+ /**
66
+ * Sign EIP-712 Typed Data
67
+ * @description Sign EIP-712 Typed Data
68
+ *
69
+ * Signs typed data according to EIP-712 with a given Secp256k1 key.
70
+ */
71
+ post: operations["eip712Sign"];
72
+ };
73
+ "/v0/org/{org_id}/identity/prove": {
74
+ /**
75
+ * Create [IdentityProof] from CubeSigner user session
76
+ * @description Create [IdentityProof] from CubeSigner user session
77
+ *
78
+ * This route can be used to prove to another party that a user has a
79
+ * valid CubeSigner session.
80
+ *
81
+ * Clients are intended to call this route and pass the returned evidence
82
+ * to another service which will verify it by making a request to `/v0/org/<org_id>/identity/verify`.
83
+ */
84
+ post: operations["createProofCubeSigner"];
85
+ };
86
+ "/v0/org/{org_id}/identity/prove/oidc": {
87
+ /**
88
+ * Create [IdentityProof] from OIDC token
89
+ * @description Create [IdentityProof] from OIDC token
90
+ *
91
+ * Exchange an OIDC ID token (passed via the `Authorization` header) for a proof of authentication.
92
+ *
93
+ * This route can be used to prove to another party that a user has met the
94
+ * authentication requirements (allowed issuers & audiences) for CubeSigner
95
+ * without leaking their credentials.
96
+ *
97
+ * Clients are intended to call this route and pass the returned evidence to another service
98
+ * which will verify it by making a request to `/v0/org/<org_id>/identity/verify`.
99
+ */
100
+ post: operations["createProofOidc"];
101
+ };
102
+ "/v0/org/{org_id}/identity/verify": {
103
+ /**
104
+ * Verify identity proof
105
+ * @description Verify identity proof
106
+ *
107
+ * Allows a third-party to validate proof of authentication.
108
+ *
109
+ * When a third-party is provided an [IdentityProof] object, they must check its
110
+ * veracity by calling this endpoint
111
+ */
112
+ post: operations["verifyProof"];
113
+ };
48
114
  "/v0/org/{org_id}/import_key": {
49
115
  /**
50
116
  * Create Key-Import Key
@@ -78,31 +144,14 @@ export interface paths {
78
144
  * Gets the list of owned keys in a given org.
79
145
  */
80
146
  get: operations["listKeysInOrg"];
81
- /**
82
- * Import Key (Deprecated)
83
- * @description Import Key (Deprecated)
84
- *
85
- * Securely imports an existing key. This API is deprecated; please use the new version.
86
- */
87
- put: operations["importKeyLegacy"];
88
147
  /**
89
148
  * Create Key
90
149
  * @description Create Key
91
150
  *
92
- * Creates one or more new keys of the specified type (BLS or Secp).
151
+ * Creates one or more new keys of the specified type.
93
152
  */
94
153
  post: operations["createKey"];
95
154
  };
96
- "/v0/org/{org_id}/keys/get_keys": {
97
- /**
98
- * Legacy List Keys
99
- * @deprecated
100
- * @description Legacy List Keys
101
- *
102
- * This route is deprecated. Use `GET /v0/org/<org_id>/keys?<key_type>`
103
- */
104
- post: operations["listKeysLegacy"];
105
- };
106
155
  "/v0/org/{org_id}/keys/{key_id}": {
107
156
  /**
108
157
  * Get Key
@@ -111,6 +160,14 @@ export interface paths {
111
160
  * Returns the properties of a key.
112
161
  */
113
162
  get: operations["getKeyInOrg"];
163
+ /**
164
+ * Delete Key
165
+ * @description Delete Key
166
+ *
167
+ * Deletes a key specified by its ID.
168
+ * Only the key owner and org owners are allowed to delete keys.
169
+ */
170
+ delete: operations["deleteKey"];
114
171
  /**
115
172
  * Update Key
116
173
  * @description Update Key
@@ -119,30 +176,60 @@ export interface paths {
119
176
  */
120
177
  patch: operations["updateKey"];
121
178
  };
179
+ "/v0/org/{org_id}/mfa": {
180
+ /**
181
+ * List Pending MFA Requests
182
+ * @description List Pending MFA Requests
183
+ *
184
+ * Retrieves and returns all pending MFA requests that are accessible to the current user,
185
+ * i.e., those in which the current user is listed as an approver
186
+ */
187
+ get: operations["mfaList"];
188
+ };
122
189
  "/v0/org/{org_id}/mfa/{mfa_id}": {
123
190
  /**
124
- * Gets a Pending MFA Request
125
- * @description Gets a Pending MFA Request
191
+ * Get Pending MFA Request
192
+ * @description Get Pending MFA Request
126
193
  *
127
194
  * Retrieves and returns a pending MFA request by its id.
128
195
  */
129
196
  get: operations["mfaGet"];
130
197
  /**
131
- * Approve a Pending MFA Request
132
- * @description Approve a Pending MFA Request
198
+ * Approve MFA Request
199
+ * @description Approve MFA Request
200
+ *
201
+ * Approve request after logging in with CubeSigner. Adds the currently-logged user as an approver
202
+ * of a pending MFA request of the [Status::RequiredApprovers] kind. If the required number of
203
+ * approvers is reached, the MFA request is approved; the confirmation receipt can be used to
204
+ * resume the original HTTP request.
205
+ */
206
+ patch: operations["mfaApproveCs"];
207
+ };
208
+ "/v0/org/{org_id}/mfa/{mfa_id}/fido": {
209
+ /**
210
+ * Initiate Approving an MFA Request with FIDO
211
+ * @description Initiate Approving an MFA Request with FIDO
212
+ *
213
+ * Initiates the approval process of an MFA Request using FIDO.
214
+ */
215
+ post: operations["mfaApproveFido"];
216
+ /**
217
+ * Finalize a FIDO MFA Approval
218
+ * @description Finalize a FIDO MFA Approval
219
+ *
220
+ * Adds an approver to a pending MFA request.
133
221
  *
134
- * Adds the current user as an approver of a pending MFA request of the [Status::RequiredApprovers] kind.
135
222
  * If the required number of approvers is reached, the MFA request is approved;
136
223
  * the confirmation receipt can be used to resume the original HTTP request.
137
224
  */
138
- patch: operations["mfaApproveCs"];
225
+ patch: operations["mfaApproveFidoComplete"];
139
226
  };
140
227
  "/v0/org/{org_id}/mfa/{mfa_id}/totp": {
141
228
  /**
142
229
  * Approve a TOTP MFA Request
143
230
  * @description Approve a TOTP MFA Request
144
231
  *
145
- * Adds an approver to a pending TOTP MFA request.
232
+ * Adds the current user as approver to a pending MFA request by providing TOTP code.
146
233
  *
147
234
  * If the required number of approvers is reached, the MFA request is approved;
148
235
  * the confirmation receipt can be used to resume the original HTTP request.
@@ -219,6 +306,15 @@ export interface paths {
219
306
  */
220
307
  put: operations["addUserToRole"];
221
308
  };
309
+ "/v0/org/{org_id}/roles/{role_id}/keys": {
310
+ /**
311
+ * List Role Keys
312
+ * @description List Role Keys
313
+ *
314
+ * Returns an array of all keys in a role.
315
+ */
316
+ get: operations["listRoleKeys"];
317
+ };
222
318
  "/v0/org/{org_id}/roles/{role_id}/keys/{key_id}": {
223
319
  /**
224
320
  * Remove Key
@@ -230,8 +326,11 @@ export interface paths {
230
326
  };
231
327
  "/v0/org/{org_id}/roles/{role_id}/tokens": {
232
328
  /**
233
- * List Tokens
234
- * @description List Tokens
329
+ * List a single page of Tokens (Deprecated)
330
+ * @deprecated
331
+ * @description List a single page of Tokens (Deprecated)
332
+ *
333
+ * **Deprecated**: Use `GET /org/{org_id}/session?role=`
235
334
  *
236
335
  * Returns all access tokens for a given role.
237
336
  * Only users in the role or owners can create a token for it.
@@ -246,8 +345,11 @@ export interface paths {
246
345
  */
247
346
  post: operations["createRoleToken"];
248
347
  /**
249
- * Revoke All Tokens
250
- * @description Revoke All Tokens
348
+ * Revoke All Tokens (Deprecated)
349
+ * @deprecated
350
+ * @description Revoke All Tokens (Deprecated)
351
+ *
352
+ * **Deprecated**: Use `DELETE /org/{org_id}/session?role=` instead
251
353
  *
252
354
  * Revokes all access tokens associated with a role.
253
355
  * Only users in the role or owners can perform this action.
@@ -256,14 +358,67 @@ export interface paths {
256
358
  };
257
359
  "/v0/org/{org_id}/roles/{role_id}/tokens/{session_id}": {
258
360
  /**
259
- * Revoke Token
260
- * @description Revoke Token
361
+ * Revoke Token (Deprecated)
362
+ * @deprecated
363
+ * @description Revoke Token (Deprecated)
364
+ *
365
+ * **Deprecated**: Use `DELETE /org/{org_id}/session/{session_id}`
261
366
  *
262
367
  * Revokes an access token associated with a role.
263
368
  * Only users in the role or owners can perform this action.
264
369
  */
265
370
  delete: operations["revokeRoleToken"];
266
371
  };
372
+ "/v0/org/{org_id}/roles/{role_id}/users": {
373
+ /**
374
+ * List Role Users.
375
+ * @description List Role Users.
376
+ *
377
+ * Returns an array of all users who have access to a role.
378
+ */
379
+ get: operations["listRoleUsers"];
380
+ };
381
+ "/v0/org/{org_id}/session": {
382
+ /**
383
+ * List sessions
384
+ * @description List sessions
385
+ *
386
+ * If no query parameters are provided, information for the current session is returned
387
+ */
388
+ get: operations["listSessions"];
389
+ /**
390
+ * Revoke existing session(s)
391
+ * @description Revoke existing session(s)
392
+ *
393
+ * Immediately revokes existing sessions, preventing them from being used or refreshed.
394
+ * If no query params are provided, the current session is revoked.
395
+ */
396
+ delete: operations["revokeSessions"];
397
+ };
398
+ "/v0/org/{org_id}/session/{session_id}": {
399
+ /**
400
+ * Get session information
401
+ * @description Get session information
402
+ */
403
+ get: operations["getSession"];
404
+ /**
405
+ * Revoke a session
406
+ * @description Revoke a session
407
+ *
408
+ * Immediately revokes an existing session, preventing it from being used or refreshed
409
+ */
410
+ delete: operations["revokeSession"];
411
+ };
412
+ "/v0/org/{org_id}/solana/sign/{pubkey}": {
413
+ /**
414
+ * Sign Solana Message
415
+ * @description Sign Solana Message
416
+ *
417
+ * Signs a Solana message with a given key.
418
+ * This is a pre-release feature.
419
+ */
420
+ post: operations["solanaSign"];
421
+ };
267
422
  "/v0/org/{org_id}/token/keys": {
268
423
  /**
269
424
  * Get Token-Accessible Keys
@@ -273,6 +428,64 @@ export interface paths {
273
428
  */
274
429
  get: operations["listTokenKeys"];
275
430
  };
431
+ "/v0/org/{org_id}/user/me": {
432
+ /**
433
+ * User Info
434
+ * @description User Info
435
+ *
436
+ * Retrieves information about the current user.
437
+ */
438
+ get: operations["aboutMe"];
439
+ };
440
+ "/v0/org/{org_id}/user/me/fido": {
441
+ /**
442
+ * Initiate registration of a FIDO key
443
+ * @description Initiate registration of a FIDO key
444
+ *
445
+ * Generates a challenge that must be answered to prove ownership of a key
446
+ */
447
+ post: operations["userRegisterFidoInit"];
448
+ /**
449
+ * Finalize registration of a FIDO key
450
+ * @description Finalize registration of a FIDO key
451
+ *
452
+ * Accepts the response to the challenge generated by the POST to this endpoint.
453
+ */
454
+ patch: operations["userRegisterFidoComplete"];
455
+ };
456
+ "/v0/org/{org_id}/user/me/totp": {
457
+ /**
458
+ * Initialize TOTP Reset
459
+ * @description Initialize TOTP Reset
460
+ *
461
+ * Creates a new TOTP challenge that must be answered to prove that the new TOTP
462
+ * was successfully imported into an authenticator app.
463
+ *
464
+ * This operation is allowed if EITHER
465
+ * - the user account is not yet initialized and no TOTP is already set, OR
466
+ * - the user has not configured any auth factors;
467
+ * otherwise, MFA is required.
468
+ */
469
+ post: operations["userResetTotpInit"];
470
+ /**
471
+ * Finalize resetting TOTP
472
+ * @description Finalize resetting TOTP
473
+ *
474
+ * Checks if the response contains the correct TOTP code corresponding to the
475
+ * challenge generated by the POST method of this endpoint.
476
+ */
477
+ patch: operations["userResetTotpComplete"];
478
+ };
479
+ "/v0/org/{org_id}/user/me/totp/verify": {
480
+ /**
481
+ * Verify TOTP
482
+ * @description Verify TOTP
483
+ *
484
+ * Checks if a given code matches the current TOTP code for the current user.
485
+ * Errors with 403 if the current user has not set up TOTP or the code fails verification.
486
+ */
487
+ post: operations["userVerifyTotp"];
488
+ };
276
489
  "/v0/org/{org_id}/users": {
277
490
  /**
278
491
  * List users in organization
@@ -280,30 +493,71 @@ export interface paths {
280
493
  */
281
494
  get: operations["listUsersInOrg"];
282
495
  /**
283
- * Adds a third-party user to the org
284
- * @description Adds a third-party user to the org
496
+ * Add a third-party user to the org
497
+ * @description Add a third-party user to the org
285
498
  */
286
499
  post: operations["createOidcUser"];
287
500
  };
288
- "/v0/totp": {
501
+ "/v0/org/{org_id}/users/oidc": {
502
+ /**
503
+ * Remove a third-party user from the org
504
+ * @description Remove a third-party user from the org
505
+ */
506
+ delete: operations["deleteOidcUser"];
507
+ };
508
+ "/v0/user/me/fido": {
509
+ /**
510
+ * Initiate registration of a FIDO key
511
+ * @deprecated
512
+ * @description Initiate registration of a FIDO key
513
+ *
514
+ * Generates a challenge that must be answered to prove ownership of a key
515
+ */
516
+ post: operations["registerFidoInitLegacy"];
517
+ /**
518
+ * Finalize registration of a FIDO key
519
+ * @deprecated
520
+ * @description Finalize registration of a FIDO key
521
+ *
522
+ * Accepts the response to the challenge generated by the POST to this endpoint.
523
+ */
524
+ patch: operations["registerFidoCompleteLegacy"];
525
+ };
526
+ "/v0/user/me/totp": {
289
527
  /**
290
- * Reset TOTP
291
- * @description Reset TOTP
528
+ * Initialize TOTP Reset
529
+ * @deprecated
530
+ * @description Initialize TOTP Reset
531
+ *
532
+ * Creates a new TOTP challenge that must be answered to prove that the new TOTP
533
+ * was successfully imported into an authenticator app.
534
+ *
535
+ * This operation is allowed if EITHER
536
+ * - the user account is not yet initialized and no TOTP is already set, OR
537
+ * - the user has not configured any auth factors;
538
+ * otherwise, MFA is required.
539
+ */
540
+ post: operations["resetTotpInitLegacy"];
541
+ /**
542
+ * Finalize resetting TOTP
543
+ * @deprecated
544
+ * @description Finalize resetting TOTP
292
545
  *
293
- * Creates and sets a new TOTP configuration for the current user,
294
- * overriding the existing one (if any).
546
+ * Checks if the response contains the correct TOTP code corresponding to the
547
+ * challenge generated by the POST method of this endpoint.
295
548
  */
296
- patch: operations["userResetTotp"];
549
+ patch: operations["resetTotpCompleteLegacy"];
297
550
  };
298
- "/v0/totp/verify/{code}": {
551
+ "/v0/user/me/totp/verify": {
299
552
  /**
300
553
  * Verify TOTP
554
+ * @deprecated
301
555
  * @description Verify TOTP
302
556
  *
303
557
  * Checks if a given code matches the current TOTP code for the current user.
304
558
  * Errors with 403 if the current user has not set up TOTP or the code fails verification.
305
559
  */
306
- get: operations["userVerifyTotp"];
560
+ post: operations["verifyTotpLegacy"];
307
561
  };
308
562
  "/v1/org/{org_id}/blob/sign/{key_id}": {
309
563
  /**
@@ -312,6 +566,13 @@ export interface paths {
312
566
  *
313
567
  * Signs an arbitrary blob with a given key.
314
568
  * This is a pre-release feature.
569
+ *
570
+ * - ECDSA signatures are serialized as big-endian r and s plus recovery-id
571
+ * byte v, which can in general take any of the values 0, 1, 2, or 3.
572
+ *
573
+ * - EdDSA signatures are serialized in the standard format.
574
+ *
575
+ * - BLS signatures are not supported on the blob-sign endpoint.
315
576
  */
316
577
  post: operations["blobSign"];
317
578
  };
@@ -330,6 +591,7 @@ export interface paths {
330
591
  * @description Sign EVM Transaction
331
592
  *
332
593
  * Signs an Ethereum (and other EVM) transaction with a given Secp256k1 key.
594
+ * Returns an RLP-encoded transaction with EIP-155 signature.
333
595
  *
334
596
  * The key must be associated with the role and organization on whose behalf this action is called.
335
597
  */
@@ -371,16 +633,6 @@ export interface paths {
371
633
  */
372
634
  post: operations["unstake"];
373
635
  };
374
- "/v1/org/{org_id}/solana/sign/{pubkey}": {
375
- /**
376
- * Sign Solana Message
377
- * @description Sign Solana Message
378
- *
379
- * Signs a Solana message with a given key.
380
- * This is a pre-release feature.
381
- */
382
- post: operations["solanaSign"];
383
- };
384
636
  "/v1/org/{org_id}/token/refresh": {
385
637
  /**
386
638
  * Refresh Signer Session
@@ -405,7 +657,11 @@ export interface components {
405
657
  */
406
658
  AcceptedValue: {
407
659
  MfaRequired: {
660
+ /** @description MFA request id */
408
661
  id: string;
662
+ /** @description Organization id */
663
+ org_id: string;
664
+ session?: components["schemas"]["NewSessionResponse"] | null;
409
665
  };
410
666
  };
411
667
  AddKeysToRoleRequest: {
@@ -442,15 +698,31 @@ export interface components {
442
698
  * }
443
699
  * ]
444
700
  */
445
- policy: Record<string, never>[] | null;
701
+ policy?: Record<string, never>[] | null;
446
702
  };
447
703
  AddThirdPartyUserRequest: {
704
+ /**
705
+ * @description User email
706
+ * @example alice@example.com
707
+ */
708
+ email: string;
448
709
  identity: components["schemas"]["OIDCIdentity"];
710
+ /** @description Optional login MFA policy */
711
+ mfa_policy?: Record<string, unknown> | null;
449
712
  role: components["schemas"]["MemberRole"];
450
713
  };
451
714
  ApprovalInfo: {
452
715
  timestamp: components["schemas"]["EpochDateTime"];
453
716
  };
717
+ /**
718
+ * @description WebAuthn Relying Parties may use AttestationConveyancePreference to specify
719
+ * their preference regarding attestation conveyance during credential
720
+ * generation.
721
+ *
722
+ * https://www.w3.org/TR/webauthn-2/#enumdef-attestationconveyancepreference
723
+ * @enum {string}
724
+ */
725
+ AttestationConveyancePreference: "none" | "indirect" | "direct" | "enterprise";
454
726
  /** @description Data required for both `authenticate` and `refresh`. */
455
727
  AuthData: {
456
728
  /** Format: int32 */
@@ -458,6 +730,136 @@ export interface components {
458
730
  epoch_token: components["schemas"]["B32"];
459
731
  other_token: string;
460
732
  };
733
+ /**
734
+ * @description Represents the assertion response used by clients when attempting to log in with a known credential
735
+ * https://www.w3.org/TR/webauthn-2/#authenticatorassertionresponse
736
+ */
737
+ AuthenticatorAssertionResponse: {
738
+ /**
739
+ * @description Contains the standard CTAP2 authenticator data. Must be a valid [`AuthenticatorData`].
740
+ * This contains information about how key was invoked.
741
+ * https://www.w3.org/TR/webauthn-2/#dom-authenticatorassertionresponse-authenticatordata
742
+ */
743
+ authenticatorData: string;
744
+ /**
745
+ * @description Contains UTF8 encoded JSON which must be a valid [`ClientData`]
746
+ * This data is combined with `authenticator_data` to produce the signature
747
+ * meaning the client attests to the correctness of this data.
748
+ * https://www.w3.org/TR/webauthn-2/#dom-authenticatorresponse-clientdatajson
749
+ */
750
+ clientDataJSON: string;
751
+ /**
752
+ * @description The signature of the concatenated `authenticatorData || hash` where
753
+ * `hash` is the SHA256 hash of the `clientDataJSON` buffer:
754
+ *
755
+ * Field Definition: https://www.w3.org/TR/webauthn-2/#dom-authenticatorassertionresponse-signature
756
+ * Step 11 of `getAssertion` specifies the concatenation: https://www.w3.org/TR/webauthn-2/#sctn-op-get-assertion
757
+ * Requirement for SHA-256: https://www.w3.org/TR/webauthn-2/#collectedclientdata-hash-of-the-serialized-client-data
758
+ */
759
+ signature: string;
760
+ /**
761
+ * @description Allows the authenticator to optionally declare the credential identifier they used.
762
+ * https://www.w3.org/TR/webauthn-2/#dom-authenticatorassertionresponse-userhandle
763
+ */
764
+ userHandle?: string | null;
765
+ };
766
+ /**
767
+ * @description This enumeration’s values describe authenticators' attachment modalities.
768
+ * Relying Parties use this to express a preferred authenticator attachment
769
+ * modality when calling navigator.credentials.create() to create a credential.
770
+ *
771
+ * https://www.w3.org/TR/webauthn-2/#enumdef-authenticatorattachment
772
+ * @enum {string}
773
+ */
774
+ AuthenticatorAttachment: "platform" | "cross-platform";
775
+ /**
776
+ * @description The AuthenticatorAttestationResponse interface represents the authenticator's
777
+ * response to a client’s request for the creation of a new public key
778
+ * credential. It contains information about the new credential that can be
779
+ * used to identify it for later use, and metadata that can be used by the
780
+ * WebAuthn Relying Party to assess the characteristics of the credential
781
+ * during registration.
782
+ *
783
+ * https://www.w3.org/TR/webauthn-2/#iface-authenticatorattestationresponse
784
+ */
785
+ AuthenticatorAttestationResponse: {
786
+ /**
787
+ * @description This attribute contains an attestation object, which is opaque to, and
788
+ * cryptographically protected against tampering by, the client. The
789
+ * attestation object contains both authenticator data and an attestation
790
+ * statement. The former contains the AAGUID, a unique credential ID, and
791
+ * the credential public key. The contents of the attestation statement are
792
+ * determined by the attestation statement format used by the
793
+ * authenticator. It also contains any additional information that the
794
+ * Relying Party's server requires to validate the attestation statement,
795
+ * as well as to decode and validate the authenticator data along with the
796
+ * JSON-compatible serialization of client data. For more details, see
797
+ * § 6.5 Attestation, § 6.5.4 Generating an Attestation Object, and Figure
798
+ * 6.
799
+ */
800
+ attestationObject: string;
801
+ /**
802
+ * @description This attribute, inherited from AuthenticatorResponse, contains the
803
+ * JSON-compatible serialization of client data (see § 6.5 Attestation)
804
+ * passed to the authenticator by the client in order to generate this
805
+ * credential. The exact JSON serialization MUST be preserved, as the hash
806
+ * of the serialized client data has been computed over it.
807
+ */
808
+ clientDataJSON: string;
809
+ };
810
+ /**
811
+ * @description WebAuthn Relying Parties may use the AuthenticatorSelectionCriteria
812
+ * dictionary to specify their requirements regarding authenticator
813
+ * attributes.
814
+ *
815
+ * https://www.w3.org/TR/webauthn-2/#dictdef-authenticatorselectioncriteria
816
+ */
817
+ AuthenticatorSelectionCriteria: {
818
+ authenticator_attachment?: components["schemas"]["AuthenticatorAttachment"] | null;
819
+ /**
820
+ * @description This member is retained for backwards compatibility with WebAuthn Level
821
+ * 1 and, for historical reasons, its naming retains the deprecated
822
+ * “resident” terminology for discoverable credentials. Relying Parties
823
+ * SHOULD set it to true if, and only if, residentKey is set to required.
824
+ *
825
+ * https://www.w3.org/TR/webauthn-2/#dom-authenticatorselectioncriteria-requireresidentkey
826
+ */
827
+ require_resident_key?: boolean;
828
+ resident_key?: components["schemas"]["ResidentKeyRequirement"] | null;
829
+ user_verification?: components["schemas"]["UserVerificationRequirement"];
830
+ };
831
+ /**
832
+ * @description Authenticators may implement various transports for communicating with
833
+ * clients. This enumeration defines hints as to how clients might communicate
834
+ * with a particular authenticator in order to obtain an assertion for a
835
+ * specific credential. Note that these hints represent the WebAuthn Relying
836
+ * Party's best belief as to how an authenticator may be reached. A Relying
837
+ * Party will typically learn of the supported transports for a public key
838
+ * credential via getTransports().
839
+ *
840
+ * https://www.w3.org/TR/webauthn-2/#enumdef-authenticatortransport
841
+ * @enum {string}
842
+ */
843
+ AuthenticatorTransport: "usb" | "nfc" | "ble" | "internal";
844
+ /** @description Request to sign an Avalanche transactions */
845
+ AvaSignRequest: {
846
+ /**
847
+ * @description Transaction to sign.
848
+ *
849
+ * Examples:
850
+ * - {"P": { "AddPermissionlessValidator": [TxJson](https://github.com/ava-labs/avalanche-rs/blob/avalanche-types-v0.1.3/crates/avalanche-types/src/platformvm/txs/add_permissionless_validator.rs#L14) }}
851
+ * - {"P": { "AddSubnetValidator": [TxJson](https://github.com/ava-labs/avalanche-rs/blob/avalanche-types-v0.1.3/crates/avalanche-types/src/platformvm/txs/add_subnet_validator.rs#L29) }}
852
+ * - {"P": { "AddValidator": [TxJson](https://github.com/ava-labs/avalanche-rs/blob/avalanche-types-v0.1.3/crates/avalanche-types/src/platformvm/txs/add_validator.rs#L12) }}
853
+ * - {"P": { "CreateChain": [TxJson](https://github.com/ava-labs/avalanche-rs/blob/avalanche-types-v0.1.3/crates/avalanche-types/src/platformvm/txs/create_chain.rs#L8) }}
854
+ * - {"P": { "CreateSubnet": [TxJson](https://github.com/ava-labs/avalanche-rs/blob/avalanche-types-v0.1.3/crates/avalanche-types/src/platformvm/txs/create_subnet.rs#L8) }}
855
+ * - {"P": { "Export": [TxJson](https://github.com/ava-labs/avalanche-rs/blob/avalanche-types-v0.1.3/crates/avalanche-types/src/platformvm/txs/export.rs#L12) }}
856
+ * - {"P": { "Import": [TxJson](https://github.com/ava-labs/avalanche-rs/blob/avalanche-types-v0.1.3/crates/avalanche-types/src/platformvm/txs/import.rs#L12) }}
857
+ * - {"X": { "Base": [TxJson](https://github.com/ava-labs/avalanche-rs/blob/avalanche-types-v0.1.3/crates/avalanche-types/src/avm/txs/mod.rs#L21) }}
858
+ * - {"X": { "Export": [TxJson](https://github.com/ava-labs/avalanche-rs/blob/avalanche-types-v0.1.3/crates/avalanche-types/src/avm/txs/export.rs#L16) }}
859
+ * - {"X": { "Import": [TxJson](https://github.com/ava-labs/avalanche-rs/blob/avalanche-types-v0.1.3/crates/avalanche-types/src/avm/txs/import.rs#L14) }}
860
+ */
861
+ tx: Record<string, never>;
862
+ };
461
863
  /** @description Wrapper around a zeroizing 32-byte fixed-size array */
462
864
  B32: string;
463
865
  /**
@@ -523,17 +925,24 @@ export interface components {
523
925
  /** @description Session ID */
524
926
  session_id: string;
525
927
  };
526
- ConfiguredMfa: OneOf<["Totp", {
527
- /** @description Named FIDO device (multiple can be configured per user, but the names must be different) */
528
- Fido: string;
529
- }]>;
928
+ ConfiguredMfa: {
929
+ /** @enum {string} */
930
+ type: "totp";
931
+ } | {
932
+ /** @description A unique credential id */
933
+ id: string;
934
+ /** @description A human-readable name given to the key */
935
+ name: string;
936
+ /** @enum {string} */
937
+ type: "fido";
938
+ };
530
939
  CreateKeyRequest: {
531
940
  /**
532
941
  * Format: int64
533
942
  * @description Chain id for which the key is allowed to sign messages
534
943
  * @example 5
535
944
  */
536
- chain_id: number | null;
945
+ chain_id?: number | null;
537
946
  /**
538
947
  * Format: int32
539
948
  * @description Number of keys to create
@@ -545,7 +954,7 @@ export interface components {
545
954
  * @description Allows users to specify a user other than themselves to receive the key
546
955
  * @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
547
956
  */
548
- owner: string | null;
957
+ owner?: string | null;
549
958
  };
550
959
  /** @description Optional create role request body */
551
960
  CreateRoleRequest: {
@@ -555,12 +964,28 @@ export interface components {
555
964
  */
556
965
  name: string;
557
966
  };
558
- CreateTokenRequest: components["schemas"]["RatchetConfig"] & {
967
+ CreateTokenRequest: components["schemas"]["RatchetConfig"] & ({
559
968
  /**
560
969
  * @description A human readable description of the purpose of the key
561
970
  * @example Validator Signing
562
971
  */
563
972
  purpose: string;
973
+ /**
974
+ * @description Controls what capabilities this session will have. By default, it has all
975
+ * signing capabilities, i.e., just the 'sign:*' scope.
976
+ * @example [
977
+ * "sign:*"
978
+ * ]
979
+ */
980
+ scopes?: string[] | null;
981
+ });
982
+ CubeSignerUserInfo: {
983
+ /** @description All multi-factor authentication methods configured for this user */
984
+ configured_mfa: components["schemas"]["ConfiguredMfa"][];
985
+ /** @description Set once the user successfully logs into CubeSigner */
986
+ initialized: boolean;
987
+ /** @description CubeSigner's user identifier */
988
+ user_id: string;
564
989
  };
565
990
  /**
566
991
  * @description Information produced by a successful deposit
@@ -590,6 +1015,119 @@ export interface components {
590
1015
  * @enum {string}
591
1016
  */
592
1017
  DepositType: "Canonical" | "Wrapper";
1018
+ DeriveKeyRequest: {
1019
+ /**
1020
+ * @description One or more derivation paths from which to derive keys.
1021
+ * @example [
1022
+ * "m/44'/60'/0'/0/0",
1023
+ * "m/44'/9000'/0'/0/0"
1024
+ * ]
1025
+ */
1026
+ derivation_path: string[];
1027
+ key_type: components["schemas"]["KeyType"];
1028
+ /**
1029
+ * @description Material-id of the mnemonic to use for derivation
1030
+ * @example 0x9f07be82d934fcb5d0f75dd24c2dfea8a85a4d0c289d58828b3537fae24d32b8
1031
+ */
1032
+ mnemonic_id: string;
1033
+ };
1034
+ /**
1035
+ * @example {
1036
+ * "chain_id": 1337,
1037
+ * "typed_data": {
1038
+ * "domain": {
1039
+ * "chainId": 1337,
1040
+ * "name": "Ether Mail",
1041
+ * "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC",
1042
+ * "version": "1"
1043
+ * },
1044
+ * "message": {
1045
+ * "contents": "Hello, Bob!",
1046
+ * "from": {
1047
+ * "name": "Cow",
1048
+ * "wallets": [
1049
+ * "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826",
1050
+ * "0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF"
1051
+ * ]
1052
+ * },
1053
+ * "to": {
1054
+ * "name": "Bob",
1055
+ * "wallets": [
1056
+ * "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB",
1057
+ * "0xB0BdaBea57B0BDABeA57b0bdABEA57b0BDabEa57",
1058
+ * "0xB0B0b0b0b0b0B000000000000000000000000000"
1059
+ * ]
1060
+ * }
1061
+ * },
1062
+ * "primaryType": "Mail",
1063
+ * "types": {
1064
+ * "EIP712Domain": [
1065
+ * {
1066
+ * "name": "name",
1067
+ * "type": "string"
1068
+ * },
1069
+ * {
1070
+ * "name": "version",
1071
+ * "type": "string"
1072
+ * },
1073
+ * {
1074
+ * "name": "chainId",
1075
+ * "type": "uint256"
1076
+ * },
1077
+ * {
1078
+ * "name": "verifyingContract",
1079
+ * "type": "address"
1080
+ * }
1081
+ * ],
1082
+ * "Group": [
1083
+ * {
1084
+ * "name": "name",
1085
+ * "type": "string"
1086
+ * },
1087
+ * {
1088
+ * "name": "members",
1089
+ * "type": "Person[]"
1090
+ * }
1091
+ * ],
1092
+ * "Mail": [
1093
+ * {
1094
+ * "name": "from",
1095
+ * "type": "Person"
1096
+ * },
1097
+ * {
1098
+ * "name": "to",
1099
+ * "type": "Person"
1100
+ * },
1101
+ * {
1102
+ * "name": "contents",
1103
+ * "type": "string"
1104
+ * }
1105
+ * ],
1106
+ * "Person": [
1107
+ * {
1108
+ * "name": "name",
1109
+ * "type": "string"
1110
+ * },
1111
+ * {
1112
+ * "name": "wallets",
1113
+ * "type": "address[]"
1114
+ * }
1115
+ * ]
1116
+ * }
1117
+ * }
1118
+ * }
1119
+ */
1120
+ Eip712SignRequest: {
1121
+ /**
1122
+ * Format: int64
1123
+ * @description The chain-id to which this typed data will be sent
1124
+ */
1125
+ chain_id: number;
1126
+ /** @description EIP-712 typed data. Refer to the JSON schema defined in EIP-712. */
1127
+ typed_data: Record<string, never>;
1128
+ };
1129
+ /** @default null */
1130
+ Empty: Record<string, unknown> | null;
593
1131
  /**
594
1132
  * @description Epoch is a quoted `uint64`.
595
1133
  * @example 256
@@ -607,6 +1145,8 @@ export interface components {
607
1145
  accepted?: components["schemas"]["AcceptedValue"] | null;
608
1146
  /** @description Error message */
609
1147
  message: string;
1148
+ /** @description Optional request identifier */
1149
+ request_id?: string;
610
1150
  };
611
1151
  /**
612
1152
  * @example {
@@ -666,6 +1206,26 @@ export interface components {
666
1206
  eth2_sign_request: Record<string, never>;
667
1207
  network: components["schemas"]["Network"];
668
1208
  };
1209
+ /** @description Sent from the client to the server to answer a fido challenge */
1210
+ FidoAssertAnswer: {
1211
+ /** @description The ID of the challenge that was returned from the POST endpoint */
1212
+ challenge_id: string;
1213
+ credential: components["schemas"]["PublicKeyCredential"];
1214
+ };
1215
+ /** @description Sent from the client to the server to answer a fido challenge */
1216
+ FidoCreateChallengeAnswer: {
1217
+ /** @description The ID of the challenge that was returned from the POST endpoint */
1218
+ challenge_id: string;
1219
+ credential: components["schemas"]["PublicKeyCredential"];
1220
+ };
1221
+ /** @description Declares intent to register a new FIDO key */
1222
+ FidoCreateRequest: {
1223
+ /**
1224
+ * @description A human-readable name for the new fido credential
1225
+ * @example Work Yubikey
1226
+ */
1227
+ name: string;
1228
+ };
669
1229
  /**
670
1230
  * @description Specifies a fork of the `BeaconChain`, to prevent replay attacks.
671
1231
  * The schema of `Fork` is defined in the [Beacon chain
@@ -713,7 +1273,7 @@ export interface components {
713
1273
  genesis_validators_root: string;
714
1274
  };
715
1275
  GetKeysInOrgRequest: {
716
- key_type: components["schemas"]["KeyType"] | null;
1276
+ key_type?: components["schemas"]["KeyType"] | null;
717
1277
  };
718
1278
  /** @description Stats pertaining the the sender `cube3signer` instance */
719
1279
  HeartbeatRequest: {
@@ -762,7 +1322,7 @@ export interface components {
762
1322
  *
763
1323
  * TODO: Make non-optional once we do not support proxies without version information
764
1324
  */
765
- proxy_version: string | null;
1325
+ proxy_version?: string | null;
766
1326
  };
767
1327
  /**
768
1328
  * @description Information about the request.
@@ -773,22 +1333,34 @@ export interface components {
773
1333
  */
774
1334
  HttpRequest: {
775
1335
  /** @description HTTP request body */
776
- body: Record<string, unknown> | null;
1336
+ body?: Record<string, unknown> | null;
777
1337
  /** @description HTTP method of the request */
778
1338
  method: string;
779
1339
  /** @description HTTP path of the request (including host or not?) */
780
1340
  path: string;
781
1341
  };
782
- ImportKeyLegacyRequest: {
1342
+ /**
1343
+ * @description Proof that an end-user provided CubeSigner with a valid auth token
1344
+ * (either an OIDC token or a CubeSigner session token)
1345
+ */
1346
+ IdentityProof: ({
783
1347
  /**
784
- * Format: int64
785
- * @description The chain ID of the chain that the key will be used for
786
- * @example 5
1348
+ * @description OIDC audience; set only if the proof was obtained by using OIDC token.
1349
+ *
1350
+ * In other words, presence of this field testifies that authorization was obtained via OIDC.
787
1351
  */
788
- chain_id: number | null;
789
- /** @description The key to import encrypted with the public key of the organization */
790
- key_material: components["schemas"]["RsaOaepXChaChaMaterial"][];
791
- key_type: components["schemas"]["KeyType"];
1352
+ aud?: string | null;
1353
+ /**
1354
+ * @description The email associated with the user
1355
+ * @example user@email.com
1356
+ */
1357
+ email: string;
1358
+ exp_epoch: components["schemas"]["EpochDateTime"];
1359
+ identity?: components["schemas"]["OIDCIdentity"] | null;
1360
+ user_info?: components["schemas"]["CubeSignerUserInfo"] | null;
1361
+ }) & {
1362
+ /** @description An opaque identifier for the proof */
1363
+ id: string;
792
1364
  };
793
1365
  ImportKeyRequest: components["schemas"]["KeyImportKey"] & {
794
1366
  /** @description A set of encrypted keys to be imported */
@@ -818,11 +1390,14 @@ export interface components {
818
1390
  * @example alice@acme.com
819
1391
  */
820
1392
  email: string;
1393
+ /** @description Optional login MFA policy */
1394
+ mfa_policy?: Record<string, unknown> | null;
821
1395
  /**
822
1396
  * @description The user's full name
823
1397
  * @example Alice Wonderland
824
1398
  */
825
1399
  name: string;
1400
+ role?: components["schemas"]["MemberRole"] | null;
826
1401
  /**
827
1402
  * @description Skip sending an invitation email to this user if true.
828
1403
  *
@@ -832,6 +1407,13 @@ export interface components {
832
1407
  */
833
1408
  skip_email: boolean;
834
1409
  };
1410
+ /** @description Derivation-related metadata for keys derived from a long-lived mnemonic */
1411
+ KeyDerivationInfo: {
1412
+ /** @description The derivation path used to derive this key */
1413
+ derivation_path: string;
1414
+ /** @description The mnemonic-id of the key's parent mnemonic */
1415
+ mnemonic_id: string;
1416
+ };
835
1417
  /** @description A wrapped key-import key */
836
1418
  KeyImportKey: {
837
1419
  /** @description Base64-encoded, encrypted data key. */
@@ -849,8 +1431,30 @@ export interface components {
849
1431
  /** @description Base64-encoded, encrypted secret key. */
850
1432
  sk_enc: string;
851
1433
  };
852
- KeyInfo: {
853
- /** @description Whether the key is enabled (only enabled keys may be used for signing) */
1434
+ KeyInRoleInfo: {
1435
+ /**
1436
+ * @description Key ID
1437
+ * @example Key#0x8e3484687e66cdd26cf04c3647633ab4f3570148
1438
+ */
1439
+ key_id: string;
1440
+ /**
1441
+ * @description Policies that are checked before this key is used on behalf of this role
1442
+ * @example [
1443
+ * {
1444
+ * "TxReceiver": "0x8c594691c0e592ffa21f153a16ae41db5befcaaa"
1445
+ * },
1446
+ * {
1447
+ * "TxDeposit": {
1448
+ * "kind": "Canonical"
1449
+ * }
1450
+ * }
1451
+ * ]
1452
+ */
1453
+ policy?: Record<string, never>[];
1454
+ };
1455
+ KeyInfo: {
1456
+ derivation_info?: components["schemas"]["KeyDerivationInfo"] | null;
1457
+ /** @description Whether the key is enabled (only enabled keys may be used for signing) */
854
1458
  enabled: boolean;
855
1459
  /**
856
1460
  * @description The id of the key: "Key#" followed by a unique identifier specific to
@@ -871,14 +1475,22 @@ export interface components {
871
1475
  owner: string;
872
1476
  /**
873
1477
  * @description Key policy
874
- * @example []
1478
+ * @example [
1479
+ * "AllowRawBlobSigning",
1480
+ * {
1481
+ * "RequireMfa": {
1482
+ * "count": 1
1483
+ * }
1484
+ * }
1485
+ * ]
875
1486
  */
876
1487
  policy: Record<string, never>[];
877
1488
  /**
878
1489
  * @description Hex-encoded, serialized public key. The format used depends on the key type:
879
- * - secp256k1 keys use 65-byte uncompressed SECG format;
1490
+ * - Secp256k1 keys use 65-byte uncompressed SECG format;
1491
+ * - Stark keys use 33-byte compressed SECG format;
880
1492
  * - BLS keys use 48-byte compressed BLS12-381 (ZCash) format;
881
- * - ed25519 keys use the canonical 64-byte encoding specified in RFC 8032.
1493
+ * - Ed25519 keys use the canonical 32-byte encoding specified in RFC 8032.
882
1494
  * @example 0x04d2688b6bc2ce7f9879b9e745f3c4dc177908c5cef0c1b64cff19ae7ff27dee623c64fe9d9c325c7fbbc748bbd5f607ce14dd83e28ebbbb7d3e7f2ffb70a79431
883
1495
  */
884
1496
  public_key: string;
@@ -889,41 +1501,45 @@ export interface components {
889
1501
  purpose: string;
890
1502
  };
891
1503
  /** @enum {string} */
892
- KeyType: "SecpEthAddr" | "SecpBtc" | "SecpBtcTest" | "BlsPub" | "BlsInactive" | "Ed25519SolanaAddr" | "Ed25519SuiAddr" | "Ed25519AptosAddr";
893
- KeyWithPolicies: {
894
- /**
895
- * @description Key ID
896
- * @example Key#0x8e3484687e66cdd26cf04c3647633ab4f3570148
897
- */
898
- key_id: string;
899
- /**
900
- * @description Policies that are checked before this key is used on behalf of this role
901
- * @example [
902
- * {
903
- * "TxReceiver": "0x8c594691c0e592ffa21f153a16ae41db5befcaaa"
904
- * },
905
- * {
906
- * "TxDeposit": {
907
- * "kind": "Canonical"
908
- * }
909
- * }
910
- * ]
911
- */
912
- policy?: Record<string, never>[];
913
- };
1504
+ KeyType: "SecpEthAddr" | "SecpBtc" | "SecpBtcTest" | "SecpAvaAddr" | "SecpAvaTestAddr" | "BlsPub" | "BlsInactive" | "Ed25519SolanaAddr" | "Ed25519SuiAddr" | "Ed25519AptosAddr" | "Ed25519CardanoAddrVk" | "Ed25519StellarAddr" | "Mnemonic" | "Stark";
1505
+ /**
1506
+ * @description Wrapper around encrypted [UnencryptedLastEvalKey] bytes.
1507
+ *
1508
+ * We serialize this into a base64url-encoded string and return to the user
1509
+ * so that they can pass this back to us as a url query parameter.
1510
+ */
1511
+ LastEvalKey: string;
914
1512
  /**
915
1513
  * @description Describes whether a user in an org is an Owner or just a regular member
916
1514
  * @enum {string}
917
1515
  */
918
- MemberRole: "Owner" | "Member" | "Alien";
1516
+ MemberRole: "Alien" | "Member" | "Owner";
1517
+ /** @description Returned as a response from multiple routes (e.g., 'get mfa', 'approve mfa', 'approve totp'). */
1518
+ MfaRequestInfo: {
1519
+ expires_at: components["schemas"]["EpochDateTime"];
1520
+ /** @description Approval request ID. */
1521
+ id: string;
1522
+ receipt?: components["schemas"]["Receipt"] | null;
1523
+ request: components["schemas"]["HttpRequest"];
1524
+ status: components["schemas"]["Status"];
1525
+ };
919
1526
  /** @enum {string} */
920
- MfaType: "CubeSigner" | "Totp";
1527
+ MfaType: "CubeSigner" | "Totp" | "Fido";
921
1528
  /**
922
1529
  * @description Network name ('mainnet', 'prater', 'goerli')
923
1530
  * @example goerli
924
1531
  * @enum {string}
925
1532
  */
926
- Network: "mainnet" | "prater" | "goerli";
1533
+ Network: "mainnet" | "prater" | "goerli" | "holesky";
1534
+ /** @description Information about a new session, returned from multiple endpoints (e.g., login, refresh, etc.). */
1535
+ NewSessionResponse: {
1536
+ session_info: components["schemas"]["ClientSessionInfo"];
1537
+ /**
1538
+ * @description New token to be used for authentication. Requests to signing endpoints
1539
+ * should include this value in the `Authorization` header
1540
+ */
1541
+ token: string;
1542
+ };
927
1543
  /**
928
1544
  * @description Represents a globally unique OIDC-authorized user by expressing the full "path" to a user. That is:
929
1545
  *
@@ -968,23 +1584,13 @@ export interface components {
968
1584
  * ]
969
1585
  */
970
1586
  scopes: string[];
971
- };
972
- OidcLoginResponse: {
973
- /**
974
- * @description Token to be used for signing auth. Requests to signing endpoints
975
- * should include this value in the `Authorization` header
976
- */
977
- token: string;
1587
+ tokens?: components["schemas"]["RatchetConfig"];
978
1588
  };
979
1589
  OrgInfo: {
980
1590
  /** @description When false, all cryptographic operations involving keys in this org are disabled. */
981
1591
  enabled: boolean;
982
- /**
983
- * @description The RSA public key to use when importing keys into this organization. This string is the
984
- * hex encoding of the DER representation of the key.
985
- * @example 30820222300d06092a864886f70d01010105000382020f003082020a0282020100c89765b8f347caafbec09fcb17740e032d854ec99f2d9c16167be335339b4fdeba18a7f13d8e8b7ae7d689cab63d8ecdf548f4746eacaf95b61fef76ade9f81b3c038891c52542fd352697b618afbea6103723c28f2db450e9d852be16a4dc2cbc9442da9a6610044009e056ba90728f0b9888d9b036e493aaed168ccf930fa2f730b17eb3ad6f455a792b762c47f3d3c6b7a7c458556a592e688791599a576bf2149d8e9614db775e7a48602d237a347d5399c681f7f7d9c81f6a64e7cfd356bba545d45e5023ca1f09a66a1d4550f61cf2c4367e14997b5d749bb0326a44d058119e8caf7fd79d517eb2d11dddb2db329f350698f0f978d5e150bb402c8bc4c5ec36d6f38db3f3a204813cda9f52dbcee809204f8e35a455c0e110e10eec41f734f2d55a058a7a21fa90602f94da6de2378ff61e7b3550b77e53d75d7b3d3b39ccab0e5101b916dab01da096f7627175d5b68a1a6464ce5be3e95e7c464d69eb0b675057705c11bc79c3543313b0d9c703c50dc1a16dd9b55e5599e3b02e527b85938e7b81c65e56960bcd7c7a266b07dc05107fd0d7d3c208a878eb0fc74b0d007f421d0c5b28cf78eb441aa0166dceeeac255d68622492f9b526ae13c93754ea8eda96f3b764ba931f8d49c7de8b00ac53d993ab9b08fd2892d8e82cc1a9746f0b426b19256d13d780445e150ce81da0b3c96e32559cb47cb5cb93f805650203010001
986
- */
987
- key_import_key: string;
1592
+ /** @description Deprecated: this field should be ignored. */
1593
+ key_import_key?: string | null;
988
1594
  /**
989
1595
  * @description The organization's universally unique key-wrapping-key identifier.
990
1596
  * This value is required when setting up key export.
@@ -1021,9 +1627,350 @@ export interface components {
1021
1627
  */
1022
1628
  policy?: Record<string, never>[];
1023
1629
  };
1630
+ /**
1631
+ * @description The rocket query parameter representing the page from which to start a paginated query.
1632
+ *
1633
+ * MUST be named `<page>` in rocket url spec so that 'serde(rename = "page.*")' below continues to work
1634
+ */
1635
+ Page: {
1636
+ /**
1637
+ * Format: int32
1638
+ * @description Max number of items to return per page.
1639
+ *
1640
+ * If the actual number of returned items may be less that this, even if there exist more
1641
+ * data in the result set. To reliably determine if more data is left in the result set,
1642
+ * inspect the [UnencryptedLastEvalKey] value in the response object.
1643
+ */
1644
+ "page.size"?: number;
1645
+ /**
1646
+ * @description The start of the page. Omit to start from the beginning; otherwise, only specify a
1647
+ * the exact value previously returned as 'last_evaluated_key' from the same endpoint.
1648
+ */
1649
+ "page.start"?: string | null;
1650
+ };
1651
+ /**
1652
+ * @description This type represents a wire-encodable form of the PublicKeyCredential interface
1653
+ * Clients may need to manually encode into this format to communicate with the server
1654
+ *
1655
+ * The PublicKeyCredential interface inherits from Credential
1656
+ * [CREDENTIAL-MANAGEMENT-1], and contains the attributes that are returned to
1657
+ * the caller when a new credential is created, or a new assertion is
1658
+ * requested.
1659
+ *
1660
+ * https://www.w3.org/TR/webauthn-2/#iface-pkcredential
1661
+ */
1662
+ PublicKeyCredential: {
1663
+ /**
1664
+ * @description This internal slot contains the results of processing client extensions
1665
+ * requested by the Relying Party upon the Relying Party's invocation of
1666
+ * either navigator.credentials.create() or navigator.credentials.get().
1667
+ *
1668
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredential-clientextensionsresults-slot
1669
+ *
1670
+ * IMPLEMENTATION NOTE: The type for this field comes from the type of getClientExtensionResults() which as the following doc:
1671
+ *
1672
+ * This operation returns the value of [[clientExtensionsResults]], which is a map containing extension identifier → client extension output entries produced by the extension’s client extension processing.
1673
+ * https://www.w3.org/TR/webauthn-2/#ref-for-dom-publickeycredential-getclientextensionresults
1674
+ */
1675
+ clientExtensionResults?: Record<string, unknown> | null;
1676
+ /**
1677
+ * @description This internal slot contains the credential ID, chosen by the
1678
+ * authenticator. The credential ID is used to look up credentials for use,
1679
+ * and is therefore expected to be globally unique with high probability
1680
+ * across all credentials of the same type, across all authenticators.
1681
+ *
1682
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredential-identifier-slot
1683
+ */
1684
+ id: string;
1685
+ /** @description Authenticators respond to Relying Party requests by returning an object derived from the AuthenticatorResponse interface */
1686
+ response: components["schemas"]["AuthenticatorAttestationResponse"] | components["schemas"]["AuthenticatorAssertionResponse"];
1687
+ };
1688
+ /**
1689
+ * @description Defines the parameters for the creation of a new public key credential
1690
+ *
1691
+ * https://www.w3.org/TR/webauthn-2/#dictdef-publickeycredentialcreationoptions
1692
+ */
1693
+ PublicKeyCredentialCreationOptions: {
1694
+ attestation?: components["schemas"]["AttestationConveyancePreference"];
1695
+ authenticator_selection?: components["schemas"]["AuthenticatorSelectionCriteria"] | null;
1696
+ /**
1697
+ * @description This member contains a challenge intended to be used for generating the
1698
+ * newly created credential’s attestation object. See the § 13.4.3
1699
+ * Cryptographic Challenges security consideration.
1700
+ *
1701
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialcreationoptions-challenge
1702
+ */
1703
+ challenge: string;
1704
+ /**
1705
+ * @description This member is intended for use by Relying Parties that wish to limit
1706
+ * the creation of multiple credentials for the same account on a single
1707
+ * authenticator. The client is requested to return an error if the new
1708
+ * credential would be created on an authenticator that also contains one
1709
+ * of the credentials enumerated in this parameter.
1710
+ *
1711
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialcreationoptions-excludecredentials
1712
+ */
1713
+ exclude_credentials?: components["schemas"]["PublicKeyCredentialDescriptor"][];
1714
+ /**
1715
+ * @description This member contains additional parameters requesting additional
1716
+ * processing by the client and authenticator. For example, the caller may
1717
+ * request that only authenticators with certain capabilities be used to
1718
+ * create the credential, or that particular information be returned in the
1719
+ * attestation object. Some extensions are defined in § 9 WebAuthn
1720
+ * Extensions; consult the IANA "WebAuthn Extension Identifiers" registry
1721
+ * [IANA-WebAuthn-Registries] established by [RFC8809] for an up-to-date
1722
+ * list of registered WebAuthn Extensions.
1723
+ *
1724
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialcreationoptions-extensions
1725
+ */
1726
+ extensions?: Record<string, unknown> | null;
1727
+ /**
1728
+ * @description This member contains information about the desired properties of the
1729
+ * credential to be created. The sequence is ordered from most preferred to
1730
+ * least preferred. The client makes a best-effort to create the most
1731
+ * preferred credential that it can.
1732
+ *
1733
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialcreationoptions-pubkeycredparams
1734
+ */
1735
+ pub_key_cred_params: components["schemas"]["PublicKeyCredentialParameters"][];
1736
+ rp: components["schemas"]["PublicKeyCredentialRpEntity"];
1737
+ /**
1738
+ * Format: int32
1739
+ * @description This member specifies a time, in milliseconds, that the caller is
1740
+ * willing to wait for the call to complete. This is treated as a hint, and
1741
+ * MAY be overridden by the client.
1742
+ *
1743
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialcreationoptions-timeout
1744
+ */
1745
+ timeout?: number | null;
1746
+ user?: components["schemas"]["PublicKeyCredentialUserEntity"] | null;
1747
+ };
1748
+ /**
1749
+ * @description This dictionary contains the attributes that are specified by a caller when
1750
+ * referring to a public key credential as an input parameter to the create()
1751
+ * or get() methods. It mirrors the fields of the PublicKeyCredential object
1752
+ * returned by the latter methods.
1753
+ *
1754
+ * https://www.w3.org/TR/webauthn-2/#dictionary-credential-descriptor
1755
+ */
1756
+ PublicKeyCredentialDescriptor: {
1757
+ /**
1758
+ * @description This member contains the credential ID of the public key credential the caller is referring to.
1759
+ *
1760
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialdescriptor-id
1761
+ */
1762
+ id: string;
1763
+ /**
1764
+ * @description This OPTIONAL member contains a hint as to how the client might
1765
+ * communicate with the managing authenticator of the public key credential
1766
+ * the caller is referring to. The values SHOULD be members of
1767
+ * AuthenticatorTransport but client platforms MUST ignore unknown values.
1768
+ *
1769
+ * The getTransports() operation can provide suitable values for this
1770
+ * member. When registering a new credential, the Relying Party SHOULD
1771
+ * store the value returned from getTransports(). When creating a
1772
+ * PublicKeyCredentialDescriptor for that credential, the Relying Party
1773
+ * SHOULD retrieve that stored value and set it as the value of the
1774
+ * transports member.
1775
+ */
1776
+ transports?: components["schemas"]["AuthenticatorTransport"][] | null;
1777
+ type: components["schemas"]["PublicKeyCredentialType"];
1778
+ };
1779
+ /**
1780
+ * @description This dictionary is used to supply additional parameters when creating a new
1781
+ * credential.
1782
+ *
1783
+ * https://www.w3.org/TR/webauthn-2/#dictionary-credential-params
1784
+ */
1785
+ PublicKeyCredentialParameters: {
1786
+ /**
1787
+ * Format: int64
1788
+ * @description This member specifies the cryptographic signature algorithm with which
1789
+ * the newly generated credential will be used, and thus also the type of
1790
+ * asymmetric key pair to be generated, e.g., RSA or Elliptic Curve.
1791
+ */
1792
+ alg: number;
1793
+ type: components["schemas"]["PublicKeyCredentialType"];
1794
+ };
1795
+ /**
1796
+ * @description The `PublicKeyCredentialRequestOptions` dictionary supplies get() with the
1797
+ * data it needs to generate an assertion. Its challenge member MUST be
1798
+ * present, while its other members are OPTIONAL.
1799
+ *
1800
+ * This struct is also used as part of the verification procedure for assertions
1801
+ */
1802
+ PublicKeyCredentialRequestOptions: {
1803
+ /**
1804
+ * @description This OPTIONAL member contains a list of PublicKeyCredentialDescriptor
1805
+ * objects representing public key credentials acceptable to the caller, in
1806
+ * descending order of the caller’s preference (the first item in the list
1807
+ * is the most preferred credential, and so on down the list).
1808
+ *
1809
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialrequestoptions-allowcredentials
1810
+ */
1811
+ allow_credentials?: components["schemas"]["PublicKeyCredentialDescriptor"][];
1812
+ /**
1813
+ * @description This member represents a challenge that the selected authenticator
1814
+ * signs, along with other data, when producing an authentication
1815
+ * assertion.
1816
+ *
1817
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialrequestoptions-challenge
1818
+ */
1819
+ challenge: string;
1820
+ extensions?: Record<string, unknown> | null;
1821
+ /**
1822
+ * @description This OPTIONAL member specifies the relying party identifier claimed by
1823
+ * the caller. If omitted, its value will be the CredentialsContainer
1824
+ * object’s relevant settings object's origin's effective domain.
1825
+ *
1826
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialrequestoptions-rpid
1827
+ */
1828
+ rp_id?: string | null;
1829
+ /**
1830
+ * Format: int32
1831
+ * @description This OPTIONAL member specifies a time, in milliseconds, that the caller
1832
+ * is willing to wait for the call to complete. The value is treated as a
1833
+ * hint, and MAY be overridden by the client.
1834
+ *
1835
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialrequestoptions-timeout
1836
+ */
1837
+ timeout?: number | null;
1838
+ user_verification?: components["schemas"]["UserVerificationRequirement"];
1839
+ };
1840
+ /**
1841
+ * @description The PublicKeyCredentialRpEntity dictionary is used to supply additional
1842
+ * Relying Party attributes when creating a new credential.
1843
+ *
1844
+ * https://www.w3.org/TR/webauthn-2/#dictionary-rp-credential-params
1845
+ */
1846
+ PublicKeyCredentialRpEntity: {
1847
+ /**
1848
+ * @description A unique identifier for the Relying Party entity, which sets the RP ID.
1849
+ *
1850
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialrpentity-id
1851
+ */
1852
+ id: string;
1853
+ /**
1854
+ * @description A human-palatable name for the entity. Its function depends on what the
1855
+ * PublicKeyCredentialEntity represents: When inherited by
1856
+ * PublicKeyCredentialRpEntity it is a human-palatable identifier for the
1857
+ * Relying Party, intended only for display. For example, "ACME
1858
+ * Corporation", "Wonderful Widgets, Inc." or "ОАО Примертех".
1859
+ *
1860
+ * Relying Parties SHOULD perform enforcement, as prescribed in Section 2.3
1861
+ * of [RFC8266] for the Nickname Profile of the PRECIS FreeformClass
1862
+ * [RFC8264], when setting name's value, or displaying the value to the
1863
+ * user.
1864
+ *
1865
+ * This string MAY contain language and direction metadata. Relying Parties
1866
+ * SHOULD consider providing this information. See § 6.4.2 Language and
1867
+ * Direction Encoding about how this metadata is encoded.
1868
+ */
1869
+ name: string;
1870
+ };
1871
+ /**
1872
+ * @description This enumeration defines the valid credential types. It is an extension
1873
+ * point; values can be added to it in the future, as more credential types are
1874
+ * defined. The values of this enumeration are used for versioning the
1875
+ * Authentication Assertion and attestation structures according to the type of
1876
+ * the authenticator. Currently one credential type is defined, namely
1877
+ * "public-key".
1878
+ *
1879
+ * https://www.w3.org/TR/webauthn-2/#enumdef-publickeycredentialtype
1880
+ * @enum {string}
1881
+ */
1882
+ PublicKeyCredentialType: "public-key";
1883
+ /**
1884
+ * @description The PublicKeyCredentialUserEntity dictionary is used to supply additional
1885
+ * user account attributes when creating a new credential.
1886
+ */
1887
+ PublicKeyCredentialUserEntity: {
1888
+ /**
1889
+ * @description A human-palatable name for the user account, intended only for display.
1890
+ * For example, "Alex Müller" or "田中倫". The Relying Party SHOULD let the
1891
+ * user choose this, and SHOULD NOT restrict the choice more than
1892
+ * necessary.
1893
+ *
1894
+ * Relying Parties SHOULD perform enforcement, as prescribed in Section 2.3
1895
+ * of [RFC8266] for the Nickname Profile of the PRECIS FreeformClass
1896
+ * [RFC8264], when setting displayName's value, or displaying the value to
1897
+ * the user.
1898
+ *
1899
+ * This string MAY contain language and direction metadata. Relying Parties
1900
+ * SHOULD consider providing this information. See § 6.4.2 Language and
1901
+ * Direction Encoding about how this metadata is encoded.
1902
+ *
1903
+ * Clients SHOULD perform enforcement, as prescribed in Section 2.3 of
1904
+ * [RFC8266] for the Nickname Profile of the PRECIS FreeformClass
1905
+ * [RFC8264], on displayName's value prior to displaying the value to the
1906
+ * user or including the value as a parameter of the
1907
+ * authenticatorMakeCredential operation.
1908
+ *
1909
+ * When clients, client platforms, or authenticators display a
1910
+ * displayName's value, they should always use UI elements to provide a
1911
+ * clear boundary around the displayed value, and not allow overflow into
1912
+ * other elements [css-overflow-3].
1913
+ *
1914
+ * Authenticators MUST accept and store a 64-byte minimum length for a
1915
+ * displayName member’s value. Authenticators MAY truncate a displayName
1916
+ * member’s value so that it fits within 64 bytes. See § 6.4.1 String
1917
+ * Truncation about truncation and other considerations.
1918
+ *
1919
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialuserentity-displayname
1920
+ */
1921
+ displayName: string;
1922
+ /**
1923
+ * @description The user handle of the user account entity. A user handle is an opaque
1924
+ * byte sequence with a maximum size of 64 bytes, and is not meant to be
1925
+ * displayed to the user.
1926
+ *
1927
+ * To ensure secure operation, authentication and authorization decisions
1928
+ * MUST be made on the basis of this id member, not the displayName nor
1929
+ * name members. See Section 6.1 of [RFC8266].
1930
+ *
1931
+ * The user handle MUST NOT contain personally identifying information
1932
+ * about the user, such as a username or e-mail address; see § 14.6.1 User
1933
+ * Handle Contents for details. The user handle MUST NOT be empty, though
1934
+ * it MAY be null.
1935
+ *
1936
+ * Note: the user handle ought not be a constant value across different
1937
+ * accounts, even for non-discoverable credentials, because some
1938
+ * authenticators always create discoverable credentials. Thus a constant
1939
+ * user handle would prevent a user from using such an authenticator with
1940
+ * more than one account at the Relying Party.
1941
+ *
1942
+ * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialuserentity-id
1943
+ */
1944
+ id: string;
1945
+ /**
1946
+ * @description When inherited by PublicKeyCredentialUserEntity, it is a human-palatable
1947
+ * identifier for a user account. It is intended only for display, i.e.,
1948
+ * aiding the user in determining the difference between user accounts with
1949
+ * similar displayNames. For example, "alexm", "alex.mueller@example.com"
1950
+ * or "+14255551234".
1951
+ *
1952
+ * The Relying Party MAY let the user choose this value. The Relying Party
1953
+ * SHOULD perform enforcement, as prescribed in Section 3.4.3 of [RFC8265]
1954
+ * for the UsernameCasePreserved Profile of the PRECIS IdentifierClass
1955
+ * [RFC8264], when setting name's value, or displaying the value to the
1956
+ * user.
1957
+ *
1958
+ * This string MAY contain language and direction metadata. Relying Parties
1959
+ * SHOULD consider providing this information. See § 6.4.2 Language and
1960
+ * Direction Encoding about how this metadata is encoded.
1961
+ *
1962
+ * Clients SHOULD perform enforcement, as prescribed in Section 3.4.3 of [RFC8265] for the UsernameCasePreserved Profile of the PRECIS IdentifierClass [RFC8264], on name's value prior to displaying the value to the user or including the value as a parameter of the authenticatorMakeCredential operation.
1963
+ */
1964
+ name: string;
1965
+ };
1024
1966
  RatchetConfig: {
1967
+ /** @default 300 */
1025
1968
  auth_lifetime?: components["schemas"]["Seconds"];
1969
+ /** @default default_grace_lifetime */
1970
+ grace_lifetime?: components["schemas"]["Seconds"];
1971
+ /** @default 86400 */
1026
1972
  refresh_lifetime?: components["schemas"]["Seconds"];
1973
+ /** @default 31536000 */
1027
1974
  session_lifetime?: components["schemas"]["Seconds"];
1028
1975
  };
1029
1976
  /** @description Receipt that an MFA request was approved. */
@@ -1037,14 +1984,23 @@ export interface components {
1037
1984
  final_approver: string;
1038
1985
  timestamp: components["schemas"]["EpochDateTime"];
1039
1986
  };
1987
+ /**
1988
+ * @description This enumeration’s values describe the Relying Party's requirements for
1989
+ * client-side discoverable credentials (formerly known as resident credentials
1990
+ * or resident keys):
1991
+ *
1992
+ * https://www.w3.org/TR/webauthn-2/#enumdef-residentkeyrequirement
1993
+ * @enum {string}
1994
+ */
1995
+ ResidentKeyRequirement: "discouraged" | "preferred" | "required";
1040
1996
  RoleInfo: {
1041
1997
  /**
1042
1998
  * @description Whether the role is enabled
1043
1999
  * @example true
1044
2000
  */
1045
2001
  enabled: boolean;
1046
- /** @description The CubeSigner IDs of the keys */
1047
- keys: components["schemas"]["KeyWithPolicies"][];
2002
+ /** @description Deprecated The CubeSigner IDs of at most 100 keys associated with this role */
2003
+ keys?: components["schemas"]["KeyInRoleInfo"][] | null;
1048
2004
  /**
1049
2005
  * @description The human-readable name for the role (must be alphanumeric)
1050
2006
  * @example my_role
@@ -1055,52 +2011,27 @@ export interface components {
1055
2011
  * @example Role#bfe3eccb-731e-430d-b1e5-ac1363e6b06b
1056
2012
  */
1057
2013
  role_id: string;
1058
- /**
1059
- * @description The list of users with access to the role
1060
- * @example [
1061
- * "User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f",
1062
- * "User#5593c25b-52e2-4fb5-b39b-96d41d681d82"
1063
- * ]
1064
- */
1065
- users: string[];
2014
+ /** @description Deprecated. The list of at most 100 users with access to the role. */
2015
+ users?: string[] | null;
1066
2016
  };
1067
2017
  /**
1068
- * @description Encrypted key material for import using hybrid encryption.
1069
- *
1070
- * The imported keying material is encrypted using [XChaCha20Poly1305], which
1071
- * we choose for its speed and side channel resistance, its ability to encrypt
1072
- * very long messages, and its safety when using random nonces even for a large
1073
- * number of messages. The latter should not happen in this case, but the cost
1074
- * is negligible and the benefit is that we know it's safe to use random nonces.
1075
- *
1076
- * The XChaCha key is encrypted using [RSAES-OAEP-SHA256], which we choose because
1077
- * it's the best of the [available options for asymmetric encryption][kmsopts]
1078
- * in AWS KMS.
1079
- *
1080
- * [XChaCha20Poly1305]: https://doc.libsodium.org/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction
1081
- * [RSAES-OAEP-SHA256]: https://www.rfc-editor.org/rfc/rfc8017#section-7.1
1082
- * [kmsopts]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html
2018
+ * Format: int64
2019
+ * @description Duration measured in seconds
2020
+ * A wrapper type for serialization that encodes a `Duration` as a `u64` representing the number of seconds.
1083
2021
  */
1084
- RsaOaepXChaChaMaterial: {
2022
+ Seconds: number;
2023
+ SessionInfo: {
1085
2024
  /**
1086
- * @description The keying material to be imported, encrypted with
1087
- * [XChaCha20Poly1305](https://doc.libsodium.org/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction).
2025
+ * @description A human-readable description for the session
2026
+ * @example OIDC login session
1088
2027
  */
1089
- ikm_enc: number[];
2028
+ purpose: string;
1090
2029
  /**
1091
- * @description The key-wrapping key used to encrypt `ikm_enc`, encrypted with
1092
- * [RSAES-OAEP-SHA256](https://www.rfc-editor.org/rfc/rfc8017#section-7.1).
2030
+ * @description Session ID. Uniquely identifies the session, but cannot be used for auth.
2031
+ * @example 77aad2100c361f497635dd005c4d15781e2e5df4b9f45d8e74f37425cbc30b9e
1093
2032
  */
1094
- kwk_enc: number[];
1095
- /** @description The nonce used to generate `ikm_enc`. */
1096
- nonce: number[];
2033
+ session_id: string;
1097
2034
  };
1098
- /**
1099
- * Format: int64
1100
- * @description Duration measured in seconds
1101
- * A wrapper type for serialization that encodes a `Duration` as a `u64` representing the number of seconds.
1102
- */
1103
- Seconds: number;
1104
2035
  SignRequest: {
1105
2036
  message: Record<string, never>;
1106
2037
  };
@@ -1113,12 +2044,20 @@ export interface components {
1113
2044
  */
1114
2045
  chain_id: number;
1115
2046
  deposit_type: components["schemas"]["DepositType"];
1116
- unsafe_conf: components["schemas"]["UnsafeConf"] | null;
2047
+ /**
2048
+ * Format: int64
2049
+ * @description Optional staking amount in GWEI.
2050
+ * If not specified, defaults to 32_000_000_000 (32 ETH).
2051
+ * Must be between 1 ETH and 32 ETH.
2052
+ * Must not be different from the default value when 'deposit_type' is "Wrapper".
2053
+ */
2054
+ staking_amount_gwei?: number;
2055
+ unsafe_conf?: components["schemas"]["UnsafeConf"] | null;
1117
2056
  /**
1118
2057
  * @description The validator BLS public key to use, or `None` to generate a fresh one.
1119
2058
  * @example 0xa99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c
1120
2059
  */
1121
- validator_key: string | null;
2060
+ validator_key?: string | null;
1122
2061
  /**
1123
2062
  * @description The ethereum address to which withdrawn funds go
1124
2063
  * @example 0x8e3484687e66cdd26cf04c3647633ab4f3570148
@@ -1132,9 +2071,9 @@ export interface components {
1132
2071
  allowed_mfa_types?: components["schemas"]["MfaType"][] | null;
1133
2072
  /** @description Users who have already approved */
1134
2073
  approved_by: {
1135
- [key: string]: ({
1136
- [key: string]: components["schemas"]["ApprovalInfo"] | undefined;
1137
- }) | undefined;
2074
+ [key: string]: {
2075
+ [key: string]: components["schemas"]["ApprovalInfo"];
2076
+ };
1138
2077
  };
1139
2078
  /**
1140
2079
  * Format: int32
@@ -1157,18 +2096,25 @@ export interface components {
1157
2096
  /** @description TOTP verification code */
1158
2097
  code: string;
1159
2098
  };
2099
+ /** @description Sent from the client to the server to answer a TOTP challenge */
2100
+ TotpChallengeAnswer: {
2101
+ /** @description The current TOTP code */
2102
+ code: string;
2103
+ /** @description The ID of the challenge that was returned from the POST endpoint */
2104
+ totp_id: string;
2105
+ };
1160
2106
  /** @description Options that should be set only for local devnet testing. */
1161
2107
  UnsafeConf: {
1162
2108
  /**
1163
2109
  * @description The hex-encoded address of the deposit contract. If omitted, inferred from `chain_id`
1164
2110
  * @example 0xff50ed3d0ec03ac01d4c79aad74928bff48a7b2b
1165
2111
  */
1166
- deposit_contract_addr: string | null;
2112
+ deposit_contract_addr?: string | null;
1167
2113
  /**
1168
2114
  * @description The hex-encoded 4-byte fork version
1169
2115
  * @example 0x00001020
1170
2116
  */
1171
- genesis_fork_version: string | null;
2117
+ genesis_fork_version?: string | null;
1172
2118
  };
1173
2119
  /**
1174
2120
  * @description Unstake message request.
@@ -1189,7 +2135,7 @@ export interface components {
1189
2135
  * }
1190
2136
  */
1191
2137
  UnstakeRequest: {
1192
- epoch: components["schemas"]["Epoch"] | null;
2138
+ epoch?: components["schemas"]["Epoch"] | null;
1193
2139
  fork: components["schemas"]["Fork"];
1194
2140
  genesis_data: components["schemas"]["GenesisData"];
1195
2141
  network: components["schemas"]["Network"];
@@ -1217,7 +2163,14 @@ export interface components {
1217
2163
  owner?: string | null;
1218
2164
  /**
1219
2165
  * @description If set, update this key's policies (old policies will be overwritten!).
1220
- * @example []
2166
+ * @example [
2167
+ * "AllowRawBlobSigning",
2168
+ * {
2169
+ * "RequireMfa": {
2170
+ * "count": 1
2171
+ * }
2172
+ * }
2173
+ * ]
1221
2174
  */
1222
2175
  policy?: Record<string, never>[] | null;
1223
2176
  };
@@ -1269,11 +2222,16 @@ export interface components {
1269
2222
  */
1270
2223
  id: string;
1271
2224
  };
2225
+ UserInRoleInfo: {
2226
+ user_id: string;
2227
+ };
1272
2228
  UserInfo: {
1273
2229
  /** @example alice@example.com */
1274
2230
  email: string;
1275
2231
  /** @description All multi-factor authentication methods configured for this user */
1276
2232
  mfa: components["schemas"]["ConfiguredMfa"][];
2233
+ /** @description MFA policy, applies before logging in and other sensitive operations */
2234
+ mfa_policy?: Record<string, unknown> | null;
1277
2235
  /**
1278
2236
  * @description All organizations the user belongs to
1279
2237
  * @example [
@@ -1287,6 +2245,14 @@ export interface components {
1287
2245
  */
1288
2246
  user_id: string;
1289
2247
  };
2248
+ /**
2249
+ * @description A WebAuthn Relying Party may require user verification for some of its
2250
+ * operations but not for others, and may use this type to express its needs.
2251
+ *
2252
+ * https://www.w3.org/TR/webauthn-2/#enum-userVerificationRequirement
2253
+ * @enum {string}
2254
+ */
2255
+ UserVerificationRequirement: "required" | "discouraged" | "preferred";
1290
2256
  /**
1291
2257
  * @description An exit voluntarily submitted a validator who wishes to withdraw.
1292
2258
  * The schema for this message is defined
@@ -1310,6 +2276,14 @@ export interface components {
1310
2276
  };
1311
2277
  };
1312
2278
  };
2279
+ AvaSignResponse: {
2280
+ content: {
2281
+ "application/json": {
2282
+ /** @description The hex-encoded signature. */
2283
+ signature: string;
2284
+ };
2285
+ };
2286
+ };
1313
2287
  BlobSignResponse: {
1314
2288
  content: {
1315
2289
  "application/json": {
@@ -1322,8 +2296,8 @@ export interface components {
1322
2296
  content: {
1323
2297
  "application/json": {
1324
2298
  /**
1325
- * @description The hex-encoded signature in DER format.
1326
- * @example 0x3045022100e12be3904f665f755e106741680548fefc9febf4cff31c5c0ee4627b3c1b35fe022066fde9a0b17e4cd38da983fb0d604294f00d0bd47fcb649c5216f3a2e8b7ad2d01
2299
+ * @description The hex-encoded signature in compact format.
2300
+ * @example 0x454aef27c21df7dd8f537dc869f4cd65286ce239a52d36470f4d85be85a891b02789e5ffd8560b32a98110e5d0096802e4c14145cf6c44f10a768c87755eaa4800
1327
2301
  */
1328
2302
  signature: string;
1329
2303
  };
@@ -1370,15 +2344,16 @@ export interface components {
1370
2344
  };
1371
2345
  };
1372
2346
  };
1373
- CreateTokenResponse: {
2347
+ Eip712SignResponse: {
1374
2348
  content: {
1375
2349
  "application/json": {
1376
- session_info: components["schemas"]["ClientSessionInfo"];
1377
2350
  /**
1378
- * @description Token to be used for signing auth. Requests to signing endpoints
1379
- * should include this value in the `Authorization` header
2351
+ * @description Hex-encoded signature comprising 65 bytes in the format required
2352
+ * by ecrecover: 32-byte r, 32-byte s, and one-byte recovery-id v
2353
+ * which is either 27 or 28.
2354
+ * @example 0x4355c47d63924e8a72e509b65029052eb6c299d53a04e167c5775fd466751c9d07299936d304c153f6443dfa05f40ff007d72911b6f72307f996231605b915621c
1380
2355
  */
1381
- token: string;
2356
+ signature: string;
1382
2357
  };
1383
2358
  };
1384
2359
  };
@@ -1411,10 +2386,25 @@ export interface components {
1411
2386
  };
1412
2387
  };
1413
2388
  };
1414
- GetKeysInOrgResponse: {
2389
+ FidoAssertChallenge: {
1415
2390
  content: {
1416
2391
  "application/json": {
1417
- keys: components["schemas"]["KeyInfo"][];
2392
+ /** @description The id of the challenge. Must be supplied when answering the challenge. */
2393
+ challenge_id: string;
2394
+ options: components["schemas"]["PublicKeyCredentialRequestOptions"];
2395
+ };
2396
+ };
2397
+ };
2398
+ /**
2399
+ * @description Sent by the server to the client. Contains the challenge data that must be
2400
+ * used to generate a new credential
2401
+ */
2402
+ FidoCreateChallengeResponse: {
2403
+ content: {
2404
+ "application/json": {
2405
+ /** @description The id of the challenge. Must be supplied when answering the challenge. */
2406
+ challenge_id: string;
2407
+ options: components["schemas"]["PublicKeyCredentialCreationOptions"];
1418
2408
  };
1419
2409
  };
1420
2410
  };
@@ -1426,15 +2416,53 @@ export interface components {
1426
2416
  };
1427
2417
  };
1428
2418
  };
1429
- /** @description A wrapped key-import key */
1430
- KeyImportKey: {
2419
+ /**
2420
+ * @description Proof that an end-user provided CubeSigner with a valid auth token
2421
+ * (either an OIDC token or a CubeSigner session token)
2422
+ */
2423
+ IdentityProof: {
1431
2424
  content: {
1432
- "application/json": {
1433
- /** @description Base64-encoded, encrypted data key. */
1434
- dk_enc: string;
2425
+ "application/json": ({
1435
2426
  /**
1436
- * Format: int64
1437
- * @description Expiration timestamp expressed as seconds since the UNIX epoch.
2427
+ * @description OIDC audience; set only if the proof was obtained by using OIDC token.
2428
+ *
2429
+ * In other words, presence of this field testifies that authorization was obtained via OIDC.
2430
+ */
2431
+ aud?: string | null;
2432
+ /**
2433
+ * @description The email associated with the user
2434
+ * @example user@email.com
2435
+ */
2436
+ email: string;
2437
+ exp_epoch: components["schemas"]["EpochDateTime"];
2438
+ identity?: components["schemas"]["OIDCIdentity"] | null;
2439
+ user_info?: components["schemas"]["CubeSignerUserInfo"] | null;
2440
+ }) & {
2441
+ /** @description An opaque identifier for the proof */
2442
+ id: string;
2443
+ };
2444
+ };
2445
+ };
2446
+ /** @description Derivation-related metadata for keys derived from a long-lived mnemonic */
2447
+ KeyDerivationInfo: {
2448
+ content: {
2449
+ "application/json": {
2450
+ /** @description The derivation path used to derive this key */
2451
+ derivation_path: string;
2452
+ /** @description The mnemonic-id of the key's parent mnemonic */
2453
+ mnemonic_id: string;
2454
+ };
2455
+ };
2456
+ };
2457
+ /** @description A wrapped key-import key */
2458
+ KeyImportKey: {
2459
+ content: {
2460
+ "application/json": {
2461
+ /** @description Base64-encoded, encrypted data key. */
2462
+ dk_enc: string;
2463
+ /**
2464
+ * Format: int64
2465
+ * @description Expiration timestamp expressed as seconds since the UNIX epoch.
1438
2466
  */
1439
2467
  expires: number;
1440
2468
  /**
@@ -1450,6 +2478,7 @@ export interface components {
1450
2478
  KeyInfo: {
1451
2479
  content: {
1452
2480
  "application/json": {
2481
+ derivation_info?: components["schemas"]["KeyDerivationInfo"] | null;
1453
2482
  /** @description Whether the key is enabled (only enabled keys may be used for signing) */
1454
2483
  enabled: boolean;
1455
2484
  /**
@@ -1471,14 +2500,22 @@ export interface components {
1471
2500
  owner: string;
1472
2501
  /**
1473
2502
  * @description Key policy
1474
- * @example []
2503
+ * @example [
2504
+ * "AllowRawBlobSigning",
2505
+ * {
2506
+ * "RequireMfa": {
2507
+ * "count": 1
2508
+ * }
2509
+ * }
2510
+ * ]
1475
2511
  */
1476
2512
  policy: Record<string, never>[];
1477
2513
  /**
1478
2514
  * @description Hex-encoded, serialized public key. The format used depends on the key type:
1479
- * - secp256k1 keys use 65-byte uncompressed SECG format;
2515
+ * - Secp256k1 keys use 65-byte uncompressed SECG format;
2516
+ * - Stark keys use 33-byte compressed SECG format;
1480
2517
  * - BLS keys use 48-byte compressed BLS12-381 (ZCash) format;
1481
- * - ed25519 keys use the canonical 64-byte encoding specified in RFC 8032.
2518
+ * - Ed25519 keys use the canonical 32-byte encoding specified in RFC 8032.
1482
2519
  * @example 0x04d2688b6bc2ce7f9879b9e745f3c4dc177908c5cef0c1b64cff19ae7ff27dee623c64fe9d9c325c7fbbc748bbd5f607ce14dd83e28ebbbb7d3e7f2ffb70a79431
1483
2520
  */
1484
2521
  public_key: string;
@@ -1497,11 +2534,11 @@ export interface components {
1497
2534
  };
1498
2535
  };
1499
2536
  };
1500
- ListRolesResponse: {
2537
+ ListMfaResponse: {
1501
2538
  content: {
1502
2539
  "application/json": {
1503
- /** @description All roles in an organization. */
1504
- roles: components["schemas"]["RoleInfo"][];
2540
+ /** @description All pending MFA requests */
2541
+ mfa_requests: components["schemas"]["MfaRequestInfo"][];
1505
2542
  };
1506
2543
  };
1507
2544
  };
@@ -1519,17 +2556,19 @@ export interface components {
1519
2556
  expires_at: components["schemas"]["EpochDateTime"];
1520
2557
  /** @description Approval request ID. */
1521
2558
  id: string;
1522
- receipt: components["schemas"]["Receipt"] | null;
2559
+ receipt?: components["schemas"]["Receipt"] | null;
1523
2560
  request: components["schemas"]["HttpRequest"];
1524
2561
  status: components["schemas"]["Status"];
1525
2562
  };
1526
2563
  };
1527
2564
  };
1528
- OidcLoginResponse: {
2565
+ /** @description Information about a new session, returned from multiple endpoints (e.g., login, refresh, etc.). */
2566
+ NewSessionResponse: {
1529
2567
  content: {
1530
2568
  "application/json": {
2569
+ session_info: components["schemas"]["ClientSessionInfo"];
1531
2570
  /**
1532
- * @description Token to be used for signing auth. Requests to signing endpoints
2571
+ * @description New token to be used for authentication. Requests to signing endpoints
1533
2572
  * should include this value in the `Authorization` header
1534
2573
  */
1535
2574
  token: string;
@@ -1541,12 +2580,8 @@ export interface components {
1541
2580
  "application/json": {
1542
2581
  /** @description When false, all cryptographic operations involving keys in this org are disabled. */
1543
2582
  enabled: boolean;
1544
- /**
1545
- * @description The RSA public key to use when importing keys into this organization. This string is the
1546
- * hex encoding of the DER representation of the key.
1547
- * @example 30820222300d06092a864886f70d01010105000382020f003082020a0282020100c89765b8f347caafbec09fcb17740e032d854ec99f2d9c16167be335339b4fdeba18a7f13d8e8b7ae7d689cab63d8ecdf548f4746eacaf95b61fef76ade9f81b3c038891c52542fd352697b618afbea6103723c28f2db450e9d852be16a4dc2cbc9442da9a6610044009e056ba90728f0b9888d9b036e493aaed168ccf930fa2f730b17eb3ad6f455a792b762c47f3d3c6b7a7c458556a592e688791599a576bf2149d8e9614db775e7a48602d237a347d5399c681f7f7d9c81f6a64e7cfd356bba545d45e5023ca1f09a66a1d4550f61cf2c4367e14997b5d749bb0326a44d058119e8caf7fd79d517eb2d11dddb2db329f350698f0f978d5e150bb402c8bc4c5ec36d6f38db3f3a204813cda9f52dbcee809204f8e35a455c0e110e10eec41f734f2d55a058a7a21fa90602f94da6de2378ff61e7b3550b77e53d75d7b3d3b39ccab0e5101b916dab01da096f7627175d5b68a1a6464ce5be3e95e7c464d69eb0b675057705c11bc79c3543313b0d9c703c50dc1a16dd9b55e5599e3b02e527b85938e7b81c65e56960bcd7c7a266b07dc05107fd0d7d3c208a878eb0fc74b0d007f421d0c5b28cf78eb441aa0166dceeeac255d68622492f9b526ae13c93754ea8eda96f3b764ba931f8d49c7de8b00ac53d993ab9b08fd2892d8e82cc1a9746f0b426b19256d13d780445e150ce81da0b3c96e32559cb47cb5cb93f805650203010001
1548
- */
1549
- key_import_key: string;
2583
+ /** @description Deprecated: this field should be ignored. */
2584
+ key_import_key?: string | null;
1550
2585
  /**
1551
2586
  * @description The organization's universally unique key-wrapping-key identifier.
1552
2587
  * This value is required when setting up key export.
@@ -1585,16 +2620,78 @@ export interface components {
1585
2620
  };
1586
2621
  };
1587
2622
  };
1588
- RefreshResponse: {
2623
+ PaginatedListKeysResponse: {
1589
2624
  content: {
1590
2625
  "application/json": {
1591
- session_info: components["schemas"]["ClientSessionInfo"];
2626
+ keys: components["schemas"]["KeyInfo"][];
2627
+ } & ({
1592
2628
  /**
1593
- * @description New token to be used for signing auth. Requests to signing endpoints
1594
- * should include this value in the `Authorization` header
2629
+ * @description If set, the content of `response` does not contain the entire result set.
2630
+ * To fetch the next page of the result set, call the same endpoint
2631
+ * but specify this value as the 'page.start' query parameter.
1595
2632
  */
1596
- token: string;
1597
- };
2633
+ last_evaluated_key?: string | null;
2634
+ });
2635
+ };
2636
+ };
2637
+ PaginatedListRoleKeysResponse: {
2638
+ content: {
2639
+ "application/json": {
2640
+ /** @description All keys in a role */
2641
+ keys: components["schemas"]["KeyInRoleInfo"][];
2642
+ } & ({
2643
+ /**
2644
+ * @description If set, the content of `response` does not contain the entire result set.
2645
+ * To fetch the next page of the result set, call the same endpoint
2646
+ * but specify this value as the 'page.start' query parameter.
2647
+ */
2648
+ last_evaluated_key?: string | null;
2649
+ });
2650
+ };
2651
+ };
2652
+ PaginatedListRoleUsersResponse: {
2653
+ content: {
2654
+ "application/json": {
2655
+ /** @description All users in a role */
2656
+ users: components["schemas"]["UserInRoleInfo"][];
2657
+ } & ({
2658
+ /**
2659
+ * @description If set, the content of `response` does not contain the entire result set.
2660
+ * To fetch the next page of the result set, call the same endpoint
2661
+ * but specify this value as the 'page.start' query parameter.
2662
+ */
2663
+ last_evaluated_key?: string | null;
2664
+ });
2665
+ };
2666
+ };
2667
+ PaginatedListRolesResponse: {
2668
+ content: {
2669
+ "application/json": {
2670
+ /** @description All roles in an organization. */
2671
+ roles: components["schemas"]["RoleInfo"][];
2672
+ } & ({
2673
+ /**
2674
+ * @description If set, the content of `response` does not contain the entire result set.
2675
+ * To fetch the next page of the result set, call the same endpoint
2676
+ * but specify this value as the 'page.start' query parameter.
2677
+ */
2678
+ last_evaluated_key?: string | null;
2679
+ });
2680
+ };
2681
+ };
2682
+ PaginatedSessionsResponse: {
2683
+ content: {
2684
+ "application/json": {
2685
+ /** @description The list of sessions */
2686
+ sessions: components["schemas"]["SessionInfo"][];
2687
+ } & ({
2688
+ /**
2689
+ * @description If set, the content of `response` does not contain the entire result set.
2690
+ * To fetch the next page of the result set, call the same endpoint
2691
+ * but specify this value as the 'page.start' query parameter.
2692
+ */
2693
+ last_evaluated_key?: string | null;
2694
+ });
1598
2695
  };
1599
2696
  };
1600
2697
  RevokeTokenResponse: {
@@ -1620,8 +2717,8 @@ export interface components {
1620
2717
  * @example true
1621
2718
  */
1622
2719
  enabled: boolean;
1623
- /** @description The CubeSigner IDs of the keys */
1624
- keys: components["schemas"]["KeyWithPolicies"][];
2720
+ /** @description Deprecated The CubeSigner IDs of at most 100 keys associated with this role */
2721
+ keys?: components["schemas"]["KeyInRoleInfo"][] | null;
1625
2722
  /**
1626
2723
  * @description The human-readable name for the role (must be alphanumeric)
1627
2724
  * @example my_role
@@ -1632,14 +2729,33 @@ export interface components {
1632
2729
  * @example Role#bfe3eccb-731e-430d-b1e5-ac1363e6b06b
1633
2730
  */
1634
2731
  role_id: string;
2732
+ /** @description Deprecated. The list of at most 100 users with access to the role. */
2733
+ users?: string[] | null;
2734
+ };
2735
+ };
2736
+ };
2737
+ SessionInfo: {
2738
+ content: {
2739
+ "application/json": {
1635
2740
  /**
1636
- * @description The list of users with access to the role
1637
- * @example [
1638
- * "User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f",
1639
- * "User#5593c25b-52e2-4fb5-b39b-96d41d681d82"
1640
- * ]
2741
+ * @description A human-readable description for the session
2742
+ * @example OIDC login session
2743
+ */
2744
+ purpose: string;
2745
+ /**
2746
+ * @description Session ID. Uniquely identifies the session, but cannot be used for auth.
2747
+ * @example 77aad2100c361f497635dd005c4d15781e2e5df4b9f45d8e74f37425cbc30b9e
1641
2748
  */
1642
- users: string[];
2749
+ session_id: string;
2750
+ };
2751
+ };
2752
+ };
2753
+ /** @description The response from any operation operating on multiple sessions */
2754
+ SessionsResponse: {
2755
+ content: {
2756
+ "application/json": {
2757
+ /** @description The list of sessions */
2758
+ sessions: components["schemas"]["SessionInfo"][];
1643
2759
  };
1644
2760
  };
1645
2761
  };
@@ -1663,9 +2779,24 @@ export interface components {
1663
2779
  };
1664
2780
  };
1665
2781
  };
2782
+ TokenInfo: {
2783
+ content: {
2784
+ "application/json": {
2785
+ /** @description Session ID. Use it to revoke a session. Cannot be used for auth. */
2786
+ hash: string;
2787
+ /** @description Tokens purpose */
2788
+ purpose: string;
2789
+ };
2790
+ };
2791
+ };
1666
2792
  TotpInfo: {
1667
2793
  content: {
1668
2794
  "application/json": {
2795
+ /**
2796
+ * @description The ID of the TOTP challenge.
2797
+ * @example TotpChallenge#7892ebba-563e-485b-bb7d-e26267363286
2798
+ */
2799
+ totp_id: string;
1669
2800
  /**
1670
2801
  * @description Standard TOTP url which includes everything needed to initialize TOTP.
1671
2802
  * @example otpauth://totp/Cubist:alice-%40example.com?secret=DAHF7KCOTQWSOMK4XFEMNHXO4J433OD7&issuer=Cubist
@@ -1733,6 +2864,8 @@ export interface components {
1733
2864
  email: string;
1734
2865
  /** @description All multi-factor authentication methods configured for this user */
1735
2866
  mfa: components["schemas"]["ConfiguredMfa"][];
2867
+ /** @description MFA policy, applies before logging in and other sensitive operations */
2868
+ mfa_policy?: Record<string, unknown> | null;
1736
2869
  /**
1737
2870
  * @description All organizations the user belongs to
1738
2871
  * @example [
@@ -1755,17 +2888,20 @@ export interface components {
1755
2888
  pathItems: never;
1756
2889
  }
1757
2890
 
2891
+ export type $defs = Record<string, never>;
2892
+
1758
2893
  export type external = Record<string, never>;
1759
2894
 
1760
2895
  export interface operations {
1761
2896
 
1762
2897
  /**
1763
2898
  * User Info
2899
+ * @deprecated
1764
2900
  * @description User Info
1765
2901
  *
1766
2902
  * Retrieves information about the current user.
1767
2903
  */
1768
- aboutMe: {
2904
+ aboutMeLegacy: {
1769
2905
  responses: {
1770
2906
  200: components["responses"]["UserInfo"];
1771
2907
  default: {
@@ -1831,13 +2967,13 @@ export interface operations {
1831
2967
  };
1832
2968
  };
1833
2969
  /**
1834
- * Sign Bitcoin Transaction
1835
- * @description Sign Bitcoin Transaction
2970
+ * Sign Avalanche X- or P-Chain Message
2971
+ * @description Sign Avalanche X- or P-Chain Message
1836
2972
  *
1837
- * Signs a Bitcoin transaction with a given key.
2973
+ * Signs an Avalanche message with a given SecpAva key.
1838
2974
  * This is a pre-release feature.
1839
2975
  */
1840
- btcSign: {
2976
+ avaSign: {
1841
2977
  parameters: {
1842
2978
  path: {
1843
2979
  /**
@@ -1846,19 +2982,19 @@ export interface operations {
1846
2982
  */
1847
2983
  org_id: string;
1848
2984
  /**
1849
- * @description bech32 encoding of the public key
1850
- * @example bc1q5p5qkae77ly80kr4pyfytdqm7rf08ddhdejl9g
2985
+ * @description Avalanche bech32 address format without the chain prefix
2986
+ * @example avax1am4w6hfrvmh3akduzkjthrtgtqafalce6an8cr
1851
2987
  */
1852
2988
  pubkey: string;
1853
2989
  };
1854
2990
  };
1855
2991
  requestBody: {
1856
2992
  content: {
1857
- "application/json": components["schemas"]["BtcSignRequest"];
2993
+ "application/json": components["schemas"]["AvaSignRequest"];
1858
2994
  };
1859
2995
  };
1860
2996
  responses: {
1861
- 200: components["responses"]["BtcSignResponse"];
2997
+ 200: components["responses"]["AvaSignResponse"];
1862
2998
  202: {
1863
2999
  content: {
1864
3000
  "application/json": components["schemas"]["AcceptedResponse"];
@@ -1872,12 +3008,13 @@ export interface operations {
1872
3008
  };
1873
3009
  };
1874
3010
  /**
1875
- * Create Key-Import Key
1876
- * @description Create Key-Import Key
3011
+ * Sign Bitcoin Transaction
3012
+ * @description Sign Bitcoin Transaction
1877
3013
  *
1878
- * Generate an ephemeral key that a client can use for key-import encryption.
3014
+ * Signs a Bitcoin transaction with a given key.
3015
+ * This is a pre-release feature.
1879
3016
  */
1880
- createKeyImportKey: {
3017
+ btcSign: {
1881
3018
  parameters: {
1882
3019
  path: {
1883
3020
  /**
@@ -1885,10 +3022,25 @@ export interface operations {
1885
3022
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
1886
3023
  */
1887
3024
  org_id: string;
3025
+ /**
3026
+ * @description bech32 encoding of the public key
3027
+ * @example bc1q5p5qkae77ly80kr4pyfytdqm7rf08ddhdejl9g
3028
+ */
3029
+ pubkey: string;
3030
+ };
3031
+ };
3032
+ requestBody: {
3033
+ content: {
3034
+ "application/json": components["schemas"]["BtcSignRequest"];
1888
3035
  };
1889
3036
  };
1890
3037
  responses: {
1891
- 200: components["responses"]["CreateKeyImportKeyResponse"];
3038
+ 200: components["responses"]["BtcSignResponse"];
3039
+ 202: {
3040
+ content: {
3041
+ "application/json": components["schemas"]["AcceptedResponse"];
3042
+ };
3043
+ };
1892
3044
  default: {
1893
3045
  content: {
1894
3046
  "application/json": components["schemas"]["ErrorResponse"];
@@ -1897,12 +3049,13 @@ export interface operations {
1897
3049
  };
1898
3050
  };
1899
3051
  /**
1900
- * Import Key
1901
- * @description Import Key
3052
+ * Derive Key From Long-Lived Mnemonic
3053
+ * @description Derive Key From Long-Lived Mnemonic
1902
3054
  *
1903
- * Securely imports an existing key using a previously generated key-import key.
3055
+ * Derives a key of a specified type using a supplied derivation path and an
3056
+ * existing long-lived mnemonic.
1904
3057
  */
1905
- importKey: {
3058
+ deriveKey: {
1906
3059
  parameters: {
1907
3060
  path: {
1908
3061
  /**
@@ -1914,7 +3067,7 @@ export interface operations {
1914
3067
  };
1915
3068
  requestBody: {
1916
3069
  content: {
1917
- "application/json": components["schemas"]["ImportKeyRequest"];
3070
+ "application/json": components["schemas"]["DeriveKeyRequest"];
1918
3071
  };
1919
3072
  };
1920
3073
  responses: {
@@ -1927,12 +3080,12 @@ export interface operations {
1927
3080
  };
1928
3081
  };
1929
3082
  /**
1930
- * Invite User
1931
- * @description Invite User
3083
+ * Sign EIP-712 Typed Data
3084
+ * @description Sign EIP-712 Typed Data
1932
3085
  *
1933
- * Creates a new user in an existing org and sends that user an invite email.
3086
+ * Signs typed data according to EIP-712 with a given Secp256k1 key.
1934
3087
  */
1935
- invite: {
3088
+ eip712Sign: {
1936
3089
  parameters: {
1937
3090
  path: {
1938
3091
  /**
@@ -1940,15 +3093,25 @@ export interface operations {
1940
3093
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
1941
3094
  */
1942
3095
  org_id: string;
3096
+ /**
3097
+ * @description Hex-encoded ethereum address of the secp key
3098
+ * @example 0x49011adbCC3bC9c0307BB07F37Dda1a1a9c69d2E
3099
+ */
3100
+ pubkey: string;
1943
3101
  };
1944
3102
  };
1945
3103
  requestBody: {
1946
3104
  content: {
1947
- "application/json": components["schemas"]["InviteRequest"];
3105
+ "application/json": components["schemas"]["Eip712SignRequest"];
1948
3106
  };
1949
3107
  };
1950
3108
  responses: {
1951
- 200: components["responses"]["EmptyImpl"];
3109
+ 200: components["responses"]["Eip712SignResponse"];
3110
+ 202: {
3111
+ content: {
3112
+ "application/json": components["schemas"]["AcceptedResponse"];
3113
+ };
3114
+ };
1952
3115
  default: {
1953
3116
  content: {
1954
3117
  "application/json": components["schemas"]["ErrorResponse"];
@@ -1957,20 +3120,17 @@ export interface operations {
1957
3120
  };
1958
3121
  };
1959
3122
  /**
1960
- * List Keys
1961
- * @description List Keys
3123
+ * Create [IdentityProof] from CubeSigner user session
3124
+ * @description Create [IdentityProof] from CubeSigner user session
1962
3125
  *
1963
- * Gets the list of owned keys in a given org.
3126
+ * This route can be used to prove to another party that a user has a
3127
+ * valid CubeSigner session.
3128
+ *
3129
+ * Clients are intended to call this route and pass the returned evidence
3130
+ * to another service which will verify it by making a request to `/v0/org/<org_id>/identity/verify`.
1964
3131
  */
1965
- listKeysInOrg: {
3132
+ createProofCubeSigner: {
1966
3133
  parameters: {
1967
- query?: {
1968
- /**
1969
- * @description Filter by key type
1970
- * @example SecpEthAddr
1971
- */
1972
- key_type?: components["schemas"]["KeyType"];
1973
- };
1974
3134
  path: {
1975
3135
  /**
1976
3136
  * @description Name or ID of the desired Org
@@ -1980,7 +3140,7 @@ export interface operations {
1980
3140
  };
1981
3141
  };
1982
3142
  responses: {
1983
- 200: components["responses"]["GetKeysInOrgResponse"];
3143
+ 200: components["responses"]["IdentityProof"];
1984
3144
  default: {
1985
3145
  content: {
1986
3146
  "application/json": components["schemas"]["ErrorResponse"];
@@ -1989,12 +3149,19 @@ export interface operations {
1989
3149
  };
1990
3150
  };
1991
3151
  /**
1992
- * Import Key (Deprecated)
1993
- * @description Import Key (Deprecated)
3152
+ * Create [IdentityProof] from OIDC token
3153
+ * @description Create [IdentityProof] from OIDC token
3154
+ *
3155
+ * Exchange an OIDC ID token (passed via the `Authorization` header) for a proof of authentication.
1994
3156
  *
1995
- * Securely imports an existing key. This API is deprecated; please use the new version.
3157
+ * This route can be used to prove to another party that a user has met the
3158
+ * authentication requirements (allowed issuers & audiences) for CubeSigner
3159
+ * without leaking their credentials.
3160
+ *
3161
+ * Clients are intended to call this route and pass the returned evidence to another service
3162
+ * which will verify it by making a request to `/v0/org/<org_id>/identity/verify`.
1996
3163
  */
1997
- importKeyLegacy: {
3164
+ createProofOidc: {
1998
3165
  parameters: {
1999
3166
  path: {
2000
3167
  /**
@@ -2004,13 +3171,8 @@ export interface operations {
2004
3171
  org_id: string;
2005
3172
  };
2006
3173
  };
2007
- requestBody: {
2008
- content: {
2009
- "application/json": components["schemas"]["ImportKeyLegacyRequest"];
2010
- };
2011
- };
2012
3174
  responses: {
2013
- 200: components["responses"]["CreateKeyResponse"];
3175
+ 200: components["responses"]["IdentityProof"];
2014
3176
  default: {
2015
3177
  content: {
2016
3178
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2019,12 +3181,15 @@ export interface operations {
2019
3181
  };
2020
3182
  };
2021
3183
  /**
2022
- * Create Key
2023
- * @description Create Key
3184
+ * Verify identity proof
3185
+ * @description Verify identity proof
2024
3186
  *
2025
- * Creates one or more new keys of the specified type (BLS or Secp).
3187
+ * Allows a third-party to validate proof of authentication.
3188
+ *
3189
+ * When a third-party is provided an [IdentityProof] object, they must check its
3190
+ * veracity by calling this endpoint
2026
3191
  */
2027
- createKey: {
3192
+ verifyProof: {
2028
3193
  parameters: {
2029
3194
  path: {
2030
3195
  /**
@@ -2036,26 +3201,19 @@ export interface operations {
2036
3201
  };
2037
3202
  requestBody: {
2038
3203
  content: {
2039
- "application/json": components["schemas"]["CreateKeyRequest"];
3204
+ "application/json": components["schemas"]["IdentityProof"];
2040
3205
  };
2041
3206
  };
2042
3207
  responses: {
2043
- 200: components["responses"]["CreateKeyResponse"];
2044
- default: {
2045
- content: {
2046
- "application/json": components["schemas"]["ErrorResponse"];
2047
- };
2048
- };
2049
3208
  };
2050
3209
  };
2051
3210
  /**
2052
- * Legacy List Keys
2053
- * @deprecated
2054
- * @description Legacy List Keys
3211
+ * Create Key-Import Key
3212
+ * @description Create Key-Import Key
2055
3213
  *
2056
- * This route is deprecated. Use `GET /v0/org/<org_id>/keys?<key_type>`
3214
+ * Generate an ephemeral key that a client can use for key-import encryption.
2057
3215
  */
2058
- listKeysLegacy: {
3216
+ createKeyImportKey: {
2059
3217
  parameters: {
2060
3218
  path: {
2061
3219
  /**
@@ -2065,13 +3223,8 @@ export interface operations {
2065
3223
  org_id: string;
2066
3224
  };
2067
3225
  };
2068
- requestBody: {
2069
- content: {
2070
- "application/json": components["schemas"]["GetKeysInOrgRequest"];
2071
- };
2072
- };
2073
3226
  responses: {
2074
- 200: components["responses"]["GetKeysInOrgResponse"];
3227
+ 200: components["responses"]["CreateKeyImportKeyResponse"];
2075
3228
  default: {
2076
3229
  content: {
2077
3230
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2080,12 +3233,12 @@ export interface operations {
2080
3233
  };
2081
3234
  };
2082
3235
  /**
2083
- * Get Key
2084
- * @description Get Key
3236
+ * Import Key
3237
+ * @description Import Key
2085
3238
  *
2086
- * Returns the properties of a key.
3239
+ * Securely imports an existing key using a previously generated key-import key.
2087
3240
  */
2088
- getKeyInOrg: {
3241
+ importKey: {
2089
3242
  parameters: {
2090
3243
  path: {
2091
3244
  /**
@@ -2093,15 +3246,15 @@ export interface operations {
2093
3246
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2094
3247
  */
2095
3248
  org_id: string;
2096
- /**
2097
- * @description ID of the key
2098
- * @example Key#0x8e3484687e66cdd26cf04c3647633ab4f3570148
2099
- */
2100
- key_id: string;
3249
+ };
3250
+ };
3251
+ requestBody: {
3252
+ content: {
3253
+ "application/json": components["schemas"]["ImportKeyRequest"];
2101
3254
  };
2102
3255
  };
2103
3256
  responses: {
2104
- 200: components["responses"]["KeyInfo"];
3257
+ 200: components["responses"]["CreateKeyResponse"];
2105
3258
  default: {
2106
3259
  content: {
2107
3260
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2110,12 +3263,12 @@ export interface operations {
2110
3263
  };
2111
3264
  };
2112
3265
  /**
2113
- * Update Key
2114
- * @description Update Key
3266
+ * Invite User
3267
+ * @description Invite User
2115
3268
  *
2116
- * Enable or disable a key. The user must be the owner of the key or organization to perform this action.
3269
+ * Creates a new user in an existing org and sends that user an invite email.
2117
3270
  */
2118
- updateKey: {
3271
+ invite: {
2119
3272
  parameters: {
2120
3273
  path: {
2121
3274
  /**
@@ -2123,20 +3276,15 @@ export interface operations {
2123
3276
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2124
3277
  */
2125
3278
  org_id: string;
2126
- /**
2127
- * @description ID of the key
2128
- * @example Key#0x8e3484687e66cdd26cf04c3647633ab4f3570148
2129
- */
2130
- key_id: string;
2131
3279
  };
2132
3280
  };
2133
3281
  requestBody: {
2134
3282
  content: {
2135
- "application/json": components["schemas"]["UpdateKeyRequest"];
3283
+ "application/json": components["schemas"]["InviteRequest"];
2136
3284
  };
2137
3285
  };
2138
3286
  responses: {
2139
- 200: components["responses"]["KeyInfo"];
3287
+ 200: components["responses"]["EmptyImpl"];
2140
3288
  default: {
2141
3289
  content: {
2142
3290
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2145,28 +3293,43 @@ export interface operations {
2145
3293
  };
2146
3294
  };
2147
3295
  /**
2148
- * Gets a Pending MFA Request
2149
- * @description Gets a Pending MFA Request
3296
+ * List Keys
3297
+ * @description List Keys
2150
3298
  *
2151
- * Retrieves and returns a pending MFA request by its id.
3299
+ * Gets the list of owned keys in a given org.
2152
3300
  */
2153
- mfaGet: {
3301
+ listKeysInOrg: {
2154
3302
  parameters: {
3303
+ query?: {
3304
+ /**
3305
+ * @description Max number of items to return per page.
3306
+ *
3307
+ * If the actual number of returned items may be less that this, even if there exist more
3308
+ * data in the result set. To reliably determine if more data is left in the result set,
3309
+ * inspect the [UnencryptedLastEvalKey] value in the response object.
3310
+ */
3311
+ "page.size"?: number;
3312
+ /**
3313
+ * @description The start of the page. Omit to start from the beginning; otherwise, only specify a
3314
+ * the exact value previously returned as 'last_evaluated_key' from the same endpoint.
3315
+ */
3316
+ "page.start"?: components["schemas"]["LastEvalKey"] | null;
3317
+ /**
3318
+ * @description Filter by key type
3319
+ * @example SecpEthAddr
3320
+ */
3321
+ key_type?: components["schemas"]["KeyType"] | null;
3322
+ };
2155
3323
  path: {
2156
3324
  /**
2157
3325
  * @description Name or ID of the desired Org
2158
3326
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2159
3327
  */
2160
3328
  org_id: string;
2161
- /**
2162
- * @description ID of the approval
2163
- * @example ...
2164
- */
2165
- mfa_id: string;
2166
3329
  };
2167
3330
  };
2168
3331
  responses: {
2169
- 200: components["responses"]["MfaRequestInfo"];
3332
+ 200: components["responses"]["PaginatedListKeysResponse"];
2170
3333
  default: {
2171
3334
  content: {
2172
3335
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2175,14 +3338,12 @@ export interface operations {
2175
3338
  };
2176
3339
  };
2177
3340
  /**
2178
- * Approve a Pending MFA Request
2179
- * @description Approve a Pending MFA Request
3341
+ * Create Key
3342
+ * @description Create Key
2180
3343
  *
2181
- * Adds the current user as an approver of a pending MFA request of the [Status::RequiredApprovers] kind.
2182
- * If the required number of approvers is reached, the MFA request is approved;
2183
- * the confirmation receipt can be used to resume the original HTTP request.
3344
+ * Creates one or more new keys of the specified type.
2184
3345
  */
2185
- mfaApproveCs: {
3346
+ createKey: {
2186
3347
  parameters: {
2187
3348
  path: {
2188
3349
  /**
@@ -2190,15 +3351,15 @@ export interface operations {
2190
3351
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2191
3352
  */
2192
3353
  org_id: string;
2193
- /**
2194
- * @description ID of the MFA approval request
2195
- * @example MfaRequest#6de79de4-662c-4203-9235-b6ace5cb432b
2196
- */
2197
- mfa_id: string;
3354
+ };
3355
+ };
3356
+ requestBody: {
3357
+ content: {
3358
+ "application/json": components["schemas"]["CreateKeyRequest"];
2198
3359
  };
2199
3360
  };
2200
3361
  responses: {
2201
- 200: components["responses"]["MfaRequestInfo"];
3362
+ 200: components["responses"]["CreateKeyResponse"];
2202
3363
  default: {
2203
3364
  content: {
2204
3365
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2207,10 +3368,263 @@ export interface operations {
2207
3368
  };
2208
3369
  };
2209
3370
  /**
2210
- * Approve a TOTP MFA Request
2211
- * @description Approve a TOTP MFA Request
3371
+ * Get Key
3372
+ * @description Get Key
2212
3373
  *
2213
- * Adds an approver to a pending TOTP MFA request.
3374
+ * Returns the properties of a key.
3375
+ */
3376
+ getKeyInOrg: {
3377
+ parameters: {
3378
+ path: {
3379
+ /**
3380
+ * @description Name or ID of the desired Org
3381
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3382
+ */
3383
+ org_id: string;
3384
+ /**
3385
+ * @description ID of the desired Key
3386
+ * @example Key#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3387
+ */
3388
+ key_id: string;
3389
+ };
3390
+ };
3391
+ responses: {
3392
+ 200: components["responses"]["KeyInfo"];
3393
+ default: {
3394
+ content: {
3395
+ "application/json": components["schemas"]["ErrorResponse"];
3396
+ };
3397
+ };
3398
+ };
3399
+ };
3400
+ /**
3401
+ * Delete Key
3402
+ * @description Delete Key
3403
+ *
3404
+ * Deletes a key specified by its ID.
3405
+ * Only the key owner and org owners are allowed to delete keys.
3406
+ */
3407
+ deleteKey: {
3408
+ parameters: {
3409
+ path: {
3410
+ /**
3411
+ * @description Name or ID of the desired Org
3412
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3413
+ */
3414
+ org_id: string;
3415
+ /**
3416
+ * @description ID of the desired Key
3417
+ * @example Key#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3418
+ */
3419
+ key_id: string;
3420
+ };
3421
+ };
3422
+ responses: {
3423
+ 200: components["responses"]["EmptyImpl"];
3424
+ default: {
3425
+ content: {
3426
+ "application/json": components["schemas"]["ErrorResponse"];
3427
+ };
3428
+ };
3429
+ };
3430
+ };
3431
+ /**
3432
+ * Update Key
3433
+ * @description Update Key
3434
+ *
3435
+ * Enable or disable a key. The user must be the owner of the key or organization to perform this action.
3436
+ */
3437
+ updateKey: {
3438
+ parameters: {
3439
+ path: {
3440
+ /**
3441
+ * @description Name or ID of the desired Org
3442
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3443
+ */
3444
+ org_id: string;
3445
+ /**
3446
+ * @description ID of the desired Key
3447
+ * @example Key#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3448
+ */
3449
+ key_id: string;
3450
+ };
3451
+ };
3452
+ requestBody: {
3453
+ content: {
3454
+ "application/json": components["schemas"]["UpdateKeyRequest"];
3455
+ };
3456
+ };
3457
+ responses: {
3458
+ 200: components["responses"]["KeyInfo"];
3459
+ default: {
3460
+ content: {
3461
+ "application/json": components["schemas"]["ErrorResponse"];
3462
+ };
3463
+ };
3464
+ };
3465
+ };
3466
+ /**
3467
+ * List Pending MFA Requests
3468
+ * @description List Pending MFA Requests
3469
+ *
3470
+ * Retrieves and returns all pending MFA requests that are accessible to the current user,
3471
+ * i.e., those in which the current user is listed as an approver
3472
+ */
3473
+ mfaList: {
3474
+ parameters: {
3475
+ path: {
3476
+ /**
3477
+ * @description Name or ID of the desired Org
3478
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3479
+ */
3480
+ org_id: string;
3481
+ };
3482
+ };
3483
+ responses: {
3484
+ 200: components["responses"]["ListMfaResponse"];
3485
+ default: {
3486
+ content: {
3487
+ "application/json": components["schemas"]["ErrorResponse"];
3488
+ };
3489
+ };
3490
+ };
3491
+ };
3492
+ /**
3493
+ * Get Pending MFA Request
3494
+ * @description Get Pending MFA Request
3495
+ *
3496
+ * Retrieves and returns a pending MFA request by its id.
3497
+ */
3498
+ mfaGet: {
3499
+ parameters: {
3500
+ path: {
3501
+ /**
3502
+ * @description Name or ID of the desired Org
3503
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3504
+ */
3505
+ org_id: string;
3506
+ /**
3507
+ * @description Name or ID of the desired MfaRequest
3508
+ * @example MfaRequest#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3509
+ */
3510
+ mfa_id: string;
3511
+ };
3512
+ };
3513
+ responses: {
3514
+ 200: components["responses"]["MfaRequestInfo"];
3515
+ default: {
3516
+ content: {
3517
+ "application/json": components["schemas"]["ErrorResponse"];
3518
+ };
3519
+ };
3520
+ };
3521
+ };
3522
+ /**
3523
+ * Approve MFA Request
3524
+ * @description Approve MFA Request
3525
+ *
3526
+ * Approve request after logging in with CubeSigner. Adds the currently-logged user as an approver
3527
+ * of a pending MFA request of the [Status::RequiredApprovers] kind. If the required number of
3528
+ * approvers is reached, the MFA request is approved; the confirmation receipt can be used to
3529
+ * resume the original HTTP request.
3530
+ */
3531
+ mfaApproveCs: {
3532
+ parameters: {
3533
+ path: {
3534
+ /**
3535
+ * @description Name or ID of the desired Org
3536
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3537
+ */
3538
+ org_id: string;
3539
+ /**
3540
+ * @description Name or ID of the desired MfaRequest
3541
+ * @example MfaRequest#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3542
+ */
3543
+ mfa_id: string;
3544
+ };
3545
+ };
3546
+ responses: {
3547
+ 200: components["responses"]["MfaRequestInfo"];
3548
+ default: {
3549
+ content: {
3550
+ "application/json": components["schemas"]["ErrorResponse"];
3551
+ };
3552
+ };
3553
+ };
3554
+ };
3555
+ /**
3556
+ * Initiate Approving an MFA Request with FIDO
3557
+ * @description Initiate Approving an MFA Request with FIDO
3558
+ *
3559
+ * Initiates the approval process of an MFA Request using FIDO.
3560
+ */
3561
+ mfaApproveFido: {
3562
+ parameters: {
3563
+ path: {
3564
+ /**
3565
+ * @description Name or ID of the desired Org
3566
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3567
+ */
3568
+ org_id: string;
3569
+ /**
3570
+ * @description Name or ID of the desired MfaRequest
3571
+ * @example MfaRequest#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3572
+ */
3573
+ mfa_id: string;
3574
+ };
3575
+ };
3576
+ responses: {
3577
+ 200: components["responses"]["FidoAssertChallenge"];
3578
+ default: {
3579
+ content: {
3580
+ "application/json": components["schemas"]["ErrorResponse"];
3581
+ };
3582
+ };
3583
+ };
3584
+ };
3585
+ /**
3586
+ * Finalize a FIDO MFA Approval
3587
+ * @description Finalize a FIDO MFA Approval
3588
+ *
3589
+ * Adds an approver to a pending MFA request.
3590
+ *
3591
+ * If the required number of approvers is reached, the MFA request is approved;
3592
+ * the confirmation receipt can be used to resume the original HTTP request.
3593
+ */
3594
+ mfaApproveFidoComplete: {
3595
+ parameters: {
3596
+ path: {
3597
+ /**
3598
+ * @description Name or ID of the desired Org
3599
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3600
+ */
3601
+ org_id: string;
3602
+ /**
3603
+ * @description Name or ID of the desired MfaRequest
3604
+ * @example MfaRequest#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3605
+ */
3606
+ mfa_id: string;
3607
+ };
3608
+ };
3609
+ requestBody: {
3610
+ content: {
3611
+ "application/json": components["schemas"]["FidoAssertAnswer"];
3612
+ };
3613
+ };
3614
+ responses: {
3615
+ 200: components["responses"]["MfaRequestInfo"];
3616
+ default: {
3617
+ content: {
3618
+ "application/json": components["schemas"]["ErrorResponse"];
3619
+ };
3620
+ };
3621
+ };
3622
+ };
3623
+ /**
3624
+ * Approve a TOTP MFA Request
3625
+ * @description Approve a TOTP MFA Request
3626
+ *
3627
+ * Adds the current user as approver to a pending MFA request by providing TOTP code.
2214
3628
  *
2215
3629
  * If the required number of approvers is reached, the MFA request is approved;
2216
3630
  * the confirmation receipt can be used to resume the original HTTP request.
@@ -2224,8 +3638,8 @@ export interface operations {
2224
3638
  */
2225
3639
  org_id: string;
2226
3640
  /**
2227
- * @description ID of the MFA approval request
2228
- * @example MfaRequest#6de79de4-662c-4203-9235-b6ace5cb432b
3641
+ * @description Name or ID of the desired MfaRequest
3642
+ * @example MfaRequest#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2229
3643
  */
2230
3644
  mfa_id: string;
2231
3645
  };
@@ -2266,7 +3680,7 @@ export interface operations {
2266
3680
  };
2267
3681
  };
2268
3682
  responses: {
2269
- 200: components["responses"]["OidcLoginResponse"];
3683
+ 200: components["responses"]["NewSessionResponse"];
2270
3684
  202: {
2271
3685
  content: {
2272
3686
  "application/json": components["schemas"]["AcceptedResponse"];
@@ -2287,6 +3701,23 @@ export interface operations {
2287
3701
  */
2288
3702
  listRoles: {
2289
3703
  parameters: {
3704
+ query?: {
3705
+ /**
3706
+ * @description Max number of items to return per page.
3707
+ *
3708
+ * If the actual number of returned items may be less that this, even if there exist more
3709
+ * data in the result set. To reliably determine if more data is left in the result set,
3710
+ * inspect the [UnencryptedLastEvalKey] value in the response object.
3711
+ */
3712
+ "page.size"?: number;
3713
+ /**
3714
+ * @description The start of the page. Omit to start from the beginning; otherwise, only specify a
3715
+ * the exact value previously returned as 'last_evaluated_key' from the same endpoint.
3716
+ */
3717
+ "page.start"?: components["schemas"]["LastEvalKey"] | null;
3718
+ /** @description Don't include keys and users for each role */
3719
+ summarize?: boolean | null;
3720
+ };
2290
3721
  path: {
2291
3722
  /**
2292
3723
  * @description Name or ID of the desired Org
@@ -2296,7 +3727,7 @@ export interface operations {
2296
3727
  };
2297
3728
  };
2298
3729
  responses: {
2299
- 200: components["responses"]["ListRolesResponse"];
3730
+ 200: components["responses"]["PaginatedListRolesResponse"];
2300
3731
  default: {
2301
3732
  content: {
2302
3733
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2324,7 +3755,7 @@ export interface operations {
2324
3755
  /** @description Optional request body to set the role name */
2325
3756
  requestBody?: {
2326
3757
  content: {
2327
- "application/json": components["schemas"]["CreateRoleRequest"];
3758
+ "application/json": components["schemas"]["CreateRoleRequest"] | null;
2328
3759
  };
2329
3760
  };
2330
3761
  responses: {
@@ -2483,8 +3914,8 @@ export interface operations {
2483
3914
  */
2484
3915
  role_id: string;
2485
3916
  /**
2486
- * @description ID of the user to add to role
2487
- * @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
3917
+ * @description ID of the desired User
3918
+ * @example User#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2488
3919
  */
2489
3920
  user_id: string;
2490
3921
  };
@@ -2492,13 +3923,477 @@ export interface operations {
2492
3923
  responses: {
2493
3924
  };
2494
3925
  };
3926
+ /**
3927
+ * List Role Keys
3928
+ * @description List Role Keys
3929
+ *
3930
+ * Returns an array of all keys in a role.
3931
+ */
3932
+ listRoleKeys: {
3933
+ parameters: {
3934
+ query?: {
3935
+ /**
3936
+ * @description Max number of items to return per page.
3937
+ *
3938
+ * If the actual number of returned items may be less that this, even if there exist more
3939
+ * data in the result set. To reliably determine if more data is left in the result set,
3940
+ * inspect the [UnencryptedLastEvalKey] value in the response object.
3941
+ */
3942
+ "page.size"?: number;
3943
+ /**
3944
+ * @description The start of the page. Omit to start from the beginning; otherwise, only specify a
3945
+ * the exact value previously returned as 'last_evaluated_key' from the same endpoint.
3946
+ */
3947
+ "page.start"?: components["schemas"]["LastEvalKey"] | null;
3948
+ };
3949
+ path: {
3950
+ /**
3951
+ * @description Name or ID of the desired Org
3952
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3953
+ */
3954
+ org_id: string;
3955
+ /**
3956
+ * @description Name or ID of the desired Role
3957
+ * @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3958
+ */
3959
+ role_id: string;
3960
+ };
3961
+ };
3962
+ responses: {
3963
+ 200: components["responses"]["PaginatedListRoleKeysResponse"];
3964
+ default: {
3965
+ content: {
3966
+ "application/json": components["schemas"]["ErrorResponse"];
3967
+ };
3968
+ };
3969
+ };
3970
+ };
2495
3971
  /**
2496
3972
  * Remove Key
2497
3973
  * @description Remove Key
2498
3974
  *
2499
3975
  * Removes a given key from a role
2500
3976
  */
2501
- removeKeyFromRole: {
3977
+ removeKeyFromRole: {
3978
+ parameters: {
3979
+ path: {
3980
+ /**
3981
+ * @description Name or ID of the desired Org
3982
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3983
+ */
3984
+ org_id: string;
3985
+ /**
3986
+ * @description Name or ID of the desired Role
3987
+ * @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3988
+ */
3989
+ role_id: string;
3990
+ /**
3991
+ * @description ID of the desired Key
3992
+ * @example Key#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3993
+ */
3994
+ key_id: string;
3995
+ };
3996
+ };
3997
+ responses: {
3998
+ };
3999
+ };
4000
+ /**
4001
+ * List a single page of Tokens (Deprecated)
4002
+ * @deprecated
4003
+ * @description List a single page of Tokens (Deprecated)
4004
+ *
4005
+ * **Deprecated**: Use `GET /org/{org_id}/session?role=`
4006
+ *
4007
+ * Returns all access tokens for a given role.
4008
+ * Only users in the role or owners can create a token for it.
4009
+ */
4010
+ listRoleTokens: {
4011
+ parameters: {
4012
+ path: {
4013
+ /**
4014
+ * @description Name or ID of the desired Org
4015
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4016
+ */
4017
+ org_id: string;
4018
+ /**
4019
+ * @description Name or ID of the desired Role
4020
+ * @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4021
+ */
4022
+ role_id: string;
4023
+ };
4024
+ };
4025
+ responses: {
4026
+ 200: components["responses"]["ListTokensResponse"];
4027
+ default: {
4028
+ content: {
4029
+ "application/json": components["schemas"]["ErrorResponse"];
4030
+ };
4031
+ };
4032
+ };
4033
+ };
4034
+ /**
4035
+ * Create Token
4036
+ * @description Create Token
4037
+ *
4038
+ * Creates a new access token for a given role (to be used as "API Key" for all signing actions).
4039
+ * Only users in the role or owners can create a token for it.
4040
+ */
4041
+ createRoleToken: {
4042
+ parameters: {
4043
+ path: {
4044
+ /**
4045
+ * @description Name or ID of the desired Org
4046
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4047
+ */
4048
+ org_id: string;
4049
+ /**
4050
+ * @description Name or ID of the desired Role
4051
+ * @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4052
+ */
4053
+ role_id: string;
4054
+ };
4055
+ };
4056
+ requestBody: {
4057
+ content: {
4058
+ "application/json": components["schemas"]["CreateTokenRequest"];
4059
+ };
4060
+ };
4061
+ responses: {
4062
+ 200: components["responses"]["NewSessionResponse"];
4063
+ default: {
4064
+ content: {
4065
+ "application/json": components["schemas"]["ErrorResponse"];
4066
+ };
4067
+ };
4068
+ };
4069
+ };
4070
+ /**
4071
+ * Revoke All Tokens (Deprecated)
4072
+ * @deprecated
4073
+ * @description Revoke All Tokens (Deprecated)
4074
+ *
4075
+ * **Deprecated**: Use `DELETE /org/{org_id}/session?role=` instead
4076
+ *
4077
+ * Revokes all access tokens associated with a role.
4078
+ * Only users in the role or owners can perform this action.
4079
+ */
4080
+ revokeAllRoleTokens: {
4081
+ parameters: {
4082
+ path: {
4083
+ /**
4084
+ * @description Name or ID of the desired Org
4085
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4086
+ */
4087
+ org_id: string;
4088
+ /**
4089
+ * @description Name or ID of the desired Role
4090
+ * @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4091
+ */
4092
+ role_id: string;
4093
+ };
4094
+ };
4095
+ responses: {
4096
+ 200: components["responses"]["RevokeTokensResponse"];
4097
+ default: {
4098
+ content: {
4099
+ "application/json": components["schemas"]["ErrorResponse"];
4100
+ };
4101
+ };
4102
+ };
4103
+ };
4104
+ /**
4105
+ * Revoke Token (Deprecated)
4106
+ * @deprecated
4107
+ * @description Revoke Token (Deprecated)
4108
+ *
4109
+ * **Deprecated**: Use `DELETE /org/{org_id}/session/{session_id}`
4110
+ *
4111
+ * Revokes an access token associated with a role.
4112
+ * Only users in the role or owners can perform this action.
4113
+ */
4114
+ revokeRoleToken: {
4115
+ parameters: {
4116
+ path: {
4117
+ /**
4118
+ * @description Name or ID of the desired Org
4119
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4120
+ */
4121
+ org_id: string;
4122
+ /**
4123
+ * @description Name or ID of the desired Role
4124
+ * @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4125
+ */
4126
+ role_id: string;
4127
+ /**
4128
+ * @description The ID of the session to revoke
4129
+ * @example 77aad2100c361f497635dd005c4d15781e2e5df4b9f45d8e74f37425cbc30b9e
4130
+ */
4131
+ session_id: string;
4132
+ };
4133
+ };
4134
+ responses: {
4135
+ 200: components["responses"]["RevokeTokenResponse"];
4136
+ default: {
4137
+ content: {
4138
+ "application/json": components["schemas"]["ErrorResponse"];
4139
+ };
4140
+ };
4141
+ };
4142
+ };
4143
+ /**
4144
+ * List Role Users.
4145
+ * @description List Role Users.
4146
+ *
4147
+ * Returns an array of all users who have access to a role.
4148
+ */
4149
+ listRoleUsers: {
4150
+ parameters: {
4151
+ query?: {
4152
+ /**
4153
+ * @description Max number of items to return per page.
4154
+ *
4155
+ * If the actual number of returned items may be less that this, even if there exist more
4156
+ * data in the result set. To reliably determine if more data is left in the result set,
4157
+ * inspect the [UnencryptedLastEvalKey] value in the response object.
4158
+ */
4159
+ "page.size"?: number;
4160
+ /**
4161
+ * @description The start of the page. Omit to start from the beginning; otherwise, only specify a
4162
+ * the exact value previously returned as 'last_evaluated_key' from the same endpoint.
4163
+ */
4164
+ "page.start"?: components["schemas"]["LastEvalKey"] | null;
4165
+ };
4166
+ path: {
4167
+ /**
4168
+ * @description Name or ID of the desired Org
4169
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4170
+ */
4171
+ org_id: string;
4172
+ /**
4173
+ * @description Name or ID of the desired Role
4174
+ * @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4175
+ */
4176
+ role_id: string;
4177
+ };
4178
+ };
4179
+ responses: {
4180
+ 200: components["responses"]["PaginatedListRoleUsersResponse"];
4181
+ default: {
4182
+ content: {
4183
+ "application/json": components["schemas"]["ErrorResponse"];
4184
+ };
4185
+ };
4186
+ };
4187
+ };
4188
+ /**
4189
+ * List sessions
4190
+ * @description List sessions
4191
+ *
4192
+ * If no query parameters are provided, information for the current session is returned
4193
+ */
4194
+ listSessions: {
4195
+ parameters: {
4196
+ query?: {
4197
+ /**
4198
+ * @description Max number of items to return per page.
4199
+ *
4200
+ * If the actual number of returned items may be less that this, even if there exist more
4201
+ * data in the result set. To reliably determine if more data is left in the result set,
4202
+ * inspect the [UnencryptedLastEvalKey] value in the response object.
4203
+ */
4204
+ "page.size"?: number;
4205
+ /**
4206
+ * @description The start of the page. Omit to start from the beginning; otherwise, only specify a
4207
+ * the exact value previously returned as 'last_evaluated_key' from the same endpoint.
4208
+ */
4209
+ "page.start"?: components["schemas"]["LastEvalKey"] | null;
4210
+ /**
4211
+ * @description If provided, the name or ID of a role to operate on
4212
+ * @example my-role
4213
+ */
4214
+ role?: string | null;
4215
+ };
4216
+ path: {
4217
+ /**
4218
+ * @description Name or ID of the desired Org
4219
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4220
+ */
4221
+ org_id: string;
4222
+ };
4223
+ };
4224
+ responses: {
4225
+ 200: components["responses"]["PaginatedSessionsResponse"];
4226
+ default: {
4227
+ content: {
4228
+ "application/json": components["schemas"]["ErrorResponse"];
4229
+ };
4230
+ };
4231
+ };
4232
+ };
4233
+ /**
4234
+ * Revoke existing session(s)
4235
+ * @description Revoke existing session(s)
4236
+ *
4237
+ * Immediately revokes existing sessions, preventing them from being used or refreshed.
4238
+ * If no query params are provided, the current session is revoked.
4239
+ */
4240
+ revokeSessions: {
4241
+ parameters: {
4242
+ query?: {
4243
+ /**
4244
+ * @description If provided, the name or ID of a role to operate on
4245
+ * @example my-role
4246
+ */
4247
+ role?: string | null;
4248
+ };
4249
+ path: {
4250
+ /**
4251
+ * @description Name or ID of the desired Org
4252
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4253
+ */
4254
+ org_id: string;
4255
+ };
4256
+ };
4257
+ responses: {
4258
+ 200: components["responses"]["SessionsResponse"];
4259
+ default: {
4260
+ content: {
4261
+ "application/json": components["schemas"]["ErrorResponse"];
4262
+ };
4263
+ };
4264
+ };
4265
+ };
4266
+ /**
4267
+ * Get session information
4268
+ * @description Get session information
4269
+ */
4270
+ getSession: {
4271
+ parameters: {
4272
+ path: {
4273
+ /**
4274
+ * @description Name or ID of the desired Org
4275
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4276
+ */
4277
+ org_id: string;
4278
+ /**
4279
+ * @description The ID of the session to get
4280
+ * @example 77aad2100c361f497635dd005c4d15781e2e5df4b9f45d8e74f37425cbc30b9e
4281
+ */
4282
+ session_id: string;
4283
+ };
4284
+ };
4285
+ responses: {
4286
+ 200: components["responses"]["SessionInfo"];
4287
+ default: {
4288
+ content: {
4289
+ "application/json": components["schemas"]["ErrorResponse"];
4290
+ };
4291
+ };
4292
+ };
4293
+ };
4294
+ /**
4295
+ * Revoke a session
4296
+ * @description Revoke a session
4297
+ *
4298
+ * Immediately revokes an existing session, preventing it from being used or refreshed
4299
+ */
4300
+ revokeSession: {
4301
+ parameters: {
4302
+ path: {
4303
+ /**
4304
+ * @description Name or ID of the desired Org
4305
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4306
+ */
4307
+ org_id: string;
4308
+ /**
4309
+ * @description The ID of the session to revoke
4310
+ * @example 77aad2100c361f497635dd005c4d15781e2e5df4b9f45d8e74f37425cbc30b9e
4311
+ */
4312
+ session_id: string;
4313
+ };
4314
+ };
4315
+ responses: {
4316
+ 200: components["responses"]["SessionInfo"];
4317
+ default: {
4318
+ content: {
4319
+ "application/json": components["schemas"]["ErrorResponse"];
4320
+ };
4321
+ };
4322
+ };
4323
+ };
4324
+ /**
4325
+ * Sign Solana Message
4326
+ * @description Sign Solana Message
4327
+ *
4328
+ * Signs a Solana message with a given key.
4329
+ * This is a pre-release feature.
4330
+ */
4331
+ solanaSign: {
4332
+ parameters: {
4333
+ path: {
4334
+ /**
4335
+ * @description Name or ID of the desired Org
4336
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4337
+ */
4338
+ org_id: string;
4339
+ /**
4340
+ * @description The base58-encoded public key
4341
+ * @example 86ZRPszBp5EoPj7wR3bHn7wnAZ5iYfpasRc7DKFPTUaZ
4342
+ */
4343
+ pubkey: string;
4344
+ };
4345
+ };
4346
+ requestBody: {
4347
+ content: {
4348
+ "application/json": components["schemas"]["SolanaSignRequest"];
4349
+ };
4350
+ };
4351
+ responses: {
4352
+ 200: components["responses"]["SolanaSignResponse"];
4353
+ 202: {
4354
+ content: {
4355
+ "application/json": components["schemas"]["AcceptedResponse"];
4356
+ };
4357
+ };
4358
+ default: {
4359
+ content: {
4360
+ "application/json": components["schemas"]["ErrorResponse"];
4361
+ };
4362
+ };
4363
+ };
4364
+ };
4365
+ /**
4366
+ * Get Token-Accessible Keys
4367
+ * @description Get Token-Accessible Keys
4368
+ *
4369
+ * Retrieves the keys that the role token can access.
4370
+ */
4371
+ listTokenKeys: {
4372
+ parameters: {
4373
+ path: {
4374
+ /**
4375
+ * @description Name or ID of the desired Org
4376
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4377
+ */
4378
+ org_id: string;
4379
+ };
4380
+ };
4381
+ responses: {
4382
+ 200: components["responses"]["KeyInfos"];
4383
+ default: {
4384
+ content: {
4385
+ "application/json": components["schemas"]["ErrorResponse"];
4386
+ };
4387
+ };
4388
+ };
4389
+ };
4390
+ /**
4391
+ * User Info
4392
+ * @description User Info
4393
+ *
4394
+ * Retrieves information about the current user.
4395
+ */
4396
+ aboutMe: {
2502
4397
  parameters: {
2503
4398
  path: {
2504
4399
  /**
@@ -2506,29 +4401,24 @@ export interface operations {
2506
4401
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2507
4402
  */
2508
4403
  org_id: string;
2509
- /**
2510
- * @description Name or ID of the desired Role
2511
- * @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2512
- */
2513
- role_id: string;
2514
- /**
2515
- * @description ID of the desired Key
2516
- * @example Key#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2517
- */
2518
- key_id: string;
2519
4404
  };
2520
4405
  };
2521
4406
  responses: {
4407
+ 200: components["responses"]["UserInfo"];
4408
+ default: {
4409
+ content: {
4410
+ "application/json": components["schemas"]["ErrorResponse"];
4411
+ };
4412
+ };
2522
4413
  };
2523
4414
  };
2524
4415
  /**
2525
- * List Tokens
2526
- * @description List Tokens
4416
+ * Initiate registration of a FIDO key
4417
+ * @description Initiate registration of a FIDO key
2527
4418
  *
2528
- * Returns all access tokens for a given role.
2529
- * Only users in the role or owners can create a token for it.
4419
+ * Generates a challenge that must be answered to prove ownership of a key
2530
4420
  */
2531
- listRoleTokens: {
4421
+ userRegisterFidoInit: {
2532
4422
  parameters: {
2533
4423
  path: {
2534
4424
  /**
@@ -2536,15 +4426,20 @@ export interface operations {
2536
4426
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2537
4427
  */
2538
4428
  org_id: string;
2539
- /**
2540
- * @description Name or ID of the desired Role
2541
- * @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2542
- */
2543
- role_id: string;
4429
+ };
4430
+ };
4431
+ requestBody: {
4432
+ content: {
4433
+ "application/json": components["schemas"]["FidoCreateRequest"];
2544
4434
  };
2545
4435
  };
2546
4436
  responses: {
2547
- 200: components["responses"]["ListTokensResponse"];
4437
+ 200: components["responses"]["FidoCreateChallengeResponse"];
4438
+ 202: {
4439
+ content: {
4440
+ "application/json": components["schemas"]["AcceptedResponse"];
4441
+ };
4442
+ };
2548
4443
  default: {
2549
4444
  content: {
2550
4445
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2553,13 +4448,12 @@ export interface operations {
2553
4448
  };
2554
4449
  };
2555
4450
  /**
2556
- * Create Token
2557
- * @description Create Token
4451
+ * Finalize registration of a FIDO key
4452
+ * @description Finalize registration of a FIDO key
2558
4453
  *
2559
- * Creates a new access token for a given role (to be used as "API Key" for all signing actions).
2560
- * Only users in the role or owners can create a token for it.
4454
+ * Accepts the response to the challenge generated by the POST to this endpoint.
2561
4455
  */
2562
- createRoleToken: {
4456
+ userRegisterFidoComplete: {
2563
4457
  parameters: {
2564
4458
  path: {
2565
4459
  /**
@@ -2567,20 +4461,15 @@ export interface operations {
2567
4461
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2568
4462
  */
2569
4463
  org_id: string;
2570
- /**
2571
- * @description Name or ID of the desired Role
2572
- * @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2573
- */
2574
- role_id: string;
2575
4464
  };
2576
4465
  };
2577
4466
  requestBody: {
2578
4467
  content: {
2579
- "application/json": components["schemas"]["CreateTokenRequest"];
4468
+ "application/json": components["schemas"]["FidoCreateChallengeAnswer"];
2580
4469
  };
2581
4470
  };
2582
4471
  responses: {
2583
- 200: components["responses"]["CreateTokenResponse"];
4472
+ 200: components["responses"]["EmptyImpl"];
2584
4473
  default: {
2585
4474
  content: {
2586
4475
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2589,13 +4478,18 @@ export interface operations {
2589
4478
  };
2590
4479
  };
2591
4480
  /**
2592
- * Revoke All Tokens
2593
- * @description Revoke All Tokens
4481
+ * Initialize TOTP Reset
4482
+ * @description Initialize TOTP Reset
2594
4483
  *
2595
- * Revokes all access tokens associated with a role.
2596
- * Only users in the role or owners can perform this action.
4484
+ * Creates a new TOTP challenge that must be answered to prove that the new TOTP
4485
+ * was successfully imported into an authenticator app.
4486
+ *
4487
+ * This operation is allowed if EITHER
4488
+ * - the user account is not yet initialized and no TOTP is already set, OR
4489
+ * - the user has not configured any auth factors;
4490
+ * otherwise, MFA is required.
2597
4491
  */
2598
- revokeAllRoleTokens: {
4492
+ userResetTotpInit: {
2599
4493
  parameters: {
2600
4494
  path: {
2601
4495
  /**
@@ -2603,15 +4497,20 @@ export interface operations {
2603
4497
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2604
4498
  */
2605
4499
  org_id: string;
2606
- /**
2607
- * @description Name or ID of the desired Role
2608
- * @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2609
- */
2610
- role_id: string;
4500
+ };
4501
+ };
4502
+ requestBody: {
4503
+ content: {
4504
+ "application/json": components["schemas"]["Empty"];
2611
4505
  };
2612
4506
  };
2613
4507
  responses: {
2614
- 200: components["responses"]["RevokeTokensResponse"];
4508
+ 200: components["responses"]["TotpInfo"];
4509
+ 202: {
4510
+ content: {
4511
+ "application/json": components["schemas"]["AcceptedResponse"];
4512
+ };
4513
+ };
2615
4514
  default: {
2616
4515
  content: {
2617
4516
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2620,13 +4519,13 @@ export interface operations {
2620
4519
  };
2621
4520
  };
2622
4521
  /**
2623
- * Revoke Token
2624
- * @description Revoke Token
4522
+ * Finalize resetting TOTP
4523
+ * @description Finalize resetting TOTP
2625
4524
  *
2626
- * Revokes an access token associated with a role.
2627
- * Only users in the role or owners can perform this action.
4525
+ * Checks if the response contains the correct TOTP code corresponding to the
4526
+ * challenge generated by the POST method of this endpoint.
2628
4527
  */
2629
- revokeRoleToken: {
4528
+ userResetTotpComplete: {
2630
4529
  parameters: {
2631
4530
  path: {
2632
4531
  /**
@@ -2634,20 +4533,15 @@ export interface operations {
2634
4533
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2635
4534
  */
2636
4535
  org_id: string;
2637
- /**
2638
- * @description Name or ID of the desired Role
2639
- * @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2640
- */
2641
- role_id: string;
2642
- /**
2643
- * @description The ID of the session to revoke
2644
- * @example 77aad2100c361f497635dd005c4d15781e2e5df4b9f45d8e74f37425cbc30b9e
2645
- */
2646
- session_id: string;
4536
+ };
4537
+ };
4538
+ requestBody: {
4539
+ content: {
4540
+ "application/json": components["schemas"]["TotpChallengeAnswer"];
2647
4541
  };
2648
4542
  };
2649
4543
  responses: {
2650
- 200: components["responses"]["RevokeTokenResponse"];
4544
+ 200: components["responses"]["EmptyImpl"];
2651
4545
  default: {
2652
4546
  content: {
2653
4547
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2656,12 +4550,13 @@ export interface operations {
2656
4550
  };
2657
4551
  };
2658
4552
  /**
2659
- * Get Token-Accessible Keys
2660
- * @description Get Token-Accessible Keys
4553
+ * Verify TOTP
4554
+ * @description Verify TOTP
2661
4555
  *
2662
- * Retrieves the keys that the role token can access.
4556
+ * Checks if a given code matches the current TOTP code for the current user.
4557
+ * Errors with 403 if the current user has not set up TOTP or the code fails verification.
2663
4558
  */
2664
- listTokenKeys: {
4559
+ userVerifyTotp: {
2665
4560
  parameters: {
2666
4561
  path: {
2667
4562
  /**
@@ -2671,8 +4566,13 @@ export interface operations {
2671
4566
  org_id: string;
2672
4567
  };
2673
4568
  };
4569
+ requestBody: {
4570
+ content: {
4571
+ "application/json": components["schemas"]["TotpApproveRequest"];
4572
+ };
4573
+ };
2674
4574
  responses: {
2675
- 200: components["responses"]["KeyInfos"];
4575
+ 200: components["responses"]["EmptyImpl"];
2676
4576
  default: {
2677
4577
  content: {
2678
4578
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2704,8 +4604,8 @@ export interface operations {
2704
4604
  };
2705
4605
  };
2706
4606
  /**
2707
- * Adds a third-party user to the org
2708
- * @description Adds a third-party user to the org
4607
+ * Add a third-party user to the org
4608
+ * @description Add a third-party user to the org
2709
4609
  */
2710
4610
  createOidcUser: {
2711
4611
  parameters: {
@@ -2732,15 +4632,131 @@ export interface operations {
2732
4632
  };
2733
4633
  };
2734
4634
  /**
2735
- * Reset TOTP
2736
- * @description Reset TOTP
4635
+ * Remove a third-party user from the org
4636
+ * @description Remove a third-party user from the org
4637
+ */
4638
+ deleteOidcUser: {
4639
+ parameters: {
4640
+ path: {
4641
+ /**
4642
+ * @description Name or ID of the desired Org
4643
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4644
+ */
4645
+ org_id: string;
4646
+ };
4647
+ };
4648
+ requestBody: {
4649
+ content: {
4650
+ "application/json": components["schemas"]["OIDCIdentity"];
4651
+ };
4652
+ };
4653
+ responses: {
4654
+ 200: components["responses"]["EmptyImpl"];
4655
+ default: {
4656
+ content: {
4657
+ "application/json": components["schemas"]["ErrorResponse"];
4658
+ };
4659
+ };
4660
+ };
4661
+ };
4662
+ /**
4663
+ * Initiate registration of a FIDO key
4664
+ * @deprecated
4665
+ * @description Initiate registration of a FIDO key
4666
+ *
4667
+ * Generates a challenge that must be answered to prove ownership of a key
4668
+ */
4669
+ registerFidoInitLegacy: {
4670
+ requestBody: {
4671
+ content: {
4672
+ "application/json": components["schemas"]["FidoCreateRequest"];
4673
+ };
4674
+ };
4675
+ responses: {
4676
+ 200: components["responses"]["FidoCreateChallengeResponse"];
4677
+ 202: {
4678
+ content: {
4679
+ "application/json": components["schemas"]["AcceptedResponse"];
4680
+ };
4681
+ };
4682
+ default: {
4683
+ content: {
4684
+ "application/json": components["schemas"]["ErrorResponse"];
4685
+ };
4686
+ };
4687
+ };
4688
+ };
4689
+ /**
4690
+ * Finalize registration of a FIDO key
4691
+ * @deprecated
4692
+ * @description Finalize registration of a FIDO key
4693
+ *
4694
+ * Accepts the response to the challenge generated by the POST to this endpoint.
4695
+ */
4696
+ registerFidoCompleteLegacy: {
4697
+ requestBody: {
4698
+ content: {
4699
+ "application/json": components["schemas"]["FidoCreateChallengeAnswer"];
4700
+ };
4701
+ };
4702
+ responses: {
4703
+ 200: components["responses"]["EmptyImpl"];
4704
+ default: {
4705
+ content: {
4706
+ "application/json": components["schemas"]["ErrorResponse"];
4707
+ };
4708
+ };
4709
+ };
4710
+ };
4711
+ /**
4712
+ * Initialize TOTP Reset
4713
+ * @deprecated
4714
+ * @description Initialize TOTP Reset
2737
4715
  *
2738
- * Creates and sets a new TOTP configuration for the current user,
2739
- * overriding the existing one (if any).
4716
+ * Creates a new TOTP challenge that must be answered to prove that the new TOTP
4717
+ * was successfully imported into an authenticator app.
4718
+ *
4719
+ * This operation is allowed if EITHER
4720
+ * - the user account is not yet initialized and no TOTP is already set, OR
4721
+ * - the user has not configured any auth factors;
4722
+ * otherwise, MFA is required.
2740
4723
  */
2741
- userResetTotp: {
4724
+ resetTotpInitLegacy: {
4725
+ requestBody: {
4726
+ content: {
4727
+ "application/json": components["schemas"]["Empty"];
4728
+ };
4729
+ };
2742
4730
  responses: {
2743
4731
  200: components["responses"]["TotpInfo"];
4732
+ 202: {
4733
+ content: {
4734
+ "application/json": components["schemas"]["AcceptedResponse"];
4735
+ };
4736
+ };
4737
+ default: {
4738
+ content: {
4739
+ "application/json": components["schemas"]["ErrorResponse"];
4740
+ };
4741
+ };
4742
+ };
4743
+ };
4744
+ /**
4745
+ * Finalize resetting TOTP
4746
+ * @deprecated
4747
+ * @description Finalize resetting TOTP
4748
+ *
4749
+ * Checks if the response contains the correct TOTP code corresponding to the
4750
+ * challenge generated by the POST method of this endpoint.
4751
+ */
4752
+ resetTotpCompleteLegacy: {
4753
+ requestBody: {
4754
+ content: {
4755
+ "application/json": components["schemas"]["TotpChallengeAnswer"];
4756
+ };
4757
+ };
4758
+ responses: {
4759
+ 200: components["responses"]["EmptyImpl"];
2744
4760
  default: {
2745
4761
  content: {
2746
4762
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2750,15 +4766,16 @@ export interface operations {
2750
4766
  };
2751
4767
  /**
2752
4768
  * Verify TOTP
4769
+ * @deprecated
2753
4770
  * @description Verify TOTP
2754
4771
  *
2755
4772
  * Checks if a given code matches the current TOTP code for the current user.
2756
4773
  * Errors with 403 if the current user has not set up TOTP or the code fails verification.
2757
4774
  */
2758
- userVerifyTotp: {
2759
- parameters: {
2760
- path: {
2761
- code: string;
4775
+ verifyTotpLegacy: {
4776
+ requestBody: {
4777
+ content: {
4778
+ "application/json": components["schemas"]["TotpApproveRequest"];
2762
4779
  };
2763
4780
  };
2764
4781
  responses: {
@@ -2776,6 +4793,13 @@ export interface operations {
2776
4793
  *
2777
4794
  * Signs an arbitrary blob with a given key.
2778
4795
  * This is a pre-release feature.
4796
+ *
4797
+ * - ECDSA signatures are serialized as big-endian r and s plus recovery-id
4798
+ * byte v, which can in general take any of the values 0, 1, 2, or 3.
4799
+ *
4800
+ * - EdDSA signatures are serialized in the standard format.
4801
+ *
4802
+ * - BLS signatures are not supported on the blob-sign endpoint.
2779
4803
  */
2780
4804
  blobSign: {
2781
4805
  parameters: {
@@ -2786,8 +4810,8 @@ export interface operations {
2786
4810
  */
2787
4811
  org_id: string;
2788
4812
  /**
2789
- * @description The ID of the key
2790
- * @example Key#0x49011adbCC3bC9c0307BB07F37Dda1a1a9c69d2E
4813
+ * @description ID of the desired Key
4814
+ * @example Key#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2791
4815
  */
2792
4816
  key_id: string;
2793
4817
  };
@@ -2821,7 +4845,7 @@ export interface operations {
2821
4845
  parameters: {
2822
4846
  path: {
2823
4847
  /**
2824
- * @description Name or ID of the organization owning the key
4848
+ * @description Name or ID of the desired Org
2825
4849
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2826
4850
  */
2827
4851
  org_id: string;
@@ -2846,6 +4870,7 @@ export interface operations {
2846
4870
  * @description Sign EVM Transaction
2847
4871
  *
2848
4872
  * Signs an Ethereum (and other EVM) transaction with a given Secp256k1 key.
4873
+ * Returns an RLP-encoded transaction with EIP-155 signature.
2849
4874
  *
2850
4875
  * The key must be associated with the role and organization on whose behalf this action is called.
2851
4876
  */
@@ -2871,6 +4896,11 @@ export interface operations {
2871
4896
  };
2872
4897
  responses: {
2873
4898
  200: components["responses"]["Eth1SignResponse"];
4899
+ 202: {
4900
+ content: {
4901
+ "application/json": components["schemas"]["AcceptedResponse"];
4902
+ };
4903
+ };
2874
4904
  default: {
2875
4905
  content: {
2876
4906
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2908,6 +4938,11 @@ export interface operations {
2908
4938
  };
2909
4939
  responses: {
2910
4940
  200: components["responses"]["Eth2SignResponse"];
4941
+ 202: {
4942
+ content: {
4943
+ "application/json": components["schemas"]["AcceptedResponse"];
4944
+ };
4945
+ };
2911
4946
  default: {
2912
4947
  content: {
2913
4948
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2942,6 +4977,11 @@ export interface operations {
2942
4977
  };
2943
4978
  responses: {
2944
4979
  200: components["responses"]["StakeResponse"];
4980
+ 202: {
4981
+ content: {
4982
+ "application/json": components["schemas"]["AcceptedResponse"];
4983
+ };
4984
+ };
2945
4985
  default: {
2946
4986
  content: {
2947
4987
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2980,42 +5020,11 @@ export interface operations {
2980
5020
  };
2981
5021
  responses: {
2982
5022
  200: components["responses"]["UnstakeResponse"];
2983
- default: {
5023
+ 202: {
2984
5024
  content: {
2985
- "application/json": components["schemas"]["ErrorResponse"];
5025
+ "application/json": components["schemas"]["AcceptedResponse"];
2986
5026
  };
2987
5027
  };
2988
- };
2989
- };
2990
- /**
2991
- * Sign Solana Message
2992
- * @description Sign Solana Message
2993
- *
2994
- * Signs a Solana message with a given key.
2995
- * This is a pre-release feature.
2996
- */
2997
- solanaSign: {
2998
- parameters: {
2999
- path: {
3000
- /**
3001
- * @description Name or ID of the desired Org
3002
- * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3003
- */
3004
- org_id: string;
3005
- /**
3006
- * @description The base58-encoded public key
3007
- * @example 86ZRPszBp5EoPj7wR3bHn7wnAZ5iYfpasRc7DKFPTUaZ
3008
- */
3009
- pubkey: string;
3010
- };
3011
- };
3012
- requestBody: {
3013
- content: {
3014
- "application/json": components["schemas"]["SolanaSignRequest"];
3015
- };
3016
- };
3017
- responses: {
3018
- 200: components["responses"]["SolanaSignResponse"];
3019
5028
  default: {
3020
5029
  content: {
3021
5030
  "application/json": components["schemas"]["ErrorResponse"];
@@ -3043,7 +5052,7 @@ export interface operations {
3043
5052
  };
3044
5053
  };
3045
5054
  responses: {
3046
- 200: components["responses"]["RefreshResponse"];
5055
+ 200: components["responses"]["NewSessionResponse"];
3047
5056
  default: {
3048
5057
  content: {
3049
5058
  "application/json": components["schemas"]["ErrorResponse"];