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