@cubist-labs/cubesigner-sdk 0.3.28 → 0.3.29

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 (72) hide show
  1. package/README.md +1 -6
  2. package/dist/cjs/package.json +1 -1
  3. package/dist/cjs/src/api.d.ts +2 -1
  4. package/dist/cjs/src/api.js +4 -2
  5. package/dist/cjs/src/client.d.ts +16 -11
  6. package/dist/cjs/src/client.js +4 -3
  7. package/dist/cjs/src/key.d.ts +3 -0
  8. package/dist/cjs/src/key.js +10 -1
  9. package/dist/cjs/src/org.d.ts +3 -3
  10. package/dist/cjs/src/schema.d.ts +970 -46
  11. package/dist/cjs/src/schema.js +1 -1
  12. package/dist/esm/package.json +1 -1
  13. package/dist/esm/src/api.d.ts +2 -1
  14. package/dist/esm/src/api.js +4 -2
  15. package/dist/esm/src/client.d.ts +16 -11
  16. package/dist/esm/src/client.js +4 -3
  17. package/dist/esm/src/key.d.ts +3 -0
  18. package/dist/esm/src/key.js +10 -1
  19. package/dist/esm/src/org.d.ts +3 -3
  20. package/dist/esm/src/schema.d.ts +970 -46
  21. package/dist/esm/src/schema.js +1 -1
  22. package/package.json +1 -1
  23. package/src/api.ts +7 -1
  24. package/src/client.ts +3 -2
  25. package/src/key.ts +9 -0
  26. package/src/schema.ts +1008 -44
  27. package/dist/cjs/src/org_event_processor.d.ts +0 -57
  28. package/dist/cjs/src/org_event_processor.js +0 -137
  29. package/dist/esm/src/org_event_processor.d.ts +0 -57
  30. package/dist/esm/src/org_event_processor.js +0 -133
  31. package/dist/package.json +0 -36
  32. package/dist/spec/env/beta.json +0 -9
  33. package/dist/spec/env/gamma.json +0 -9
  34. package/dist/spec/env/prod.json +0 -9
  35. package/dist/src/api.d.ts +0 -634
  36. package/dist/src/api.js +0 -1309
  37. package/dist/src/client.d.ts +0 -575
  38. package/dist/src/client.js +0 -381
  39. package/dist/src/env.d.ts +0 -15
  40. package/dist/src/env.js +0 -35
  41. package/dist/src/error.d.ts +0 -29
  42. package/dist/src/error.js +0 -36
  43. package/dist/src/events.d.ts +0 -84
  44. package/dist/src/events.js +0 -195
  45. package/dist/src/index.d.ts +0 -207
  46. package/dist/src/index.js +0 -308
  47. package/dist/src/key.d.ts +0 -152
  48. package/dist/src/key.js +0 -242
  49. package/dist/src/mfa.d.ts +0 -94
  50. package/dist/src/mfa.js +0 -169
  51. package/dist/src/org.d.ts +0 -99
  52. package/dist/src/org.js +0 -95
  53. package/dist/src/paginator.d.ts +0 -76
  54. package/dist/src/paginator.js +0 -99
  55. package/dist/src/response.d.ts +0 -101
  56. package/dist/src/response.js +0 -164
  57. package/dist/src/role.d.ts +0 -283
  58. package/dist/src/role.js +0 -253
  59. package/dist/src/schema.d.ts +0 -6209
  60. package/dist/src/schema.js +0 -7
  61. package/dist/src/schema_types.d.ts +0 -113
  62. package/dist/src/schema_types.js +0 -3
  63. package/dist/src/session/session_storage.d.ts +0 -47
  64. package/dist/src/session/session_storage.js +0 -76
  65. package/dist/src/session/signer_session_manager.d.ts +0 -125
  66. package/dist/src/session/signer_session_manager.js +0 -239
  67. package/dist/src/signer_session.d.ts +0 -41
  68. package/dist/src/signer_session.js +0 -77
  69. package/dist/src/user_export.d.ts +0 -52
  70. package/dist/src/user_export.js +0 -129
  71. package/dist/src/util.d.ts +0 -61
  72. package/dist/src/util.js +0 -97
package/src/schema.ts CHANGED
@@ -38,26 +38,69 @@ export interface paths {
38
38
  */
39
39
  patch: operations["updateOrg"];
40
40
  };
41
+ "/v0/org/{org_id}/ava/sign/{ava_chain}/{pubkey}": {
42
+ /**
43
+ * Sign a serialized Avalanche C/X/P-Chain Message
44
+ * @description Sign a serialized Avalanche C/X/P-Chain Message
45
+ *
46
+ * Signs an Avalanche message with a given SecpEth (C-Chain messages) or
47
+ * SecpAva (X- and P-Chain messages) key. Currently signing C-Chain messages
48
+ * with SecpEth key must also be explicitly allowed via `AllowRawBlobSigning`
49
+ * policy.
50
+ *
51
+ * This is a pre-release feature.
52
+ */
53
+ post: operations["avaSerializedTxSign"];
54
+ };
41
55
  "/v0/org/{org_id}/ava/sign/{pubkey}": {
42
56
  /**
43
- * Sign Avalanche X- or P-Chain Message
44
- * @description Sign Avalanche X- or P-Chain Message
57
+ * Sign JSON-encoded Avalanche X- or P-Chain Message
58
+ * @description Sign JSON-encoded Avalanche X- or P-Chain Message
45
59
  *
46
60
  * Signs an Avalanche message with a given SecpAva key.
47
61
  * This is a pre-release feature.
48
62
  */
49
63
  post: operations["avaSign"];
50
64
  };
65
+ "/v0/org/{org_id}/babylon/eots/nonces/{pubkey}": {
66
+ /**
67
+ * Create EOTS nonces
68
+ * @description Create EOTS nonces
69
+ *
70
+ * Generates a set of Babylon EOTS nonces for a specified chain-id, starting at a
71
+ * specified block height.
72
+ */
73
+ post: operations["createEotsNonces"];
74
+ };
75
+ "/v0/org/{org_id}/babylon/eots/sign/{pubkey}": {
76
+ /**
77
+ * Create an EOTS signature
78
+ * @description Create an EOTS signature
79
+ *
80
+ * Generates an EOTS signature for the specified chain-id, block height, and message.
81
+ */
82
+ post: operations["eotsSign"];
83
+ };
51
84
  "/v0/org/{org_id}/btc/sign/{pubkey}": {
52
85
  /**
53
- * Sign Bitcoin Transaction
54
- * @description Sign Bitcoin Transaction
86
+ * Sign Bitcoin Segwit Transaction
87
+ * @description Sign Bitcoin Segwit Transaction
55
88
  *
56
- * Signs a Bitcoin transaction with a given key.
89
+ * Signs a Bitcoin Segwit transaction with a given key.
57
90
  * This is a pre-release feature.
58
91
  */
59
92
  post: operations["btcSign"];
60
93
  };
94
+ "/v0/org/{org_id}/btc/taproot/sign/{pubkey}": {
95
+ /**
96
+ * Sign Bitcoin Taproot Transaction
97
+ * @description Sign Bitcoin Taproot Transaction
98
+ *
99
+ * Signs a Bitcoin Taproot transaction with a given key.
100
+ * This is a pre-release feature.
101
+ */
102
+ post: operations["btcTaprootSign"];
103
+ };
61
104
  "/v0/org/{org_id}/derive_key": {
62
105
  /**
63
106
  * Derive Key From Long-Lived Mnemonic
@@ -68,6 +111,9 @@ export interface paths {
68
111
  */
69
112
  put: operations["deriveKey"];
70
113
  };
114
+ "/v0/org/{org_id}/emails/otp": {
115
+ put: operations["setEmailOtp"];
116
+ };
71
117
  "/v0/org/{org_id}/evm/eip191/sign/{pubkey}": {
72
118
  /**
73
119
  * Sign EIP-191 Data
@@ -86,6 +132,23 @@ export interface paths {
86
132
  */
87
133
  post: operations["eip712Sign"];
88
134
  };
135
+ "/v0/org/{org_id}/identity": {
136
+ /**
137
+ * List associated OIDC identities with the current user.
138
+ * @description List associated OIDC identities with the current user.
139
+ */
140
+ get: operations["listOidcIdentities"];
141
+ /**
142
+ * Associate an OIDC identity with the current user in org <session.org>.
143
+ * @description Associate an OIDC identity with the current user in org <session.org>.
144
+ */
145
+ post: operations["addOidcIdentity"];
146
+ /**
147
+ * Remove an OIDC identity from the current user's account in org <session.org>.
148
+ * @description Remove an OIDC identity from the current user's account in org <session.org>.
149
+ */
150
+ delete: operations["removeOidcIdentity"];
151
+ };
89
152
  "/v0/org/{org_id}/identity/prove": {
90
153
  /**
91
154
  * Create [IdentityProof] from CubeSigner user session
@@ -181,7 +244,9 @@ export interface paths {
181
244
  * @description Delete Key
182
245
  *
183
246
  * Deletes a key specified by its ID.
247
+ *
184
248
  * Only the key owner and org owners are allowed to delete keys.
249
+ * Additionally, the role's edit policy (if set) must permit the update.
185
250
  */
186
251
  delete: operations["deleteKey"];
187
252
  /**
@@ -300,6 +365,23 @@ export interface paths {
300
365
  */
301
366
  post: operations["oidcAuth"];
302
367
  };
368
+ "/v0/org/{org_id}/oidc/email-otp": {
369
+ /**
370
+ * Initiate login via email token
371
+ * @description Initiate login via email token
372
+ *
373
+ * This endpoint sends an email to the provided address with an OIDC token encrypted with AES-GCM.
374
+ * The decryption parameters are returned immediately in the response.
375
+ * Once that token is decrypted, it can be used with the standard OIDC authentication flows
376
+ *
377
+ *
378
+ * > [!IMPORTANT]
379
+ * > For this endpoint to succeed, the org must be configured to:
380
+ * > 1. Allow the issuer `https://shim.oauth2.cubist.dev/email-otp` and client ID being the Org ID
381
+ * > 2. Have an email sender configured for OTPs
382
+ */
383
+ post: operations["emailOtpAuth"];
384
+ };
303
385
  "/v0/org/{org_id}/roles": {
304
386
  /**
305
387
  * List Roles
@@ -330,7 +412,9 @@ export interface paths {
330
412
  * @description Delete Role
331
413
  *
332
414
  * Deletes a role in an organization.
415
+ *
333
416
  * Only users in the role can perform this action.
417
+ * Additionally, the role's edit policy (if set) must permit the update.
334
418
  */
335
419
  delete: operations["deleteRole"];
336
420
  /**
@@ -339,7 +423,9 @@ export interface paths {
339
423
  *
340
424
  * Enables or disables a role (this requires the `manage:role:update:enable` scope).
341
425
  * Updates the role's policies (this requires the `manage:role:update:policy` scope).
426
+ *
342
427
  * The user must be in the role or an owner of the organization.
428
+ * Additionally, the role's edit policy (if set) must permit the update.
343
429
  */
344
430
  patch: operations["updateRole"];
345
431
  };
@@ -349,6 +435,9 @@ export interface paths {
349
435
  * @description Add Keys
350
436
  *
351
437
  * Adds a list of existing keys to an existing role.
438
+ *
439
+ * Only the key owner can their key to a role.
440
+ * Additionally, the role's edit policy (if set) must permit the update.
352
441
  */
353
442
  put: operations["addKeysToRole"];
354
443
  };
@@ -358,7 +447,9 @@ export interface paths {
358
447
  * @description Add User
359
448
  *
360
449
  * Adds an existing user to an existing role.
361
- * Only users in the role or owners can add users to a role.
450
+ *
451
+ * Only users in the role or org owners can add users to a role.
452
+ * Additionally, the role's edit policy (if set) must permit the update.
362
453
  */
363
454
  put: operations["addUserToRole"];
364
455
  };
@@ -376,7 +467,10 @@ export interface paths {
376
467
  * Remove Key
377
468
  * @description Remove Key
378
469
  *
379
- * Removes a given key from a role
470
+ * Removes a given key from a role.
471
+ *
472
+ * Only users in the role or org owners can remove keys from a role.
473
+ * Additionally, the role's edit policy (if set) must permit the update.
380
474
  */
381
475
  delete: operations["removeKeyFromRole"];
382
476
  };
@@ -440,7 +534,9 @@ export interface paths {
440
534
  * @description Remove User
441
535
  *
442
536
  * Removes an existing user from an existing role.
537
+ *
443
538
  * Only users in the role or org owners can remove users from a role.
539
+ * Additionally, the role's edit policy (if set) must permit the update.
444
540
  */
445
541
  delete: operations["removeUserFromRole"];
446
542
  };
@@ -640,6 +736,22 @@ export interface paths {
640
736
  */
641
737
  delete: operations["deleteOidcUser"];
642
738
  };
739
+ "/v0/org/{org_id}/users/{user_id}": {
740
+ /**
741
+ * Remove a user from the org
742
+ * @description Remove a user from the org
743
+ */
744
+ delete: operations["deleteUser"];
745
+ };
746
+ "/v0/org/{org_id}/users/{user_id}/membership": {
747
+ /**
748
+ * Update a user's membership in the org
749
+ * @description Update a user's membership in the org
750
+ *
751
+ * Currently allows just enabling/disabling a user in the org.
752
+ */
753
+ patch: operations["updateUserMembership"];
754
+ };
643
755
  "/v0/user/me/fido": {
644
756
  /**
645
757
  * Initiate registration of a FIDO key
@@ -694,13 +806,19 @@ export interface paths {
694
806
  */
695
807
  post: operations["verifyTotpLegacy"];
696
808
  };
809
+ "/v0/user/orgs": {
810
+ /**
811
+ * Retrieves all the orgs the user is a part of
812
+ * @description Retrieves all the orgs the user is a part of
813
+ */
814
+ get: operations["userOrgs"];
815
+ };
697
816
  "/v1/org/{org_id}/blob/sign/{key_id}": {
698
817
  /**
699
818
  * Sign Raw Blob
700
819
  * @description Sign Raw Blob
701
820
  *
702
821
  * Signs an arbitrary blob with a given key.
703
- * This is a pre-release feature.
704
822
  *
705
823
  * - ECDSA signatures are serialized as big-endian r and s plus recovery-id
706
824
  * byte v, which can in general take any of the values 0, 1, 2, or 3.
@@ -801,6 +919,10 @@ export interface components {
801
919
  };
802
920
  /** @enum {string} */
803
921
  AcceptedValueCode: "MfaRequired";
922
+ /** @description Request to add OIDC identity to an existing user account */
923
+ AddIdentityRequest: {
924
+ oidc_token: string;
925
+ };
804
926
  AddKeysToRoleRequest: {
805
927
  /**
806
928
  * @description A list of keys to add to a role
@@ -987,7 +1109,12 @@ export interface components {
987
1109
  * @enum {string}
988
1110
  */
989
1111
  AuthenticatorTransport: "usb" | "nfc" | "ble" | "internal";
990
- /** @description Request to sign an Avalanche transactions */
1112
+ /** @description Request to sign a serialized Avalanche transaction */
1113
+ AvaSerializedTxSignRequest: {
1114
+ /** @description Serialized transaction to sign */
1115
+ tx: string;
1116
+ };
1117
+ /** @description Request to sign an Avalanche transaction */
991
1118
  AvaSignRequest: {
992
1119
  /**
993
1120
  * @description Transaction to sign.
@@ -1013,7 +1140,11 @@ export interface components {
1013
1140
  /** @description Wrapper around a zeroizing 32-byte fixed-size array */
1014
1141
  B32: string;
1015
1142
  /** @enum {string} */
1016
- BadGatewayErrorCode: "OAuthProviderError";
1143
+ BadGatewayErrorCode:
1144
+ | "OAuthProviderError"
1145
+ | "OidcDisoveryFailed"
1146
+ | "OidcIssuerJwkEndpointUnavailable"
1147
+ | "SmtpServerUnavailable";
1017
1148
  /** @enum {string} */
1018
1149
  BadRequestErrorCode:
1019
1150
  | "GenericBadRequest"
@@ -1030,12 +1161,14 @@ export interface components {
1030
1161
  | "RoleNameTaken"
1031
1162
  | "AddKeyToRoleCountTooHigh"
1032
1163
  | "InvalidKeyId"
1164
+ | "InvalidTimeLockAlreadyInThePast"
1033
1165
  | "InvalidUpdate"
1034
1166
  | "InvalidMetadataLength"
1035
1167
  | "InvalidKeyMaterialId"
1036
1168
  | "KeyNotFound"
1037
1169
  | "UserExportDerivedKey"
1038
1170
  | "UserExportPublicKeyInvalid"
1171
+ | "UnableToAccessSmtpRelay"
1039
1172
  | "UserExportInProgress"
1040
1173
  | "RoleNotFound"
1041
1174
  | "InvalidMfaReceiptOrgIdMissing"
@@ -1074,14 +1207,19 @@ export interface components {
1074
1207
  | "AvaSignHashError"
1075
1208
  | "AvaSignError"
1076
1209
  | "BtcSegwitHashError"
1210
+ | "BtcTaprootHashError"
1077
1211
  | "BtcSignError"
1212
+ | "TaprootSignError"
1078
1213
  | "Eip712SignError"
1079
1214
  | "InvalidMemberRoleInUserAdd"
1080
1215
  | "ThirdPartyUserAlreadyExists"
1216
+ | "OidcIdentityAlreadyExists"
1081
1217
  | "ThirdPartyUserNotFound"
1082
1218
  | "DeleteOidcUserError"
1219
+ | "DeleteUserError"
1083
1220
  | "SessionRoleMismatch"
1084
1221
  | "InvalidOidcToken"
1222
+ | "InvalidOidcIdentity"
1085
1223
  | "OidcIssuerUnsupported"
1086
1224
  | "OidcIssuerNotAllowed"
1087
1225
  | "OidcIssuerNoApplicableJwk"
@@ -1102,7 +1240,8 @@ export interface components {
1102
1240
  | "CannotDeletePendingSubscription"
1103
1241
  | "InvalidNotificationUrlProtocol"
1104
1242
  | "EmptyOneOfOrgEventFilter"
1105
- | "EmptyAllExceptOrgEventFilter";
1243
+ | "EmptyAllExceptOrgEventFilter"
1244
+ | "InvalidTapNodeHash";
1106
1245
  /**
1107
1246
  * @example {
1108
1247
  * "message_base64": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTYK"
@@ -1116,11 +1255,32 @@ export interface components {
1116
1255
  * the message. For example, Secp256k1 keys require that the message is 32 bytes long.
1117
1256
  */
1118
1257
  message_base64: string;
1258
+ /**
1259
+ * @description An optional tweak value for use *only* with Taproot keys. This field is ignored
1260
+ * for all other key types.
1261
+ *
1262
+ * If this field is not present or null, no tweak is applied. If the field is an
1263
+ * empty string, the key is tweaked with an unspendable script path per BIP0341.
1264
+ * Otherwise, this field must contain a 32-byte, base-64 encoded hex string
1265
+ * representing the Merkle root with which to tweak the key before signing.
1266
+ * @example F41HAy2q5Gn8laF2CuMsZbRAQTmD+4Ob3VUMZ7TBGK4=
1267
+ */
1268
+ taproot_tweak?: string | null;
1119
1269
  };
1120
1270
  BlobSignResponse: {
1121
1271
  /** @description The hex-encoded signature. */
1122
1272
  signature: string;
1123
1273
  };
1274
+ /** @description Leaf hash and code, as per BIP341 and https://github.com/rust-bitcoin/rust-bitcoin/blob/464202109d2b2c96e9b4867461bffe420dbd8177/bitcoin/src/crypto/sighash.rs#L691 */
1275
+ BtcLeafHashCodeSeparator: {
1276
+ /**
1277
+ * Format: int32
1278
+ * @description Code separator
1279
+ */
1280
+ code_separator: number;
1281
+ /** @description Taproot-tagged hash with tag "TapLeaf". */
1282
+ leaf_hash: string;
1283
+ };
1124
1284
  /** @enum {string} */
1125
1285
  BtcSighashType:
1126
1286
  | "All"
@@ -1131,8 +1291,7 @@ export interface components {
1131
1291
  | "SinglePlusAnyoneCanPay";
1132
1292
  BtcSignRequest: {
1133
1293
  sig_kind: components["schemas"]["BtcSignatureKind"];
1134
- /** @description The bitcoin transaction to sign */
1135
- tx: Record<string, never>;
1294
+ tx: components["schemas"]["BtcTx"];
1136
1295
  };
1137
1296
  BtcSignResponse: {
1138
1297
  /**
@@ -1163,6 +1322,16 @@ export interface components {
1163
1322
  value: number;
1164
1323
  };
1165
1324
  };
1325
+ BtcTx: Record<string, never>;
1326
+ BtcTxOut: {
1327
+ /** @description The script which must be satisfied for the output to be spent. */
1328
+ script_pubkey: string;
1329
+ /**
1330
+ * Format: int64
1331
+ * @description The value of the output, in satoshis.
1332
+ */
1333
+ value: number;
1334
+ };
1166
1335
  /** @description Describes how to derive a WebAuthn challenge value. */
1167
1336
  ChallengePieces: {
1168
1337
  /**
@@ -1199,6 +1368,7 @@ export interface components {
1199
1368
  /** @description Fields that are common to different types of resources such as keys */
1200
1369
  CommonFields: {
1201
1370
  created?: components["schemas"]["EpochDateTime"] | null;
1371
+ edit_policy?: components["schemas"]["EditPolicy"];
1202
1372
  last_modified?: components["schemas"]["EpochDateTime"] | null;
1203
1373
  /**
1204
1374
  * @description User-defined metadata. When rendering (e.g., in the browser) you should treat
@@ -1212,6 +1382,13 @@ export interface components {
1212
1382
  */
1213
1383
  version?: number;
1214
1384
  };
1385
+ ConfigureEmailOtpRequest: {
1386
+ auth: {
1387
+ smtp: string;
1388
+ };
1389
+ /** @description The email address that OTP requests will come from */
1390
+ sender: string;
1391
+ };
1215
1392
  ConfiguredMfa:
1216
1393
  | {
1217
1394
  /** @enum {string} */
@@ -1226,6 +1403,7 @@ export interface components {
1226
1403
  type: "fido";
1227
1404
  };
1228
1405
  CreateAndUpdateKeyProperties: {
1406
+ edit_policy?: components["schemas"]["EditPolicy"] | null;
1229
1407
  /**
1230
1408
  * @description Set this key's metadata. If this value is `null`, the metadata is erased. If the field is
1231
1409
  * missing, the metadata remains unchanged.
@@ -1394,6 +1572,10 @@ export interface components {
1394
1572
  */
1395
1573
  mnemonic_id: string;
1396
1574
  };
1575
+ EditPolicy: {
1576
+ mfa?: components["schemas"]["MfaPolicy"] | null;
1577
+ time_lock_until?: components["schemas"]["EpochDateTime"] | null;
1578
+ };
1397
1579
  Eip191Or712SignResponse: {
1398
1580
  /**
1399
1581
  * @description Hex-encoded signature comprising 65 bytes in the format required
@@ -1417,6 +1599,7 @@ export interface components {
1417
1599
  * "domain": {
1418
1600
  * "chainId": 1337,
1419
1601
  * "name": "Ether Mail",
1602
+ * "salt": "0x0000000000000000000000000000000000000000000000000000000000000000",
1420
1603
  * "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC",
1421
1604
  * "version": "1"
1422
1605
  * },
@@ -1456,6 +1639,10 @@ export interface components {
1456
1639
  * {
1457
1640
  * "name": "verifyingContract",
1458
1641
  * "type": "address"
1642
+ * },
1643
+ * {
1644
+ * "name": "salt",
1645
+ * "type": "bytes32"
1459
1646
  * }
1460
1647
  * ],
1461
1648
  * "Group": [
@@ -1505,11 +1692,95 @@ export interface components {
1505
1692
  /** @description EIP-712 typed data. Refer to the JSON schema defined in EIP-712. */
1506
1693
  typed_data: Record<string, never>;
1507
1694
  };
1695
+ /** @description The request users send to initiate email OTP */
1696
+ EmailOtpRequest: {
1697
+ /** @description The email which will receive the OTP */
1698
+ email: string;
1699
+ };
1700
+ /**
1701
+ * @description The HTTP response to an email OTP request.
1702
+ *
1703
+ * Users receive an encrypted OIDC token in their email inbox.
1704
+ * The values in this response can be used to decrypt that token
1705
+ * using AES-GCM. This ensures that clients need *both* the emailed token
1706
+ * and this response to complete OTP auth.
1707
+ */
1708
+ EmailOtpResponse: {
1709
+ /**
1710
+ * Format: binary
1711
+ * @description Base64 URL encoded IV value for AES-GCM
1712
+ */
1713
+ iv: string;
1714
+ /**
1715
+ * Format: binary
1716
+ * @description Base64 URL encoded key for AES-GCM
1717
+ */
1718
+ key: string;
1719
+ };
1508
1720
  /** @default null */
1509
1721
  Empty: unknown;
1510
1722
  EmptyImpl: {
1511
1723
  status: string;
1512
1724
  };
1725
+ /**
1726
+ * @description Request to create a set of EOTS nonces for a specified chain-id, starting
1727
+ * at a specified block height.
1728
+ */
1729
+ EotsCreateNonceRequest: {
1730
+ /**
1731
+ * @description The chain id for which the nonces will be used, as a hex string
1732
+ * @example 0x11223344
1733
+ */
1734
+ chain_id: string;
1735
+ /**
1736
+ * Format: int32
1737
+ * @description The number of nonces to generate
1738
+ * @example 16
1739
+ */
1740
+ num: number;
1741
+ /**
1742
+ * @description The starting block height of the generated nonces (quoted decimal u64)
1743
+ * @example 31337
1744
+ */
1745
+ start_height: string;
1746
+ };
1747
+ /** @description Response generated when creating EOTS nonces */
1748
+ EotsCreateNonceResponse: {
1749
+ /**
1750
+ * @description The generated nonces as an array of 0x-prefixed hex strings
1751
+ * @example [
1752
+ * "0xb393bf39e71a16d784853d58255a296222a99fd3c87aa7ca206c5230c188f1c7",
1753
+ * "0xe01936584b4f0c0e97f0d3018c4f9db2bf7de41395c6403a48fd0dff0ef7b40d"
1754
+ * ]
1755
+ */
1756
+ nonces: string[];
1757
+ };
1758
+ /** @description Request for an EOTS signature on a specified message, chain-id, block-height triple */
1759
+ EotsSignRequest: {
1760
+ /**
1761
+ * @description The block height for the signature (quoted decimal u64)
1762
+ * @example 123456
1763
+ */
1764
+ block_height: string;
1765
+ /**
1766
+ * @description The chain id for the signature
1767
+ * @example 0x11223344
1768
+ */
1769
+ chain_id: string;
1770
+ /**
1771
+ * @description The message to sign
1772
+ * @example 0x5a2688faea09d42b9270fdb8de6fff6f192243a910ba66329073e12e0d0046a2
1773
+ */
1774
+ message: string;
1775
+ };
1776
+ /** @description Response to an EOTS signing request */
1777
+ EotsSignResponse: {
1778
+ /**
1779
+ * @description The resulting signature, a hex-encoded 32-byte value
1780
+ * @example 0xd9804c04a696b522472c53bd3a3c664c4c3085a017927e45ffaed711d1613700
1781
+ */
1782
+ signature: string;
1783
+ };
1513
1784
  /**
1514
1785
  * @description Epoch is a quoted `uint64`.
1515
1786
  * @example 256
@@ -1662,10 +1933,15 @@ export interface components {
1662
1933
  /** @enum {string} */
1663
1934
  ForbiddenErrorCode:
1664
1935
  | "FidoRequiredToRemoveTotp"
1936
+ | "EmailOtpNotConfigured"
1665
1937
  | "MfaChallengeExpired"
1666
1938
  | "ChainIdNotAllowed"
1667
1939
  | "InvalidOrg"
1668
1940
  | "SessionForWrongOrg"
1941
+ | "SelfDelete"
1942
+ | "SelfDisable"
1943
+ | "UserHasNoMfa"
1944
+ | "UserDisabled"
1669
1945
  | "OrgDisabled"
1670
1946
  | "OrgNotFound"
1671
1947
  | "OrgWithoutOwner"
@@ -1836,6 +2112,7 @@ export interface components {
1836
2112
  /** @description HTTP path of the request (including host or not?) */
1837
2113
  path: string;
1838
2114
  };
2115
+ Id: string;
1839
2116
  /**
1840
2117
  * @description Proof that an end-user provided CubeSigner with a valid auth token
1841
2118
  * (either an OIDC token or a CubeSigner session token)
@@ -1890,6 +2167,7 @@ export interface components {
1890
2167
  InternalErrorCode:
1891
2168
  | "SystemTimeError"
1892
2169
  | "ReqwestError"
2170
+ | "EmailConstructionError"
1893
2171
  | "DbQueryError"
1894
2172
  | "DbGetError"
1895
2173
  | "DbDeleteError"
@@ -1908,6 +2186,8 @@ export interface components {
1908
2186
  | "ParseDerivationPathError"
1909
2187
  | "SplitSignerError"
1910
2188
  | "CreateImportKeyError"
2189
+ | "CreateEotsNoncesError"
2190
+ | "EotsSignError"
1911
2191
  | "CognitoDeleteUserError"
1912
2192
  | "CognitoListUsersError"
1913
2193
  | "CognitoGetUserError"
@@ -1931,7 +2211,6 @@ export interface components {
1931
2211
  | "RequestLocalStateAlreadySet"
1932
2212
  | "OidcOrgMismatch"
1933
2213
  | "OrphanedRoleKeyId"
1934
- | "OidcIssuerJwkEndpointUnavailable"
1935
2214
  | "OidcIssuerInvalidJwk"
1936
2215
  | "InvalidPkForMaterialId"
1937
2216
  | "UncheckedOrg"
@@ -1945,7 +2224,8 @@ export interface components {
1945
2224
  | "SnsGetSubscriptionAttributesError"
1946
2225
  | "SnsSubscriptionAttributesMissing"
1947
2226
  | "SnsSetSubscriptionAttributesError"
1948
- | "SnsPublishBatchError";
2227
+ | "SnsPublishBatchError"
2228
+ | "InconsistentMultiValueTestAndSet";
1949
2229
  InviteRequest: {
1950
2230
  /**
1951
2231
  * @description The user's email address
@@ -2176,7 +2456,10 @@ export interface components {
2176
2456
  | "Ed25519CardanoAddrVk"
2177
2457
  | "Ed25519StellarAddr"
2178
2458
  | "Mnemonic"
2179
- | "Stark";
2459
+ | "Stark"
2460
+ | "BabylonEots"
2461
+ | "TaprootBtc"
2462
+ | "TaprootBtcTest";
2180
2463
  /**
2181
2464
  * @description Wrapper around encrypted [UnencryptedLastEvalKey] bytes.
2182
2465
  *
@@ -2184,6 +2467,10 @@ export interface components {
2184
2467
  * so that they can pass this back to us as a url query parameter.
2185
2468
  */
2186
2469
  LastEvalKey: string;
2470
+ /** @description Third-party identities associated with the user's account */
2471
+ ListIdentitiesResponse: {
2472
+ identities: components["schemas"]["OIDCIdentity"][];
2473
+ };
2187
2474
  ListMfaResponse: {
2188
2475
  /** @description All pending MFA requests */
2189
2476
  mfa_requests: components["schemas"]["MfaRequestInfo"][];
@@ -2196,6 +2483,40 @@ export interface components {
2196
2483
  * @enum {string}
2197
2484
  */
2198
2485
  MemberRole: "Alien" | "Member" | "Owner";
2486
+ /** @enum {string} */
2487
+ MembershipStatus: "enabled" | "disabled";
2488
+ /**
2489
+ * @example {
2490
+ * "allowed_approvers": [
2491
+ * "User#fabc3f88-04e0-471b-9657-0ae12a3cd73e",
2492
+ * "User#d796c369-9974-473b-ab9e-e4a2418d2d07"
2493
+ * ],
2494
+ * "count": 2,
2495
+ * "lifetime": 900
2496
+ * }
2497
+ */
2498
+ MfaPolicy: {
2499
+ /** @description Users who are allowed to approve. If empty at creation time, default to the current user. */
2500
+ allowed_approvers?: string[];
2501
+ /** @description Allowed approval types. When omitted, defaults to any. */
2502
+ allowed_mfa_types?: components["schemas"]["MfaType"][] | null;
2503
+ /**
2504
+ * Format: int32
2505
+ * @description How many users to require to approve (defaults to 1).
2506
+ */
2507
+ count?: number;
2508
+ lifetime?: components["schemas"]["Seconds"];
2509
+ /**
2510
+ * Format: int32
2511
+ * @description How many auth factors to require per user (defaults to 1).
2512
+ */
2513
+ num_auth_factors?: number;
2514
+ /**
2515
+ * @description CubeSigner operations to which this policy should apply.
2516
+ * When omitted, applies to all operations.
2517
+ */
2518
+ restricted_operations?: components["schemas"]["OperationKind"][] | null;
2519
+ };
2199
2520
  /** @description Returned as a response from multiple routes (e.g., 'get mfa', 'approve mfa', 'approve totp'). */
2200
2521
  MfaRequestInfo: {
2201
2522
  expires_at: components["schemas"]["EpochDateTime"];
@@ -2245,6 +2566,8 @@ export interface components {
2245
2566
  */
2246
2567
  token: string;
2247
2568
  };
2569
+ /** Format: binary */
2570
+ NonceValue: string;
2248
2571
  /** @enum {string} */
2249
2572
  NotFoundErrorCode:
2250
2573
  | "UriSegmentMissing"
@@ -2279,7 +2602,7 @@ export interface components {
2279
2602
  */
2280
2603
  OIDCIdentity: {
2281
2604
  /**
2282
- * @description The root-level issuer who administrates this user. Frome the OIDC spec:
2605
+ * @description The root-level issuer who administrates this user. From the OIDC spec:
2283
2606
  * Issuer Identifier for the Issuer of the response. The iss
2284
2607
  * value is a case sensitive URL using the https scheme that contains
2285
2608
  * scheme, host, and optionally, port number and path components and
@@ -2311,6 +2634,37 @@ export interface components {
2311
2634
  scopes: string[];
2312
2635
  tokens?: components["schemas"]["RatchetConfig"];
2313
2636
  };
2637
+ /**
2638
+ * @description All different kinds of sensitive operations
2639
+ * @enum {string}
2640
+ */
2641
+ OperationKind:
2642
+ | "AvaSign"
2643
+ | "AvaChainTxSign"
2644
+ | "BlobSign"
2645
+ | "BtcSign"
2646
+ | "TaprootSign"
2647
+ | "Eip191Sign"
2648
+ | "Eip712Sign"
2649
+ | "EotsNonces"
2650
+ | "EotsSign"
2651
+ | "Eth1Sign"
2652
+ | "Eth2Sign"
2653
+ | "Eth2Stake"
2654
+ | "Eth2Unstake"
2655
+ | "SolanaSign";
2656
+ OrgData: {
2657
+ /**
2658
+ * @description The id of the org
2659
+ * @example Org#123...
2660
+ */
2661
+ org_id: string;
2662
+ /**
2663
+ * @description The human-readable name for the org
2664
+ * @example my_org_name
2665
+ */
2666
+ org_name?: string | null;
2667
+ };
2314
2668
  /**
2315
2669
  * @description Auto-generated discriminant enum variants
2316
2670
  * @enum {string}
@@ -2578,7 +2932,8 @@ export interface components {
2578
2932
  | "KeysAlreadyInRole"
2579
2933
  | "KeyInMultipleRoles"
2580
2934
  | "KeyAccessError"
2581
- | "Eip191SigningNotAllowed";
2935
+ | "Eip191SigningNotAllowed"
2936
+ | "TimeLocked";
2582
2937
  PreconditionErrorCode:
2583
2938
  | components["schemas"]["PreconditionErrorOwnCodes"]
2584
2939
  | components["schemas"]["PolicyErrorCode"];
@@ -2592,6 +2947,30 @@ export interface components {
2592
2947
  | "Eth2MultiDepositToNonGeneratedKey"
2593
2948
  | "Eth2MultiDepositUnknownInitialDeposit"
2594
2949
  | "Eth2MultiDepositWithdrawalAddressMismatch";
2950
+ /** @description Contains outputs of previous transactions. */
2951
+ PrevOutputs: OneOf<
2952
+ [
2953
+ {
2954
+ /**
2955
+ * @description `One` variant allows provision of the single previous output needed. It's useful,
2956
+ * for example, when modifier `SIGHASH_ANYONECANPAY` is provided, only previous output
2957
+ * of the current input is needed. The first `index` argument is the input index
2958
+ * this output is referring to.
2959
+ */
2960
+ One: {
2961
+ index: number;
2962
+ tx_out: components["schemas"]["BtcTxOut"];
2963
+ };
2964
+ },
2965
+ {
2966
+ /**
2967
+ * @description When `SIGHASH_ANYONECANPAY` is not provided, or when the caller is giving all
2968
+ * previous outputs so the same variable can be used for multiple inputs.
2969
+ */
2970
+ All: components["schemas"]["BtcTxOut"][];
2971
+ },
2972
+ ]
2973
+ >;
2595
2974
  /**
2596
2975
  * @description This type represents a wire-encodable form of the PublicKeyCredential interface
2597
2976
  * Clients may need to manually encode into this format to communicate with the server
@@ -2955,7 +3334,7 @@ export interface components {
2955
3334
  /** @description Tokens that were revoked. */
2956
3335
  revoked: components["schemas"]["TokenInfo"][];
2957
3336
  };
2958
- RoleInfo: {
3337
+ RoleInfo: components["schemas"]["CommonFields"] & {
2959
3338
  /**
2960
3339
  * @description Whether the role is enabled
2961
3340
  * @example true
@@ -3103,6 +3482,49 @@ export interface components {
3103
3482
  * @enum {string}
3104
3483
  */
3105
3484
  SubscriptionStatus: "Confirmed" | "Pending";
3485
+ TaprootSignRequest: {
3486
+ sig_kind: components["schemas"]["TaprootSignatureKind"];
3487
+ tx: components["schemas"]["BtcTx"];
3488
+ };
3489
+ TaprootSignResponse: {
3490
+ /**
3491
+ * @description The 64-byte signature, encoded as defined in BIP0340.
3492
+ * @example 0x14110b79e65f90f70cd3ff5adf29bed9c9fcc035772240990fb51d25a10c9667669bba0c3b335163f65d1b9d8569cf22dd8210084cd24d83cc4bb396d979e10d
3493
+ */
3494
+ signature: string;
3495
+ };
3496
+ TaprootSignatureKind: {
3497
+ /** @description Optional annex, as per BIP341 */
3498
+ annex?: string | null;
3499
+ /**
3500
+ * @description Transaction input index
3501
+ * @example 0
3502
+ */
3503
+ input_index: number;
3504
+ leaf_hash_code_separator?: components["schemas"]["BtcLeafHashCodeSeparator"] | null;
3505
+ /**
3506
+ * @description If this field is not present or null, no tweak is applied. If the field is an
3507
+ * empty string, the key is tweaked with an unspendable script path per BIP0341.
3508
+ * Otherwise, this field must contain a 32-byte, base-64 encoded hex string
3509
+ * representing the Merkle root with which to tweak the key before signing.
3510
+ * @example F41HAy2q5Gn8laF2CuMsZbRAQTmD+4Ob3VUMZ7TBGK4=
3511
+ */
3512
+ merkle_root?: string | null;
3513
+ prevouts: components["schemas"]["PrevOutputs"];
3514
+ /**
3515
+ * @description Hash type of an input's signature, encoded in the last byte of the signature.
3516
+ * Possible values:
3517
+ * - SIGHASH_ALL
3518
+ * - SIGHASH_ALL|SIGHASH_ANYONECANPAY
3519
+ * - SIGHASH_DEFAULT
3520
+ * - SIGHASH_NONE
3521
+ * - SIGHASH_NONE|SIGHASH_ANYONECANPAY
3522
+ * - SIGHASH_SINGLE
3523
+ * - SIGHASH_SINGLE|SIGHASH_ANYONECANPAY
3524
+ * @example SIGHASH_ALL
3525
+ */
3526
+ sighash_type: string;
3527
+ };
3106
3528
  TokenInfo: {
3107
3529
  /** @description Session ID. Use it to revoke a session. Cannot be used for auth. */
3108
3530
  hash: string;
@@ -3375,6 +3797,7 @@ export interface components {
3375
3797
  user_export_window?: number | null;
3376
3798
  };
3377
3799
  UpdateRoleRequest: {
3800
+ edit_policy?: components["schemas"]["EditPolicy"] | null;
3378
3801
  /**
3379
3802
  * @description If set, updates the role's `enabled` property to this value.
3380
3803
  * Once disabled, a role cannot be used; and it's tokens cannot be used for signing.
@@ -3393,6 +3816,11 @@ export interface components {
3393
3816
  */
3394
3817
  policy?: Record<string, never>[] | null;
3395
3818
  };
3819
+ /** @description Request to update an existing user */
3820
+ UpdateUserMembershipRequest: {
3821
+ /** @description Enable or disable user */
3822
+ disabled?: boolean | null;
3823
+ };
3396
3824
  /** @description A request to complete a user export */
3397
3825
  UserExportCompleteRequest: {
3398
3826
  /**
@@ -3500,6 +3928,7 @@ export interface components {
3500
3928
  membership: components["schemas"]["MemberRole"];
3501
3929
  /** @description Optional user name. */
3502
3930
  name?: string | null;
3931
+ status: components["schemas"]["MembershipStatus"];
3503
3932
  };
3504
3933
  /**
3505
3934
  * @description Information about a user's membership in an organization
@@ -3512,6 +3941,7 @@ export interface components {
3512
3941
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3513
3942
  */
3514
3943
  org_id: string;
3944
+ status: components["schemas"]["MembershipStatus"];
3515
3945
  };
3516
3946
  UserInRoleInfo: {
3517
3947
  user_id: string;
@@ -3547,6 +3977,11 @@ export interface components {
3547
3977
  */
3548
3978
  user_id: string;
3549
3979
  };
3980
+ /** @description The response to the user/orgs endpoint */
3981
+ UserOrgsResponse: {
3982
+ /** @description The list of orgs this user is a member of */
3983
+ orgs: components["schemas"]["OrgData"][];
3984
+ };
3550
3985
  /**
3551
3986
  * @description A WebAuthn Relying Party may require user verification for some of its
3552
3987
  * operations but not for others, and may use this type to express its needs.
@@ -3659,6 +4094,30 @@ export interface components {
3659
4094
  };
3660
4095
  };
3661
4096
  };
4097
+ /**
4098
+ * @description The HTTP response to an email OTP request.
4099
+ *
4100
+ * Users receive an encrypted OIDC token in their email inbox.
4101
+ * The values in this response can be used to decrypt that token
4102
+ * using AES-GCM. This ensures that clients need *both* the emailed token
4103
+ * and this response to complete OTP auth.
4104
+ */
4105
+ EmailOtpResponse: {
4106
+ content: {
4107
+ "application/json": {
4108
+ /**
4109
+ * Format: binary
4110
+ * @description Base64 URL encoded IV value for AES-GCM
4111
+ */
4112
+ iv: string;
4113
+ /**
4114
+ * Format: binary
4115
+ * @description Base64 URL encoded key for AES-GCM
4116
+ */
4117
+ key: string;
4118
+ };
4119
+ };
4120
+ };
3662
4121
  EmptyImpl: {
3663
4122
  content: {
3664
4123
  "application/json": {
@@ -3666,6 +4125,33 @@ export interface components {
3666
4125
  };
3667
4126
  };
3668
4127
  };
4128
+ /** @description Response generated when creating EOTS nonces */
4129
+ EotsCreateNonceResponse: {
4130
+ content: {
4131
+ "application/json": {
4132
+ /**
4133
+ * @description The generated nonces as an array of 0x-prefixed hex strings
4134
+ * @example [
4135
+ * "0xb393bf39e71a16d784853d58255a296222a99fd3c87aa7ca206c5230c188f1c7",
4136
+ * "0xe01936584b4f0c0e97f0d3018c4f9db2bf7de41395c6403a48fd0dff0ef7b40d"
4137
+ * ]
4138
+ */
4139
+ nonces: string[];
4140
+ };
4141
+ };
4142
+ };
4143
+ /** @description Response to an EOTS signing request */
4144
+ EotsSignResponse: {
4145
+ content: {
4146
+ "application/json": {
4147
+ /**
4148
+ * @description The resulting signature, a hex-encoded 32-byte value
4149
+ * @example 0xd9804c04a696b522472c53bd3a3c664c4c3085a017927e45ffaed711d1613700
4150
+ */
4151
+ signature: string;
4152
+ };
4153
+ };
4154
+ };
3669
4155
  Eth1SignResponse: {
3670
4156
  content: {
3671
4157
  "application/json": {
@@ -3843,6 +4329,14 @@ export interface components {
3843
4329
  };
3844
4330
  };
3845
4331
  };
4332
+ /** @description Third-party identities associated with the user's account */
4333
+ ListIdentitiesResponse: {
4334
+ content: {
4335
+ "application/json": {
4336
+ identities: components["schemas"]["OIDCIdentity"][];
4337
+ };
4338
+ };
4339
+ };
3846
4340
  ListMfaResponse: {
3847
4341
  content: {
3848
4342
  "application/json": {
@@ -4106,7 +4600,7 @@ export interface components {
4106
4600
  };
4107
4601
  RoleInfo: {
4108
4602
  content: {
4109
- "application/json": {
4603
+ "application/json": components["schemas"]["CommonFields"] & {
4110
4604
  /**
4111
4605
  * @description Whether the role is enabled
4112
4606
  * @example true
@@ -4190,6 +4684,17 @@ export interface components {
4190
4684
  };
4191
4685
  };
4192
4686
  };
4687
+ TaprootSignResponse: {
4688
+ content: {
4689
+ "application/json": {
4690
+ /**
4691
+ * @description The 64-byte signature, encoded as defined in BIP0340.
4692
+ * @example 0x14110b79e65f90f70cd3ff5adf29bed9c9fcc035772240990fb51d25a10c9667669bba0c3b335163f65d1b9d8569cf22dd8210084cd24d83cc4bb396d979e10d
4693
+ */
4694
+ signature: string;
4695
+ };
4696
+ };
4697
+ };
4193
4698
  TokenInfo: {
4194
4699
  content: {
4195
4700
  "application/json": {
@@ -4345,6 +4850,26 @@ export interface components {
4345
4850
  };
4346
4851
  };
4347
4852
  };
4853
+ UserInOrgInfo: {
4854
+ content: {
4855
+ "application/json": {
4856
+ /**
4857
+ * @description The user's email (optional)
4858
+ * @example alice@example.com
4859
+ */
4860
+ email?: string | null;
4861
+ /**
4862
+ * @description The id of the user
4863
+ * @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
4864
+ */
4865
+ id: string;
4866
+ membership: components["schemas"]["MemberRole"];
4867
+ /** @description Optional user name. */
4868
+ name?: string | null;
4869
+ status: components["schemas"]["MembershipStatus"];
4870
+ };
4871
+ };
4872
+ };
4348
4873
  UserInfo: {
4349
4874
  content: {
4350
4875
  "application/json": {
@@ -4380,6 +4905,15 @@ export interface components {
4380
4905
  };
4381
4906
  };
4382
4907
  };
4908
+ /** @description The response to the user/orgs endpoint */
4909
+ UserOrgsResponse: {
4910
+ content: {
4911
+ "application/json": {
4912
+ /** @description The list of orgs this user is a member of */
4913
+ orgs: components["schemas"]["OrgData"][];
4914
+ };
4915
+ };
4916
+ };
4383
4917
  };
4384
4918
  parameters: never;
4385
4919
  requestBodies: never;
@@ -4464,13 +4998,17 @@ export interface operations {
4464
4998
  };
4465
4999
  };
4466
5000
  /**
4467
- * Sign Avalanche X- or P-Chain Message
4468
- * @description Sign Avalanche X- or P-Chain Message
5001
+ * Sign a serialized Avalanche C/X/P-Chain Message
5002
+ * @description Sign a serialized Avalanche C/X/P-Chain Message
5003
+ *
5004
+ * Signs an Avalanche message with a given SecpEth (C-Chain messages) or
5005
+ * SecpAva (X- and P-Chain messages) key. Currently signing C-Chain messages
5006
+ * with SecpEth key must also be explicitly allowed via `AllowRawBlobSigning`
5007
+ * policy.
4469
5008
  *
4470
- * Signs an Avalanche message with a given SecpAva key.
4471
5009
  * This is a pre-release feature.
4472
5010
  */
4473
- avaSign: {
5011
+ avaSerializedTxSign: {
4474
5012
  parameters: {
4475
5013
  path: {
4476
5014
  /**
@@ -4479,15 +5017,20 @@ export interface operations {
4479
5017
  */
4480
5018
  org_id: string;
4481
5019
  /**
4482
- * @description Avalanche bech32 address format without the chain prefix
4483
- * @example avax1am4w6hfrvmh3akduzkjthrtgtqafalce6an8cr
5020
+ * @description Avalanche chain
5021
+ * @example P
5022
+ */
5023
+ ava_chain: string;
5024
+ /**
5025
+ * @description Avalanche address in bech32 or ETH format
5026
+ * @example 0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7
4484
5027
  */
4485
5028
  pubkey: string;
4486
5029
  };
4487
5030
  };
4488
5031
  requestBody: {
4489
5032
  content: {
4490
- "application/json": components["schemas"]["AvaSignRequest"];
5033
+ "application/json": components["schemas"]["AvaSerializedTxSignRequest"];
4491
5034
  };
4492
5035
  };
4493
5036
  responses: {
@@ -4505,13 +5048,13 @@ export interface operations {
4505
5048
  };
4506
5049
  };
4507
5050
  /**
4508
- * Sign Bitcoin Transaction
4509
- * @description Sign Bitcoin Transaction
5051
+ * Sign JSON-encoded Avalanche X- or P-Chain Message
5052
+ * @description Sign JSON-encoded Avalanche X- or P-Chain Message
4510
5053
  *
4511
- * Signs a Bitcoin transaction with a given key.
5054
+ * Signs an Avalanche message with a given SecpAva key.
4512
5055
  * This is a pre-release feature.
4513
5056
  */
4514
- btcSign: {
5057
+ avaSign: {
4515
5058
  parameters: {
4516
5059
  path: {
4517
5060
  /**
@@ -4520,19 +5063,19 @@ export interface operations {
4520
5063
  */
4521
5064
  org_id: string;
4522
5065
  /**
4523
- * @description bech32 encoding of the public key
4524
- * @example bc1q5p5qkae77ly80kr4pyfytdqm7rf08ddhdejl9g
5066
+ * @description Avalanche bech32 address format without the chain prefix
5067
+ * @example avax1am4w6hfrvmh3akduzkjthrtgtqafalce6an8cr
4525
5068
  */
4526
5069
  pubkey: string;
4527
5070
  };
4528
5071
  };
4529
5072
  requestBody: {
4530
5073
  content: {
4531
- "application/json": components["schemas"]["BtcSignRequest"];
5074
+ "application/json": components["schemas"]["AvaSignRequest"];
4532
5075
  };
4533
5076
  };
4534
5077
  responses: {
4535
- 200: components["responses"]["BtcSignResponse"];
5078
+ 200: components["responses"]["AvaSignResponse"];
4536
5079
  202: {
4537
5080
  content: {
4538
5081
  "application/json": components["schemas"]["AcceptedResponse"];
@@ -4546,13 +5089,13 @@ export interface operations {
4546
5089
  };
4547
5090
  };
4548
5091
  /**
4549
- * Derive Key From Long-Lived Mnemonic
4550
- * @description Derive Key From Long-Lived Mnemonic
5092
+ * Create EOTS nonces
5093
+ * @description Create EOTS nonces
4551
5094
  *
4552
- * Derives a key of a specified type using a supplied derivation path and an
4553
- * existing long-lived mnemonic.
5095
+ * Generates a set of Babylon EOTS nonces for a specified chain-id, starting at a
5096
+ * specified block height.
4554
5097
  */
4555
- deriveKey: {
5098
+ createEotsNonces: {
4556
5099
  parameters: {
4557
5100
  path: {
4558
5101
  /**
@@ -4560,7 +5103,165 @@ export interface operations {
4560
5103
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4561
5104
  */
4562
5105
  org_id: string;
4563
- };
5106
+ /**
5107
+ * @description Hex-encoded public key of the EOTS key
5108
+ * @example 0x457f0f24cfb06c3c35874bbd1f59b57180a5a9d7e1f6929280839c830f5c147f
5109
+ */
5110
+ pubkey: string;
5111
+ };
5112
+ };
5113
+ requestBody: {
5114
+ content: {
5115
+ "application/json": components["schemas"]["EotsCreateNonceRequest"];
5116
+ };
5117
+ };
5118
+ responses: {
5119
+ 200: components["responses"]["EotsCreateNonceResponse"];
5120
+ default: {
5121
+ content: {
5122
+ "application/json": components["schemas"]["ErrorResponse"];
5123
+ };
5124
+ };
5125
+ };
5126
+ };
5127
+ /**
5128
+ * Create an EOTS signature
5129
+ * @description Create an EOTS signature
5130
+ *
5131
+ * Generates an EOTS signature for the specified chain-id, block height, and message.
5132
+ */
5133
+ eotsSign: {
5134
+ parameters: {
5135
+ path: {
5136
+ /**
5137
+ * @description Name or ID of the desired Org
5138
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5139
+ */
5140
+ org_id: string;
5141
+ /**
5142
+ * @description Hex-encoded public key of the EOTS key
5143
+ * @example 0x457f0f24cfb06c3c35874bbd1f59b57180a5a9d7e1f6929280839c830f5c147f
5144
+ */
5145
+ pubkey: string;
5146
+ };
5147
+ };
5148
+ requestBody: {
5149
+ content: {
5150
+ "application/json": components["schemas"]["EotsSignRequest"];
5151
+ };
5152
+ };
5153
+ responses: {
5154
+ 200: components["responses"]["EotsSignResponse"];
5155
+ 202: {
5156
+ content: {
5157
+ "application/json": components["schemas"]["AcceptedResponse"];
5158
+ };
5159
+ };
5160
+ default: {
5161
+ content: {
5162
+ "application/json": components["schemas"]["ErrorResponse"];
5163
+ };
5164
+ };
5165
+ };
5166
+ };
5167
+ /**
5168
+ * Sign Bitcoin Segwit Transaction
5169
+ * @description Sign Bitcoin Segwit Transaction
5170
+ *
5171
+ * Signs a Bitcoin Segwit transaction with a given key.
5172
+ * This is a pre-release feature.
5173
+ */
5174
+ btcSign: {
5175
+ parameters: {
5176
+ path: {
5177
+ /**
5178
+ * @description Name or ID of the desired Org
5179
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5180
+ */
5181
+ org_id: string;
5182
+ /**
5183
+ * @description bech32 encoding of the public key
5184
+ * @example bc1q5p5qkae77ly80kr4pyfytdqm7rf08ddhdejl9g
5185
+ */
5186
+ pubkey: string;
5187
+ };
5188
+ };
5189
+ requestBody: {
5190
+ content: {
5191
+ "application/json": components["schemas"]["BtcSignRequest"];
5192
+ };
5193
+ };
5194
+ responses: {
5195
+ 200: components["responses"]["BtcSignResponse"];
5196
+ 202: {
5197
+ content: {
5198
+ "application/json": components["schemas"]["AcceptedResponse"];
5199
+ };
5200
+ };
5201
+ default: {
5202
+ content: {
5203
+ "application/json": components["schemas"]["ErrorResponse"];
5204
+ };
5205
+ };
5206
+ };
5207
+ };
5208
+ /**
5209
+ * Sign Bitcoin Taproot Transaction
5210
+ * @description Sign Bitcoin Taproot Transaction
5211
+ *
5212
+ * Signs a Bitcoin Taproot transaction with a given key.
5213
+ * This is a pre-release feature.
5214
+ */
5215
+ btcTaprootSign: {
5216
+ parameters: {
5217
+ path: {
5218
+ /**
5219
+ * @description Name or ID of the desired Org
5220
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5221
+ */
5222
+ org_id: string;
5223
+ /**
5224
+ * @description bech32 encoding of the public key
5225
+ * @example bc1p2wsldez5mud2yam29q22wgfh9439spgduvct83k3pm50fcxa5dps59h4z5
5226
+ */
5227
+ pubkey: string;
5228
+ };
5229
+ };
5230
+ requestBody: {
5231
+ content: {
5232
+ "application/json": components["schemas"]["TaprootSignRequest"];
5233
+ };
5234
+ };
5235
+ responses: {
5236
+ 200: components["responses"]["TaprootSignResponse"];
5237
+ 202: {
5238
+ content: {
5239
+ "application/json": components["schemas"]["AcceptedResponse"];
5240
+ };
5241
+ };
5242
+ default: {
5243
+ content: {
5244
+ "application/json": components["schemas"]["ErrorResponse"];
5245
+ };
5246
+ };
5247
+ };
5248
+ };
5249
+ /**
5250
+ * Derive Key From Long-Lived Mnemonic
5251
+ * @description Derive Key From Long-Lived Mnemonic
5252
+ *
5253
+ * Derives a key of a specified type using a supplied derivation path and an
5254
+ * existing long-lived mnemonic.
5255
+ */
5256
+ deriveKey: {
5257
+ parameters: {
5258
+ path: {
5259
+ /**
5260
+ * @description Name or ID of the desired Org
5261
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5262
+ */
5263
+ org_id: string;
5264
+ };
4564
5265
  };
4565
5266
  requestBody: {
4566
5267
  content: {
@@ -4576,6 +5277,30 @@ export interface operations {
4576
5277
  };
4577
5278
  };
4578
5279
  };
5280
+ setEmailOtp: {
5281
+ parameters: {
5282
+ path: {
5283
+ /**
5284
+ * @description Name or ID of the desired Org
5285
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5286
+ */
5287
+ org_id: string;
5288
+ };
5289
+ };
5290
+ requestBody: {
5291
+ content: {
5292
+ "application/json": components["schemas"]["ConfigureEmailOtpRequest"];
5293
+ };
5294
+ };
5295
+ responses: {
5296
+ 200: components["responses"]["EmptyImpl"];
5297
+ default: {
5298
+ content: {
5299
+ "application/json": components["schemas"]["ErrorResponse"];
5300
+ };
5301
+ };
5302
+ };
5303
+ };
4579
5304
  /**
4580
5305
  * Sign EIP-191 Data
4581
5306
  * @description Sign EIP-191 Data
@@ -4656,6 +5381,85 @@ export interface operations {
4656
5381
  };
4657
5382
  };
4658
5383
  };
5384
+ /**
5385
+ * List associated OIDC identities with the current user.
5386
+ * @description List associated OIDC identities with the current user.
5387
+ */
5388
+ listOidcIdentities: {
5389
+ parameters: {
5390
+ path: {
5391
+ /**
5392
+ * @description Name or ID of the desired Org
5393
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5394
+ */
5395
+ org_id: string;
5396
+ };
5397
+ };
5398
+ responses: {
5399
+ 200: components["responses"]["ListIdentitiesResponse"];
5400
+ default: {
5401
+ content: {
5402
+ "application/json": components["schemas"]["ErrorResponse"];
5403
+ };
5404
+ };
5405
+ };
5406
+ };
5407
+ /**
5408
+ * Associate an OIDC identity with the current user in org <session.org>.
5409
+ * @description Associate an OIDC identity with the current user in org <session.org>.
5410
+ */
5411
+ addOidcIdentity: {
5412
+ parameters: {
5413
+ path: {
5414
+ /**
5415
+ * @description Name or ID of the desired Org
5416
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5417
+ */
5418
+ org_id: string;
5419
+ };
5420
+ };
5421
+ requestBody: {
5422
+ content: {
5423
+ "application/json": components["schemas"]["AddIdentityRequest"];
5424
+ };
5425
+ };
5426
+ responses: {
5427
+ 200: components["responses"]["EmptyImpl"];
5428
+ default: {
5429
+ content: {
5430
+ "application/json": components["schemas"]["ErrorResponse"];
5431
+ };
5432
+ };
5433
+ };
5434
+ };
5435
+ /**
5436
+ * Remove an OIDC identity from the current user's account in org <session.org>.
5437
+ * @description Remove an OIDC identity from the current user's account in org <session.org>.
5438
+ */
5439
+ removeOidcIdentity: {
5440
+ parameters: {
5441
+ path: {
5442
+ /**
5443
+ * @description Name or ID of the desired Org
5444
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5445
+ */
5446
+ org_id: string;
5447
+ };
5448
+ };
5449
+ requestBody: {
5450
+ content: {
5451
+ "application/json": components["schemas"]["OIDCIdentity"];
5452
+ };
5453
+ };
5454
+ responses: {
5455
+ 200: components["responses"]["EmptyImpl"];
5456
+ default: {
5457
+ content: {
5458
+ "application/json": components["schemas"]["ErrorResponse"];
5459
+ };
5460
+ };
5461
+ };
5462
+ };
4659
5463
  /**
4660
5464
  * Create [IdentityProof] from CubeSigner user session
4661
5465
  * @description Create [IdentityProof] from CubeSigner user session
@@ -4855,6 +5659,11 @@ export interface operations {
4855
5659
  * @example SecpEthAddr
4856
5660
  */
4857
5661
  key_type?: components["schemas"]["KeyType"] | null;
5662
+ /**
5663
+ * @description Filter by key owner
5664
+ * @example User#5269c579-b4f9-4620-9e90-e46a5a0ffb4d
5665
+ */
5666
+ key_owner?: components["schemas"]["Id"] | null;
4858
5667
  };
4859
5668
  path: {
4860
5669
  /**
@@ -4938,7 +5747,9 @@ export interface operations {
4938
5747
  * @description Delete Key
4939
5748
  *
4940
5749
  * Deletes a key specified by its ID.
5750
+ *
4941
5751
  * Only the key owner and org owners are allowed to delete keys.
5752
+ * Additionally, the role's edit policy (if set) must permit the update.
4942
5753
  */
4943
5754
  deleteKey: {
4944
5755
  parameters: {
@@ -4955,6 +5766,11 @@ export interface operations {
4955
5766
  key_id: string;
4956
5767
  };
4957
5768
  };
5769
+ requestBody: {
5770
+ content: {
5771
+ "application/json": components["schemas"]["Empty"];
5772
+ };
5773
+ };
4958
5774
  responses: {
4959
5775
  200: components["responses"]["EmptyImpl"];
4960
5776
  default: {
@@ -5336,6 +6152,44 @@ export interface operations {
5336
6152
  };
5337
6153
  };
5338
6154
  };
6155
+ /**
6156
+ * Initiate login via email token
6157
+ * @description Initiate login via email token
6158
+ *
6159
+ * This endpoint sends an email to the provided address with an OIDC token encrypted with AES-GCM.
6160
+ * The decryption parameters are returned immediately in the response.
6161
+ * Once that token is decrypted, it can be used with the standard OIDC authentication flows
6162
+ *
6163
+ *
6164
+ * > [!IMPORTANT]
6165
+ * > For this endpoint to succeed, the org must be configured to:
6166
+ * > 1. Allow the issuer `https://shim.oauth2.cubist.dev/email-otp` and client ID being the Org ID
6167
+ * > 2. Have an email sender configured for OTPs
6168
+ */
6169
+ emailOtpAuth: {
6170
+ parameters: {
6171
+ path: {
6172
+ /**
6173
+ * @description Name or ID of the desired Org
6174
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
6175
+ */
6176
+ org_id: string;
6177
+ };
6178
+ };
6179
+ requestBody: {
6180
+ content: {
6181
+ "application/json": components["schemas"]["EmailOtpRequest"];
6182
+ };
6183
+ };
6184
+ responses: {
6185
+ 200: components["responses"]["EmailOtpResponse"];
6186
+ default: {
6187
+ content: {
6188
+ "application/json": components["schemas"]["ErrorResponse"];
6189
+ };
6190
+ };
6191
+ };
6192
+ };
5339
6193
  /**
5340
6194
  * List Roles
5341
6195
  * @description List Roles
@@ -5445,7 +6299,9 @@ export interface operations {
5445
6299
  * @description Delete Role
5446
6300
  *
5447
6301
  * Deletes a role in an organization.
6302
+ *
5448
6303
  * Only users in the role can perform this action.
6304
+ * Additionally, the role's edit policy (if set) must permit the update.
5449
6305
  */
5450
6306
  deleteRole: {
5451
6307
  parameters: {
@@ -5462,6 +6318,11 @@ export interface operations {
5462
6318
  role_id: string;
5463
6319
  };
5464
6320
  };
6321
+ requestBody: {
6322
+ content: {
6323
+ "application/json": components["schemas"]["Empty"];
6324
+ };
6325
+ };
5465
6326
  responses: {
5466
6327
  200: components["responses"]["EmptyImpl"];
5467
6328
  default: {
@@ -5477,7 +6338,9 @@ export interface operations {
5477
6338
  *
5478
6339
  * Enables or disables a role (this requires the `manage:role:update:enable` scope).
5479
6340
  * Updates the role's policies (this requires the `manage:role:update:policy` scope).
6341
+ *
5480
6342
  * The user must be in the role or an owner of the organization.
6343
+ * Additionally, the role's edit policy (if set) must permit the update.
5481
6344
  */
5482
6345
  updateRole: {
5483
6346
  parameters: {
@@ -5513,6 +6376,9 @@ export interface operations {
5513
6376
  * @description Add Keys
5514
6377
  *
5515
6378
  * Adds a list of existing keys to an existing role.
6379
+ *
6380
+ * Only the key owner can their key to a role.
6381
+ * Additionally, the role's edit policy (if set) must permit the update.
5516
6382
  */
5517
6383
  addKeysToRole: {
5518
6384
  parameters: {
@@ -5541,7 +6407,9 @@ export interface operations {
5541
6407
  * @description Add User
5542
6408
  *
5543
6409
  * Adds an existing user to an existing role.
5544
- * Only users in the role or owners can add users to a role.
6410
+ *
6411
+ * Only users in the role or org owners can add users to a role.
6412
+ * Additionally, the role's edit policy (if set) must permit the update.
5545
6413
  */
5546
6414
  addUserToRole: {
5547
6415
  parameters: {
@@ -5563,6 +6431,11 @@ export interface operations {
5563
6431
  user_id: string;
5564
6432
  };
5565
6433
  };
6434
+ requestBody: {
6435
+ content: {
6436
+ "application/json": components["schemas"]["Empty"];
6437
+ };
6438
+ };
5566
6439
  responses: {};
5567
6440
  };
5568
6441
  /**
@@ -5614,7 +6487,10 @@ export interface operations {
5614
6487
  * Remove Key
5615
6488
  * @description Remove Key
5616
6489
  *
5617
- * Removes a given key from a role
6490
+ * Removes a given key from a role.
6491
+ *
6492
+ * Only users in the role or org owners can remove keys from a role.
6493
+ * Additionally, the role's edit policy (if set) must permit the update.
5618
6494
  */
5619
6495
  removeKeyFromRole: {
5620
6496
  parameters: {
@@ -5636,6 +6512,11 @@ export interface operations {
5636
6512
  key_id: string;
5637
6513
  };
5638
6514
  };
6515
+ requestBody: {
6516
+ content: {
6517
+ "application/json": components["schemas"]["Empty"];
6518
+ };
6519
+ };
5639
6520
  responses: {};
5640
6521
  };
5641
6522
  /**
@@ -5831,7 +6712,9 @@ export interface operations {
5831
6712
  * @description Remove User
5832
6713
  *
5833
6714
  * Removes an existing user from an existing role.
6715
+ *
5834
6716
  * Only users in the role or org owners can remove users from a role.
6717
+ * Additionally, the role's edit policy (if set) must permit the update.
5835
6718
  */
5836
6719
  removeUserFromRole: {
5837
6720
  parameters: {
@@ -5853,6 +6736,11 @@ export interface operations {
5853
6736
  user_id: string;
5854
6737
  };
5855
6738
  };
6739
+ requestBody: {
6740
+ content: {
6741
+ "application/json": components["schemas"]["Empty"];
6742
+ };
6743
+ };
5856
6744
  responses: {};
5857
6745
  };
5858
6746
  /**
@@ -6615,6 +7503,69 @@ export interface operations {
6615
7503
  };
6616
7504
  };
6617
7505
  };
7506
+ /**
7507
+ * Remove a user from the org
7508
+ * @description Remove a user from the org
7509
+ */
7510
+ deleteUser: {
7511
+ parameters: {
7512
+ path: {
7513
+ /**
7514
+ * @description Name or ID of the desired Org
7515
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
7516
+ */
7517
+ org_id: string;
7518
+ /**
7519
+ * @description ID of the desired User
7520
+ * @example User#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
7521
+ */
7522
+ user_id: string;
7523
+ };
7524
+ };
7525
+ responses: {
7526
+ 200: components["responses"]["EmptyImpl"];
7527
+ default: {
7528
+ content: {
7529
+ "application/json": components["schemas"]["ErrorResponse"];
7530
+ };
7531
+ };
7532
+ };
7533
+ };
7534
+ /**
7535
+ * Update a user's membership in the org
7536
+ * @description Update a user's membership in the org
7537
+ *
7538
+ * Currently allows just enabling/disabling a user in the org.
7539
+ */
7540
+ updateUserMembership: {
7541
+ parameters: {
7542
+ path: {
7543
+ /**
7544
+ * @description Name or ID of the desired Org
7545
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
7546
+ */
7547
+ org_id: string;
7548
+ /**
7549
+ * @description ID of the desired User
7550
+ * @example User#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
7551
+ */
7552
+ user_id: string;
7553
+ };
7554
+ };
7555
+ requestBody: {
7556
+ content: {
7557
+ "application/json": components["schemas"]["UpdateUserMembershipRequest"];
7558
+ };
7559
+ };
7560
+ responses: {
7561
+ 200: components["responses"]["UserInOrgInfo"];
7562
+ default: {
7563
+ content: {
7564
+ "application/json": components["schemas"]["ErrorResponse"];
7565
+ };
7566
+ };
7567
+ };
7568
+ };
6618
7569
  /**
6619
7570
  * Initiate registration of a FIDO key
6620
7571
  * @deprecated
@@ -6743,12 +7694,25 @@ export interface operations {
6743
7694
  };
6744
7695
  };
6745
7696
  };
7697
+ /**
7698
+ * Retrieves all the orgs the user is a part of
7699
+ * @description Retrieves all the orgs the user is a part of
7700
+ */
7701
+ userOrgs: {
7702
+ responses: {
7703
+ 200: components["responses"]["UserOrgsResponse"];
7704
+ default: {
7705
+ content: {
7706
+ "application/json": components["schemas"]["ErrorResponse"];
7707
+ };
7708
+ };
7709
+ };
7710
+ };
6746
7711
  /**
6747
7712
  * Sign Raw Blob
6748
7713
  * @description Sign Raw Blob
6749
7714
  *
6750
7715
  * Signs an arbitrary blob with a given key.
6751
- * This is a pre-release feature.
6752
7716
  *
6753
7717
  * - ECDSA signatures are serialized as big-endian r and s plus recovery-id
6754
7718
  * byte v, which can in general take any of the values 0, 1, 2, or 3.