@cubist-labs/cubesigner-sdk 0.1.77 → 0.2.15

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 (55) hide show
  1. package/dist/package.json +68 -0
  2. package/dist/src/api.d.ts +493 -0
  3. package/dist/src/api.js +1166 -0
  4. package/dist/src/client.d.ts +534 -10
  5. package/dist/src/client.js +355 -19
  6. package/dist/src/ethers/index.d.ts +34 -9
  7. package/dist/src/ethers/index.js +63 -19
  8. package/dist/src/index.d.ts +51 -70
  9. package/dist/src/index.js +83 -237
  10. package/dist/src/key.d.ts +35 -64
  11. package/dist/src/key.js +32 -96
  12. package/dist/src/mfa.d.ts +85 -14
  13. package/dist/src/mfa.js +146 -40
  14. package/dist/src/org.d.ts +42 -194
  15. package/dist/src/org.js +52 -336
  16. package/dist/src/paginator.js +1 -1
  17. package/dist/src/response.d.ts +101 -0
  18. package/dist/src/response.js +164 -0
  19. package/dist/src/role.d.ts +87 -83
  20. package/dist/src/role.js +79 -136
  21. package/dist/src/schema.d.ts +936 -28
  22. package/dist/src/schema.js +1 -1
  23. package/dist/src/schema_types.d.ts +109 -0
  24. package/dist/src/schema_types.js +3 -0
  25. package/dist/src/session/cognito_manager.d.ts +15 -3
  26. package/dist/src/session/cognito_manager.js +23 -5
  27. package/dist/src/session/session_manager.d.ts +1 -1
  28. package/dist/src/session/session_manager.js +3 -11
  29. package/dist/src/session/session_storage.js +1 -1
  30. package/dist/src/session/signer_session_manager.d.ts +10 -29
  31. package/dist/src/session/signer_session_manager.js +21 -80
  32. package/dist/src/signer_session.d.ts +15 -252
  33. package/dist/src/signer_session.js +25 -424
  34. package/dist/src/user_export.d.ts +52 -0
  35. package/dist/src/user_export.js +129 -0
  36. package/dist/src/util.d.ts +15 -0
  37. package/dist/src/util.js +33 -11
  38. package/package.json +13 -11
  39. package/src/api.ts +1395 -0
  40. package/src/client.ts +413 -12
  41. package/src/ethers/index.ts +74 -28
  42. package/src/index.ts +96 -273
  43. package/src/key.ts +36 -131
  44. package/src/{fido.ts → mfa.ts} +62 -38
  45. package/src/org.ts +54 -405
  46. package/src/response.ts +196 -0
  47. package/src/role.ts +113 -184
  48. package/src/schema.ts +936 -28
  49. package/src/schema_types.ts +110 -0
  50. package/src/session/cognito_manager.ts +33 -6
  51. package/src/session/session_manager.ts +2 -8
  52. package/src/session/signer_session_manager.ts +29 -110
  53. package/src/signer_session.ts +22 -597
  54. package/src/user_export.ts +116 -0
  55. package/src/util.ts +29 -10
@@ -6,7 +6,6 @@ export interface paths {
6
6
  "/v0/about_me": {
7
7
  /**
8
8
  * User Info
9
- * @deprecated
10
9
  * @description User Info
11
10
  *
12
11
  * Retrieves information about the current user.
@@ -384,6 +383,13 @@ export interface paths {
384
383
  * If no query parameters are provided, information for the current session is returned
385
384
  */
386
385
  get: operations["listSessions"];
386
+ /**
387
+ * Create new user session (management and/or signing)
388
+ * @description Create new user session (management and/or signing)
389
+ *
390
+ * Create a new user session
391
+ */
392
+ post: operations["createSession"];
387
393
  /**
388
394
  * Revoke existing session(s)
389
395
  * @description Revoke existing session(s)
@@ -393,6 +399,15 @@ export interface paths {
393
399
  */
394
400
  delete: operations["revokeSessions"];
395
401
  };
402
+ "/v0/org/{org_id}/session/self": {
403
+ /**
404
+ * Revoke current session
405
+ * @description Revoke current session
406
+ *
407
+ * Immediately revokes the current session, preventing it from being used or refreshed
408
+ */
409
+ delete: operations["revokeCurrentSession"];
410
+ };
396
411
  "/v0/org/{org_id}/session/{session_id}": {
397
412
  /**
398
413
  * Get session information
@@ -435,6 +450,42 @@ export interface paths {
435
450
  */
436
451
  get: operations["aboutMe"];
437
452
  };
453
+ "/v0/org/{org_id}/user/me/export": {
454
+ /**
455
+ * List outstanding user-export requests
456
+ * @description List outstanding user-export requests
457
+ */
458
+ get: operations["userExportList"];
459
+ /**
460
+ * Initiate a user-export request
461
+ * @description Initiate a user-export request
462
+ *
463
+ * This starts a delay (whose length is determined by Org-wide settings)
464
+ * before export can be completed, and returns a ticket that can be used
465
+ * to complete the export once the timer has expired.
466
+ *
467
+ * Only one user-export request can be active for a given key. If there
468
+ * is already an active export, this endpoint will return an error. To
469
+ * create a new request, first delete the existing one.
470
+ */
471
+ post: operations["userExportInit"];
472
+ /**
473
+ * Delete an existing user-export request
474
+ * @description Delete an existing user-export request
475
+ */
476
+ delete: operations["userExportDelete"];
477
+ /**
478
+ * Complete a user-export request
479
+ * @description Complete a user-export request
480
+ *
481
+ * This endpoint can be called only after initiating a user-export request via
482
+ * the `user_export_init` API, and only within the subsequent export window
483
+ * (i.e., after the export delay has passed and before the request has expired).
484
+ *
485
+ * To check on the status of an export request, see the `user_export_list` API.
486
+ */
487
+ patch: operations["userExportComplete"];
488
+ };
438
489
  "/v0/org/{org_id}/user/me/fido": {
439
490
  /**
440
491
  * Initiate registration of a FIDO key
@@ -707,6 +758,10 @@ export interface components {
707
758
  mfa_policy?: Record<string, unknown> | null;
708
759
  role: components["schemas"]["MemberRole"];
709
760
  };
761
+ AddThirdPartyUserResponse: {
762
+ /** @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f */
763
+ user_id: string;
764
+ };
710
765
  ApprovalInfo: {
711
766
  timestamp: components["schemas"]["EpochDateTime"];
712
767
  };
@@ -856,6 +911,10 @@ export interface components {
856
911
  */
857
912
  tx: Record<string, never>;
858
913
  };
914
+ AvaSignResponse: {
915
+ /** @description The hex-encoded signature. */
916
+ signature: string;
917
+ };
859
918
  /** @description Wrapper around a zeroizing 32-byte fixed-size array */
860
919
  B32: string;
861
920
  /**
@@ -872,6 +931,10 @@ export interface components {
872
931
  */
873
932
  message_base64: string;
874
933
  };
934
+ BlobSignResponse: {
935
+ /** @description The hex-encoded signature. */
936
+ signature: string;
937
+ };
875
938
  /** @enum {string} */
876
939
  BtcSighashType: "All" | "None" | "Single" | "AllPlusAnyoneCanPay" | "NonePlusAnyoneCanPay" | "SinglePlusAnyoneCanPay";
877
940
  BtcSignRequest: {
@@ -879,6 +942,13 @@ export interface components {
879
942
  /** @description The bitcoin transaction to sign */
880
943
  tx: Record<string, never>;
881
944
  };
945
+ BtcSignResponse: {
946
+ /**
947
+ * @description The hex-encoded signature in compact format.
948
+ * @example 0x454aef27c21df7dd8f537dc869f4cd65286ce239a52d36470f4d85be85a891b02789e5ffd8560b32a98110e5d0096802e4c14145cf6c44f10a768c87755eaa4800
949
+ */
950
+ signature: string;
951
+ };
882
952
  BtcSignatureKind: {
883
953
  /** @description Segregated Witness */
884
954
  Segwit: {
@@ -932,6 +1002,18 @@ export interface components {
932
1002
  /** @enum {string} */
933
1003
  type: "fido";
934
1004
  };
1005
+ CreateKeyImportKeyResponse: components["schemas"]["KeyImportKey"] & {
1006
+ /**
1007
+ * @description An attestation document from a secure enclave, including an
1008
+ * RSA signing key used to sign the contents of this message.
1009
+ */
1010
+ enclave_attestation: string;
1011
+ /**
1012
+ * @description An RSA-PSS-SHA256 signature on the public key and encrypted
1013
+ * secrets attesting to their generation inside a secure enclave.
1014
+ */
1015
+ enclave_signature: string;
1016
+ };
935
1017
  CreateKeyRequest: {
936
1018
  /**
937
1019
  * Format: int64
@@ -952,6 +1034,10 @@ export interface components {
952
1034
  */
953
1035
  owner?: string | null;
954
1036
  };
1037
+ CreateKeyResponse: {
1038
+ /** @description The info about the created keys */
1039
+ keys: components["schemas"]["KeyInfo"][];
1040
+ };
955
1041
  /** @description Optional create role request body */
956
1042
  CreateRoleRequest: {
957
1043
  /**
@@ -960,6 +1046,33 @@ export interface components {
960
1046
  */
961
1047
  name: string;
962
1048
  };
1049
+ /** @description The newly created role information */
1050
+ CreateRoleResponse: {
1051
+ /**
1052
+ * @description A human-readable name for the role.
1053
+ * @example my_role
1054
+ */
1055
+ name?: string | null;
1056
+ /**
1057
+ * @description The id of the newly created role
1058
+ * @example Role#bfe3eccb-731e-430d-b1e5-ac1363e6b06b
1059
+ */
1060
+ role_id: string;
1061
+ };
1062
+ CreateSessionRequest: components["schemas"]["RatchetConfig"] & {
1063
+ /**
1064
+ * @description A human readable description of the session's purpose
1065
+ * @example Manage keys on server foo.bar
1066
+ */
1067
+ purpose: string;
1068
+ /**
1069
+ * @description Controls what capabilities this session will have.
1070
+ * @example [
1071
+ * "manage:key:*"
1072
+ * ]
1073
+ */
1074
+ scopes: string[];
1075
+ };
963
1076
  CreateTokenRequest: components["schemas"]["RatchetConfig"] & ({
964
1077
  /**
965
1078
  * @description A human readable description of the purpose of the key
@@ -1122,8 +1235,20 @@ export interface components {
1122
1235
  /** @description EIP-712 typed data. Refer to the JSON schema defined in EIP-712. */
1123
1236
  typed_data: Record<string, never>;
1124
1237
  };
1238
+ Eip712SignResponse: {
1239
+ /**
1240
+ * @description Hex-encoded signature comprising 65 bytes in the format required
1241
+ * by ecrecover: 32-byte r, 32-byte s, and one-byte recovery-id v
1242
+ * which is either 27 or 28.
1243
+ * @example 0x4355c47d63924e8a72e509b65029052eb6c299d53a04e167c5775fd466751c9d07299936d304c153f6443dfa05f40ff007d72911b6f72307f996231605b915621c
1244
+ */
1245
+ signature: string;
1246
+ };
1125
1247
  /** @default null */
1126
1248
  Empty: Record<string, unknown> | null;
1249
+ EmptyImpl: {
1250
+ status: string;
1251
+ };
1127
1252
  /**
1128
1253
  * @description Epoch is a quoted `uint64`.
1129
1254
  * @example 256
@@ -1173,6 +1298,13 @@ export interface components {
1173
1298
  */
1174
1299
  tx: Record<string, never>;
1175
1300
  };
1301
+ Eth1SignResponse: {
1302
+ /**
1303
+ * @description Hex-encoded RLP encoding of the transaction and its signature
1304
+ * @example 0x22895118000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001201d58656b0e22aaa68fdc692db41979098c3886ed33015d7467de9211609cdac000000000000000000000000000000000000000000000000000000000000000308b0c2900324d3ff9adfba7fdfe5af3f9b2cdbeef7b280437bbf1b1c59a093d615afe3e5dfed9622b540cdd9b49b3c5ad00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002001000000000000000000000049011adbcc3bc9c0307bb07f37dda1a1a9c69d2e0000000000000000000000000000000000000000000000000000000000000060903db8525674b8e7904f9b7d7d9ec55a0a42d33cf58be25469b0c21bbb6d06172bc5bb5fd1aed8e4f35936968958116b0619553c2cb1c52e7323074c6f8eb3d5a7074fc6580148df907837fa3b164ad7fbc2288dad1e8a5b021095b57c8a36d4
1305
+ */
1306
+ rlp_signed_tx: string;
1307
+ };
1176
1308
  /**
1177
1309
  * @example {
1178
1310
  * "eth2_sign_request": {
@@ -1202,18 +1334,39 @@ export interface components {
1202
1334
  eth2_sign_request: Record<string, never>;
1203
1335
  network: components["schemas"]["Network"];
1204
1336
  };
1337
+ Eth2SignResponse: {
1338
+ /**
1339
+ * @description Hex encoded signature prefixed with 0x e.g. "0x0000..."
1340
+ * @example 0xb4f2ef9d12a54e1f569596c07c97d6d730535b6ffc0d287761dc78103a86326782471a04c75ce7a6faea08ca9a4a0830031cdcb893da8711d54aa22619f1a7e71b8185ddf4c6bfd9babbd735960e35e56bd6eeb89625b04850e7a9ef8846e549
1341
+ */
1342
+ signature: string;
1343
+ };
1205
1344
  /** @description Sent from the client to the server to answer a fido challenge */
1206
1345
  FidoAssertAnswer: {
1207
1346
  /** @description The ID of the challenge that was returned from the POST endpoint */
1208
1347
  challenge_id: string;
1209
1348
  credential: components["schemas"]["PublicKeyCredential"];
1210
1349
  };
1350
+ FidoAssertChallenge: {
1351
+ /** @description The id of the challenge. Must be supplied when answering the challenge. */
1352
+ challenge_id: string;
1353
+ options: components["schemas"]["PublicKeyCredentialRequestOptions"];
1354
+ };
1211
1355
  /** @description Sent from the client to the server to answer a fido challenge */
1212
1356
  FidoCreateChallengeAnswer: {
1213
1357
  /** @description The ID of the challenge that was returned from the POST endpoint */
1214
1358
  challenge_id: string;
1215
1359
  credential: components["schemas"]["PublicKeyCredential"];
1216
1360
  };
1361
+ /**
1362
+ * @description Sent by the server to the client. Contains the challenge data that must be
1363
+ * used to generate a new credential
1364
+ */
1365
+ FidoCreateChallengeResponse: {
1366
+ /** @description The id of the challenge. Must be supplied when answering the challenge. */
1367
+ challenge_id: string;
1368
+ options: components["schemas"]["PublicKeyCredentialCreationOptions"];
1369
+ };
1217
1370
  /** @description Declares intent to register a new FIDO key */
1218
1371
  FidoCreateRequest: {
1219
1372
  /**
@@ -1271,6 +1424,10 @@ export interface components {
1271
1424
  GetKeysInOrgRequest: {
1272
1425
  key_type?: components["schemas"]["KeyType"] | null;
1273
1426
  };
1427
+ GetUsersInOrgResponse: {
1428
+ /** @description The list of users in the org */
1429
+ users: components["schemas"]["UserIdInfo"][];
1430
+ };
1274
1431
  /** @description Stats pertaining the the sender `cube3signer` instance */
1275
1432
  HeartbeatRequest: {
1276
1433
  /**
@@ -1403,6 +1560,101 @@ export interface components {
1403
1560
  */
1404
1561
  skip_email: boolean;
1405
1562
  };
1563
+ /**
1564
+ * @description Key material contained inside a [`JsonKeyPackage`], which can be either
1565
+ * a raw secret or a mnemonic, password, and derivation path.
1566
+ */
1567
+ JsonKeyMaterial: {
1568
+ /** @enum {string} */
1569
+ material_type: "raw_secret";
1570
+ /** @description The value of the raw secret */
1571
+ secret: string;
1572
+ } | {
1573
+ /** @description The derivation path */
1574
+ derivation_path: string;
1575
+ /** @enum {string} */
1576
+ material_type: "english_mnemonic";
1577
+ /** @description The mnemonic */
1578
+ mnemonic: string;
1579
+ /** @description The password (which may be empty) */
1580
+ password: string;
1581
+ };
1582
+ /**
1583
+ * @description A [`KeyPackage`] serialized into a format that gives a tidier JSON
1584
+ * representation suitable for encryption in the user-export flow.
1585
+ *
1586
+ * We construct values of this type rather than constructing `serde_json::Value`s
1587
+ * directly with `json!()` because this allows us to zeroize values on drop, which
1588
+ * doesn't work with `serde_json::Value`.
1589
+ *
1590
+ * Examples of serialized material:
1591
+ *
1592
+ * - `JsonKeyMaterial::EnglishMnemonic`:
1593
+ *
1594
+ * ```
1595
+ * use cubist_signer_utils::{
1596
+ * DerivationPath, KeyPackage, Mnemonic, MnemonicPackage, Secp256k1Pkg,
1597
+ * };
1598
+ * use serde_json::json;
1599
+ *
1600
+ * const MNEMONIC: &str = "deposit fiscal brain swarm surround cousin horn glare fix love render believe guide shuffle stem cram broccoli resemble beach artefact language gift jar permit";
1601
+ * const DER_PATH: &str = "m/44'/60'/0'/0/0";
1602
+ * const KEY_TYPE: &str = "ecdsa:secp256k1";
1603
+ *
1604
+ * let mne = Mnemonic::try_from(MNEMONIC).expect("good mnemonic");
1605
+ * let derp = DerivationPath::try_from(DER_PATH).expect("good der path");
1606
+ * let mne_pkg = MnemonicPackage::new(mne, "", derp);
1607
+ * let key_pkg = KeyPackage::<Secp256k1Pkg>::EnglishMnemonic(mne_pkg);
1608
+ * let json_pkg = key_pkg.into_json(KEY_TYPE);
1609
+ *
1610
+ * let json_expect = json!({
1611
+ * "key_type": KEY_TYPE,
1612
+ * "material_type": "english_mnemonic",
1613
+ * "mnemonic": MNEMONIC,
1614
+ * "password": "",
1615
+ * "derivation_path": DER_PATH,
1616
+ * });
1617
+ *
1618
+ * assert_eq!(
1619
+ * serde_json::to_value(&json_pkg).expect("json serialization"),
1620
+ * json_expect,
1621
+ * );
1622
+ * ```
1623
+ *
1624
+ * - `JsonKeyMaterial::RawSecret`:
1625
+ *
1626
+ * ```
1627
+ * use cubist_signer_utils::{
1628
+ * get_random_byte_array, hex_encode, KeyPackage, RngCore, Secp256k1Pkg,
1629
+ * };
1630
+ * use serde_json::json;
1631
+ *
1632
+ * const KEY_TYPE: &str = "ecdsa:secp256k1";
1633
+ *
1634
+ * // random 32-byte secret
1635
+ * let sk: [u8; 32] = *get_random_byte_array();
1636
+ *
1637
+ * let key_pkg = KeyPackage::<Secp256k1Pkg>::Secret(sk);
1638
+ * let json_pkg = key_pkg.into_json(KEY_TYPE);
1639
+ *
1640
+ * let json_expect = json!({
1641
+ * "key_type": KEY_TYPE,
1642
+ * "material_type": "raw_secret",
1643
+ * "secret": hex_encode(&sk),
1644
+ * });
1645
+ *
1646
+ * assert_eq!(
1647
+ * serde_json::to_value(&json_pkg).expect("json serialization"),
1648
+ * json_expect,
1649
+ * );
1650
+ * ```
1651
+ */
1652
+ JsonKeyPackage: {
1653
+ material_type: "JsonKeyPackage";
1654
+ } & Omit<components["schemas"]["JsonKeyMaterial"], "material_type"> & {
1655
+ /** @description The type of key this package represents */
1656
+ key_type: string;
1657
+ };
1406
1658
  /** @description Derivation-related metadata for keys derived from a long-lived mnemonic */
1407
1659
  KeyDerivationInfo: {
1408
1660
  /** @description The derivation path used to derive this key */
@@ -1496,6 +1748,9 @@ export interface components {
1496
1748
  */
1497
1749
  purpose: string;
1498
1750
  };
1751
+ KeyInfos: {
1752
+ keys: components["schemas"]["KeyInfo"][];
1753
+ };
1499
1754
  /** @enum {string} */
1500
1755
  KeyType: "SecpEthAddr" | "SecpBtc" | "SecpBtcTest" | "SecpAvaAddr" | "SecpAvaTestAddr" | "BlsPub" | "BlsInactive" | "Ed25519SolanaAddr" | "Ed25519SuiAddr" | "Ed25519AptosAddr" | "Ed25519CardanoAddrVk" | "Ed25519StellarAddr" | "Mnemonic" | "Stark";
1501
1756
  /**
@@ -1505,6 +1760,13 @@ export interface components {
1505
1760
  * so that they can pass this back to us as a url query parameter.
1506
1761
  */
1507
1762
  LastEvalKey: string;
1763
+ ListMfaResponse: {
1764
+ /** @description All pending MFA requests */
1765
+ mfa_requests: components["schemas"]["MfaRequestInfo"][];
1766
+ };
1767
+ ListTokensResponse: {
1768
+ tokens: components["schemas"]["TokenInfo"][];
1769
+ };
1508
1770
  /**
1509
1771
  * @description Describes whether a user in an org is an Owner or just a regular member
1510
1772
  * @enum {string}
@@ -1546,11 +1808,6 @@ export interface components {
1546
1808
  * a single OIDC user to multiple `User`s in CubeSigner
1547
1809
  */
1548
1810
  OIDCIdentity: {
1549
- /**
1550
- * @description Free-form additional user info.
1551
- * @example null
1552
- */
1553
- disambiguator?: string | null;
1554
1811
  /**
1555
1812
  * @description The root-level issuer who administrates this user. Frome the OIDC spec:
1556
1813
  * Issuer Identifier for the Issuer of the response. The iss
@@ -1573,6 +1830,8 @@ export interface components {
1573
1830
  sub: string;
1574
1831
  };
1575
1832
  OidcLoginRequest: {
1833
+ /** @description A human readable description of the purpose of the session */
1834
+ purpose?: string | null;
1576
1835
  /**
1577
1836
  * @description Controls what capabilities this session will have.
1578
1837
  * @example [
@@ -1622,6 +1881,22 @@ export interface components {
1622
1881
  * ]
1623
1882
  */
1624
1883
  policy?: Record<string, never>[];
1884
+ /**
1885
+ * Format: int64
1886
+ * @description The organization's currently configured user-export delay, i.e., the minimum
1887
+ * amount of time (in seconds) between when a user-export is initiated and when
1888
+ * it may be completed. (This value is meaningless for organizations that use
1889
+ * org-wide export.)
1890
+ */
1891
+ user_export_delay: number;
1892
+ /**
1893
+ * Format: int64
1894
+ * @description The organization's currently configured user-export window, i.e., the amount
1895
+ * of time (in seconds) between when the user-export delay is completed and when
1896
+ * the user export request has expired and can no longer be completed. (This value
1897
+ * is meaningless for organizations that use org-wide export.)
1898
+ */
1899
+ user_export_window: number;
1625
1900
  };
1626
1901
  /**
1627
1902
  * @description The rocket query parameter representing the page from which to start a paginated query.
@@ -1644,6 +1919,94 @@ export interface components {
1644
1919
  */
1645
1920
  "page.start"?: string | null;
1646
1921
  };
1922
+ /**
1923
+ * @description Response type that wraps another type and adds base64url-encoded encrypted `last_evaluated_key`
1924
+ * value (which can the user pass back to use as a url query parameter to continue pagination).
1925
+ */
1926
+ PaginatedListKeysResponse: {
1927
+ keys: components["schemas"]["KeyInfo"][];
1928
+ } & ({
1929
+ /**
1930
+ * @description If set, the content of `response` does not contain the entire result set.
1931
+ * To fetch the next page of the result set, call the same endpoint
1932
+ * but specify this value as the 'page.start' query parameter.
1933
+ */
1934
+ last_evaluated_key?: string | null;
1935
+ });
1936
+ /**
1937
+ * @description Response type that wraps another type and adds base64url-encoded encrypted `last_evaluated_key`
1938
+ * value (which can the user pass back to use as a url query parameter to continue pagination).
1939
+ */
1940
+ PaginatedListRoleKeysResponse: {
1941
+ /** @description All keys in a role */
1942
+ keys: components["schemas"]["KeyInRoleInfo"][];
1943
+ } & ({
1944
+ /**
1945
+ * @description If set, the content of `response` does not contain the entire result set.
1946
+ * To fetch the next page of the result set, call the same endpoint
1947
+ * but specify this value as the 'page.start' query parameter.
1948
+ */
1949
+ last_evaluated_key?: string | null;
1950
+ });
1951
+ /**
1952
+ * @description Response type that wraps another type and adds base64url-encoded encrypted `last_evaluated_key`
1953
+ * value (which can the user pass back to use as a url query parameter to continue pagination).
1954
+ */
1955
+ PaginatedListRoleUsersResponse: {
1956
+ /** @description All users in a role */
1957
+ users: components["schemas"]["UserInRoleInfo"][];
1958
+ } & ({
1959
+ /**
1960
+ * @description If set, the content of `response` does not contain the entire result set.
1961
+ * To fetch the next page of the result set, call the same endpoint
1962
+ * but specify this value as the 'page.start' query parameter.
1963
+ */
1964
+ last_evaluated_key?: string | null;
1965
+ });
1966
+ /**
1967
+ * @description Response type that wraps another type and adds base64url-encoded encrypted `last_evaluated_key`
1968
+ * value (which can the user pass back to use as a url query parameter to continue pagination).
1969
+ */
1970
+ PaginatedListRolesResponse: {
1971
+ /** @description All roles in an organization. */
1972
+ roles: components["schemas"]["RoleInfo"][];
1973
+ } & ({
1974
+ /**
1975
+ * @description If set, the content of `response` does not contain the entire result set.
1976
+ * To fetch the next page of the result set, call the same endpoint
1977
+ * but specify this value as the 'page.start' query parameter.
1978
+ */
1979
+ last_evaluated_key?: string | null;
1980
+ });
1981
+ /**
1982
+ * @description Response type that wraps another type and adds base64url-encoded encrypted `last_evaluated_key`
1983
+ * value (which can the user pass back to use as a url query parameter to continue pagination).
1984
+ */
1985
+ PaginatedSessionsResponse: {
1986
+ /** @description The list of sessions */
1987
+ sessions: components["schemas"]["SessionInfo"][];
1988
+ } & ({
1989
+ /**
1990
+ * @description If set, the content of `response` does not contain the entire result set.
1991
+ * To fetch the next page of the result set, call the same endpoint
1992
+ * but specify this value as the 'page.start' query parameter.
1993
+ */
1994
+ last_evaluated_key?: string | null;
1995
+ });
1996
+ /**
1997
+ * @description Response type that wraps another type and adds base64url-encoded encrypted `last_evaluated_key`
1998
+ * value (which can the user pass back to use as a url query parameter to continue pagination).
1999
+ */
2000
+ PaginatedUserExportListResponse: {
2001
+ export_requests: components["schemas"]["UserExportInitResponse"][];
2002
+ } & ({
2003
+ /**
2004
+ * @description If set, the content of `response` does not contain the entire result set.
2005
+ * To fetch the next page of the result set, call the same endpoint
2006
+ * but specify this value as the 'page.start' query parameter.
2007
+ */
2008
+ last_evaluated_key?: string | null;
2009
+ });
1647
2010
  /**
1648
2011
  * @description This type represents a wire-encodable form of the PublicKeyCredential interface
1649
2012
  * Clients may need to manually encode into this format to communicate with the server
@@ -1688,7 +2051,7 @@ export interface components {
1688
2051
  */
1689
2052
  PublicKeyCredentialCreationOptions: {
1690
2053
  attestation?: components["schemas"]["AttestationConveyancePreference"];
1691
- authenticator_selection?: components["schemas"]["AuthenticatorSelectionCriteria"] | null;
2054
+ authenticatorSelection?: components["schemas"]["AuthenticatorSelectionCriteria"] | null;
1692
2055
  /**
1693
2056
  * @description This member contains a challenge intended to be used for generating the
1694
2057
  * newly created credential’s attestation object. See the § 13.4.3
@@ -1706,7 +2069,7 @@ export interface components {
1706
2069
  *
1707
2070
  * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialcreationoptions-excludecredentials
1708
2071
  */
1709
- exclude_credentials?: components["schemas"]["PublicKeyCredentialDescriptor"][];
2072
+ excludeCredentials?: components["schemas"]["PublicKeyCredentialDescriptor"][];
1710
2073
  /**
1711
2074
  * @description This member contains additional parameters requesting additional
1712
2075
  * processing by the client and authenticator. For example, the caller may
@@ -1728,7 +2091,7 @@ export interface components {
1728
2091
  *
1729
2092
  * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialcreationoptions-pubkeycredparams
1730
2093
  */
1731
- pub_key_cred_params: components["schemas"]["PublicKeyCredentialParameters"][];
2094
+ pubKeyCredParams: components["schemas"]["PublicKeyCredentialParameters"][];
1732
2095
  rp: components["schemas"]["PublicKeyCredentialRpEntity"];
1733
2096
  /**
1734
2097
  * Format: int32
@@ -1739,7 +2102,7 @@ export interface components {
1739
2102
  * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialcreationoptions-timeout
1740
2103
  */
1741
2104
  timeout?: number | null;
1742
- user?: components["schemas"]["PublicKeyCredentialUserEntity"] | null;
2105
+ user: components["schemas"]["PublicKeyCredentialUserEntity"];
1743
2106
  };
1744
2107
  /**
1745
2108
  * @description This dictionary contains the attributes that are specified by a caller when
@@ -1804,7 +2167,7 @@ export interface components {
1804
2167
  *
1805
2168
  * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialrequestoptions-allowcredentials
1806
2169
  */
1807
- allow_credentials?: components["schemas"]["PublicKeyCredentialDescriptor"][];
2170
+ allowCredentials?: components["schemas"]["PublicKeyCredentialDescriptor"][];
1808
2171
  /**
1809
2172
  * @description This member represents a challenge that the selected authenticator
1810
2173
  * signs, along with other data, when producing an authentication
@@ -1821,7 +2184,7 @@ export interface components {
1821
2184
  *
1822
2185
  * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialrequestoptions-rpid
1823
2186
  */
1824
- rp_id?: string | null;
2187
+ rpId?: string | null;
1825
2188
  /**
1826
2189
  * Format: int32
1827
2190
  * @description This OPTIONAL member specifies a time, in milliseconds, that the caller
@@ -1831,7 +2194,7 @@ export interface components {
1831
2194
  * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialrequestoptions-timeout
1832
2195
  */
1833
2196
  timeout?: number | null;
1834
- user_verification?: components["schemas"]["UserVerificationRequirement"];
2197
+ userVerification?: components["schemas"]["UserVerificationRequirement"];
1835
2198
  };
1836
2199
  /**
1837
2200
  * @description The PublicKeyCredentialRpEntity dictionary is used to supply additional
@@ -1845,7 +2208,7 @@ export interface components {
1845
2208
  *
1846
2209
  * https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialrpentity-id
1847
2210
  */
1848
- id: string;
2211
+ id?: string | null;
1849
2212
  /**
1850
2213
  * @description A human-palatable name for the entity. Its function depends on what the
1851
2214
  * PublicKeyCredentialEntity represents: When inherited by
@@ -1989,6 +2352,13 @@ export interface components {
1989
2352
  * @enum {string}
1990
2353
  */
1991
2354
  ResidentKeyRequirement: "discouraged" | "preferred" | "required";
2355
+ RevokeTokenResponse: {
2356
+ token?: components["schemas"]["TokenInfo"] | null;
2357
+ };
2358
+ RevokeTokensResponse: {
2359
+ /** @description Tokens that were revoked. */
2360
+ revoked: components["schemas"]["TokenInfo"][];
2361
+ };
1992
2362
  RoleInfo: {
1993
2363
  /**
1994
2364
  * @description Whether the role is enabled
@@ -2002,6 +2372,22 @@ export interface components {
2002
2372
  * @example my_role
2003
2373
  */
2004
2374
  name?: string | null;
2375
+ /**
2376
+ * @description Policy that is checked whenever a key is accessed for signing via this role.
2377
+ * @example [
2378
+ * {
2379
+ * "SourceIpAllowlist": [
2380
+ * "123.456.78.9/16"
2381
+ * ]
2382
+ * },
2383
+ * {
2384
+ * "RequireMfa": {
2385
+ * "count": 1
2386
+ * }
2387
+ * }
2388
+ * ]
2389
+ */
2390
+ policy?: Record<string, never>[];
2005
2391
  /**
2006
2392
  * @description The ID of the role
2007
2393
  * @example Role#bfe3eccb-731e-430d-b1e5-ac1363e6b06b
@@ -2028,10 +2414,24 @@ export interface components {
2028
2414
  */
2029
2415
  session_id: string;
2030
2416
  };
2031
- SignRequest: {
2032
- message: Record<string, never>;
2417
+ /** @description The response from any operation operating on multiple sessions */
2418
+ SessionsResponse: {
2419
+ /** @description The list of sessions */
2420
+ sessions: components["schemas"]["SessionInfo"][];
2421
+ };
2422
+ /**
2423
+ * @example {
2424
+ * "message_base64": "AQABA8OKVzLEjststN4xXr39kLKHT8d58eQY1QEs6MeXwEFBrxTAlULX1troLbWxuAXQqgbQofGi6z8fJi7KAAIf7YMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJK0tn39k28s+X86W47EvbRRKnYBVQ8Q/l2m1EbfT7+vAQICAAEMAgAAAGQAAAAAAAAA"
2425
+ * }
2426
+ */
2427
+ SolanaSignRequest: {
2428
+ /** @description Solana base64-encoded serialized Message */
2429
+ message_base64: string;
2430
+ };
2431
+ SolanaSignResponse: {
2432
+ /** @description The hex-encoded signature. */
2433
+ signature: string;
2033
2434
  };
2034
- SolanaSignRequest: components["schemas"]["SignRequest"] & Record<string, never>;
2035
2435
  StakeRequest: {
2036
2436
  /**
2037
2437
  * Format: int64
@@ -2060,6 +2460,14 @@ export interface components {
2060
2460
  */
2061
2461
  withdrawal_addr: string;
2062
2462
  };
2463
+ StakeResponse: {
2464
+ /**
2465
+ * @description The validator key id ("Key#...")
2466
+ * @example Key#db1731f8-3659-45c0-885b-e11e1f5b7be2
2467
+ */
2468
+ created_validator_key_id: string;
2469
+ deposit_tx: components["schemas"]["DepositTxn"];
2470
+ };
2063
2471
  Status: {
2064
2472
  /** @description Users who are allowed to approve. Must be non-empty. */
2065
2473
  allowed_approvers: string[];
@@ -2099,6 +2507,23 @@ export interface components {
2099
2507
  /** @description The ID of the challenge that was returned from the POST endpoint */
2100
2508
  totp_id: string;
2101
2509
  };
2510
+ TotpInfo: {
2511
+ /**
2512
+ * @description The ID of the TOTP challenge.
2513
+ * @example TotpChallenge#7892ebba-563e-485b-bb7d-e26267363286
2514
+ */
2515
+ totp_id: string;
2516
+ /**
2517
+ * @description Standard TOTP url which includes everything needed to initialize TOTP.
2518
+ * @example otpauth://totp/Cubist:alice-%40example.com?secret=DAHF7KCOTQWSOMK4XFEMNHXO4J433OD7&issuer=Cubist
2519
+ */
2520
+ totp_url: string;
2521
+ };
2522
+ /** @description Request to reset TOTP. */
2523
+ TotpResetRequest: {
2524
+ /** @description The name of the issuer; defaults to "Cubist". */
2525
+ issuer?: string | null;
2526
+ };
2102
2527
  /** @description Options that should be set only for local devnet testing. */
2103
2528
  UnsafeConf: {
2104
2529
  /**
@@ -2145,6 +2570,22 @@ export interface components {
2145
2570
  */
2146
2571
  validator_index: string;
2147
2572
  };
2573
+ /**
2574
+ * @description Unstake responses are signed voluntary exit messages.
2575
+ * The schema for this message is defined
2576
+ * [here](https://github.com/ethereum/consensus-specs/blob/v1.0.1/specs/phase0/beacon-chain.md#signedvoluntaryexit).
2577
+ * This message can be directly POSTed to the Beacon node's
2578
+ * `/eth/v1/beacon/pool/voluntary_exits` end-point (see expected schema
2579
+ * [here](https://ethereum.github.io/beacon-APIs/#/Beacon/submitPoolVoluntaryExit)).
2580
+ */
2581
+ UnstakeResponse: {
2582
+ message: components["schemas"]["VoluntaryExit"];
2583
+ /**
2584
+ * @description BLS signature.
2585
+ * @example 0x910c7cd537ed91cc8c4a82f3cbd832e9be8c24a22e9c86df479f7ce42025ea6a09619b418b666a060e260d2aae31b8e50e9d05ca3442c7eed3b507e5207e14674275f68c2ba84c4bf6b8dd364a304acac8cfab3681e2514b4400f9242bc61164
2586
+ */
2587
+ signature: string;
2588
+ };
2148
2589
  UpdateKeyRequest: {
2149
2590
  /**
2150
2591
  * @description If set, updates the keys's `enabled` property to this value.
@@ -2197,14 +2638,174 @@ export interface components {
2197
2638
  * }
2198
2639
  * ]
2199
2640
  */
2200
- policy?: Record<string, never>[] | null;
2641
+ policy?: Record<string, never>[] | null;
2642
+ /**
2643
+ * Format: int64
2644
+ * @description If set, update this org's user-export delay, i.e., the amount of time
2645
+ * (in seconds) between a user's initiating an export and the time when
2646
+ * export is allowed. For security, this delay cannot be set to less than
2647
+ * 172800, i.e., 2 days.
2648
+ */
2649
+ user_export_delay?: number | null;
2650
+ /**
2651
+ * Format: int64
2652
+ * @description If set, update this org's user-export window, i.e., the amount of time
2653
+ * (in seconds) that export is allowed after the user-export delay. After
2654
+ * this amount of time, the export is canceled and must be re-initiated.
2655
+ * For security, this window cannot be set to greater than 259200, i.e.,
2656
+ * 3 days.
2657
+ */
2658
+ user_export_window?: number | null;
2659
+ };
2660
+ UpdateOrgResponse: {
2661
+ /** @description The new value of the 'enabled' property */
2662
+ enabled?: boolean | null;
2663
+ /**
2664
+ * @description The new human-readable name for the org (must be alphanumeric)
2665
+ * @example my_org_name
2666
+ */
2667
+ name?: string | null;
2668
+ /**
2669
+ * @description The ID of the organization
2670
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
2671
+ */
2672
+ org_id: string;
2673
+ /**
2674
+ * @description The new value of org-wide policies
2675
+ * @example [
2676
+ * {
2677
+ * "MaxDailyUnstake": 5
2678
+ * },
2679
+ * {
2680
+ * "OriginAllowlist": [
2681
+ * "https://example.com"
2682
+ * ]
2683
+ * }
2684
+ * ]
2685
+ */
2686
+ policy?: Record<string, never>[] | null;
2687
+ /**
2688
+ * Format: int64
2689
+ * @description The new value of user-export delay
2690
+ */
2691
+ user_export_delay?: number | null;
2692
+ /**
2693
+ * Format: int64
2694
+ * @description The new value of user-export window
2695
+ */
2696
+ user_export_window?: number | null;
2697
+ };
2698
+ UpdateRoleRequest: {
2699
+ /**
2700
+ * @description If set, updates the role's `enabled` property to this value.
2701
+ * Once disabled, a role cannot be used; and it's tokens cannot be used for signing.
2702
+ */
2703
+ enabled?: boolean | null;
2704
+ /**
2705
+ * @description If set, update this role's key policies (old policies will be overwritten!).
2706
+ * Only "deny" style policies may be set.
2707
+ * @example [
2708
+ * {
2709
+ * "SourceIpAllowlist": [
2710
+ * "123.456.78.9/16"
2711
+ * ]
2712
+ * }
2713
+ * ]
2714
+ */
2715
+ policy?: Record<string, never>[] | null;
2716
+ };
2717
+ /** @description A request to complete a user export */
2718
+ UserExportCompleteRequest: {
2719
+ /**
2720
+ * @description The id of the key to be exported. The key-id must correspond to the one in
2721
+ * the specified export request, and the caller must own this key.
2722
+ * @example Key#0x3c4d90Cc5Af1644C3A3B013Baa5488997381D7C8
2723
+ */
2724
+ key_id: string;
2725
+ /**
2726
+ * @description The NIST P-256 public key (base64-encoded SEC1 with or without compression)
2727
+ * to which the export will be encrypted. If a public key was provided when
2728
+ * `user_export_init` was called, this key must match that one.
2729
+ * @example AkpLT/3dXApJzXSduaPQ7apyT0ADBwqkt1es/aT0iWWf
2730
+ */
2731
+ public_key: string;
2732
+ };
2733
+ /** @description An encrypted user-export */
2734
+ UserExportCompleteResponse: {
2735
+ /**
2736
+ * @description The exported key material, encrypted with AES-256-GCM under a key
2737
+ * derived from the public key supplied in the request via HPKE (RFC9180)
2738
+ * with DHKEM(P-256, HKDF-SHA256) and base64 encoded.
2739
+ */
2740
+ encrypted_key_material: string;
2741
+ /**
2742
+ * @description The ephemeral public key used for HPKE key derivation as base64-encoded
2743
+ * uncompressed SEC1 serialization.
2744
+ */
2745
+ ephemeral_public_key: string;
2746
+ /** @description The user-id to which this key belongs. */
2747
+ user_id: string;
2201
2748
  };
2202
- UpdateRoleRequest: {
2749
+ /** @description A request to initiate a user export */
2750
+ UserExportInitRequest: {
2203
2751
  /**
2204
- * @description If set, updates the role's `enabled` property to this value.
2205
- * Once disabled, a role cannot be used; and it's tokens cannot be used for signing.
2752
+ * @description The id of the key to be exported. This key must be owned by the caller.
2753
+ * @example Key#0x3c4d90Cc5Af1644C3A3B013Baa5488997381D7C8
2206
2754
  */
2207
- enabled?: boolean | null;
2755
+ key_id: string;
2756
+ /**
2757
+ * @description An optional NIST P-256 public key (base64-encoded SEC1 with or without
2758
+ * compression) to which the export will be encrypted. If provided, this
2759
+ * public key MUST be the one used to encrypt the export once the delay has
2760
+ * expired. Otherwise, the user can provide any public key when completing
2761
+ * the export request post delay.
2762
+ *
2763
+ * This option may provide extra security when the user has a secure hardware
2764
+ * device (e.g., a phone's secure element or a YubiKey) in which a NIST P-256
2765
+ * secret key can be generated. Providing the corresponding public key here
2766
+ * ensures that only that specific device will be capable of decrypting
2767
+ * the export ciphertext.
2768
+ *
2769
+ * If no secure hardware device is available to store the secret key, this
2770
+ * option SHOULD NOT be used because of the risk of secret key theft during
2771
+ * the export delay period.
2772
+ * @example AkpLT/3dXApJzXSduaPQ7apyT0ADBwqkt1es/aT0iWWf
2773
+ */
2774
+ public_key?: string | null;
2775
+ };
2776
+ /** @description The response to a successful user-export init request */
2777
+ UserExportInitResponse: components["schemas"]["UserExportRequest"] & {
2778
+ /**
2779
+ * @description The key-id being requested.
2780
+ * @example Key#0x3c4d90Cc5Af1644C3A3B013Baa5488997381D7C8
2781
+ */
2782
+ key_id: string;
2783
+ };
2784
+ /** @description Pending user-export request as stored in the database. */
2785
+ UserExportRequest: {
2786
+ exp_epoch: components["schemas"]["EpochDateTime"];
2787
+ /**
2788
+ * @description The org-id in which the key is housed.
2789
+ * @example Org#f361ed6b-5d19-4ccf-a4d5-eba935dc0b90
2790
+ */
2791
+ org_id: string;
2792
+ /**
2793
+ * @description The SHA-256 hash of the public key provided at export initiation,
2794
+ * if any. If a key was provided, only that key can be used to complete
2795
+ * the export procedure. Otherwise, any key can be used.
2796
+ *
2797
+ * IMPORTANT: if a public key is supplied at export initiation, it is
2798
+ * STRONGLY RECOMMENDED that the corresponding secret key be stored in
2799
+ * a secure hardware device, e.g., a YubiKey or a phone's secure element.
2800
+ * If no such hardware is available, supplying a public key at export
2801
+ * initiation is STRONGLY DISCOURAGED because of the risk of theft during
2802
+ * the export delay period.
2803
+ *
2804
+ * (See also the comment in the `public_key` field of `UserInitRequest`.)
2805
+ * @example df457a98d5538540f54d1316b597a0f39b8d96f488f10a2e31a955c146fdf1d3
2806
+ */
2807
+ public_key_hash?: string | null;
2808
+ valid_epoch: components["schemas"]["EpochDateTime"];
2208
2809
  };
2209
2810
  UserIdInfo: {
2210
2811
  /**
@@ -2613,6 +3214,22 @@ export interface components {
2613
3214
  * ]
2614
3215
  */
2615
3216
  policy?: Record<string, never>[];
3217
+ /**
3218
+ * Format: int64
3219
+ * @description The organization's currently configured user-export delay, i.e., the minimum
3220
+ * amount of time (in seconds) between when a user-export is initiated and when
3221
+ * it may be completed. (This value is meaningless for organizations that use
3222
+ * org-wide export.)
3223
+ */
3224
+ user_export_delay: number;
3225
+ /**
3226
+ * Format: int64
3227
+ * @description The organization's currently configured user-export window, i.e., the amount
3228
+ * of time (in seconds) between when the user-export delay is completed and when
3229
+ * the user export request has expired and can no longer be completed. (This value
3230
+ * is meaningless for organizations that use org-wide export.)
3231
+ */
3232
+ user_export_window: number;
2616
3233
  };
2617
3234
  };
2618
3235
  };
@@ -2690,6 +3307,20 @@ export interface components {
2690
3307
  });
2691
3308
  };
2692
3309
  };
3310
+ PaginatedUserExportListResponse: {
3311
+ content: {
3312
+ "application/json": {
3313
+ export_requests: components["schemas"]["UserExportInitResponse"][];
3314
+ } & ({
3315
+ /**
3316
+ * @description If set, the content of `response` does not contain the entire result set.
3317
+ * To fetch the next page of the result set, call the same endpoint
3318
+ * but specify this value as the 'page.start' query parameter.
3319
+ */
3320
+ last_evaluated_key?: string | null;
3321
+ });
3322
+ };
3323
+ };
2693
3324
  RevokeTokenResponse: {
2694
3325
  content: {
2695
3326
  "application/json": {
@@ -2720,6 +3351,22 @@ export interface components {
2720
3351
  * @example my_role
2721
3352
  */
2722
3353
  name?: string | null;
3354
+ /**
3355
+ * @description Policy that is checked whenever a key is accessed for signing via this role.
3356
+ * @example [
3357
+ * {
3358
+ * "SourceIpAllowlist": [
3359
+ * "123.456.78.9/16"
3360
+ * ]
3361
+ * },
3362
+ * {
3363
+ * "RequireMfa": {
3364
+ * "count": 1
3365
+ * }
3366
+ * }
3367
+ * ]
3368
+ */
3369
+ policy?: Record<string, never>[];
2723
3370
  /**
2724
3371
  * @description The ID of the role
2725
3372
  * @example Role#bfe3eccb-731e-430d-b1e5-ac1363e6b06b
@@ -2850,6 +3497,48 @@ export interface components {
2850
3497
  * ]
2851
3498
  */
2852
3499
  policy?: Record<string, never>[] | null;
3500
+ /**
3501
+ * Format: int64
3502
+ * @description The new value of user-export delay
3503
+ */
3504
+ user_export_delay?: number | null;
3505
+ /**
3506
+ * Format: int64
3507
+ * @description The new value of user-export window
3508
+ */
3509
+ user_export_window?: number | null;
3510
+ };
3511
+ };
3512
+ };
3513
+ /** @description An encrypted user-export */
3514
+ UserExportCompleteResponse: {
3515
+ content: {
3516
+ "application/json": {
3517
+ /**
3518
+ * @description The exported key material, encrypted with AES-256-GCM under a key
3519
+ * derived from the public key supplied in the request via HPKE (RFC9180)
3520
+ * with DHKEM(P-256, HKDF-SHA256) and base64 encoded.
3521
+ */
3522
+ encrypted_key_material: string;
3523
+ /**
3524
+ * @description The ephemeral public key used for HPKE key derivation as base64-encoded
3525
+ * uncompressed SEC1 serialization.
3526
+ */
3527
+ ephemeral_public_key: string;
3528
+ /** @description The user-id to which this key belongs. */
3529
+ user_id: string;
3530
+ };
3531
+ };
3532
+ };
3533
+ /** @description The response to a successful user-export init request */
3534
+ UserExportInitResponse: {
3535
+ content: {
3536
+ "application/json": components["schemas"]["UserExportRequest"] & {
3537
+ /**
3538
+ * @description The key-id being requested.
3539
+ * @example Key#0x3c4d90Cc5Af1644C3A3B013Baa5488997381D7C8
3540
+ */
3541
+ key_id: string;
2853
3542
  };
2854
3543
  };
2855
3544
  };
@@ -2888,7 +3577,6 @@ export type external = Record<string, never>;
2888
3577
  export interface operations {
2889
3578
  /**
2890
3579
  * User Info
2891
- * @deprecated
2892
3580
  * @description User Info
2893
3581
  *
2894
3582
  * Retrieves information about the current user.
@@ -3847,7 +4535,7 @@ export interface operations {
3847
4535
  };
3848
4536
  };
3849
4537
  responses: {
3850
- 200: components["responses"]["EmptyImpl"];
4538
+ 200: components["responses"]["RoleInfo"];
3851
4539
  default: {
3852
4540
  content: {
3853
4541
  "application/json": components["schemas"]["ErrorResponse"];
@@ -4218,6 +4906,36 @@ export interface operations {
4218
4906
  };
4219
4907
  };
4220
4908
  };
4909
+ /**
4910
+ * Create new user session (management and/or signing)
4911
+ * @description Create new user session (management and/or signing)
4912
+ *
4913
+ * Create a new user session
4914
+ */
4915
+ createSession: {
4916
+ parameters: {
4917
+ path: {
4918
+ /**
4919
+ * @description Name or ID of the desired Org
4920
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4921
+ */
4922
+ org_id: string;
4923
+ };
4924
+ };
4925
+ requestBody: {
4926
+ content: {
4927
+ "application/json": components["schemas"]["CreateSessionRequest"];
4928
+ };
4929
+ };
4930
+ responses: {
4931
+ 200: components["responses"]["NewSessionResponse"];
4932
+ default: {
4933
+ content: {
4934
+ "application/json": components["schemas"]["ErrorResponse"];
4935
+ };
4936
+ };
4937
+ };
4938
+ };
4221
4939
  /**
4222
4940
  * Revoke existing session(s)
4223
4941
  * @description Revoke existing session(s)
@@ -4251,6 +4969,31 @@ export interface operations {
4251
4969
  };
4252
4970
  };
4253
4971
  };
4972
+ /**
4973
+ * Revoke current session
4974
+ * @description Revoke current session
4975
+ *
4976
+ * Immediately revokes the current session, preventing it from being used or refreshed
4977
+ */
4978
+ revokeCurrentSession: {
4979
+ parameters: {
4980
+ path: {
4981
+ /**
4982
+ * @description Name or ID of the desired Org
4983
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4984
+ */
4985
+ org_id: string;
4986
+ };
4987
+ };
4988
+ responses: {
4989
+ 200: components["responses"]["EmptyImpl"];
4990
+ default: {
4991
+ content: {
4992
+ "application/json": components["schemas"]["ErrorResponse"];
4993
+ };
4994
+ };
4995
+ };
4996
+ };
4254
4997
  /**
4255
4998
  * Get session information
4256
4999
  * @description Get session information
@@ -4400,6 +5143,171 @@ export interface operations {
4400
5143
  };
4401
5144
  };
4402
5145
  };
5146
+ /**
5147
+ * List outstanding user-export requests
5148
+ * @description List outstanding user-export requests
5149
+ */
5150
+ userExportList: {
5151
+ parameters: {
5152
+ query?: {
5153
+ /**
5154
+ * @description Max number of items to return per page.
5155
+ *
5156
+ * If the actual number of returned items may be less that this, even if there exist more
5157
+ * data in the result set. To reliably determine if more data is left in the result set,
5158
+ * inspect the [UnencryptedLastEvalKey] value in the response object.
5159
+ */
5160
+ "page.size"?: number;
5161
+ /**
5162
+ * @description The start of the page. Omit to start from the beginning; otherwise, only specify a
5163
+ * the exact value previously returned as 'last_evaluated_key' from the same endpoint.
5164
+ */
5165
+ "page.start"?: components["schemas"]["LastEvalKey"] | null;
5166
+ /**
5167
+ * @description If provided, the user-id whose user-export requests to list. Defaults to the
5168
+ * current user. Only the org owner may list requests for another user.
5169
+ * @example User#806c9544-f1fa-4bad-8d4d-1097a1844726
5170
+ */
5171
+ user_id?: string | null;
5172
+ /**
5173
+ * @description If provided, the key-id for which to list an existing user-export request.
5174
+ * @example Key#0x3c4d90Cc5Af1644C3A3B013Baa5488997381D7C8
5175
+ */
5176
+ key_id?: string | null;
5177
+ };
5178
+ path: {
5179
+ /**
5180
+ * @description Name or ID of the desired Org
5181
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5182
+ */
5183
+ org_id: string;
5184
+ };
5185
+ };
5186
+ responses: {
5187
+ 200: components["responses"]["PaginatedUserExportListResponse"];
5188
+ default: {
5189
+ content: {
5190
+ "application/json": components["schemas"]["ErrorResponse"];
5191
+ };
5192
+ };
5193
+ };
5194
+ };
5195
+ /**
5196
+ * Initiate a user-export request
5197
+ * @description Initiate a user-export request
5198
+ *
5199
+ * This starts a delay (whose length is determined by Org-wide settings)
5200
+ * before export can be completed, and returns a ticket that can be used
5201
+ * to complete the export once the timer has expired.
5202
+ *
5203
+ * Only one user-export request can be active for a given key. If there
5204
+ * is already an active export, this endpoint will return an error. To
5205
+ * create a new request, first delete the existing one.
5206
+ */
5207
+ userExportInit: {
5208
+ parameters: {
5209
+ path: {
5210
+ /**
5211
+ * @description Name or ID of the desired Org
5212
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5213
+ */
5214
+ org_id: string;
5215
+ };
5216
+ };
5217
+ requestBody: {
5218
+ content: {
5219
+ "application/json": components["schemas"]["UserExportInitRequest"];
5220
+ };
5221
+ };
5222
+ responses: {
5223
+ 200: components["responses"]["UserExportInitResponse"];
5224
+ 202: {
5225
+ content: {
5226
+ "application/json": components["schemas"]["AcceptedResponse"];
5227
+ };
5228
+ };
5229
+ default: {
5230
+ content: {
5231
+ "application/json": components["schemas"]["ErrorResponse"];
5232
+ };
5233
+ };
5234
+ };
5235
+ };
5236
+ /**
5237
+ * Delete an existing user-export request
5238
+ * @description Delete an existing user-export request
5239
+ */
5240
+ userExportDelete: {
5241
+ parameters: {
5242
+ query: {
5243
+ /**
5244
+ * @description The key-id whose export request should be deleted
5245
+ * @example Key#0x3c4d90Cc5Af1644C3A3B013Baa5488997381D7C8
5246
+ */
5247
+ key_id: string;
5248
+ /**
5249
+ * @description The user-id who owns this request. If omitted, defaults to the current user.
5250
+ * Only the org owner may delete user-export requests for another user.
5251
+ * @example User#806c9544-f1fa-4bad-8d4d-1097a1844726
5252
+ */
5253
+ user_id?: string | null;
5254
+ };
5255
+ path: {
5256
+ /**
5257
+ * @description Name or ID of the desired Org
5258
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5259
+ */
5260
+ org_id: string;
5261
+ };
5262
+ };
5263
+ responses: {
5264
+ 200: components["responses"]["EmptyImpl"];
5265
+ default: {
5266
+ content: {
5267
+ "application/json": components["schemas"]["ErrorResponse"];
5268
+ };
5269
+ };
5270
+ };
5271
+ };
5272
+ /**
5273
+ * Complete a user-export request
5274
+ * @description Complete a user-export request
5275
+ *
5276
+ * This endpoint can be called only after initiating a user-export request via
5277
+ * the `user_export_init` API, and only within the subsequent export window
5278
+ * (i.e., after the export delay has passed and before the request has expired).
5279
+ *
5280
+ * To check on the status of an export request, see the `user_export_list` API.
5281
+ */
5282
+ userExportComplete: {
5283
+ parameters: {
5284
+ path: {
5285
+ /**
5286
+ * @description Name or ID of the desired Org
5287
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5288
+ */
5289
+ org_id: string;
5290
+ };
5291
+ };
5292
+ requestBody: {
5293
+ content: {
5294
+ "application/json": components["schemas"]["UserExportCompleteRequest"];
5295
+ };
5296
+ };
5297
+ responses: {
5298
+ 200: components["responses"]["UserExportCompleteResponse"];
5299
+ 202: {
5300
+ content: {
5301
+ "application/json": components["schemas"]["AcceptedResponse"];
5302
+ };
5303
+ };
5304
+ default: {
5305
+ content: {
5306
+ "application/json": components["schemas"]["ErrorResponse"];
5307
+ };
5308
+ };
5309
+ };
5310
+ };
4403
5311
  /**
4404
5312
  * Initiate registration of a FIDO key
4405
5313
  * @description Initiate registration of a FIDO key
@@ -4487,9 +5395,9 @@ export interface operations {
4487
5395
  org_id: string;
4488
5396
  };
4489
5397
  };
4490
- requestBody: {
5398
+ requestBody?: {
4491
5399
  content: {
4492
- "application/json": components["schemas"]["Empty"];
5400
+ "application/json": components["schemas"]["TotpResetRequest"] | null;
4493
5401
  };
4494
5402
  };
4495
5403
  responses: {
@@ -4710,9 +5618,9 @@ export interface operations {
4710
5618
  * otherwise, MFA is required.
4711
5619
  */
4712
5620
  resetTotpInitLegacy: {
4713
- requestBody: {
5621
+ requestBody?: {
4714
5622
  content: {
4715
- "application/json": components["schemas"]["Empty"];
5623
+ "application/json": components["schemas"]["TotpResetRequest"] | null;
4716
5624
  };
4717
5625
  };
4718
5626
  responses: {