@cubist-labs/cubesigner-sdk 0.1.50 → 0.2.2

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 (47) hide show
  1. package/README.md +66 -13
  2. package/dist/src/client.d.ts +434 -7
  3. package/dist/src/client.js +1022 -18
  4. package/dist/src/ethers/index.d.ts +2 -4
  5. package/dist/src/ethers/index.js +11 -9
  6. package/dist/src/fido.d.ts +76 -0
  7. package/dist/src/fido.js +148 -0
  8. package/dist/src/index.d.ts +102 -30
  9. package/dist/src/index.js +126 -72
  10. package/dist/src/key.d.ts +15 -45
  11. package/dist/src/key.js +31 -93
  12. package/dist/src/mfa.d.ts +85 -14
  13. package/dist/src/mfa.js +158 -40
  14. package/dist/src/org.d.ts +237 -123
  15. package/dist/src/org.js +108 -213
  16. package/dist/src/paginator.d.ts +76 -0
  17. package/dist/src/paginator.js +99 -0
  18. package/dist/src/role.d.ts +76 -74
  19. package/dist/src/role.js +79 -136
  20. package/dist/src/schema.d.ts +1672 -520
  21. package/dist/src/schema.js +1 -1
  22. package/dist/src/schema_types.d.ts +103 -0
  23. package/dist/src/schema_types.js +3 -0
  24. package/dist/src/session/session_manager.js +2 -2
  25. package/dist/src/session/session_storage.js +1 -1
  26. package/dist/src/session/signer_session_manager.d.ts +16 -29
  27. package/dist/src/session/signer_session_manager.js +27 -78
  28. package/dist/src/signer_session.d.ts +232 -125
  29. package/dist/src/signer_session.js +149 -250
  30. package/dist/src/util.d.ts +20 -0
  31. package/dist/src/util.js +31 -2
  32. package/package.json +13 -11
  33. package/src/client.ts +1217 -7
  34. package/src/ethers/index.ts +11 -18
  35. package/src/index.ts +149 -101
  36. package/src/key.ts +28 -121
  37. package/src/mfa.ts +202 -0
  38. package/src/org.ts +126 -275
  39. package/src/paginator.ts +122 -0
  40. package/src/role.ts +108 -181
  41. package/src/schema.ts +1673 -520
  42. package/src/schema_types.ts +103 -0
  43. package/src/session/session_manager.ts +2 -2
  44. package/src/session/session_storage.ts +1 -1
  45. package/src/session/signer_session_manager.ts +38 -108
  46. package/src/signer_session.ts +164 -323
  47. package/src/util.ts +41 -0
package/src/schema.ts CHANGED
@@ -12,7 +12,7 @@ export interface paths {
12
12
  *
13
13
  * Retrieves information about the current user.
14
14
  */
15
- get: operations["aboutMe"];
15
+ get: operations["aboutMeLegacy"];
16
16
  };
17
17
  "/v0/org/{org_id}": {
18
18
  /**
@@ -30,6 +30,16 @@ export interface paths {
30
30
  */
31
31
  patch: operations["updateOrg"];
32
32
  };
33
+ "/v0/org/{org_id}/ava/sign/{pubkey}": {
34
+ /**
35
+ * Sign Avalanche X- or P-Chain Message
36
+ * @description Sign Avalanche X- or P-Chain Message
37
+ *
38
+ * Signs an Avalanche message with a given SecpAva key.
39
+ * This is a pre-release feature.
40
+ */
41
+ post: operations["avaSign"];
42
+ };
33
43
  "/v0/org/{org_id}/btc/sign/{pubkey}": {
34
44
  /**
35
45
  * Sign Bitcoin Transaction
@@ -50,6 +60,56 @@ export interface paths {
50
60
  */
51
61
  put: operations["deriveKey"];
52
62
  };
63
+ "/v0/org/{org_id}/evm/eip712/sign/{pubkey}": {
64
+ /**
65
+ * Sign EIP-712 Typed Data
66
+ * @description Sign EIP-712 Typed Data
67
+ *
68
+ * Signs typed data according to EIP-712 with a given Secp256k1 key.
69
+ */
70
+ post: operations["eip712Sign"];
71
+ };
72
+ "/v0/org/{org_id}/identity/prove": {
73
+ /**
74
+ * Create [IdentityProof] from CubeSigner user session
75
+ * @description Create [IdentityProof] from CubeSigner user session
76
+ *
77
+ * This route can be used to prove to another party that a user has a
78
+ * valid CubeSigner session.
79
+ *
80
+ * Clients are intended to call this route and pass the returned evidence
81
+ * to another service which will verify it by making a request to `/v0/org/<org_id>/identity/verify`.
82
+ */
83
+ post: operations["createProofCubeSigner"];
84
+ };
85
+ "/v0/org/{org_id}/identity/prove/oidc": {
86
+ /**
87
+ * Create [IdentityProof] from OIDC token
88
+ * @description Create [IdentityProof] from OIDC token
89
+ *
90
+ * Exchange an OIDC ID token (passed via the `Authorization` header) for a proof of authentication.
91
+ *
92
+ * This route can be used to prove to another party that a user has met the
93
+ * authentication requirements (allowed issuers & audiences) for CubeSigner
94
+ * without leaking their credentials.
95
+ *
96
+ * Clients are intended to call this route and pass the returned evidence to another service
97
+ * which will verify it by making a request to `/v0/org/<org_id>/identity/verify`.
98
+ */
99
+ post: operations["createProofOidc"];
100
+ };
101
+ "/v0/org/{org_id}/identity/verify": {
102
+ /**
103
+ * Verify identity proof
104
+ * @description Verify identity proof
105
+ *
106
+ * Allows a third-party to validate proof of authentication.
107
+ *
108
+ * When a third-party is provided an [IdentityProof] object, they must check its
109
+ * veracity by calling this endpoint
110
+ */
111
+ post: operations["verifyProof"];
112
+ };
53
113
  "/v0/org/{org_id}/import_key": {
54
114
  /**
55
115
  * Create Key-Import Key
@@ -83,32 +143,14 @@ export interface paths {
83
143
  * Gets the list of owned keys in a given org.
84
144
  */
85
145
  get: operations["listKeysInOrg"];
86
- /**
87
- * Legacy Import Key
88
- * @deprecated
89
- * @description Legacy Import Key
90
- *
91
- * Securely imports an existing key. This API is deprecated; please use the new version.
92
- */
93
- put: operations["importKeyLegacy"];
94
146
  /**
95
147
  * Create Key
96
148
  * @description Create Key
97
149
  *
98
- * Creates one or more new keys of the specified type (BLS or Secp).
150
+ * Creates one or more new keys of the specified type.
99
151
  */
100
152
  post: operations["createKey"];
101
153
  };
102
- "/v0/org/{org_id}/keys/get_keys": {
103
- /**
104
- * Legacy List Keys
105
- * @deprecated
106
- * @description Legacy List Keys
107
- *
108
- * This route is deprecated. Use `GET /v0/org/<org_id>/keys?<key_type>`
109
- */
110
- post: operations["listKeysLegacy"];
111
- };
112
154
  "/v0/org/{org_id}/keys/{key_id}": {
113
155
  /**
114
156
  * Get Key
@@ -117,6 +159,14 @@ export interface paths {
117
159
  * Returns the properties of a key.
118
160
  */
119
161
  get: operations["getKeyInOrg"];
162
+ /**
163
+ * Delete Key
164
+ * @description Delete Key
165
+ *
166
+ * Deletes a key specified by its ID.
167
+ * Only the key owner and org owners are allowed to delete keys.
168
+ */
169
+ delete: operations["deleteKey"];
120
170
  /**
121
171
  * Update Key
122
172
  * @description Update Key
@@ -125,10 +175,20 @@ export interface paths {
125
175
  */
126
176
  patch: operations["updateKey"];
127
177
  };
178
+ "/v0/org/{org_id}/mfa": {
179
+ /**
180
+ * List Pending MFA Requests
181
+ * @description List Pending MFA Requests
182
+ *
183
+ * Retrieves and returns all pending MFA requests that are accessible to the current user,
184
+ * i.e., those in which the current user is listed as an approver
185
+ */
186
+ get: operations["mfaList"];
187
+ };
128
188
  "/v0/org/{org_id}/mfa/{mfa_id}": {
129
189
  /**
130
- * Gets a Pending MFA Request
131
- * @description Gets a Pending MFA Request
190
+ * Get Pending MFA Request
191
+ * @description Get Pending MFA Request
132
192
  *
133
193
  * Retrieves and returns a pending MFA request by its id.
134
194
  */
@@ -184,34 +244,6 @@ export interface paths {
184
244
  */
185
245
  post: operations["oidcAuth"];
186
246
  };
187
- "/v0/org/{org_id}/oidc/prove": {
188
- /**
189
- * Create OIDCProof
190
- * @description Create OIDCProof
191
- *
192
- * Exchange an OIDC ID token (passed via the `Authorization` header) for a proof of authentication.
193
- *
194
- * This route can be used to prove to another party that a user has met the
195
- * authentication requirements (allowed issuers & audiences) for CubeSigner
196
- * without leaking their credentials.
197
- *
198
- * Clients are intended to call this route and pass the returned evidence to another service
199
- * which will verify it.
200
- */
201
- post: operations["createOidcProof"];
202
- };
203
- "/v0/org/{org_id}/oidc/verify": {
204
- /**
205
- * Verify OIDC Proof
206
- * @description Verify OIDC Proof
207
- *
208
- * Allows a third-party to validate proof of OIDC authentication.
209
- *
210
- * When a third-party is provided an OidcProof object, they must check its
211
- * veracity by calling this endpoint
212
- */
213
- post: operations["verifyOidcProof"];
214
- };
215
247
  "/v0/org/{org_id}/roles": {
216
248
  /**
217
249
  * List Roles
@@ -273,6 +305,15 @@ export interface paths {
273
305
  */
274
306
  put: operations["addUserToRole"];
275
307
  };
308
+ "/v0/org/{org_id}/roles/{role_id}/keys": {
309
+ /**
310
+ * List Role Keys
311
+ * @description List Role Keys
312
+ *
313
+ * Returns an array of all keys in a role.
314
+ */
315
+ get: operations["listRoleKeys"];
316
+ };
276
317
  "/v0/org/{org_id}/roles/{role_id}/keys/{key_id}": {
277
318
  /**
278
319
  * Remove Key
@@ -284,9 +325,9 @@ export interface paths {
284
325
  };
285
326
  "/v0/org/{org_id}/roles/{role_id}/tokens": {
286
327
  /**
287
- * List Tokens (Deprecated)
328
+ * List a single page of Tokens (Deprecated)
288
329
  * @deprecated
289
- * @description List Tokens (Deprecated)
330
+ * @description List a single page of Tokens (Deprecated)
290
331
  *
291
332
  * **Deprecated**: Use `GET /org/{org_id}/session?role=`
292
333
  *
@@ -327,6 +368,15 @@ export interface paths {
327
368
  */
328
369
  delete: operations["revokeRoleToken"];
329
370
  };
371
+ "/v0/org/{org_id}/roles/{role_id}/users": {
372
+ /**
373
+ * List Role Users.
374
+ * @description List Role Users.
375
+ *
376
+ * Returns an array of all users who have access to a role.
377
+ */
378
+ get: operations["listRoleUsers"];
379
+ };
330
380
  "/v0/org/{org_id}/session": {
331
381
  /**
332
382
  * List sessions
@@ -344,6 +394,15 @@ export interface paths {
344
394
  */
345
395
  delete: operations["revokeSessions"];
346
396
  };
397
+ "/v0/org/{org_id}/session/self": {
398
+ /**
399
+ * Revoke current session
400
+ * @description Revoke current session
401
+ *
402
+ * Immediately revokes the current session, preventing it from being used or refreshed
403
+ */
404
+ delete: operations["revokeCurrentSession"];
405
+ };
347
406
  "/v0/org/{org_id}/session/{session_id}": {
348
407
  /**
349
408
  * Get session information
@@ -358,6 +417,16 @@ export interface paths {
358
417
  */
359
418
  delete: operations["revokeSession"];
360
419
  };
420
+ "/v0/org/{org_id}/solana/sign/{pubkey}": {
421
+ /**
422
+ * Sign Solana Message
423
+ * @description Sign Solana Message
424
+ *
425
+ * Signs a Solana message with a given key.
426
+ * This is a pre-release feature.
427
+ */
428
+ post: operations["solanaSign"];
429
+ };
361
430
  "/v0/org/{org_id}/token/keys": {
362
431
  /**
363
432
  * Get Token-Accessible Keys
@@ -367,44 +436,55 @@ export interface paths {
367
436
  */
368
437
  get: operations["listTokenKeys"];
369
438
  };
370
- "/v0/org/{org_id}/users": {
439
+ "/v0/org/{org_id}/user/me": {
371
440
  /**
372
- * List users in organization
373
- * @description List users in organization
441
+ * User Info
442
+ * @description User Info
443
+ *
444
+ * Retrieves information about the current user.
374
445
  */
375
- get: operations["listUsersInOrg"];
446
+ get: operations["aboutMe"];
447
+ };
448
+ "/v0/org/{org_id}/user/me/fido": {
376
449
  /**
377
- * Add a third-party user to the org
378
- * @description Add a third-party user to the org
450
+ * Initiate registration of a FIDO key
451
+ * @description Initiate registration of a FIDO key
452
+ *
453
+ * Generates a challenge that must be answered to prove ownership of a key
379
454
  */
380
- post: operations["createOidcUser"];
381
- };
382
- "/v0/org/{org_id}/users/oidc": {
455
+ post: operations["userRegisterFidoInit"];
383
456
  /**
384
- * Remove a third-party user from the org
385
- * @description Remove a third-party user from the org
457
+ * Finalize registration of a FIDO key
458
+ * @description Finalize registration of a FIDO key
459
+ *
460
+ * Accepts the response to the challenge generated by the POST to this endpoint.
386
461
  */
387
- delete: operations["deleteOidcUser"];
462
+ patch: operations["userRegisterFidoComplete"];
388
463
  };
389
- "/v0/totp": {
464
+ "/v0/org/{org_id}/user/me/totp": {
390
465
  /**
391
- * Initialize TOTP
392
- * @description Initialize TOTP
466
+ * Initialize TOTP Reset
467
+ * @description Initialize TOTP Reset
468
+ *
469
+ * Creates a new TOTP challenge that must be answered to prove that the new TOTP
470
+ * was successfully imported into an authenticator app.
393
471
  *
394
- * Creates and sets a new TOTP configuration for the current user,
395
- * if and only if no TOTP configuration is already set.
472
+ * This operation is allowed if EITHER
473
+ * - the user account is not yet initialized and no TOTP is already set, OR
474
+ * - the user has not configured any auth factors;
475
+ * otherwise, MFA is required.
396
476
  */
397
- put: operations["userInitTotp"];
477
+ post: operations["userResetTotpInit"];
398
478
  /**
399
- * Reset TOTP
400
- * @description Reset TOTP
479
+ * Finalize resetting TOTP
480
+ * @description Finalize resetting TOTP
401
481
  *
402
- * Creates and sets a new TOTP configuration for the current user,
403
- * overriding the existing one (if any).
482
+ * Checks if the response contains the correct TOTP code corresponding to the
483
+ * challenge generated by the POST method of this endpoint.
404
484
  */
405
- patch: operations["userResetTotp"];
485
+ patch: operations["userResetTotpComplete"];
406
486
  };
407
- "/v0/totp/verify/{code}": {
487
+ "/v0/org/{org_id}/user/me/totp/verify": {
408
488
  /**
409
489
  * Verify TOTP
410
490
  * @description Verify TOTP
@@ -412,23 +492,80 @@ export interface paths {
412
492
  * Checks if a given code matches the current TOTP code for the current user.
413
493
  * Errors with 403 if the current user has not set up TOTP or the code fails verification.
414
494
  */
415
- get: operations["userVerifyTotp"];
495
+ post: operations["userVerifyTotp"];
496
+ };
497
+ "/v0/org/{org_id}/users": {
498
+ /**
499
+ * List users in organization
500
+ * @description List users in organization
501
+ */
502
+ get: operations["listUsersInOrg"];
503
+ /**
504
+ * Add a third-party user to the org
505
+ * @description Add a third-party user to the org
506
+ */
507
+ post: operations["createOidcUser"];
508
+ };
509
+ "/v0/org/{org_id}/users/oidc": {
510
+ /**
511
+ * Remove a third-party user from the org
512
+ * @description Remove a third-party user from the org
513
+ */
514
+ delete: operations["deleteOidcUser"];
416
515
  };
417
516
  "/v0/user/me/fido": {
418
517
  /**
419
518
  * Initiate registration of a FIDO key
519
+ * @deprecated
420
520
  * @description Initiate registration of a FIDO key
421
521
  *
422
522
  * Generates a challenge that must be answered to prove ownership of a key
423
523
  */
424
- post: operations["userRegisterFido"];
524
+ post: operations["registerFidoInitLegacy"];
425
525
  /**
426
526
  * Finalize registration of a FIDO key
527
+ * @deprecated
427
528
  * @description Finalize registration of a FIDO key
428
529
  *
429
530
  * Accepts the response to the challenge generated by the POST to this endpoint.
430
531
  */
431
- patch: operations["userRegisterFidoComplete"];
532
+ patch: operations["registerFidoCompleteLegacy"];
533
+ };
534
+ "/v0/user/me/totp": {
535
+ /**
536
+ * Initialize TOTP Reset
537
+ * @deprecated
538
+ * @description Initialize TOTP Reset
539
+ *
540
+ * Creates a new TOTP challenge that must be answered to prove that the new TOTP
541
+ * was successfully imported into an authenticator app.
542
+ *
543
+ * This operation is allowed if EITHER
544
+ * - the user account is not yet initialized and no TOTP is already set, OR
545
+ * - the user has not configured any auth factors;
546
+ * otherwise, MFA is required.
547
+ */
548
+ post: operations["resetTotpInitLegacy"];
549
+ /**
550
+ * Finalize resetting TOTP
551
+ * @deprecated
552
+ * @description Finalize resetting TOTP
553
+ *
554
+ * Checks if the response contains the correct TOTP code corresponding to the
555
+ * challenge generated by the POST method of this endpoint.
556
+ */
557
+ patch: operations["resetTotpCompleteLegacy"];
558
+ };
559
+ "/v0/user/me/totp/verify": {
560
+ /**
561
+ * Verify TOTP
562
+ * @deprecated
563
+ * @description Verify TOTP
564
+ *
565
+ * Checks if a given code matches the current TOTP code for the current user.
566
+ * Errors with 403 if the current user has not set up TOTP or the code fails verification.
567
+ */
568
+ post: operations["verifyTotpLegacy"];
432
569
  };
433
570
  "/v1/org/{org_id}/blob/sign/{key_id}": {
434
571
  /**
@@ -437,6 +574,13 @@ export interface paths {
437
574
  *
438
575
  * Signs an arbitrary blob with a given key.
439
576
  * This is a pre-release feature.
577
+ *
578
+ * - ECDSA signatures are serialized as big-endian r and s plus recovery-id
579
+ * byte v, which can in general take any of the values 0, 1, 2, or 3.
580
+ *
581
+ * - EdDSA signatures are serialized in the standard format.
582
+ *
583
+ * - BLS signatures are not supported on the blob-sign endpoint.
440
584
  */
441
585
  post: operations["blobSign"];
442
586
  };
@@ -455,6 +599,7 @@ export interface paths {
455
599
  * @description Sign EVM Transaction
456
600
  *
457
601
  * Signs an Ethereum (and other EVM) transaction with a given Secp256k1 key.
602
+ * Returns an RLP-encoded transaction with EIP-155 signature.
458
603
  *
459
604
  * The key must be associated with the role and organization on whose behalf this action is called.
460
605
  */
@@ -496,16 +641,6 @@ export interface paths {
496
641
  */
497
642
  post: operations["unstake"];
498
643
  };
499
- "/v1/org/{org_id}/solana/sign/{pubkey}": {
500
- /**
501
- * Sign Solana Message
502
- * @description Sign Solana Message
503
- *
504
- * Signs a Solana message with a given key.
505
- * This is a pre-release feature.
506
- */
507
- post: operations["solanaSign"];
508
- };
509
644
  "/v1/org/{org_id}/token/refresh": {
510
645
  /**
511
646
  * Refresh Signer Session
@@ -530,7 +665,10 @@ export interface components {
530
665
  */
531
666
  AcceptedValue: {
532
667
  MfaRequired: {
668
+ /** @description MFA request id */
533
669
  id: string;
670
+ /** @description Organization id */
671
+ org_id: string;
534
672
  session?: components["schemas"]["NewSessionResponse"] | null;
535
673
  };
536
674
  };
@@ -568,7 +706,7 @@ export interface components {
568
706
  * }
569
707
  * ]
570
708
  */
571
- policy: Record<string, never>[] | null;
709
+ policy?: Record<string, never>[] | null;
572
710
  };
573
711
  AddThirdPartyUserRequest: {
574
712
  /**
@@ -581,6 +719,10 @@ export interface components {
581
719
  mfa_policy?: Record<string, unknown> | null;
582
720
  role: components["schemas"]["MemberRole"];
583
721
  };
722
+ AddThirdPartyUserResponse: {
723
+ /** @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f */
724
+ user_id: string;
725
+ };
584
726
  ApprovalInfo: {
585
727
  timestamp: components["schemas"]["EpochDateTime"];
586
728
  };
@@ -631,7 +773,7 @@ export interface components {
631
773
  * @description Allows the authenticator to optionally declare the credential identifier they used.
632
774
  * https://www.w3.org/TR/webauthn-2/#dom-authenticatorassertionresponse-userhandle
633
775
  */
634
- userHandle: string | null;
776
+ userHandle?: string | null;
635
777
  };
636
778
  /**
637
779
  * @description This enumeration’s values describe authenticators' attachment modalities.
@@ -685,7 +827,7 @@ export interface components {
685
827
  * https://www.w3.org/TR/webauthn-2/#dictdef-authenticatorselectioncriteria
686
828
  */
687
829
  AuthenticatorSelectionCriteria: {
688
- authenticator_attachment: components["schemas"]["AuthenticatorAttachment"] | null;
830
+ authenticator_attachment?: components["schemas"]["AuthenticatorAttachment"] | null;
689
831
  /**
690
832
  * @description This member is retained for backwards compatibility with WebAuthn Level
691
833
  * 1 and, for historical reasons, its naming retains the deprecated
@@ -695,7 +837,7 @@ export interface components {
695
837
  * https://www.w3.org/TR/webauthn-2/#dom-authenticatorselectioncriteria-requireresidentkey
696
838
  */
697
839
  require_resident_key?: boolean;
698
- resident_key: components["schemas"]["ResidentKeyRequirement"] | null;
840
+ resident_key?: components["schemas"]["ResidentKeyRequirement"] | null;
699
841
  user_verification?: components["schemas"]["UserVerificationRequirement"];
700
842
  };
701
843
  /**
@@ -711,6 +853,29 @@ export interface components {
711
853
  * @enum {string}
712
854
  */
713
855
  AuthenticatorTransport: "usb" | "nfc" | "ble" | "internal";
856
+ /** @description Request to sign an Avalanche transactions */
857
+ AvaSignRequest: {
858
+ /**
859
+ * @description Transaction to sign.
860
+ *
861
+ * Examples:
862
+ * - {"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) }}
863
+ * - {"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) }}
864
+ * - {"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) }}
865
+ * - {"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) }}
866
+ * - {"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) }}
867
+ * - {"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) }}
868
+ * - {"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) }}
869
+ * - {"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) }}
870
+ * - {"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) }}
871
+ * - {"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) }}
872
+ */
873
+ tx: Record<string, never>;
874
+ };
875
+ AvaSignResponse: {
876
+ /** @description The hex-encoded signature. */
877
+ signature: string;
878
+ };
714
879
  /** @description Wrapper around a zeroizing 32-byte fixed-size array */
715
880
  B32: string;
716
881
  /**
@@ -727,6 +892,10 @@ export interface components {
727
892
  */
728
893
  message_base64: string;
729
894
  };
895
+ BlobSignResponse: {
896
+ /** @description The hex-encoded signature. */
897
+ signature: string;
898
+ };
730
899
  /** @enum {string} */
731
900
  BtcSighashType: "All" | "None" | "Single" | "AllPlusAnyoneCanPay" | "NonePlusAnyoneCanPay" | "SinglePlusAnyoneCanPay";
732
901
  BtcSignRequest: {
@@ -734,6 +903,13 @@ export interface components {
734
903
  /** @description The bitcoin transaction to sign */
735
904
  tx: Record<string, never>;
736
905
  };
906
+ BtcSignResponse: {
907
+ /**
908
+ * @description The hex-encoded signature in compact format.
909
+ * @example 0x454aef27c21df7dd8f537dc869f4cd65286ce239a52d36470f4d85be85a891b02789e5ffd8560b32a98110e5d0096802e4c14145cf6c44f10a768c87755eaa4800
910
+ */
911
+ signature: string;
912
+ };
737
913
  BtcSignatureKind: {
738
914
  /** @description Segregated Witness */
739
915
  Segwit: {
@@ -787,13 +963,25 @@ export interface components {
787
963
  /** @enum {string} */
788
964
  type: "fido";
789
965
  };
966
+ CreateKeyImportKeyResponse: components["schemas"]["KeyImportKey"] & {
967
+ /**
968
+ * @description An attestation document from a secure enclave, including an
969
+ * RSA signing key used to sign the contents of this message.
970
+ */
971
+ enclave_attestation: string;
972
+ /**
973
+ * @description An RSA-PSS-SHA256 signature on the public key and encrypted
974
+ * secrets attesting to their generation inside a secure enclave.
975
+ */
976
+ enclave_signature: string;
977
+ };
790
978
  CreateKeyRequest: {
791
979
  /**
792
980
  * Format: int64
793
981
  * @description Chain id for which the key is allowed to sign messages
794
982
  * @example 5
795
983
  */
796
- chain_id: number | null;
984
+ chain_id?: number | null;
797
985
  /**
798
986
  * Format: int32
799
987
  * @description Number of keys to create
@@ -805,7 +993,11 @@ export interface components {
805
993
  * @description Allows users to specify a user other than themselves to receive the key
806
994
  * @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
807
995
  */
808
- owner: string | null;
996
+ owner?: string | null;
997
+ };
998
+ CreateKeyResponse: {
999
+ /** @description The info about the created keys */
1000
+ keys: components["schemas"]["KeyInfo"][];
809
1001
  };
810
1002
  /** @description Optional create role request body */
811
1003
  CreateRoleRequest: {
@@ -815,12 +1007,41 @@ export interface components {
815
1007
  */
816
1008
  name: string;
817
1009
  };
818
- CreateTokenRequest: components["schemas"]["RatchetConfig"] & {
1010
+ /** @description The newly created role information */
1011
+ CreateRoleResponse: {
1012
+ /**
1013
+ * @description A human-readable name for the role.
1014
+ * @example my_role
1015
+ */
1016
+ name?: string | null;
1017
+ /**
1018
+ * @description The id of the newly created role
1019
+ * @example Role#bfe3eccb-731e-430d-b1e5-ac1363e6b06b
1020
+ */
1021
+ role_id: string;
1022
+ };
1023
+ CreateTokenRequest: components["schemas"]["RatchetConfig"] & ({
819
1024
  /**
820
1025
  * @description A human readable description of the purpose of the key
821
1026
  * @example Validator Signing
822
1027
  */
823
1028
  purpose: string;
1029
+ /**
1030
+ * @description Controls what capabilities this session will have. By default, it has all
1031
+ * signing capabilities, i.e., just the 'sign:*' scope.
1032
+ * @example [
1033
+ * "sign:*"
1034
+ * ]
1035
+ */
1036
+ scopes?: string[] | null;
1037
+ });
1038
+ CubeSignerUserInfo: {
1039
+ /** @description All multi-factor authentication methods configured for this user */
1040
+ configured_mfa: components["schemas"]["ConfiguredMfa"][];
1041
+ /** @description Set once the user successfully logs into CubeSigner */
1042
+ initialized: boolean;
1043
+ /** @description CubeSigner's user identifier */
1044
+ user_id: string;
824
1045
  };
825
1046
  /**
826
1047
  * @description Information produced by a successful deposit
@@ -865,11 +1086,115 @@ export interface components {
865
1086
  * @example 0x9f07be82d934fcb5d0f75dd24c2dfea8a85a4d0c289d58828b3537fae24d32b8
866
1087
  */
867
1088
  mnemonic_id: string;
1089
+ };
1090
+ /**
1091
+ * @example {
1092
+ * "chain_id": 1337,
1093
+ * "typed_data": {
1094
+ * "domain": {
1095
+ * "chainId": 1337,
1096
+ * "name": "Ether Mail",
1097
+ * "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC",
1098
+ * "version": "1"
1099
+ * },
1100
+ * "message": {
1101
+ * "contents": "Hello, Bob!",
1102
+ * "from": {
1103
+ * "name": "Cow",
1104
+ * "wallets": [
1105
+ * "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826",
1106
+ * "0xDeaDbeefdEAdbeefdEadbEEFdeadbeEFdEaDbeeF"
1107
+ * ]
1108
+ * },
1109
+ * "to": {
1110
+ * "name": "Bob",
1111
+ * "wallets": [
1112
+ * "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB",
1113
+ * "0xB0BdaBea57B0BDABeA57b0bdABEA57b0BDabEa57",
1114
+ * "0xB0B0b0b0b0b0B000000000000000000000000000"
1115
+ * ]
1116
+ * }
1117
+ * },
1118
+ * "primaryType": "Mail",
1119
+ * "types": {
1120
+ * "EIP712Domain": [
1121
+ * {
1122
+ * "name": "name",
1123
+ * "type": "string"
1124
+ * },
1125
+ * {
1126
+ * "name": "version",
1127
+ * "type": "string"
1128
+ * },
1129
+ * {
1130
+ * "name": "chainId",
1131
+ * "type": "uint256"
1132
+ * },
1133
+ * {
1134
+ * "name": "verifyingContract",
1135
+ * "type": "address"
1136
+ * }
1137
+ * ],
1138
+ * "Group": [
1139
+ * {
1140
+ * "name": "name",
1141
+ * "type": "string"
1142
+ * },
1143
+ * {
1144
+ * "name": "members",
1145
+ * "type": "Person[]"
1146
+ * }
1147
+ * ],
1148
+ * "Mail": [
1149
+ * {
1150
+ * "name": "from",
1151
+ * "type": "Person"
1152
+ * },
1153
+ * {
1154
+ * "name": "to",
1155
+ * "type": "Person"
1156
+ * },
1157
+ * {
1158
+ * "name": "contents",
1159
+ * "type": "string"
1160
+ * }
1161
+ * ],
1162
+ * "Person": [
1163
+ * {
1164
+ * "name": "name",
1165
+ * "type": "string"
1166
+ * },
1167
+ * {
1168
+ * "name": "wallets",
1169
+ * "type": "address[]"
1170
+ * }
1171
+ * ]
1172
+ * }
1173
+ * }
1174
+ * }
1175
+ */
1176
+ Eip712SignRequest: {
868
1177
  /**
869
- * @description Allows users to specify a user other than themselves to receive the key
870
- * @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
1178
+ * Format: int64
1179
+ * @description The chain-id to which this typed data will be sent
1180
+ */
1181
+ chain_id: number;
1182
+ /** @description EIP-712 typed data. Refer to the JSON schema defined in EIP-712. */
1183
+ typed_data: Record<string, never>;
1184
+ };
1185
+ Eip712SignResponse: {
1186
+ /**
1187
+ * @description Hex-encoded signature comprising 65 bytes in the format required
1188
+ * by ecrecover: 32-byte r, 32-byte s, and one-byte recovery-id v
1189
+ * which is either 27 or 28.
1190
+ * @example 0x4355c47d63924e8a72e509b65029052eb6c299d53a04e167c5775fd466751c9d07299936d304c153f6443dfa05f40ff007d72911b6f72307f996231605b915621c
871
1191
  */
872
- owner: string | null;
1192
+ signature: string;
1193
+ };
1194
+ /** @default null */
1195
+ Empty: Record<string, unknown> | null;
1196
+ EmptyImpl: {
1197
+ status: string;
873
1198
  };
874
1199
  /**
875
1200
  * @description Epoch is a quoted `uint64`.
@@ -888,6 +1213,8 @@ export interface components {
888
1213
  accepted?: components["schemas"]["AcceptedValue"] | null;
889
1214
  /** @description Error message */
890
1215
  message: string;
1216
+ /** @description Optional request identifier */
1217
+ request_id?: string;
891
1218
  };
892
1219
  /**
893
1220
  * @example {
@@ -918,6 +1245,13 @@ export interface components {
918
1245
  */
919
1246
  tx: Record<string, never>;
920
1247
  };
1248
+ Eth1SignResponse: {
1249
+ /**
1250
+ * @description Hex-encoded RLP encoding of the transaction and its signature
1251
+ * @example 0x22895118000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001201d58656b0e22aaa68fdc692db41979098c3886ed33015d7467de9211609cdac000000000000000000000000000000000000000000000000000000000000000308b0c2900324d3ff9adfba7fdfe5af3f9b2cdbeef7b280437bbf1b1c59a093d615afe3e5dfed9622b540cdd9b49b3c5ad00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002001000000000000000000000049011adbcc3bc9c0307bb07f37dda1a1a9c69d2e0000000000000000000000000000000000000000000000000000000000000060903db8525674b8e7904f9b7d7d9ec55a0a42d33cf58be25469b0c21bbb6d06172bc5bb5fd1aed8e4f35936968958116b0619553c2cb1c52e7323074c6f8eb3d5a7074fc6580148df907837fa3b164ad7fbc2288dad1e8a5b021095b57c8a36d4
1252
+ */
1253
+ rlp_signed_tx: string;
1254
+ };
921
1255
  /**
922
1256
  * @example {
923
1257
  * "eth2_sign_request": {
@@ -947,18 +1281,39 @@ export interface components {
947
1281
  eth2_sign_request: Record<string, never>;
948
1282
  network: components["schemas"]["Network"];
949
1283
  };
1284
+ Eth2SignResponse: {
1285
+ /**
1286
+ * @description Hex encoded signature prefixed with 0x e.g. "0x0000..."
1287
+ * @example 0xb4f2ef9d12a54e1f569596c07c97d6d730535b6ffc0d287761dc78103a86326782471a04c75ce7a6faea08ca9a4a0830031cdcb893da8711d54aa22619f1a7e71b8185ddf4c6bfd9babbd735960e35e56bd6eeb89625b04850e7a9ef8846e549
1288
+ */
1289
+ signature: string;
1290
+ };
950
1291
  /** @description Sent from the client to the server to answer a fido challenge */
951
1292
  FidoAssertAnswer: {
952
1293
  /** @description The ID of the challenge that was returned from the POST endpoint */
953
1294
  challenge_id: string;
954
1295
  credential: components["schemas"]["PublicKeyCredential"];
955
1296
  };
1297
+ FidoAssertChallenge: {
1298
+ /** @description The id of the challenge. Must be supplied when answering the challenge. */
1299
+ challenge_id: string;
1300
+ options: components["schemas"]["PublicKeyCredentialRequestOptions"];
1301
+ };
956
1302
  /** @description Sent from the client to the server to answer a fido challenge */
957
1303
  FidoCreateChallengeAnswer: {
958
1304
  /** @description The ID of the challenge that was returned from the POST endpoint */
959
1305
  challenge_id: string;
960
1306
  credential: components["schemas"]["PublicKeyCredential"];
961
1307
  };
1308
+ /**
1309
+ * @description Sent by the server to the client. Contains the challenge data that must be
1310
+ * used to generate a new credential
1311
+ */
1312
+ FidoCreateChallengeResponse: {
1313
+ /** @description The id of the challenge. Must be supplied when answering the challenge. */
1314
+ challenge_id: string;
1315
+ options: components["schemas"]["PublicKeyCredentialCreationOptions"];
1316
+ };
962
1317
  /** @description Declares intent to register a new FIDO key */
963
1318
  FidoCreateRequest: {
964
1319
  /**
@@ -1014,7 +1369,11 @@ export interface components {
1014
1369
  genesis_validators_root: string;
1015
1370
  };
1016
1371
  GetKeysInOrgRequest: {
1017
- key_type: components["schemas"]["KeyType"] | null;
1372
+ key_type?: components["schemas"]["KeyType"] | null;
1373
+ };
1374
+ GetUsersInOrgResponse: {
1375
+ /** @description The list of users in the org */
1376
+ users: components["schemas"]["UserIdInfo"][];
1018
1377
  };
1019
1378
  /** @description Stats pertaining the the sender `cube3signer` instance */
1020
1379
  HeartbeatRequest: {
@@ -1063,7 +1422,7 @@ export interface components {
1063
1422
  *
1064
1423
  * TODO: Make non-optional once we do not support proxies without version information
1065
1424
  */
1066
- proxy_version: string | null;
1425
+ proxy_version?: string | null;
1067
1426
  };
1068
1427
  /**
1069
1428
  * @description Information about the request.
@@ -1074,22 +1433,34 @@ export interface components {
1074
1433
  */
1075
1434
  HttpRequest: {
1076
1435
  /** @description HTTP request body */
1077
- body: Record<string, unknown> | null;
1436
+ body?: Record<string, unknown> | null;
1078
1437
  /** @description HTTP method of the request */
1079
1438
  method: string;
1080
1439
  /** @description HTTP path of the request (including host or not?) */
1081
1440
  path: string;
1082
1441
  };
1083
- ImportKeyLegacyRequest: {
1442
+ /**
1443
+ * @description Proof that an end-user provided CubeSigner with a valid auth token
1444
+ * (either an OIDC token or a CubeSigner session token)
1445
+ */
1446
+ IdentityProof: ({
1084
1447
  /**
1085
- * Format: int64
1086
- * @description The chain ID of the chain that the key will be used for
1087
- * @example 5
1448
+ * @description OIDC audience; set only if the proof was obtained by using OIDC token.
1449
+ *
1450
+ * In other words, presence of this field testifies that authorization was obtained via OIDC.
1088
1451
  */
1089
- chain_id: number | null;
1090
- /** @description The key to import encrypted with the public key of the organization */
1091
- key_material: components["schemas"]["RsaOaepXChaChaMaterial"][];
1092
- key_type: components["schemas"]["KeyType"];
1452
+ aud?: string | null;
1453
+ /**
1454
+ * @description The email associated with the user
1455
+ * @example user@email.com
1456
+ */
1457
+ email: string;
1458
+ exp_epoch: components["schemas"]["EpochDateTime"];
1459
+ identity?: components["schemas"]["OIDCIdentity"] | null;
1460
+ user_info?: components["schemas"]["CubeSignerUserInfo"] | null;
1461
+ }) & {
1462
+ /** @description An opaque identifier for the proof */
1463
+ id: string;
1093
1464
  };
1094
1465
  ImportKeyRequest: components["schemas"]["KeyImportKey"] & {
1095
1466
  /** @description A set of encrypted keys to be imported */
@@ -1126,6 +1497,7 @@ export interface components {
1126
1497
  * @example Alice Wonderland
1127
1498
  */
1128
1499
  name: string;
1500
+ role?: components["schemas"]["MemberRole"] | null;
1129
1501
  /**
1130
1502
  * @description Skip sending an invitation email to this user if true.
1131
1503
  *
@@ -1159,6 +1531,27 @@ export interface components {
1159
1531
  /** @description Base64-encoded, encrypted secret key. */
1160
1532
  sk_enc: string;
1161
1533
  };
1534
+ KeyInRoleInfo: {
1535
+ /**
1536
+ * @description Key ID
1537
+ * @example Key#0x8e3484687e66cdd26cf04c3647633ab4f3570148
1538
+ */
1539
+ key_id: string;
1540
+ /**
1541
+ * @description Policies that are checked before this key is used on behalf of this role
1542
+ * @example [
1543
+ * {
1544
+ * "TxReceiver": "0x8c594691c0e592ffa21f153a16ae41db5befcaaa"
1545
+ * },
1546
+ * {
1547
+ * "TxDeposit": {
1548
+ * "kind": "Canonical"
1549
+ * }
1550
+ * }
1551
+ * ]
1552
+ */
1553
+ policy?: Record<string, never>[];
1554
+ };
1162
1555
  KeyInfo: {
1163
1556
  derivation_info?: components["schemas"]["KeyDerivationInfo"] | null;
1164
1557
  /** @description Whether the key is enabled (only enabled keys may be used for signing) */
@@ -1207,34 +1600,39 @@ export interface components {
1207
1600
  */
1208
1601
  purpose: string;
1209
1602
  };
1603
+ KeyInfos: {
1604
+ keys: components["schemas"]["KeyInfo"][];
1605
+ };
1210
1606
  /** @enum {string} */
1211
- KeyType: "SecpEthAddr" | "SecpBtc" | "SecpBtcTest" | "SecpAvaAddr" | "SecpAvaTestAddr" | "BlsPub" | "BlsInactive" | "Ed25519SolanaAddr" | "Ed25519SuiAddr" | "Ed25519AptosAddr" | "Ed25519CardanoAddrVk" | "Mnemonic" | "Stark";
1212
- KeyWithPolicies: {
1213
- /**
1214
- * @description Key ID
1215
- * @example Key#0x8e3484687e66cdd26cf04c3647633ab4f3570148
1216
- */
1217
- key_id: string;
1218
- /**
1219
- * @description Policies that are checked before this key is used on behalf of this role
1220
- * @example [
1221
- * {
1222
- * "TxReceiver": "0x8c594691c0e592ffa21f153a16ae41db5befcaaa"
1223
- * },
1224
- * {
1225
- * "TxDeposit": {
1226
- * "kind": "Canonical"
1227
- * }
1228
- * }
1229
- * ]
1230
- */
1231
- policy?: Record<string, never>[];
1607
+ KeyType: "SecpEthAddr" | "SecpBtc" | "SecpBtcTest" | "SecpAvaAddr" | "SecpAvaTestAddr" | "BlsPub" | "BlsInactive" | "Ed25519SolanaAddr" | "Ed25519SuiAddr" | "Ed25519AptosAddr" | "Ed25519CardanoAddrVk" | "Ed25519StellarAddr" | "Mnemonic" | "Stark";
1608
+ /**
1609
+ * @description Wrapper around encrypted [UnencryptedLastEvalKey] bytes.
1610
+ *
1611
+ * We serialize this into a base64url-encoded string and return to the user
1612
+ * so that they can pass this back to us as a url query parameter.
1613
+ */
1614
+ LastEvalKey: string;
1615
+ ListMfaResponse: {
1616
+ /** @description All pending MFA requests */
1617
+ mfa_requests: components["schemas"]["MfaRequestInfo"][];
1618
+ };
1619
+ ListTokensResponse: {
1620
+ tokens: components["schemas"]["TokenInfo"][];
1232
1621
  };
1233
1622
  /**
1234
1623
  * @description Describes whether a user in an org is an Owner or just a regular member
1235
1624
  * @enum {string}
1236
1625
  */
1237
- MemberRole: "Owner" | "Member" | "Alien";
1626
+ MemberRole: "Alien" | "Member" | "Owner";
1627
+ /** @description Returned as a response from multiple routes (e.g., 'get mfa', 'approve mfa', 'approve totp'). */
1628
+ MfaRequestInfo: {
1629
+ expires_at: components["schemas"]["EpochDateTime"];
1630
+ /** @description Approval request ID. */
1631
+ id: string;
1632
+ receipt?: components["schemas"]["Receipt"] | null;
1633
+ request: components["schemas"]["HttpRequest"];
1634
+ status: components["schemas"]["Status"];
1635
+ };
1238
1636
  /** @enum {string} */
1239
1637
  MfaType: "CubeSigner" | "Totp" | "Fido";
1240
1638
  /**
@@ -1262,11 +1660,6 @@ export interface components {
1262
1660
  * a single OIDC user to multiple `User`s in CubeSigner
1263
1661
  */
1264
1662
  OIDCIdentity: {
1265
- /**
1266
- * @description Free-form additional user info.
1267
- * @example null
1268
- */
1269
- disambiguator?: string | null;
1270
1663
  /**
1271
1664
  * @description The root-level issuer who administrates this user. Frome the OIDC spec:
1272
1665
  * Issuer Identifier for the Issuer of the response. The iss
@@ -1298,35 +1691,11 @@ export interface components {
1298
1691
  scopes: string[];
1299
1692
  tokens?: components["schemas"]["RatchetConfig"];
1300
1693
  };
1301
- /** @description Proof that an end-user provided CubeSigner with a valid OIDC token */
1302
- OidcProof: ((components["schemas"]["OIDCIdentity"] & {
1303
- /**
1304
- * @description The "audience" (oauth client) through which the user authenticated with the issuer.
1305
- * This string is opaque according to the OIDC spec, but for example Google
1306
- * audiences look like `1234987819200.apps.googleusercontent.com`
1307
- * @example 1234987819200.apps.googleusercontent.com
1308
- */
1309
- aud: string;
1310
- /**
1311
- * @description The email associated with the user
1312
- * @example user@email.com
1313
- */
1314
- email: string;
1315
- }) & {
1316
- exp_epoch: components["schemas"]["EpochDateTime"];
1317
- }) & {
1318
- /** @description An opaque identifier for the proof */
1319
- id: string;
1320
- };
1321
1694
  OrgInfo: {
1322
1695
  /** @description When false, all cryptographic operations involving keys in this org are disabled. */
1323
1696
  enabled: boolean;
1324
- /**
1325
- * @description The RSA public key to use when importing keys into this organization. This string is the
1326
- * hex encoding of the DER representation of the key.
1327
- * @example 30820222300d06092a864886f70d01010105000382020f003082020a0282020100c89765b8f347caafbec09fcb17740e032d854ec99f2d9c16167be335339b4fdeba18a7f13d8e8b7ae7d689cab63d8ecdf548f4746eacaf95b61fef76ade9f81b3c038891c52542fd352697b618afbea6103723c28f2db450e9d852be16a4dc2cbc9442da9a6610044009e056ba90728f0b9888d9b036e493aaed168ccf930fa2f730b17eb3ad6f455a792b762c47f3d3c6b7a7c458556a592e688791599a576bf2149d8e9614db775e7a48602d237a347d5399c681f7f7d9c81f6a64e7cfd356bba545d45e5023ca1f09a66a1d4550f61cf2c4367e14997b5d749bb0326a44d058119e8caf7fd79d517eb2d11dddb2db329f350698f0f978d5e150bb402c8bc4c5ec36d6f38db3f3a204813cda9f52dbcee809204f8e35a455c0e110e10eec41f734f2d55a058a7a21fa90602f94da6de2378ff61e7b3550b77e53d75d7b3d3b39ccab0e5101b916dab01da096f7627175d5b68a1a6464ce5be3e95e7c464d69eb0b675057705c11bc79c3543313b0d9c703c50dc1a16dd9b55e5599e3b02e527b85938e7b81c65e56960bcd7c7a266b07dc05107fd0d7d3c208a878eb0fc74b0d007f421d0c5b28cf78eb441aa0166dceeeac255d68622492f9b526ae13c93754ea8eda96f3b764ba931f8d49c7de8b00ac53d993ab9b08fd2892d8e82cc1a9746f0b426b19256d13d780445e150ce81da0b3c96e32559cb47cb5cb93f805650203010001
1328
- */
1329
- key_import_key: string;
1697
+ /** @description Deprecated: this field should be ignored. */
1698
+ key_import_key?: string | null;
1330
1699
  /**
1331
1700
  * @description The organization's universally unique key-wrapping-key identifier.
1332
1701
  * This value is required when setting up key export.
@@ -1363,6 +1732,101 @@ export interface components {
1363
1732
  */
1364
1733
  policy?: Record<string, never>[];
1365
1734
  };
1735
+ /**
1736
+ * @description The rocket query parameter representing the page from which to start a paginated query.
1737
+ *
1738
+ * MUST be named `<page>` in rocket url spec so that 'serde(rename = "page.*")' below continues to work
1739
+ */
1740
+ Page: {
1741
+ /**
1742
+ * Format: int32
1743
+ * @description Max number of items to return per page.
1744
+ *
1745
+ * If the actual number of returned items may be less that this, even if there exist more
1746
+ * data in the result set. To reliably determine if more data is left in the result set,
1747
+ * inspect the [UnencryptedLastEvalKey] value in the response object.
1748
+ */
1749
+ "page.size"?: number;
1750
+ /**
1751
+ * @description The start of the page. Omit to start from the beginning; otherwise, only specify a
1752
+ * the exact value previously returned as 'last_evaluated_key' from the same endpoint.
1753
+ */
1754
+ "page.start"?: string | null;
1755
+ };
1756
+ /**
1757
+ * @description Response type that wraps another type and adds base64url-encoded encrypted `last_evaluated_key`
1758
+ * value (which can the user pass back to use as a url query parameter to continue pagination).
1759
+ */
1760
+ PaginatedListKeysResponse: {
1761
+ keys: components["schemas"]["KeyInfo"][];
1762
+ } & ({
1763
+ /**
1764
+ * @description If set, the content of `response` does not contain the entire result set.
1765
+ * To fetch the next page of the result set, call the same endpoint
1766
+ * but specify this value as the 'page.start' query parameter.
1767
+ */
1768
+ last_evaluated_key?: string | null;
1769
+ });
1770
+ /**
1771
+ * @description Response type that wraps another type and adds base64url-encoded encrypted `last_evaluated_key`
1772
+ * value (which can the user pass back to use as a url query parameter to continue pagination).
1773
+ */
1774
+ PaginatedListRoleKeysResponse: {
1775
+ /** @description All keys in a role */
1776
+ keys: components["schemas"]["KeyInRoleInfo"][];
1777
+ } & ({
1778
+ /**
1779
+ * @description If set, the content of `response` does not contain the entire result set.
1780
+ * To fetch the next page of the result set, call the same endpoint
1781
+ * but specify this value as the 'page.start' query parameter.
1782
+ */
1783
+ last_evaluated_key?: string | null;
1784
+ });
1785
+ /**
1786
+ * @description Response type that wraps another type and adds base64url-encoded encrypted `last_evaluated_key`
1787
+ * value (which can the user pass back to use as a url query parameter to continue pagination).
1788
+ */
1789
+ PaginatedListRoleUsersResponse: {
1790
+ /** @description All users in a role */
1791
+ users: components["schemas"]["UserInRoleInfo"][];
1792
+ } & ({
1793
+ /**
1794
+ * @description If set, the content of `response` does not contain the entire result set.
1795
+ * To fetch the next page of the result set, call the same endpoint
1796
+ * but specify this value as the 'page.start' query parameter.
1797
+ */
1798
+ last_evaluated_key?: string | null;
1799
+ });
1800
+ /**
1801
+ * @description Response type that wraps another type and adds base64url-encoded encrypted `last_evaluated_key`
1802
+ * value (which can the user pass back to use as a url query parameter to continue pagination).
1803
+ */
1804
+ PaginatedListRolesResponse: {
1805
+ /** @description All roles in an organization. */
1806
+ roles: components["schemas"]["RoleInfo"][];
1807
+ } & ({
1808
+ /**
1809
+ * @description If set, the content of `response` does not contain the entire result set.
1810
+ * To fetch the next page of the result set, call the same endpoint
1811
+ * but specify this value as the 'page.start' query parameter.
1812
+ */
1813
+ last_evaluated_key?: string | null;
1814
+ });
1815
+ /**
1816
+ * @description Response type that wraps another type and adds base64url-encoded encrypted `last_evaluated_key`
1817
+ * value (which can the user pass back to use as a url query parameter to continue pagination).
1818
+ */
1819
+ PaginatedSessionsResponse: {
1820
+ /** @description The list of sessions */
1821
+ sessions: components["schemas"]["SessionInfo"][];
1822
+ } & ({
1823
+ /**
1824
+ * @description If set, the content of `response` does not contain the entire result set.
1825
+ * To fetch the next page of the result set, call the same endpoint
1826
+ * but specify this value as the 'page.start' query parameter.
1827
+ */
1828
+ last_evaluated_key?: string | null;
1829
+ });
1366
1830
  /**
1367
1831
  * @description This type represents a wire-encodable form of the PublicKeyCredential interface
1368
1832
  * Clients may need to manually encode into this format to communicate with the server
@@ -1407,7 +1871,7 @@ export interface components {
1407
1871
  */
1408
1872
  PublicKeyCredentialCreationOptions: {
1409
1873
  attestation?: components["schemas"]["AttestationConveyancePreference"];
1410
- authenticator_selection: components["schemas"]["AuthenticatorSelectionCriteria"] | null;
1874
+ authenticator_selection?: components["schemas"]["AuthenticatorSelectionCriteria"] | null;
1411
1875
  /**
1412
1876
  * @description This member contains a challenge intended to be used for generating the
1413
1877
  * newly created credential’s attestation object. See the § 13.4.3
@@ -1438,7 +1902,7 @@ export interface components {
1438
1902
  *
1439
1903
  * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialcreationoptions-extensions
1440
1904
  */
1441
- extensions: Record<string, unknown> | null;
1905
+ extensions?: Record<string, unknown> | null;
1442
1906
  /**
1443
1907
  * @description This member contains information about the desired properties of the
1444
1908
  * credential to be created. The sequence is ordered from most preferred to
@@ -1457,8 +1921,8 @@ export interface components {
1457
1921
  *
1458
1922
  * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialcreationoptions-timeout
1459
1923
  */
1460
- timeout: number | null;
1461
- user: components["schemas"]["PublicKeyCredentialUserEntity"] | null;
1924
+ timeout?: number | null;
1925
+ user: components["schemas"]["PublicKeyCredentialUserEntity"];
1462
1926
  };
1463
1927
  /**
1464
1928
  * @description This dictionary contains the attributes that are specified by a caller when
@@ -1488,7 +1952,7 @@ export interface components {
1488
1952
  * SHOULD retrieve that stored value and set it as the value of the
1489
1953
  * transports member.
1490
1954
  */
1491
- transports: components["schemas"]["AuthenticatorTransport"][] | null;
1955
+ transports?: components["schemas"]["AuthenticatorTransport"][] | null;
1492
1956
  type: components["schemas"]["PublicKeyCredentialType"];
1493
1957
  };
1494
1958
  /**
@@ -1540,7 +2004,7 @@ export interface components {
1540
2004
  *
1541
2005
  * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialrequestoptions-rpid
1542
2006
  */
1543
- rp_id: string | null;
2007
+ rp_id?: string | null;
1544
2008
  /**
1545
2009
  * Format: int32
1546
2010
  * @description This OPTIONAL member specifies a time, in milliseconds, that the caller
@@ -1549,7 +2013,7 @@ export interface components {
1549
2013
  *
1550
2014
  * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialrequestoptions-timeout
1551
2015
  */
1552
- timeout: number | null;
2016
+ timeout?: number | null;
1553
2017
  user_verification?: components["schemas"]["UserVerificationRequirement"];
1554
2018
  };
1555
2019
  /**
@@ -1564,7 +2028,7 @@ export interface components {
1564
2028
  *
1565
2029
  * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialrpentity-id
1566
2030
  */
1567
- id: string;
2031
+ id?: string | null;
1568
2032
  /**
1569
2033
  * @description A human-palatable name for the entity. Its function depends on what the
1570
2034
  * PublicKeyCredentialEntity represents: When inherited by
@@ -1679,8 +2143,13 @@ export interface components {
1679
2143
  name: string;
1680
2144
  };
1681
2145
  RatchetConfig: {
2146
+ /** @default 300 */
1682
2147
  auth_lifetime?: components["schemas"]["Seconds"];
2148
+ /** @default default_grace_lifetime */
2149
+ grace_lifetime?: components["schemas"]["Seconds"];
2150
+ /** @default 86400 */
1683
2151
  refresh_lifetime?: components["schemas"]["Seconds"];
2152
+ /** @default 31536000 */
1684
2153
  session_lifetime?: components["schemas"]["Seconds"];
1685
2154
  };
1686
2155
  /** @description Receipt that an MFA request was approved. */
@@ -1703,63 +2172,49 @@ export interface components {
1703
2172
  * @enum {string}
1704
2173
  */
1705
2174
  ResidentKeyRequirement: "discouraged" | "preferred" | "required";
2175
+ RevokeTokenResponse: {
2176
+ token?: components["schemas"]["TokenInfo"] | null;
2177
+ };
2178
+ RevokeTokensResponse: {
2179
+ /** @description Tokens that were revoked. */
2180
+ revoked: components["schemas"]["TokenInfo"][];
2181
+ };
1706
2182
  RoleInfo: {
1707
2183
  /**
1708
2184
  * @description Whether the role is enabled
1709
2185
  * @example true
1710
2186
  */
1711
2187
  enabled: boolean;
1712
- /** @description The CubeSigner IDs of the keys */
1713
- keys: components["schemas"]["KeyWithPolicies"][];
2188
+ /** @description Deprecated The CubeSigner IDs of at most 100 keys associated with this role */
2189
+ keys?: components["schemas"]["KeyInRoleInfo"][] | null;
1714
2190
  /**
1715
2191
  * @description The human-readable name for the role (must be alphanumeric)
1716
2192
  * @example my_role
1717
2193
  */
1718
2194
  name?: string | null;
1719
2195
  /**
1720
- * @description The ID of the role
1721
- * @example Role#bfe3eccb-731e-430d-b1e5-ac1363e6b06b
1722
- */
1723
- role_id: string;
1724
- /**
1725
- * @description The list of users with access to the role
2196
+ * @description Policy that is checked whenever a key is accessed for signing via this role.
1726
2197
  * @example [
1727
- * "User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f",
1728
- * "User#5593c25b-52e2-4fb5-b39b-96d41d681d82"
2198
+ * {
2199
+ * "SourceIpAllowlist": [
2200
+ * "123.456.78.9/16"
2201
+ * ]
2202
+ * },
2203
+ * {
2204
+ * "RequireMfa": {
2205
+ * "count": 1
2206
+ * }
2207
+ * }
1729
2208
  * ]
1730
2209
  */
1731
- users: string[];
1732
- };
1733
- /**
1734
- * @description Encrypted key material for import using hybrid encryption.
1735
- *
1736
- * The imported keying material is encrypted using [XChaCha20Poly1305], which
1737
- * we choose for its speed and side channel resistance, its ability to encrypt
1738
- * very long messages, and its safety when using random nonces even for a large
1739
- * number of messages. The latter should not happen in this case, but the cost
1740
- * is negligible and the benefit is that we know it's safe to use random nonces.
1741
- *
1742
- * The XChaCha key is encrypted using [RSAES-OAEP-SHA256], which we choose because
1743
- * it's the best of the [available options for asymmetric encryption][kmsopts]
1744
- * in AWS KMS.
1745
- *
1746
- * [XChaCha20Poly1305]: https://doc.libsodium.org/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction
1747
- * [RSAES-OAEP-SHA256]: https://www.rfc-editor.org/rfc/rfc8017#section-7.1
1748
- * [kmsopts]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html
1749
- */
1750
- RsaOaepXChaChaMaterial: {
1751
- /**
1752
- * @description The keying material to be imported, encrypted with
1753
- * [XChaCha20Poly1305](https://doc.libsodium.org/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction).
1754
- */
1755
- ikm_enc: number[];
2210
+ policy?: Record<string, never>[];
1756
2211
  /**
1757
- * @description The key-wrapping key used to encrypt `ikm_enc`, encrypted with
1758
- * [RSAES-OAEP-SHA256](https://www.rfc-editor.org/rfc/rfc8017#section-7.1).
2212
+ * @description The ID of the role
2213
+ * @example Role#bfe3eccb-731e-430d-b1e5-ac1363e6b06b
1759
2214
  */
1760
- kwk_enc: number[];
1761
- /** @description The nonce used to generate `ikm_enc`. */
1762
- nonce: number[];
2215
+ role_id: string;
2216
+ /** @description Deprecated. The list of at most 100 users with access to the role. */
2217
+ users?: string[] | null;
1763
2218
  };
1764
2219
  /**
1765
2220
  * Format: int64
@@ -1779,10 +2234,24 @@ export interface components {
1779
2234
  */
1780
2235
  session_id: string;
1781
2236
  };
1782
- SignRequest: {
1783
- message: Record<string, never>;
2237
+ /** @description The response from any operation operating on multiple sessions */
2238
+ SessionsResponse: {
2239
+ /** @description The list of sessions */
2240
+ sessions: components["schemas"]["SessionInfo"][];
2241
+ };
2242
+ /**
2243
+ * @example {
2244
+ * "message_base64": "AQABA8OKVzLEjststN4xXr39kLKHT8d58eQY1QEs6MeXwEFBrxTAlULX1troLbWxuAXQqgbQofGi6z8fJi7KAAIf7YMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJK0tn39k28s+X86W47EvbRRKnYBVQ8Q/l2m1EbfT7+vAQICAAEMAgAAAGQAAAAAAAAA"
2245
+ * }
2246
+ */
2247
+ SolanaSignRequest: {
2248
+ /** @description Solana base64-encoded serialized Message */
2249
+ message_base64: string;
2250
+ };
2251
+ SolanaSignResponse: {
2252
+ /** @description The hex-encoded signature. */
2253
+ signature: string;
1784
2254
  };
1785
- SolanaSignRequest: components["schemas"]["SignRequest"] & Record<string, never>;
1786
2255
  StakeRequest: {
1787
2256
  /**
1788
2257
  * Format: int64
@@ -1799,18 +2268,26 @@ export interface components {
1799
2268
  * Must not be different from the default value when 'deposit_type' is "Wrapper".
1800
2269
  */
1801
2270
  staking_amount_gwei?: number;
1802
- unsafe_conf: components["schemas"]["UnsafeConf"] | null;
2271
+ unsafe_conf?: components["schemas"]["UnsafeConf"] | null;
1803
2272
  /**
1804
2273
  * @description The validator BLS public key to use, or `None` to generate a fresh one.
1805
2274
  * @example 0xa99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c
1806
2275
  */
1807
- validator_key: string | null;
2276
+ validator_key?: string | null;
1808
2277
  /**
1809
2278
  * @description The ethereum address to which withdrawn funds go
1810
2279
  * @example 0x8e3484687e66cdd26cf04c3647633ab4f3570148
1811
2280
  */
1812
2281
  withdrawal_addr: string;
1813
2282
  };
2283
+ StakeResponse: {
2284
+ /**
2285
+ * @description The validator key id ("Key#...")
2286
+ * @example Key#db1731f8-3659-45c0-885b-e11e1f5b7be2
2287
+ */
2288
+ created_validator_key_id: string;
2289
+ deposit_tx: components["schemas"]["DepositTxn"];
2290
+ };
1814
2291
  Status: {
1815
2292
  /** @description Users who are allowed to approve. Must be non-empty. */
1816
2293
  allowed_approvers: string[];
@@ -1818,9 +2295,9 @@ export interface components {
1818
2295
  allowed_mfa_types?: components["schemas"]["MfaType"][] | null;
1819
2296
  /** @description Users who have already approved */
1820
2297
  approved_by: {
1821
- [key: string]: ({
1822
- [key: string]: components["schemas"]["ApprovalInfo"] | undefined;
1823
- }) | undefined;
2298
+ [key: string]: {
2299
+ [key: string]: components["schemas"]["ApprovalInfo"];
2300
+ };
1824
2301
  };
1825
2302
  /**
1826
2303
  * Format: int32
@@ -1843,18 +2320,37 @@ export interface components {
1843
2320
  /** @description TOTP verification code */
1844
2321
  code: string;
1845
2322
  };
2323
+ /** @description Sent from the client to the server to answer a TOTP challenge */
2324
+ TotpChallengeAnswer: {
2325
+ /** @description The current TOTP code */
2326
+ code: string;
2327
+ /** @description The ID of the challenge that was returned from the POST endpoint */
2328
+ totp_id: string;
2329
+ };
2330
+ TotpInfo: {
2331
+ /**
2332
+ * @description The ID of the TOTP challenge.
2333
+ * @example TotpChallenge#7892ebba-563e-485b-bb7d-e26267363286
2334
+ */
2335
+ totp_id: string;
2336
+ /**
2337
+ * @description Standard TOTP url which includes everything needed to initialize TOTP.
2338
+ * @example otpauth://totp/Cubist:alice-%40example.com?secret=DAHF7KCOTQWSOMK4XFEMNHXO4J433OD7&issuer=Cubist
2339
+ */
2340
+ totp_url: string;
2341
+ };
1846
2342
  /** @description Options that should be set only for local devnet testing. */
1847
2343
  UnsafeConf: {
1848
2344
  /**
1849
2345
  * @description The hex-encoded address of the deposit contract. If omitted, inferred from `chain_id`
1850
2346
  * @example 0xff50ed3d0ec03ac01d4c79aad74928bff48a7b2b
1851
2347
  */
1852
- deposit_contract_addr: string | null;
2348
+ deposit_contract_addr?: string | null;
1853
2349
  /**
1854
2350
  * @description The hex-encoded 4-byte fork version
1855
2351
  * @example 0x00001020
1856
2352
  */
1857
- genesis_fork_version: string | null;
2353
+ genesis_fork_version?: string | null;
1858
2354
  };
1859
2355
  /**
1860
2356
  * @description Unstake message request.
@@ -1875,7 +2371,7 @@ export interface components {
1875
2371
  * }
1876
2372
  */
1877
2373
  UnstakeRequest: {
1878
- epoch: components["schemas"]["Epoch"] | null;
2374
+ epoch?: components["schemas"]["Epoch"] | null;
1879
2375
  fork: components["schemas"]["Fork"];
1880
2376
  genesis_data: components["schemas"]["GenesisData"];
1881
2377
  network: components["schemas"]["Network"];
@@ -1889,6 +2385,22 @@ export interface components {
1889
2385
  */
1890
2386
  validator_index: string;
1891
2387
  };
2388
+ /**
2389
+ * @description Unstake responses are signed voluntary exit messages.
2390
+ * The schema for this message is defined
2391
+ * [here](https://github.com/ethereum/consensus-specs/blob/v1.0.1/specs/phase0/beacon-chain.md#signedvoluntaryexit).
2392
+ * This message can be directly POSTed to the Beacon node's
2393
+ * `/eth/v1/beacon/pool/voluntary_exits` end-point (see expected schema
2394
+ * [here](https://ethereum.github.io/beacon-APIs/#/Beacon/submitPoolVoluntaryExit)).
2395
+ */
2396
+ UnstakeResponse: {
2397
+ message: components["schemas"]["VoluntaryExit"];
2398
+ /**
2399
+ * @description BLS signature.
2400
+ * @example 0x910c7cd537ed91cc8c4a82f3cbd832e9be8c24a22e9c86df479f7ce42025ea6a09619b418b666a060e260d2aae31b8e50e9d05ca3442c7eed3b507e5207e14674275f68c2ba84c4bf6b8dd364a304acac8cfab3681e2514b4400f9242bc61164
2401
+ */
2402
+ signature: string;
2403
+ };
1892
2404
  UpdateKeyRequest: {
1893
2405
  /**
1894
2406
  * @description If set, updates the keys's `enabled` property to this value.
@@ -1943,12 +2455,52 @@ export interface components {
1943
2455
  */
1944
2456
  policy?: Record<string, never>[] | null;
1945
2457
  };
2458
+ UpdateOrgResponse: {
2459
+ /** @description The new value of the 'enabled' property */
2460
+ enabled?: boolean | null;
2461
+ /**
2462
+ * @description The new human-readable name for the org (must be alphanumeric)
2463
+ * @example my_org_name
2464
+ */
2465
+ name?: string | null;
2466
+ /**
2467
+ * @description The ID of the organization
2468
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2469
+ */
2470
+ org_id: string;
2471
+ /**
2472
+ * @description The new value of org-wide policies
2473
+ * @example [
2474
+ * {
2475
+ * "MaxDailyUnstake": 5
2476
+ * },
2477
+ * {
2478
+ * "OriginAllowlist": [
2479
+ * "https://example.com"
2480
+ * ]
2481
+ * }
2482
+ * ]
2483
+ */
2484
+ policy?: Record<string, never>[] | null;
2485
+ };
1946
2486
  UpdateRoleRequest: {
1947
2487
  /**
1948
2488
  * @description If set, updates the role's `enabled` property to this value.
1949
2489
  * Once disabled, a role cannot be used; and it's tokens cannot be used for signing.
1950
2490
  */
1951
2491
  enabled?: boolean | null;
2492
+ /**
2493
+ * @description If set, update this role's key policies (old policies will be overwritten!).
2494
+ * Only "deny" style policies may be set.
2495
+ * @example [
2496
+ * {
2497
+ * "SourceIpAllowlist": [
2498
+ * "123.456.78.9/16"
2499
+ * ]
2500
+ * }
2501
+ * ]
2502
+ */
2503
+ policy?: Record<string, never>[] | null;
1952
2504
  };
1953
2505
  UserIdInfo: {
1954
2506
  /**
@@ -1962,6 +2514,9 @@ export interface components {
1962
2514
  */
1963
2515
  id: string;
1964
2516
  };
2517
+ UserInRoleInfo: {
2518
+ user_id: string;
2519
+ };
1965
2520
  UserInfo: {
1966
2521
  /** @example alice@example.com */
1967
2522
  email: string;
@@ -2013,6 +2568,14 @@ export interface components {
2013
2568
  };
2014
2569
  };
2015
2570
  };
2571
+ AvaSignResponse: {
2572
+ content: {
2573
+ "application/json": {
2574
+ /** @description The hex-encoded signature. */
2575
+ signature: string;
2576
+ };
2577
+ };
2578
+ };
2016
2579
  BlobSignResponse: {
2017
2580
  content: {
2018
2581
  "application/json": {
@@ -2073,6 +2636,19 @@ export interface components {
2073
2636
  };
2074
2637
  };
2075
2638
  };
2639
+ Eip712SignResponse: {
2640
+ content: {
2641
+ "application/json": {
2642
+ /**
2643
+ * @description Hex-encoded signature comprising 65 bytes in the format required
2644
+ * by ecrecover: 32-byte r, 32-byte s, and one-byte recovery-id v
2645
+ * which is either 27 or 28.
2646
+ * @example 0x4355c47d63924e8a72e509b65029052eb6c299d53a04e167c5775fd466751c9d07299936d304c153f6443dfa05f40ff007d72911b6f72307f996231605b915621c
2647
+ */
2648
+ signature: string;
2649
+ };
2650
+ };
2651
+ };
2076
2652
  EmptyImpl: {
2077
2653
  content: {
2078
2654
  "application/json": {
@@ -2124,18 +2700,38 @@ export interface components {
2124
2700
  };
2125
2701
  };
2126
2702
  };
2127
- GetKeysInOrgResponse: {
2703
+ GetUsersInOrgResponse: {
2128
2704
  content: {
2129
2705
  "application/json": {
2130
- keys: components["schemas"]["KeyInfo"][];
2706
+ /** @description The list of users in the org */
2707
+ users: components["schemas"]["UserIdInfo"][];
2131
2708
  };
2132
2709
  };
2133
2710
  };
2134
- GetUsersInOrgResponse: {
2711
+ /**
2712
+ * @description Proof that an end-user provided CubeSigner with a valid auth token
2713
+ * (either an OIDC token or a CubeSigner session token)
2714
+ */
2715
+ IdentityProof: {
2135
2716
  content: {
2136
- "application/json": {
2137
- /** @description The list of users in the org */
2138
- users: components["schemas"]["UserIdInfo"][];
2717
+ "application/json": ({
2718
+ /**
2719
+ * @description OIDC audience; set only if the proof was obtained by using OIDC token.
2720
+ *
2721
+ * In other words, presence of this field testifies that authorization was obtained via OIDC.
2722
+ */
2723
+ aud?: string | null;
2724
+ /**
2725
+ * @description The email associated with the user
2726
+ * @example user@email.com
2727
+ */
2728
+ email: string;
2729
+ exp_epoch: components["schemas"]["EpochDateTime"];
2730
+ identity?: components["schemas"]["OIDCIdentity"] | null;
2731
+ user_info?: components["schemas"]["CubeSignerUserInfo"] | null;
2732
+ }) & {
2733
+ /** @description An opaque identifier for the proof */
2734
+ id: string;
2139
2735
  };
2140
2736
  };
2141
2737
  };
@@ -2230,11 +2826,11 @@ export interface components {
2230
2826
  };
2231
2827
  };
2232
2828
  };
2233
- ListRolesResponse: {
2829
+ ListMfaResponse: {
2234
2830
  content: {
2235
2831
  "application/json": {
2236
- /** @description All roles in an organization. */
2237
- roles: components["schemas"]["RoleInfo"][];
2832
+ /** @description All pending MFA requests */
2833
+ mfa_requests: components["schemas"]["MfaRequestInfo"][];
2238
2834
  };
2239
2835
  };
2240
2836
  };
@@ -2252,7 +2848,7 @@ export interface components {
2252
2848
  expires_at: components["schemas"]["EpochDateTime"];
2253
2849
  /** @description Approval request ID. */
2254
2850
  id: string;
2255
- receipt: components["schemas"]["Receipt"] | null;
2851
+ receipt?: components["schemas"]["Receipt"] | null;
2256
2852
  request: components["schemas"]["HttpRequest"];
2257
2853
  status: components["schemas"]["Status"];
2258
2854
  };
@@ -2271,41 +2867,13 @@ export interface components {
2271
2867
  };
2272
2868
  };
2273
2869
  };
2274
- /** @description Proof that an end-user provided CubeSigner with a valid OIDC token */
2275
- OidcProof: {
2276
- content: {
2277
- "application/json": ((components["schemas"]["OIDCIdentity"] & {
2278
- /**
2279
- * @description The "audience" (oauth client) through which the user authenticated with the issuer.
2280
- * This string is opaque according to the OIDC spec, but for example Google
2281
- * audiences look like `1234987819200.apps.googleusercontent.com`
2282
- * @example 1234987819200.apps.googleusercontent.com
2283
- */
2284
- aud: string;
2285
- /**
2286
- * @description The email associated with the user
2287
- * @example user@email.com
2288
- */
2289
- email: string;
2290
- }) & {
2291
- exp_epoch: components["schemas"]["EpochDateTime"];
2292
- }) & {
2293
- /** @description An opaque identifier for the proof */
2294
- id: string;
2295
- };
2296
- };
2297
- };
2298
- OrgInfo: {
2870
+ OrgInfo: {
2299
2871
  content: {
2300
2872
  "application/json": {
2301
2873
  /** @description When false, all cryptographic operations involving keys in this org are disabled. */
2302
2874
  enabled: boolean;
2303
- /**
2304
- * @description The RSA public key to use when importing keys into this organization. This string is the
2305
- * hex encoding of the DER representation of the key.
2306
- * @example 30820222300d06092a864886f70d01010105000382020f003082020a0282020100c89765b8f347caafbec09fcb17740e032d854ec99f2d9c16167be335339b4fdeba18a7f13d8e8b7ae7d689cab63d8ecdf548f4746eacaf95b61fef76ade9f81b3c038891c52542fd352697b618afbea6103723c28f2db450e9d852be16a4dc2cbc9442da9a6610044009e056ba90728f0b9888d9b036e493aaed168ccf930fa2f730b17eb3ad6f455a792b762c47f3d3c6b7a7c458556a592e688791599a576bf2149d8e9614db775e7a48602d237a347d5399c681f7f7d9c81f6a64e7cfd356bba545d45e5023ca1f09a66a1d4550f61cf2c4367e14997b5d749bb0326a44d058119e8caf7fd79d517eb2d11dddb2db329f350698f0f978d5e150bb402c8bc4c5ec36d6f38db3f3a204813cda9f52dbcee809204f8e35a455c0e110e10eec41f734f2d55a058a7a21fa90602f94da6de2378ff61e7b3550b77e53d75d7b3d3b39ccab0e5101b916dab01da096f7627175d5b68a1a6464ce5be3e95e7c464d69eb0b675057705c11bc79c3543313b0d9c703c50dc1a16dd9b55e5599e3b02e527b85938e7b81c65e56960bcd7c7a266b07dc05107fd0d7d3c208a878eb0fc74b0d007f421d0c5b28cf78eb441aa0166dceeeac255d68622492f9b526ae13c93754ea8eda96f3b764ba931f8d49c7de8b00ac53d993ab9b08fd2892d8e82cc1a9746f0b426b19256d13d780445e150ce81da0b3c96e32559cb47cb5cb93f805650203010001
2307
- */
2308
- key_import_key: string;
2875
+ /** @description Deprecated: this field should be ignored. */
2876
+ key_import_key?: string | null;
2309
2877
  /**
2310
2878
  * @description The organization's universally unique key-wrapping-key identifier.
2311
2879
  * This value is required when setting up key export.
@@ -2344,6 +2912,80 @@ export interface components {
2344
2912
  };
2345
2913
  };
2346
2914
  };
2915
+ PaginatedListKeysResponse: {
2916
+ content: {
2917
+ "application/json": {
2918
+ keys: components["schemas"]["KeyInfo"][];
2919
+ } & ({
2920
+ /**
2921
+ * @description If set, the content of `response` does not contain the entire result set.
2922
+ * To fetch the next page of the result set, call the same endpoint
2923
+ * but specify this value as the 'page.start' query parameter.
2924
+ */
2925
+ last_evaluated_key?: string | null;
2926
+ });
2927
+ };
2928
+ };
2929
+ PaginatedListRoleKeysResponse: {
2930
+ content: {
2931
+ "application/json": {
2932
+ /** @description All keys in a role */
2933
+ keys: components["schemas"]["KeyInRoleInfo"][];
2934
+ } & ({
2935
+ /**
2936
+ * @description If set, the content of `response` does not contain the entire result set.
2937
+ * To fetch the next page of the result set, call the same endpoint
2938
+ * but specify this value as the 'page.start' query parameter.
2939
+ */
2940
+ last_evaluated_key?: string | null;
2941
+ });
2942
+ };
2943
+ };
2944
+ PaginatedListRoleUsersResponse: {
2945
+ content: {
2946
+ "application/json": {
2947
+ /** @description All users in a role */
2948
+ users: components["schemas"]["UserInRoleInfo"][];
2949
+ } & ({
2950
+ /**
2951
+ * @description If set, the content of `response` does not contain the entire result set.
2952
+ * To fetch the next page of the result set, call the same endpoint
2953
+ * but specify this value as the 'page.start' query parameter.
2954
+ */
2955
+ last_evaluated_key?: string | null;
2956
+ });
2957
+ };
2958
+ };
2959
+ PaginatedListRolesResponse: {
2960
+ content: {
2961
+ "application/json": {
2962
+ /** @description All roles in an organization. */
2963
+ roles: components["schemas"]["RoleInfo"][];
2964
+ } & ({
2965
+ /**
2966
+ * @description If set, the content of `response` does not contain the entire result set.
2967
+ * To fetch the next page of the result set, call the same endpoint
2968
+ * but specify this value as the 'page.start' query parameter.
2969
+ */
2970
+ last_evaluated_key?: string | null;
2971
+ });
2972
+ };
2973
+ };
2974
+ PaginatedSessionsResponse: {
2975
+ content: {
2976
+ "application/json": {
2977
+ /** @description The list of sessions */
2978
+ sessions: components["schemas"]["SessionInfo"][];
2979
+ } & ({
2980
+ /**
2981
+ * @description If set, the content of `response` does not contain the entire result set.
2982
+ * To fetch the next page of the result set, call the same endpoint
2983
+ * but specify this value as the 'page.start' query parameter.
2984
+ */
2985
+ last_evaluated_key?: string | null;
2986
+ });
2987
+ };
2988
+ };
2347
2989
  RevokeTokenResponse: {
2348
2990
  content: {
2349
2991
  "application/json": {
@@ -2367,26 +3009,36 @@ export interface components {
2367
3009
  * @example true
2368
3010
  */
2369
3011
  enabled: boolean;
2370
- /** @description The CubeSigner IDs of the keys */
2371
- keys: components["schemas"]["KeyWithPolicies"][];
3012
+ /** @description Deprecated The CubeSigner IDs of at most 100 keys associated with this role */
3013
+ keys?: components["schemas"]["KeyInRoleInfo"][] | null;
2372
3014
  /**
2373
3015
  * @description The human-readable name for the role (must be alphanumeric)
2374
3016
  * @example my_role
2375
3017
  */
2376
3018
  name?: string | null;
3019
+ /**
3020
+ * @description Policy that is checked whenever a key is accessed for signing via this role.
3021
+ * @example [
3022
+ * {
3023
+ * "SourceIpAllowlist": [
3024
+ * "123.456.78.9/16"
3025
+ * ]
3026
+ * },
3027
+ * {
3028
+ * "RequireMfa": {
3029
+ * "count": 1
3030
+ * }
3031
+ * }
3032
+ * ]
3033
+ */
3034
+ policy?: Record<string, never>[];
2377
3035
  /**
2378
3036
  * @description The ID of the role
2379
3037
  * @example Role#bfe3eccb-731e-430d-b1e5-ac1363e6b06b
2380
3038
  */
2381
3039
  role_id: string;
2382
- /**
2383
- * @description The list of users with access to the role
2384
- * @example [
2385
- * "User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f",
2386
- * "User#5593c25b-52e2-4fb5-b39b-96d41d681d82"
2387
- * ]
2388
- */
2389
- users: string[];
3040
+ /** @description Deprecated. The list of at most 100 users with access to the role. */
3041
+ users?: string[] | null;
2390
3042
  };
2391
3043
  };
2392
3044
  };
@@ -2448,6 +3100,11 @@ export interface components {
2448
3100
  TotpInfo: {
2449
3101
  content: {
2450
3102
  "application/json": {
3103
+ /**
3104
+ * @description The ID of the TOTP challenge.
3105
+ * @example TotpChallenge#7892ebba-563e-485b-bb7d-e26267363286
3106
+ */
3107
+ totp_id: string;
2451
3108
  /**
2452
3109
  * @description Standard TOTP url which includes everything needed to initialize TOTP.
2453
3110
  * @example otpauth://totp/Cubist:alice-%40example.com?secret=DAHF7KCOTQWSOMK4XFEMNHXO4J433OD7&issuer=Cubist
@@ -2539,6 +3196,8 @@ export interface components {
2539
3196
  pathItems: never;
2540
3197
  }
2541
3198
 
3199
+ export type $defs = Record<string, never>;
3200
+
2542
3201
  export type external = Record<string, never>;
2543
3202
 
2544
3203
  export interface operations {
@@ -2549,7 +3208,7 @@ export interface operations {
2549
3208
  *
2550
3209
  * Retrieves information about the current user.
2551
3210
  */
2552
- aboutMe: {
3211
+ aboutMeLegacy: {
2553
3212
  responses: {
2554
3213
  200: components["responses"]["UserInfo"];
2555
3214
  default: {
@@ -2614,6 +3273,47 @@ export interface operations {
2614
3273
  };
2615
3274
  };
2616
3275
  };
3276
+ /**
3277
+ * Sign Avalanche X- or P-Chain Message
3278
+ * @description Sign Avalanche X- or P-Chain Message
3279
+ *
3280
+ * Signs an Avalanche message with a given SecpAva key.
3281
+ * This is a pre-release feature.
3282
+ */
3283
+ avaSign: {
3284
+ parameters: {
3285
+ path: {
3286
+ /**
3287
+ * @description Name or ID of the desired Org
3288
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3289
+ */
3290
+ org_id: string;
3291
+ /**
3292
+ * @description Avalanche bech32 address format without the chain prefix
3293
+ * @example avax1am4w6hfrvmh3akduzkjthrtgtqafalce6an8cr
3294
+ */
3295
+ pubkey: string;
3296
+ };
3297
+ };
3298
+ requestBody: {
3299
+ content: {
3300
+ "application/json": components["schemas"]["AvaSignRequest"];
3301
+ };
3302
+ };
3303
+ responses: {
3304
+ 200: components["responses"]["AvaSignResponse"];
3305
+ 202: {
3306
+ content: {
3307
+ "application/json": components["schemas"]["AcceptedResponse"];
3308
+ };
3309
+ };
3310
+ default: {
3311
+ content: {
3312
+ "application/json": components["schemas"]["ErrorResponse"];
3313
+ };
3314
+ };
3315
+ };
3316
+ };
2617
3317
  /**
2618
3318
  * Sign Bitcoin Transaction
2619
3319
  * @description Sign Bitcoin Transaction
@@ -2687,12 +3387,12 @@ export interface operations {
2687
3387
  };
2688
3388
  };
2689
3389
  /**
2690
- * Create Key-Import Key
2691
- * @description Create Key-Import Key
3390
+ * Sign EIP-712 Typed Data
3391
+ * @description Sign EIP-712 Typed Data
2692
3392
  *
2693
- * Generate an ephemeral key that a client can use for key-import encryption.
3393
+ * Signs typed data according to EIP-712 with a given Secp256k1 key.
2694
3394
  */
2695
- createKeyImportKey: {
3395
+ eip712Sign: {
2696
3396
  parameters: {
2697
3397
  path: {
2698
3398
  /**
@@ -2700,10 +3400,25 @@ export interface operations {
2700
3400
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2701
3401
  */
2702
3402
  org_id: string;
3403
+ /**
3404
+ * @description Hex-encoded ethereum address of the secp key
3405
+ * @example 0x49011adbCC3bC9c0307BB07F37Dda1a1a9c69d2E
3406
+ */
3407
+ pubkey: string;
3408
+ };
3409
+ };
3410
+ requestBody: {
3411
+ content: {
3412
+ "application/json": components["schemas"]["Eip712SignRequest"];
2703
3413
  };
2704
3414
  };
2705
3415
  responses: {
2706
- 200: components["responses"]["CreateKeyImportKeyResponse"];
3416
+ 200: components["responses"]["Eip712SignResponse"];
3417
+ 202: {
3418
+ content: {
3419
+ "application/json": components["schemas"]["AcceptedResponse"];
3420
+ };
3421
+ };
2707
3422
  default: {
2708
3423
  content: {
2709
3424
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2712,12 +3427,16 @@ export interface operations {
2712
3427
  };
2713
3428
  };
2714
3429
  /**
2715
- * Import Key
2716
- * @description Import Key
3430
+ * Create [IdentityProof] from CubeSigner user session
3431
+ * @description Create [IdentityProof] from CubeSigner user session
2717
3432
  *
2718
- * Securely imports an existing key using a previously generated key-import key.
3433
+ * This route can be used to prove to another party that a user has a
3434
+ * valid CubeSigner session.
3435
+ *
3436
+ * Clients are intended to call this route and pass the returned evidence
3437
+ * to another service which will verify it by making a request to `/v0/org/<org_id>/identity/verify`.
2719
3438
  */
2720
- importKey: {
3439
+ createProofCubeSigner: {
2721
3440
  parameters: {
2722
3441
  path: {
2723
3442
  /**
@@ -2727,13 +3446,8 @@ export interface operations {
2727
3446
  org_id: string;
2728
3447
  };
2729
3448
  };
2730
- requestBody: {
2731
- content: {
2732
- "application/json": components["schemas"]["ImportKeyRequest"];
2733
- };
2734
- };
2735
3449
  responses: {
2736
- 200: components["responses"]["CreateKeyResponse"];
3450
+ 200: components["responses"]["IdentityProof"];
2737
3451
  default: {
2738
3452
  content: {
2739
3453
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2742,12 +3456,19 @@ export interface operations {
2742
3456
  };
2743
3457
  };
2744
3458
  /**
2745
- * Invite User
2746
- * @description Invite User
3459
+ * Create [IdentityProof] from OIDC token
3460
+ * @description Create [IdentityProof] from OIDC token
2747
3461
  *
2748
- * Creates a new user in an existing org and sends that user an invite email.
3462
+ * Exchange an OIDC ID token (passed via the `Authorization` header) for a proof of authentication.
3463
+ *
3464
+ * This route can be used to prove to another party that a user has met the
3465
+ * authentication requirements (allowed issuers & audiences) for CubeSigner
3466
+ * without leaking their credentials.
3467
+ *
3468
+ * Clients are intended to call this route and pass the returned evidence to another service
3469
+ * which will verify it by making a request to `/v0/org/<org_id>/identity/verify`.
2749
3470
  */
2750
- invite: {
3471
+ createProofOidc: {
2751
3472
  parameters: {
2752
3473
  path: {
2753
3474
  /**
@@ -2757,13 +3478,8 @@ export interface operations {
2757
3478
  org_id: string;
2758
3479
  };
2759
3480
  };
2760
- requestBody: {
2761
- content: {
2762
- "application/json": components["schemas"]["InviteRequest"];
2763
- };
2764
- };
2765
3481
  responses: {
2766
- 200: components["responses"]["EmptyImpl"];
3482
+ 200: components["responses"]["IdentityProof"];
2767
3483
  default: {
2768
3484
  content: {
2769
3485
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2772,20 +3488,16 @@ export interface operations {
2772
3488
  };
2773
3489
  };
2774
3490
  /**
2775
- * List Keys
2776
- * @description List Keys
3491
+ * Verify identity proof
3492
+ * @description Verify identity proof
2777
3493
  *
2778
- * Gets the list of owned keys in a given org.
3494
+ * Allows a third-party to validate proof of authentication.
3495
+ *
3496
+ * When a third-party is provided an [IdentityProof] object, they must check its
3497
+ * veracity by calling this endpoint
2779
3498
  */
2780
- listKeysInOrg: {
3499
+ verifyProof: {
2781
3500
  parameters: {
2782
- query?: {
2783
- /**
2784
- * @description Filter by key type
2785
- * @example SecpEthAddr
2786
- */
2787
- key_type?: components["schemas"]["KeyType"];
2788
- };
2789
3501
  path: {
2790
3502
  /**
2791
3503
  * @description Name or ID of the desired Org
@@ -2794,23 +3506,21 @@ export interface operations {
2794
3506
  org_id: string;
2795
3507
  };
2796
3508
  };
2797
- responses: {
2798
- 200: components["responses"]["GetKeysInOrgResponse"];
2799
- default: {
2800
- content: {
2801
- "application/json": components["schemas"]["ErrorResponse"];
2802
- };
3509
+ requestBody: {
3510
+ content: {
3511
+ "application/json": components["schemas"]["IdentityProof"];
2803
3512
  };
2804
3513
  };
3514
+ responses: {
3515
+ };
2805
3516
  };
2806
3517
  /**
2807
- * Legacy Import Key
2808
- * @deprecated
2809
- * @description Legacy Import Key
3518
+ * Create Key-Import Key
3519
+ * @description Create Key-Import Key
2810
3520
  *
2811
- * Securely imports an existing key. This API is deprecated; please use the new version.
3521
+ * Generate an ephemeral key that a client can use for key-import encryption.
2812
3522
  */
2813
- importKeyLegacy: {
3523
+ createKeyImportKey: {
2814
3524
  parameters: {
2815
3525
  path: {
2816
3526
  /**
@@ -2820,13 +3530,8 @@ export interface operations {
2820
3530
  org_id: string;
2821
3531
  };
2822
3532
  };
2823
- requestBody: {
2824
- content: {
2825
- "application/json": components["schemas"]["ImportKeyLegacyRequest"];
2826
- };
2827
- };
2828
3533
  responses: {
2829
- 200: components["responses"]["CreateKeyResponse"];
3534
+ 200: components["responses"]["CreateKeyImportKeyResponse"];
2830
3535
  default: {
2831
3536
  content: {
2832
3537
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2835,12 +3540,12 @@ export interface operations {
2835
3540
  };
2836
3541
  };
2837
3542
  /**
2838
- * Create Key
2839
- * @description Create Key
3543
+ * Import Key
3544
+ * @description Import Key
2840
3545
  *
2841
- * Creates one or more new keys of the specified type (BLS or Secp).
3546
+ * Securely imports an existing key using a previously generated key-import key.
2842
3547
  */
2843
- createKey: {
3548
+ importKey: {
2844
3549
  parameters: {
2845
3550
  path: {
2846
3551
  /**
@@ -2852,7 +3557,7 @@ export interface operations {
2852
3557
  };
2853
3558
  requestBody: {
2854
3559
  content: {
2855
- "application/json": components["schemas"]["CreateKeyRequest"];
3560
+ "application/json": components["schemas"]["ImportKeyRequest"];
2856
3561
  };
2857
3562
  };
2858
3563
  responses: {
@@ -2865,13 +3570,12 @@ export interface operations {
2865
3570
  };
2866
3571
  };
2867
3572
  /**
2868
- * Legacy List Keys
2869
- * @deprecated
2870
- * @description Legacy List Keys
3573
+ * Invite User
3574
+ * @description Invite User
2871
3575
  *
2872
- * This route is deprecated. Use `GET /v0/org/<org_id>/keys?<key_type>`
3576
+ * Creates a new user in an existing org and sends that user an invite email.
2873
3577
  */
2874
- listKeysLegacy: {
3578
+ invite: {
2875
3579
  parameters: {
2876
3580
  path: {
2877
3581
  /**
@@ -2883,11 +3587,11 @@ export interface operations {
2883
3587
  };
2884
3588
  requestBody: {
2885
3589
  content: {
2886
- "application/json": components["schemas"]["GetKeysInOrgRequest"];
3590
+ "application/json": components["schemas"]["InviteRequest"];
2887
3591
  };
2888
3592
  };
2889
3593
  responses: {
2890
- 200: components["responses"]["GetKeysInOrgResponse"];
3594
+ 200: components["responses"]["EmptyImpl"];
2891
3595
  default: {
2892
3596
  content: {
2893
3597
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2896,28 +3600,43 @@ export interface operations {
2896
3600
  };
2897
3601
  };
2898
3602
  /**
2899
- * Get Key
2900
- * @description Get Key
3603
+ * List Keys
3604
+ * @description List Keys
2901
3605
  *
2902
- * Returns the properties of a key.
3606
+ * Gets the list of owned keys in a given org.
2903
3607
  */
2904
- getKeyInOrg: {
3608
+ listKeysInOrg: {
2905
3609
  parameters: {
3610
+ query?: {
3611
+ /**
3612
+ * @description Max number of items to return per page.
3613
+ *
3614
+ * If the actual number of returned items may be less that this, even if there exist more
3615
+ * data in the result set. To reliably determine if more data is left in the result set,
3616
+ * inspect the [UnencryptedLastEvalKey] value in the response object.
3617
+ */
3618
+ "page.size"?: number;
3619
+ /**
3620
+ * @description The start of the page. Omit to start from the beginning; otherwise, only specify a
3621
+ * the exact value previously returned as 'last_evaluated_key' from the same endpoint.
3622
+ */
3623
+ "page.start"?: components["schemas"]["LastEvalKey"] | null;
3624
+ /**
3625
+ * @description Filter by key type
3626
+ * @example SecpEthAddr
3627
+ */
3628
+ key_type?: components["schemas"]["KeyType"] | null;
3629
+ };
2906
3630
  path: {
2907
3631
  /**
2908
3632
  * @description Name or ID of the desired Org
2909
3633
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2910
3634
  */
2911
3635
  org_id: string;
2912
- /**
2913
- * @description ID of the key
2914
- * @example Key#0x8e3484687e66cdd26cf04c3647633ab4f3570148
2915
- */
2916
- key_id: string;
2917
3636
  };
2918
3637
  };
2919
3638
  responses: {
2920
- 200: components["responses"]["KeyInfo"];
3639
+ 200: components["responses"]["PaginatedListKeysResponse"];
2921
3640
  default: {
2922
3641
  content: {
2923
3642
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2926,12 +3645,12 @@ export interface operations {
2926
3645
  };
2927
3646
  };
2928
3647
  /**
2929
- * Update Key
2930
- * @description Update Key
3648
+ * Create Key
3649
+ * @description Create Key
2931
3650
  *
2932
- * Enable or disable a key. The user must be the owner of the key or organization to perform this action.
3651
+ * Creates one or more new keys of the specified type.
2933
3652
  */
2934
- updateKey: {
3653
+ createKey: {
2935
3654
  parameters: {
2936
3655
  path: {
2937
3656
  /**
@@ -2939,20 +3658,15 @@ export interface operations {
2939
3658
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2940
3659
  */
2941
3660
  org_id: string;
2942
- /**
2943
- * @description ID of the key
2944
- * @example Key#0x8e3484687e66cdd26cf04c3647633ab4f3570148
2945
- */
2946
- key_id: string;
2947
3661
  };
2948
3662
  };
2949
3663
  requestBody: {
2950
3664
  content: {
2951
- "application/json": components["schemas"]["UpdateKeyRequest"];
3665
+ "application/json": components["schemas"]["CreateKeyRequest"];
2952
3666
  };
2953
3667
  };
2954
3668
  responses: {
2955
- 200: components["responses"]["KeyInfo"];
3669
+ 200: components["responses"]["CreateKeyResponse"];
2956
3670
  default: {
2957
3671
  content: {
2958
3672
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2961,12 +3675,12 @@ export interface operations {
2961
3675
  };
2962
3676
  };
2963
3677
  /**
2964
- * Gets a Pending MFA Request
2965
- * @description Gets a Pending MFA Request
3678
+ * Get Key
3679
+ * @description Get Key
2966
3680
  *
2967
- * Retrieves and returns a pending MFA request by its id.
3681
+ * Returns the properties of a key.
2968
3682
  */
2969
- mfaGet: {
3683
+ getKeyInOrg: {
2970
3684
  parameters: {
2971
3685
  path: {
2972
3686
  /**
@@ -2975,14 +3689,14 @@ export interface operations {
2975
3689
  */
2976
3690
  org_id: string;
2977
3691
  /**
2978
- * @description ID of the approval
2979
- * @example ...
3692
+ * @description ID of the desired Key
3693
+ * @example Key#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2980
3694
  */
2981
- mfa_id: string;
3695
+ key_id: string;
2982
3696
  };
2983
3697
  };
2984
3698
  responses: {
2985
- 200: components["responses"]["MfaRequestInfo"];
3699
+ 200: components["responses"]["KeyInfo"];
2986
3700
  default: {
2987
3701
  content: {
2988
3702
  "application/json": components["schemas"]["ErrorResponse"];
@@ -2991,13 +3705,135 @@ export interface operations {
2991
3705
  };
2992
3706
  };
2993
3707
  /**
2994
- * Approve MFA Request
2995
- * @description Approve MFA Request
3708
+ * Delete Key
3709
+ * @description Delete Key
2996
3710
  *
2997
- * Approve request after logging in with CubeSigner. Adds the currently-logged user as an approver
2998
- * of a pending MFA request of the [Status::RequiredApprovers] kind. If the required number of
2999
- * approvers is reached, the MFA request is approved; the confirmation receipt can be used to
3000
- * resume the original HTTP request.
3711
+ * Deletes a key specified by its ID.
3712
+ * Only the key owner and org owners are allowed to delete keys.
3713
+ */
3714
+ deleteKey: {
3715
+ parameters: {
3716
+ path: {
3717
+ /**
3718
+ * @description Name or ID of the desired Org
3719
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3720
+ */
3721
+ org_id: string;
3722
+ /**
3723
+ * @description ID of the desired Key
3724
+ * @example Key#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3725
+ */
3726
+ key_id: string;
3727
+ };
3728
+ };
3729
+ responses: {
3730
+ 200: components["responses"]["EmptyImpl"];
3731
+ default: {
3732
+ content: {
3733
+ "application/json": components["schemas"]["ErrorResponse"];
3734
+ };
3735
+ };
3736
+ };
3737
+ };
3738
+ /**
3739
+ * Update Key
3740
+ * @description Update Key
3741
+ *
3742
+ * Enable or disable a key. The user must be the owner of the key or organization to perform this action.
3743
+ */
3744
+ updateKey: {
3745
+ parameters: {
3746
+ path: {
3747
+ /**
3748
+ * @description Name or ID of the desired Org
3749
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3750
+ */
3751
+ org_id: string;
3752
+ /**
3753
+ * @description ID of the desired Key
3754
+ * @example Key#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3755
+ */
3756
+ key_id: string;
3757
+ };
3758
+ };
3759
+ requestBody: {
3760
+ content: {
3761
+ "application/json": components["schemas"]["UpdateKeyRequest"];
3762
+ };
3763
+ };
3764
+ responses: {
3765
+ 200: components["responses"]["KeyInfo"];
3766
+ default: {
3767
+ content: {
3768
+ "application/json": components["schemas"]["ErrorResponse"];
3769
+ };
3770
+ };
3771
+ };
3772
+ };
3773
+ /**
3774
+ * List Pending MFA Requests
3775
+ * @description List Pending MFA Requests
3776
+ *
3777
+ * Retrieves and returns all pending MFA requests that are accessible to the current user,
3778
+ * i.e., those in which the current user is listed as an approver
3779
+ */
3780
+ mfaList: {
3781
+ parameters: {
3782
+ path: {
3783
+ /**
3784
+ * @description Name or ID of the desired Org
3785
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3786
+ */
3787
+ org_id: string;
3788
+ };
3789
+ };
3790
+ responses: {
3791
+ 200: components["responses"]["ListMfaResponse"];
3792
+ default: {
3793
+ content: {
3794
+ "application/json": components["schemas"]["ErrorResponse"];
3795
+ };
3796
+ };
3797
+ };
3798
+ };
3799
+ /**
3800
+ * Get Pending MFA Request
3801
+ * @description Get Pending MFA Request
3802
+ *
3803
+ * Retrieves and returns a pending MFA request by its id.
3804
+ */
3805
+ mfaGet: {
3806
+ parameters: {
3807
+ path: {
3808
+ /**
3809
+ * @description Name or ID of the desired Org
3810
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3811
+ */
3812
+ org_id: string;
3813
+ /**
3814
+ * @description Name or ID of the desired MfaRequest
3815
+ * @example MfaRequest#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3816
+ */
3817
+ mfa_id: string;
3818
+ };
3819
+ };
3820
+ responses: {
3821
+ 200: components["responses"]["MfaRequestInfo"];
3822
+ default: {
3823
+ content: {
3824
+ "application/json": components["schemas"]["ErrorResponse"];
3825
+ };
3826
+ };
3827
+ };
3828
+ };
3829
+ /**
3830
+ * Approve MFA Request
3831
+ * @description Approve MFA Request
3832
+ *
3833
+ * Approve request after logging in with CubeSigner. Adds the currently-logged user as an approver
3834
+ * of a pending MFA request of the [Status::RequiredApprovers] kind. If the required number of
3835
+ * approvers is reached, the MFA request is approved; the confirmation receipt can be used to
3836
+ * resume the original HTTP request.
3001
3837
  */
3002
3838
  mfaApproveCs: {
3003
3839
  parameters: {
@@ -3008,8 +3844,8 @@ export interface operations {
3008
3844
  */
3009
3845
  org_id: string;
3010
3846
  /**
3011
- * @description ID of the MFA approval request
3012
- * @example MfaRequest#6de79de4-662c-4203-9235-b6ace5cb432b
3847
+ * @description Name or ID of the desired MfaRequest
3848
+ * @example MfaRequest#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3013
3849
  */
3014
3850
  mfa_id: string;
3015
3851
  };
@@ -3038,8 +3874,8 @@ export interface operations {
3038
3874
  */
3039
3875
  org_id: string;
3040
3876
  /**
3041
- * @description ID of the MFA approval request
3042
- * @example MfaRequest#6de79de4-662c-4203-9235-b6ace5cb432b
3877
+ * @description Name or ID of the desired MfaRequest
3878
+ * @example MfaRequest#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3043
3879
  */
3044
3880
  mfa_id: string;
3045
3881
  };
@@ -3071,8 +3907,8 @@ export interface operations {
3071
3907
  */
3072
3908
  org_id: string;
3073
3909
  /**
3074
- * @description ID of the MFA approval request
3075
- * @example MfaRequest#6de79de4-662c-4203-9235-b6ace5cb432b
3910
+ * @description Name or ID of the desired MfaRequest
3911
+ * @example MfaRequest#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3076
3912
  */
3077
3913
  mfa_id: string;
3078
3914
  };
@@ -3109,8 +3945,8 @@ export interface operations {
3109
3945
  */
3110
3946
  org_id: string;
3111
3947
  /**
3112
- * @description ID of the MFA approval request
3113
- * @example MfaRequest#6de79de4-662c-4203-9235-b6ace5cb432b
3948
+ * @description Name or ID of the desired MfaRequest
3949
+ * @example MfaRequest#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3114
3950
  */
3115
3951
  mfa_id: string;
3116
3952
  };
@@ -3165,72 +4001,30 @@ export interface operations {
3165
4001
  };
3166
4002
  };
3167
4003
  /**
3168
- * Create OIDCProof
3169
- * @description Create OIDCProof
3170
- *
3171
- * Exchange an OIDC ID token (passed via the `Authorization` header) for a proof of authentication.
3172
- *
3173
- * This route can be used to prove to another party that a user has met the
3174
- * authentication requirements (allowed issuers & audiences) for CubeSigner
3175
- * without leaking their credentials.
4004
+ * List Roles
4005
+ * @description List Roles
3176
4006
  *
3177
- * Clients are intended to call this route and pass the returned evidence to another service
3178
- * which will verify it.
4007
+ * Retrieves all roles in an organization that the current user is allowed to access.
3179
4008
  */
3180
- createOidcProof: {
4009
+ listRoles: {
3181
4010
  parameters: {
3182
- path: {
4011
+ query?: {
3183
4012
  /**
3184
- * @description Name or ID of the desired Org
3185
- * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4013
+ * @description Max number of items to return per page.
4014
+ *
4015
+ * If the actual number of returned items may be less that this, even if there exist more
4016
+ * data in the result set. To reliably determine if more data is left in the result set,
4017
+ * inspect the [UnencryptedLastEvalKey] value in the response object.
3186
4018
  */
3187
- org_id: string;
3188
- };
3189
- };
3190
- responses: {
3191
- 200: components["responses"]["OidcProof"];
3192
- default: {
3193
- content: {
3194
- "application/json": components["schemas"]["ErrorResponse"];
3195
- };
3196
- };
3197
- };
3198
- };
3199
- /**
3200
- * Verify OIDC Proof
3201
- * @description Verify OIDC Proof
3202
- *
3203
- * Allows a third-party to validate proof of OIDC authentication.
3204
- *
3205
- * When a third-party is provided an OidcProof object, they must check its
3206
- * veracity by calling this endpoint
3207
- */
3208
- verifyOidcProof: {
3209
- parameters: {
3210
- path: {
4019
+ "page.size"?: number;
3211
4020
  /**
3212
- * @description Name or ID of the desired Org
3213
- * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4021
+ * @description The start of the page. Omit to start from the beginning; otherwise, only specify a
4022
+ * the exact value previously returned as 'last_evaluated_key' from the same endpoint.
3214
4023
  */
3215
- org_id: string;
3216
- };
3217
- };
3218
- requestBody: {
3219
- content: {
3220
- "application/json": components["schemas"]["OidcProof"];
4024
+ "page.start"?: components["schemas"]["LastEvalKey"] | null;
4025
+ /** @description Don't include keys and users for each role */
4026
+ summarize?: boolean | null;
3221
4027
  };
3222
- };
3223
- responses: {
3224
- };
3225
- };
3226
- /**
3227
- * List Roles
3228
- * @description List Roles
3229
- *
3230
- * Retrieves all roles in an organization that the current user is allowed to access.
3231
- */
3232
- listRoles: {
3233
- parameters: {
3234
4028
  path: {
3235
4029
  /**
3236
4030
  * @description Name or ID of the desired Org
@@ -3240,7 +4034,7 @@ export interface operations {
3240
4034
  };
3241
4035
  };
3242
4036
  responses: {
3243
- 200: components["responses"]["ListRolesResponse"];
4037
+ 200: components["responses"]["PaginatedListRolesResponse"];
3244
4038
  default: {
3245
4039
  content: {
3246
4040
  "application/json": components["schemas"]["ErrorResponse"];
@@ -3268,7 +4062,7 @@ export interface operations {
3268
4062
  /** @description Optional request body to set the role name */
3269
4063
  requestBody?: {
3270
4064
  content: {
3271
- "application/json": components["schemas"]["CreateRoleRequest"];
4065
+ "application/json": components["schemas"]["CreateRoleRequest"] | null;
3272
4066
  };
3273
4067
  };
3274
4068
  responses: {
@@ -3369,7 +4163,7 @@ export interface operations {
3369
4163
  };
3370
4164
  };
3371
4165
  responses: {
3372
- 200: components["responses"]["EmptyImpl"];
4166
+ 200: components["responses"]["RoleInfo"];
3373
4167
  default: {
3374
4168
  content: {
3375
4169
  "application/json": components["schemas"]["ErrorResponse"];
@@ -3436,6 +4230,51 @@ export interface operations {
3436
4230
  responses: {
3437
4231
  };
3438
4232
  };
4233
+ /**
4234
+ * List Role Keys
4235
+ * @description List Role Keys
4236
+ *
4237
+ * Returns an array of all keys in a role.
4238
+ */
4239
+ listRoleKeys: {
4240
+ parameters: {
4241
+ query?: {
4242
+ /**
4243
+ * @description Max number of items to return per page.
4244
+ *
4245
+ * If the actual number of returned items may be less that this, even if there exist more
4246
+ * data in the result set. To reliably determine if more data is left in the result set,
4247
+ * inspect the [UnencryptedLastEvalKey] value in the response object.
4248
+ */
4249
+ "page.size"?: number;
4250
+ /**
4251
+ * @description The start of the page. Omit to start from the beginning; otherwise, only specify a
4252
+ * the exact value previously returned as 'last_evaluated_key' from the same endpoint.
4253
+ */
4254
+ "page.start"?: components["schemas"]["LastEvalKey"] | null;
4255
+ };
4256
+ path: {
4257
+ /**
4258
+ * @description Name or ID of the desired Org
4259
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4260
+ */
4261
+ org_id: string;
4262
+ /**
4263
+ * @description Name or ID of the desired Role
4264
+ * @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4265
+ */
4266
+ role_id: string;
4267
+ };
4268
+ };
4269
+ responses: {
4270
+ 200: components["responses"]["PaginatedListRoleKeysResponse"];
4271
+ default: {
4272
+ content: {
4273
+ "application/json": components["schemas"]["ErrorResponse"];
4274
+ };
4275
+ };
4276
+ };
4277
+ };
3439
4278
  /**
3440
4279
  * Remove Key
3441
4280
  * @description Remove Key
@@ -3466,9 +4305,9 @@ export interface operations {
3466
4305
  };
3467
4306
  };
3468
4307
  /**
3469
- * List Tokens (Deprecated)
4308
+ * List a single page of Tokens (Deprecated)
3470
4309
  * @deprecated
3471
- * @description List Tokens (Deprecated)
4310
+ * @description List a single page of Tokens (Deprecated)
3472
4311
  *
3473
4312
  * **Deprecated**: Use `GET /org/{org_id}/session?role=`
3474
4313
  *
@@ -3608,6 +4447,51 @@ export interface operations {
3608
4447
  };
3609
4448
  };
3610
4449
  };
4450
+ /**
4451
+ * List Role Users.
4452
+ * @description List Role Users.
4453
+ *
4454
+ * Returns an array of all users who have access to a role.
4455
+ */
4456
+ listRoleUsers: {
4457
+ parameters: {
4458
+ query?: {
4459
+ /**
4460
+ * @description Max number of items to return per page.
4461
+ *
4462
+ * If the actual number of returned items may be less that this, even if there exist more
4463
+ * data in the result set. To reliably determine if more data is left in the result set,
4464
+ * inspect the [UnencryptedLastEvalKey] value in the response object.
4465
+ */
4466
+ "page.size"?: number;
4467
+ /**
4468
+ * @description The start of the page. Omit to start from the beginning; otherwise, only specify a
4469
+ * the exact value previously returned as 'last_evaluated_key' from the same endpoint.
4470
+ */
4471
+ "page.start"?: components["schemas"]["LastEvalKey"] | null;
4472
+ };
4473
+ path: {
4474
+ /**
4475
+ * @description Name or ID of the desired Org
4476
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4477
+ */
4478
+ org_id: string;
4479
+ /**
4480
+ * @description Name or ID of the desired Role
4481
+ * @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4482
+ */
4483
+ role_id: string;
4484
+ };
4485
+ };
4486
+ responses: {
4487
+ 200: components["responses"]["PaginatedListRoleUsersResponse"];
4488
+ default: {
4489
+ content: {
4490
+ "application/json": components["schemas"]["ErrorResponse"];
4491
+ };
4492
+ };
4493
+ };
4494
+ };
3611
4495
  /**
3612
4496
  * List sessions
3613
4497
  * @description List sessions
@@ -3617,11 +4501,24 @@ export interface operations {
3617
4501
  listSessions: {
3618
4502
  parameters: {
3619
4503
  query?: {
4504
+ /**
4505
+ * @description Max number of items to return per page.
4506
+ *
4507
+ * If the actual number of returned items may be less that this, even if there exist more
4508
+ * data in the result set. To reliably determine if more data is left in the result set,
4509
+ * inspect the [UnencryptedLastEvalKey] value in the response object.
4510
+ */
4511
+ "page.size"?: number;
4512
+ /**
4513
+ * @description The start of the page. Omit to start from the beginning; otherwise, only specify a
4514
+ * the exact value previously returned as 'last_evaluated_key' from the same endpoint.
4515
+ */
4516
+ "page.start"?: components["schemas"]["LastEvalKey"] | null;
3620
4517
  /**
3621
4518
  * @description If provided, the name or ID of a role to operate on
3622
4519
  * @example my-role
3623
4520
  */
3624
- role?: string;
4521
+ role?: string | null;
3625
4522
  };
3626
4523
  path: {
3627
4524
  /**
@@ -3632,7 +4529,7 @@ export interface operations {
3632
4529
  };
3633
4530
  };
3634
4531
  responses: {
3635
- 200: components["responses"]["SessionsResponse"];
4532
+ 200: components["responses"]["PaginatedSessionsResponse"];
3636
4533
  default: {
3637
4534
  content: {
3638
4535
  "application/json": components["schemas"]["ErrorResponse"];
@@ -3654,7 +4551,7 @@ export interface operations {
3654
4551
  * @description If provided, the name or ID of a role to operate on
3655
4552
  * @example my-role
3656
4553
  */
3657
- role?: string;
4554
+ role?: string | null;
3658
4555
  };
3659
4556
  path: {
3660
4557
  /**
@@ -3673,6 +4570,31 @@ export interface operations {
3673
4570
  };
3674
4571
  };
3675
4572
  };
4573
+ /**
4574
+ * Revoke current session
4575
+ * @description Revoke current session
4576
+ *
4577
+ * Immediately revokes the current session, preventing it from being used or refreshed
4578
+ */
4579
+ revokeCurrentSession: {
4580
+ parameters: {
4581
+ path: {
4582
+ /**
4583
+ * @description Name or ID of the desired Org
4584
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4585
+ */
4586
+ org_id: string;
4587
+ };
4588
+ };
4589
+ responses: {
4590
+ 200: components["responses"]["EmptyImpl"];
4591
+ default: {
4592
+ content: {
4593
+ "application/json": components["schemas"]["ErrorResponse"];
4594
+ };
4595
+ };
4596
+ };
4597
+ };
3676
4598
  /**
3677
4599
  * Get session information
3678
4600
  * @description Get session information
@@ -3732,7 +4654,48 @@ export interface operations {
3732
4654
  };
3733
4655
  };
3734
4656
  /**
3735
- * Get Token-Accessible Keys
4657
+ * Sign Solana Message
4658
+ * @description Sign Solana Message
4659
+ *
4660
+ * Signs a Solana message with a given key.
4661
+ * This is a pre-release feature.
4662
+ */
4663
+ solanaSign: {
4664
+ parameters: {
4665
+ path: {
4666
+ /**
4667
+ * @description Name or ID of the desired Org
4668
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4669
+ */
4670
+ org_id: string;
4671
+ /**
4672
+ * @description The base58-encoded public key
4673
+ * @example 86ZRPszBp5EoPj7wR3bHn7wnAZ5iYfpasRc7DKFPTUaZ
4674
+ */
4675
+ pubkey: string;
4676
+ };
4677
+ };
4678
+ requestBody: {
4679
+ content: {
4680
+ "application/json": components["schemas"]["SolanaSignRequest"];
4681
+ };
4682
+ };
4683
+ responses: {
4684
+ 200: components["responses"]["SolanaSignResponse"];
4685
+ 202: {
4686
+ content: {
4687
+ "application/json": components["schemas"]["AcceptedResponse"];
4688
+ };
4689
+ };
4690
+ default: {
4691
+ content: {
4692
+ "application/json": components["schemas"]["ErrorResponse"];
4693
+ };
4694
+ };
4695
+ };
4696
+ };
4697
+ /**
4698
+ * Get Token-Accessible Keys
3736
4699
  * @description Get Token-Accessible Keys
3737
4700
  *
3738
4701
  * Retrieves the keys that the role token can access.
@@ -3757,10 +4720,12 @@ export interface operations {
3757
4720
  };
3758
4721
  };
3759
4722
  /**
3760
- * List users in organization
3761
- * @description List users in organization
4723
+ * User Info
4724
+ * @description User Info
4725
+ *
4726
+ * Retrieves information about the current user.
3762
4727
  */
3763
- listUsersInOrg: {
4728
+ aboutMe: {
3764
4729
  parameters: {
3765
4730
  path: {
3766
4731
  /**
@@ -3771,7 +4736,7 @@ export interface operations {
3771
4736
  };
3772
4737
  };
3773
4738
  responses: {
3774
- 200: components["responses"]["GetUsersInOrgResponse"];
4739
+ 200: components["responses"]["UserInfo"];
3775
4740
  default: {
3776
4741
  content: {
3777
4742
  "application/json": components["schemas"]["ErrorResponse"];
@@ -3780,10 +4745,12 @@ export interface operations {
3780
4745
  };
3781
4746
  };
3782
4747
  /**
3783
- * Add a third-party user to the org
3784
- * @description Add a third-party user to the org
4748
+ * Initiate registration of a FIDO key
4749
+ * @description Initiate registration of a FIDO key
4750
+ *
4751
+ * Generates a challenge that must be answered to prove ownership of a key
3785
4752
  */
3786
- createOidcUser: {
4753
+ userRegisterFidoInit: {
3787
4754
  parameters: {
3788
4755
  path: {
3789
4756
  /**
@@ -3795,11 +4762,16 @@ export interface operations {
3795
4762
  };
3796
4763
  requestBody: {
3797
4764
  content: {
3798
- "application/json": components["schemas"]["AddThirdPartyUserRequest"];
4765
+ "application/json": components["schemas"]["FidoCreateRequest"];
3799
4766
  };
3800
4767
  };
3801
4768
  responses: {
3802
- 200: components["responses"]["AddThirdPartyUserResponse"];
4769
+ 200: components["responses"]["FidoCreateChallengeResponse"];
4770
+ 202: {
4771
+ content: {
4772
+ "application/json": components["schemas"]["AcceptedResponse"];
4773
+ };
4774
+ };
3803
4775
  default: {
3804
4776
  content: {
3805
4777
  "application/json": components["schemas"]["ErrorResponse"];
@@ -3808,10 +4780,12 @@ export interface operations {
3808
4780
  };
3809
4781
  };
3810
4782
  /**
3811
- * Remove a third-party user from the org
3812
- * @description Remove a third-party user from the org
4783
+ * Finalize registration of a FIDO key
4784
+ * @description Finalize registration of a FIDO key
4785
+ *
4786
+ * Accepts the response to the challenge generated by the POST to this endpoint.
3813
4787
  */
3814
- deleteOidcUser: {
4788
+ userRegisterFidoComplete: {
3815
4789
  parameters: {
3816
4790
  path: {
3817
4791
  /**
@@ -3823,7 +4797,7 @@ export interface operations {
3823
4797
  };
3824
4798
  requestBody: {
3825
4799
  content: {
3826
- "application/json": components["schemas"]["OIDCIdentity"];
4800
+ "application/json": components["schemas"]["FidoCreateChallengeAnswer"];
3827
4801
  };
3828
4802
  };
3829
4803
  responses: {
@@ -3836,15 +4810,39 @@ export interface operations {
3836
4810
  };
3837
4811
  };
3838
4812
  /**
3839
- * Initialize TOTP
3840
- * @description Initialize TOTP
4813
+ * Initialize TOTP Reset
4814
+ * @description Initialize TOTP Reset
3841
4815
  *
3842
- * Creates and sets a new TOTP configuration for the current user,
3843
- * if and only if no TOTP configuration is already set.
4816
+ * Creates a new TOTP challenge that must be answered to prove that the new TOTP
4817
+ * was successfully imported into an authenticator app.
4818
+ *
4819
+ * This operation is allowed if EITHER
4820
+ * - the user account is not yet initialized and no TOTP is already set, OR
4821
+ * - the user has not configured any auth factors;
4822
+ * otherwise, MFA is required.
3844
4823
  */
3845
- userInitTotp: {
4824
+ userResetTotpInit: {
4825
+ parameters: {
4826
+ path: {
4827
+ /**
4828
+ * @description Name or ID of the desired Org
4829
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4830
+ */
4831
+ org_id: string;
4832
+ };
4833
+ };
4834
+ requestBody: {
4835
+ content: {
4836
+ "application/json": components["schemas"]["Empty"];
4837
+ };
4838
+ };
3846
4839
  responses: {
3847
4840
  200: components["responses"]["TotpInfo"];
4841
+ 202: {
4842
+ content: {
4843
+ "application/json": components["schemas"]["AcceptedResponse"];
4844
+ };
4845
+ };
3848
4846
  default: {
3849
4847
  content: {
3850
4848
  "application/json": components["schemas"]["ErrorResponse"];
@@ -3853,15 +4851,29 @@ export interface operations {
3853
4851
  };
3854
4852
  };
3855
4853
  /**
3856
- * Reset TOTP
3857
- * @description Reset TOTP
4854
+ * Finalize resetting TOTP
4855
+ * @description Finalize resetting TOTP
3858
4856
  *
3859
- * Creates and sets a new TOTP configuration for the current user,
3860
- * overriding the existing one (if any).
4857
+ * Checks if the response contains the correct TOTP code corresponding to the
4858
+ * challenge generated by the POST method of this endpoint.
3861
4859
  */
3862
- userResetTotp: {
4860
+ userResetTotpComplete: {
4861
+ parameters: {
4862
+ path: {
4863
+ /**
4864
+ * @description Name or ID of the desired Org
4865
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4866
+ */
4867
+ org_id: string;
4868
+ };
4869
+ };
4870
+ requestBody: {
4871
+ content: {
4872
+ "application/json": components["schemas"]["TotpChallengeAnswer"];
4873
+ };
4874
+ };
3863
4875
  responses: {
3864
- 200: components["responses"]["TotpInfo"];
4876
+ 200: components["responses"]["EmptyImpl"];
3865
4877
  default: {
3866
4878
  content: {
3867
4879
  "application/json": components["schemas"]["ErrorResponse"];
@@ -3879,7 +4891,95 @@ export interface operations {
3879
4891
  userVerifyTotp: {
3880
4892
  parameters: {
3881
4893
  path: {
3882
- code: string;
4894
+ /**
4895
+ * @description Name or ID of the desired Org
4896
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4897
+ */
4898
+ org_id: string;
4899
+ };
4900
+ };
4901
+ requestBody: {
4902
+ content: {
4903
+ "application/json": components["schemas"]["TotpApproveRequest"];
4904
+ };
4905
+ };
4906
+ responses: {
4907
+ 200: components["responses"]["EmptyImpl"];
4908
+ default: {
4909
+ content: {
4910
+ "application/json": components["schemas"]["ErrorResponse"];
4911
+ };
4912
+ };
4913
+ };
4914
+ };
4915
+ /**
4916
+ * List users in organization
4917
+ * @description List users in organization
4918
+ */
4919
+ listUsersInOrg: {
4920
+ parameters: {
4921
+ path: {
4922
+ /**
4923
+ * @description Name or ID of the desired Org
4924
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4925
+ */
4926
+ org_id: string;
4927
+ };
4928
+ };
4929
+ responses: {
4930
+ 200: components["responses"]["GetUsersInOrgResponse"];
4931
+ default: {
4932
+ content: {
4933
+ "application/json": components["schemas"]["ErrorResponse"];
4934
+ };
4935
+ };
4936
+ };
4937
+ };
4938
+ /**
4939
+ * Add a third-party user to the org
4940
+ * @description Add a third-party user to the org
4941
+ */
4942
+ createOidcUser: {
4943
+ parameters: {
4944
+ path: {
4945
+ /**
4946
+ * @description Name or ID of the desired Org
4947
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4948
+ */
4949
+ org_id: string;
4950
+ };
4951
+ };
4952
+ requestBody: {
4953
+ content: {
4954
+ "application/json": components["schemas"]["AddThirdPartyUserRequest"];
4955
+ };
4956
+ };
4957
+ responses: {
4958
+ 200: components["responses"]["AddThirdPartyUserResponse"];
4959
+ default: {
4960
+ content: {
4961
+ "application/json": components["schemas"]["ErrorResponse"];
4962
+ };
4963
+ };
4964
+ };
4965
+ };
4966
+ /**
4967
+ * Remove a third-party user from the org
4968
+ * @description Remove a third-party user from the org
4969
+ */
4970
+ deleteOidcUser: {
4971
+ parameters: {
4972
+ path: {
4973
+ /**
4974
+ * @description Name or ID of the desired Org
4975
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4976
+ */
4977
+ org_id: string;
4978
+ };
4979
+ };
4980
+ requestBody: {
4981
+ content: {
4982
+ "application/json": components["schemas"]["OIDCIdentity"];
3883
4983
  };
3884
4984
  };
3885
4985
  responses: {
@@ -3893,11 +4993,12 @@ export interface operations {
3893
4993
  };
3894
4994
  /**
3895
4995
  * Initiate registration of a FIDO key
4996
+ * @deprecated
3896
4997
  * @description Initiate registration of a FIDO key
3897
4998
  *
3898
4999
  * Generates a challenge that must be answered to prove ownership of a key
3899
5000
  */
3900
- userRegisterFido: {
5001
+ registerFidoInitLegacy: {
3901
5002
  requestBody: {
3902
5003
  content: {
3903
5004
  "application/json": components["schemas"]["FidoCreateRequest"];
@@ -3905,6 +5006,11 @@ export interface operations {
3905
5006
  };
3906
5007
  responses: {
3907
5008
  200: components["responses"]["FidoCreateChallengeResponse"];
5009
+ 202: {
5010
+ content: {
5011
+ "application/json": components["schemas"]["AcceptedResponse"];
5012
+ };
5013
+ };
3908
5014
  default: {
3909
5015
  content: {
3910
5016
  "application/json": components["schemas"]["ErrorResponse"];
@@ -3914,11 +5020,12 @@ export interface operations {
3914
5020
  };
3915
5021
  /**
3916
5022
  * Finalize registration of a FIDO key
5023
+ * @deprecated
3917
5024
  * @description Finalize registration of a FIDO key
3918
5025
  *
3919
5026
  * Accepts the response to the challenge generated by the POST to this endpoint.
3920
5027
  */
3921
- userRegisterFidoComplete: {
5028
+ registerFidoCompleteLegacy: {
3922
5029
  requestBody: {
3923
5030
  content: {
3924
5031
  "application/json": components["schemas"]["FidoCreateChallengeAnswer"];
@@ -3933,12 +5040,98 @@ export interface operations {
3933
5040
  };
3934
5041
  };
3935
5042
  };
5043
+ /**
5044
+ * Initialize TOTP Reset
5045
+ * @deprecated
5046
+ * @description Initialize TOTP Reset
5047
+ *
5048
+ * Creates a new TOTP challenge that must be answered to prove that the new TOTP
5049
+ * was successfully imported into an authenticator app.
5050
+ *
5051
+ * This operation is allowed if EITHER
5052
+ * - the user account is not yet initialized and no TOTP is already set, OR
5053
+ * - the user has not configured any auth factors;
5054
+ * otherwise, MFA is required.
5055
+ */
5056
+ resetTotpInitLegacy: {
5057
+ requestBody: {
5058
+ content: {
5059
+ "application/json": components["schemas"]["Empty"];
5060
+ };
5061
+ };
5062
+ responses: {
5063
+ 200: components["responses"]["TotpInfo"];
5064
+ 202: {
5065
+ content: {
5066
+ "application/json": components["schemas"]["AcceptedResponse"];
5067
+ };
5068
+ };
5069
+ default: {
5070
+ content: {
5071
+ "application/json": components["schemas"]["ErrorResponse"];
5072
+ };
5073
+ };
5074
+ };
5075
+ };
5076
+ /**
5077
+ * Finalize resetting TOTP
5078
+ * @deprecated
5079
+ * @description Finalize resetting TOTP
5080
+ *
5081
+ * Checks if the response contains the correct TOTP code corresponding to the
5082
+ * challenge generated by the POST method of this endpoint.
5083
+ */
5084
+ resetTotpCompleteLegacy: {
5085
+ requestBody: {
5086
+ content: {
5087
+ "application/json": components["schemas"]["TotpChallengeAnswer"];
5088
+ };
5089
+ };
5090
+ responses: {
5091
+ 200: components["responses"]["EmptyImpl"];
5092
+ default: {
5093
+ content: {
5094
+ "application/json": components["schemas"]["ErrorResponse"];
5095
+ };
5096
+ };
5097
+ };
5098
+ };
5099
+ /**
5100
+ * Verify TOTP
5101
+ * @deprecated
5102
+ * @description Verify TOTP
5103
+ *
5104
+ * Checks if a given code matches the current TOTP code for the current user.
5105
+ * Errors with 403 if the current user has not set up TOTP or the code fails verification.
5106
+ */
5107
+ verifyTotpLegacy: {
5108
+ requestBody: {
5109
+ content: {
5110
+ "application/json": components["schemas"]["TotpApproveRequest"];
5111
+ };
5112
+ };
5113
+ responses: {
5114
+ 200: components["responses"]["EmptyImpl"];
5115
+ default: {
5116
+ content: {
5117
+ "application/json": components["schemas"]["ErrorResponse"];
5118
+ };
5119
+ };
5120
+ };
5121
+ };
3936
5122
  /**
3937
5123
  * Sign Raw Blob
3938
5124
  * @description Sign Raw Blob
3939
5125
  *
3940
5126
  * Signs an arbitrary blob with a given key.
3941
5127
  * This is a pre-release feature.
5128
+ *
5129
+ * - ECDSA signatures are serialized as big-endian r and s plus recovery-id
5130
+ * byte v, which can in general take any of the values 0, 1, 2, or 3.
5131
+ *
5132
+ * - EdDSA signatures are serialized in the standard format.
5133
+ *
5134
+ * - BLS signatures are not supported on the blob-sign endpoint.
3942
5135
  */
3943
5136
  blobSign: {
3944
5137
  parameters: {
@@ -3949,8 +5142,8 @@ export interface operations {
3949
5142
  */
3950
5143
  org_id: string;
3951
5144
  /**
3952
- * @description The ID of the key
3953
- * @example Key#0x49011adbCC3bC9c0307BB07F37Dda1a1a9c69d2E
5145
+ * @description ID of the desired Key
5146
+ * @example Key#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3954
5147
  */
3955
5148
  key_id: string;
3956
5149
  };
@@ -3984,7 +5177,7 @@ export interface operations {
3984
5177
  parameters: {
3985
5178
  path: {
3986
5179
  /**
3987
- * @description Name or ID of the organization owning the key
5180
+ * @description Name or ID of the desired Org
3988
5181
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3989
5182
  */
3990
5183
  org_id: string;
@@ -4009,6 +5202,7 @@ export interface operations {
4009
5202
  * @description Sign EVM Transaction
4010
5203
  *
4011
5204
  * Signs an Ethereum (and other EVM) transaction with a given Secp256k1 key.
5205
+ * Returns an RLP-encoded transaction with EIP-155 signature.
4012
5206
  *
4013
5207
  * The key must be associated with the role and organization on whose behalf this action is called.
4014
5208
  */
@@ -4170,47 +5364,6 @@ export interface operations {
4170
5364
  };
4171
5365
  };
4172
5366
  };
4173
- /**
4174
- * Sign Solana Message
4175
- * @description Sign Solana Message
4176
- *
4177
- * Signs a Solana message with a given key.
4178
- * This is a pre-release feature.
4179
- */
4180
- solanaSign: {
4181
- parameters: {
4182
- path: {
4183
- /**
4184
- * @description Name or ID of the desired Org
4185
- * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4186
- */
4187
- org_id: string;
4188
- /**
4189
- * @description The base58-encoded public key
4190
- * @example 86ZRPszBp5EoPj7wR3bHn7wnAZ5iYfpasRc7DKFPTUaZ
4191
- */
4192
- pubkey: string;
4193
- };
4194
- };
4195
- requestBody: {
4196
- content: {
4197
- "application/json": components["schemas"]["SolanaSignRequest"];
4198
- };
4199
- };
4200
- responses: {
4201
- 200: components["responses"]["SolanaSignResponse"];
4202
- 202: {
4203
- content: {
4204
- "application/json": components["schemas"]["AcceptedResponse"];
4205
- };
4206
- };
4207
- default: {
4208
- content: {
4209
- "application/json": components["schemas"]["ErrorResponse"];
4210
- };
4211
- };
4212
- };
4213
- };
4214
5367
  /**
4215
5368
  * Refresh Signer Session
4216
5369
  * @description Refresh Signer Session