@cubist-labs/cubesigner-sdk 0.3.27 → 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 (77) 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 +20 -15
  6. package/dist/cjs/src/client.js +4 -3
  7. package/dist/cjs/src/key.d.ts +38 -2
  8. package/dist/cjs/src/key.js +88 -5
  9. package/dist/cjs/src/org.d.ts +3 -3
  10. package/dist/cjs/src/schema.d.ts +995 -54
  11. package/dist/cjs/src/schema.js +1 -1
  12. package/dist/cjs/src/util.d.ts +2 -0
  13. package/dist/cjs/src/util.js +1 -1
  14. package/dist/esm/package.json +1 -1
  15. package/dist/esm/src/api.d.ts +2 -1
  16. package/dist/esm/src/api.js +4 -2
  17. package/dist/esm/src/client.d.ts +20 -15
  18. package/dist/esm/src/client.js +4 -3
  19. package/dist/esm/src/key.d.ts +38 -2
  20. package/dist/esm/src/key.js +88 -5
  21. package/dist/esm/src/org.d.ts +3 -3
  22. package/dist/esm/src/schema.d.ts +995 -54
  23. package/dist/esm/src/schema.js +1 -1
  24. package/dist/esm/src/util.d.ts +2 -0
  25. package/dist/esm/src/util.js +1 -1
  26. package/package.json +1 -1
  27. package/src/api.ts +7 -1
  28. package/src/client.ts +3 -2
  29. package/src/key.ts +92 -4
  30. package/src/schema.ts +1038 -57
  31. package/src/util.ts +3 -0
  32. package/dist/cjs/src/org_event_processor.d.ts +0 -57
  33. package/dist/cjs/src/org_event_processor.js +0 -137
  34. package/dist/esm/src/org_event_processor.d.ts +0 -57
  35. package/dist/esm/src/org_event_processor.js +0 -133
  36. package/dist/package.json +0 -36
  37. package/dist/spec/env/beta.json +0 -9
  38. package/dist/spec/env/gamma.json +0 -9
  39. package/dist/spec/env/prod.json +0 -9
  40. package/dist/src/api.d.ts +0 -634
  41. package/dist/src/api.js +0 -1309
  42. package/dist/src/client.d.ts +0 -575
  43. package/dist/src/client.js +0 -381
  44. package/dist/src/env.d.ts +0 -15
  45. package/dist/src/env.js +0 -35
  46. package/dist/src/error.d.ts +0 -29
  47. package/dist/src/error.js +0 -36
  48. package/dist/src/events.d.ts +0 -84
  49. package/dist/src/events.js +0 -195
  50. package/dist/src/index.d.ts +0 -207
  51. package/dist/src/index.js +0 -308
  52. package/dist/src/key.d.ts +0 -152
  53. package/dist/src/key.js +0 -242
  54. package/dist/src/mfa.d.ts +0 -94
  55. package/dist/src/mfa.js +0 -169
  56. package/dist/src/org.d.ts +0 -99
  57. package/dist/src/org.js +0 -95
  58. package/dist/src/paginator.d.ts +0 -76
  59. package/dist/src/paginator.js +0 -99
  60. package/dist/src/response.d.ts +0 -101
  61. package/dist/src/response.js +0 -164
  62. package/dist/src/role.d.ts +0 -283
  63. package/dist/src/role.js +0 -253
  64. package/dist/src/schema.d.ts +0 -6209
  65. package/dist/src/schema.js +0 -7
  66. package/dist/src/schema_types.d.ts +0 -113
  67. package/dist/src/schema_types.js +0 -3
  68. package/dist/src/session/session_storage.d.ts +0 -47
  69. package/dist/src/session/session_storage.js +0 -76
  70. package/dist/src/session/signer_session_manager.d.ts +0 -125
  71. package/dist/src/session/signer_session_manager.js +0 -239
  72. package/dist/src/signer_session.d.ts +0 -41
  73. package/dist/src/signer_session.js +0 -77
  74. package/dist/src/user_export.d.ts +0 -52
  75. package/dist/src/user_export.js +0 -129
  76. package/dist/src/util.d.ts +0 -61
  77. package/dist/src/util.js +0 -97
@@ -34,26 +34,69 @@ export interface paths {
34
34
  */
35
35
  patch: operations["updateOrg"];
36
36
  };
37
+ "/v0/org/{org_id}/ava/sign/{ava_chain}/{pubkey}": {
38
+ /**
39
+ * Sign a serialized Avalanche C/X/P-Chain Message
40
+ * @description Sign a serialized Avalanche C/X/P-Chain Message
41
+ *
42
+ * Signs an Avalanche message with a given SecpEth (C-Chain messages) or
43
+ * SecpAva (X- and P-Chain messages) key. Currently signing C-Chain messages
44
+ * with SecpEth key must also be explicitly allowed via `AllowRawBlobSigning`
45
+ * policy.
46
+ *
47
+ * This is a pre-release feature.
48
+ */
49
+ post: operations["avaSerializedTxSign"];
50
+ };
37
51
  "/v0/org/{org_id}/ava/sign/{pubkey}": {
38
52
  /**
39
- * Sign Avalanche X- or P-Chain Message
40
- * @description Sign Avalanche X- or P-Chain Message
53
+ * Sign JSON-encoded Avalanche X- or P-Chain Message
54
+ * @description Sign JSON-encoded Avalanche X- or P-Chain Message
41
55
  *
42
56
  * Signs an Avalanche message with a given SecpAva key.
43
57
  * This is a pre-release feature.
44
58
  */
45
59
  post: operations["avaSign"];
46
60
  };
61
+ "/v0/org/{org_id}/babylon/eots/nonces/{pubkey}": {
62
+ /**
63
+ * Create EOTS nonces
64
+ * @description Create EOTS nonces
65
+ *
66
+ * Generates a set of Babylon EOTS nonces for a specified chain-id, starting at a
67
+ * specified block height.
68
+ */
69
+ post: operations["createEotsNonces"];
70
+ };
71
+ "/v0/org/{org_id}/babylon/eots/sign/{pubkey}": {
72
+ /**
73
+ * Create an EOTS signature
74
+ * @description Create an EOTS signature
75
+ *
76
+ * Generates an EOTS signature for the specified chain-id, block height, and message.
77
+ */
78
+ post: operations["eotsSign"];
79
+ };
47
80
  "/v0/org/{org_id}/btc/sign/{pubkey}": {
48
81
  /**
49
- * Sign Bitcoin Transaction
50
- * @description Sign Bitcoin Transaction
82
+ * Sign Bitcoin Segwit Transaction
83
+ * @description Sign Bitcoin Segwit Transaction
51
84
  *
52
- * Signs a Bitcoin transaction with a given key.
85
+ * Signs a Bitcoin Segwit transaction with a given key.
53
86
  * This is a pre-release feature.
54
87
  */
55
88
  post: operations["btcSign"];
56
89
  };
90
+ "/v0/org/{org_id}/btc/taproot/sign/{pubkey}": {
91
+ /**
92
+ * Sign Bitcoin Taproot Transaction
93
+ * @description Sign Bitcoin Taproot Transaction
94
+ *
95
+ * Signs a Bitcoin Taproot transaction with a given key.
96
+ * This is a pre-release feature.
97
+ */
98
+ post: operations["btcTaprootSign"];
99
+ };
57
100
  "/v0/org/{org_id}/derive_key": {
58
101
  /**
59
102
  * Derive Key From Long-Lived Mnemonic
@@ -64,6 +107,9 @@ export interface paths {
64
107
  */
65
108
  put: operations["deriveKey"];
66
109
  };
110
+ "/v0/org/{org_id}/emails/otp": {
111
+ put: operations["setEmailOtp"];
112
+ };
67
113
  "/v0/org/{org_id}/evm/eip191/sign/{pubkey}": {
68
114
  /**
69
115
  * Sign EIP-191 Data
@@ -82,6 +128,23 @@ export interface paths {
82
128
  */
83
129
  post: operations["eip712Sign"];
84
130
  };
131
+ "/v0/org/{org_id}/identity": {
132
+ /**
133
+ * List associated OIDC identities with the current user.
134
+ * @description List associated OIDC identities with the current user.
135
+ */
136
+ get: operations["listOidcIdentities"];
137
+ /**
138
+ * Associate an OIDC identity with the current user in org <session.org>.
139
+ * @description Associate an OIDC identity with the current user in org <session.org>.
140
+ */
141
+ post: operations["addOidcIdentity"];
142
+ /**
143
+ * Remove an OIDC identity from the current user's account in org <session.org>.
144
+ * @description Remove an OIDC identity from the current user's account in org <session.org>.
145
+ */
146
+ delete: operations["removeOidcIdentity"];
147
+ };
85
148
  "/v0/org/{org_id}/identity/prove": {
86
149
  /**
87
150
  * Create [IdentityProof] from CubeSigner user session
@@ -177,14 +240,20 @@ export interface paths {
177
240
  * @description Delete Key
178
241
  *
179
242
  * Deletes a key specified by its ID.
243
+ *
180
244
  * Only the key owner and org owners are allowed to delete keys.
245
+ * Additionally, the role's edit policy (if set) must permit the update.
181
246
  */
182
247
  delete: operations["deleteKey"];
183
248
  /**
184
249
  * Update Key
185
250
  * @description Update Key
186
251
  *
187
- * Enable or disable a key. The user must be the owner of the key or organization to perform this action.
252
+ * Enable or disable a key. The user must be the owner of the key or
253
+ * organization to perform this action.
254
+ *
255
+ * For each requested update, the session must have the corresponding 'manage:key:update:_' scope;
256
+ * if no updates are requested, the session must have 'manage:key:get'.
188
257
  */
189
258
  patch: operations["updateKey"];
190
259
  };
@@ -292,6 +361,23 @@ export interface paths {
292
361
  */
293
362
  post: operations["oidcAuth"];
294
363
  };
364
+ "/v0/org/{org_id}/oidc/email-otp": {
365
+ /**
366
+ * Initiate login via email token
367
+ * @description Initiate login via email token
368
+ *
369
+ * This endpoint sends an email to the provided address with an OIDC token encrypted with AES-GCM.
370
+ * The decryption parameters are returned immediately in the response.
371
+ * Once that token is decrypted, it can be used with the standard OIDC authentication flows
372
+ *
373
+ *
374
+ * > [!IMPORTANT]
375
+ * > For this endpoint to succeed, the org must be configured to:
376
+ * > 1. Allow the issuer `https://shim.oauth2.cubist.dev/email-otp` and client ID being the Org ID
377
+ * > 2. Have an email sender configured for OTPs
378
+ */
379
+ post: operations["emailOtpAuth"];
380
+ };
295
381
  "/v0/org/{org_id}/roles": {
296
382
  /**
297
383
  * List Roles
@@ -322,7 +408,9 @@ export interface paths {
322
408
  * @description Delete Role
323
409
  *
324
410
  * Deletes a role in an organization.
411
+ *
325
412
  * Only users in the role can perform this action.
413
+ * Additionally, the role's edit policy (if set) must permit the update.
326
414
  */
327
415
  delete: operations["deleteRole"];
328
416
  /**
@@ -331,7 +419,9 @@ export interface paths {
331
419
  *
332
420
  * Enables or disables a role (this requires the `manage:role:update:enable` scope).
333
421
  * Updates the role's policies (this requires the `manage:role:update:policy` scope).
422
+ *
334
423
  * The user must be in the role or an owner of the organization.
424
+ * Additionally, the role's edit policy (if set) must permit the update.
335
425
  */
336
426
  patch: operations["updateRole"];
337
427
  };
@@ -341,6 +431,9 @@ export interface paths {
341
431
  * @description Add Keys
342
432
  *
343
433
  * Adds a list of existing keys to an existing role.
434
+ *
435
+ * Only the key owner can their key to a role.
436
+ * Additionally, the role's edit policy (if set) must permit the update.
344
437
  */
345
438
  put: operations["addKeysToRole"];
346
439
  };
@@ -350,7 +443,9 @@ export interface paths {
350
443
  * @description Add User
351
444
  *
352
445
  * Adds an existing user to an existing role.
353
- * Only users in the role or owners can add users to a role.
446
+ *
447
+ * Only users in the role or org owners can add users to a role.
448
+ * Additionally, the role's edit policy (if set) must permit the update.
354
449
  */
355
450
  put: operations["addUserToRole"];
356
451
  };
@@ -368,7 +463,10 @@ export interface paths {
368
463
  * Remove Key
369
464
  * @description Remove Key
370
465
  *
371
- * Removes a given key from a role
466
+ * Removes a given key from a role.
467
+ *
468
+ * Only users in the role or org owners can remove keys from a role.
469
+ * Additionally, the role's edit policy (if set) must permit the update.
372
470
  */
373
471
  delete: operations["removeKeyFromRole"];
374
472
  };
@@ -432,7 +530,9 @@ export interface paths {
432
530
  * @description Remove User
433
531
  *
434
532
  * Removes an existing user from an existing role.
533
+ *
435
534
  * Only users in the role or org owners can remove users from a role.
535
+ * Additionally, the role's edit policy (if set) must permit the update.
436
536
  */
437
537
  delete: operations["removeUserFromRole"];
438
538
  };
@@ -632,6 +732,22 @@ export interface paths {
632
732
  */
633
733
  delete: operations["deleteOidcUser"];
634
734
  };
735
+ "/v0/org/{org_id}/users/{user_id}": {
736
+ /**
737
+ * Remove a user from the org
738
+ * @description Remove a user from the org
739
+ */
740
+ delete: operations["deleteUser"];
741
+ };
742
+ "/v0/org/{org_id}/users/{user_id}/membership": {
743
+ /**
744
+ * Update a user's membership in the org
745
+ * @description Update a user's membership in the org
746
+ *
747
+ * Currently allows just enabling/disabling a user in the org.
748
+ */
749
+ patch: operations["updateUserMembership"];
750
+ };
635
751
  "/v0/user/me/fido": {
636
752
  /**
637
753
  * Initiate registration of a FIDO key
@@ -686,13 +802,19 @@ export interface paths {
686
802
  */
687
803
  post: operations["verifyTotpLegacy"];
688
804
  };
805
+ "/v0/user/orgs": {
806
+ /**
807
+ * Retrieves all the orgs the user is a part of
808
+ * @description Retrieves all the orgs the user is a part of
809
+ */
810
+ get: operations["userOrgs"];
811
+ };
689
812
  "/v1/org/{org_id}/blob/sign/{key_id}": {
690
813
  /**
691
814
  * Sign Raw Blob
692
815
  * @description Sign Raw Blob
693
816
  *
694
817
  * Signs an arbitrary blob with a given key.
695
- * This is a pre-release feature.
696
818
  *
697
819
  * - ECDSA signatures are serialized as big-endian r and s plus recovery-id
698
820
  * byte v, which can in general take any of the values 0, 1, 2, or 3.
@@ -791,6 +913,10 @@ export interface components {
791
913
  };
792
914
  /** @enum {string} */
793
915
  AcceptedValueCode: "MfaRequired";
916
+ /** @description Request to add OIDC identity to an existing user account */
917
+ AddIdentityRequest: {
918
+ oidc_token: string;
919
+ };
794
920
  AddKeysToRoleRequest: {
795
921
  /**
796
922
  * @description A list of keys to add to a role
@@ -977,7 +1103,12 @@ export interface components {
977
1103
  * @enum {string}
978
1104
  */
979
1105
  AuthenticatorTransport: "usb" | "nfc" | "ble" | "internal";
980
- /** @description Request to sign an Avalanche transactions */
1106
+ /** @description Request to sign a serialized Avalanche transaction */
1107
+ AvaSerializedTxSignRequest: {
1108
+ /** @description Serialized transaction to sign */
1109
+ tx: string;
1110
+ };
1111
+ /** @description Request to sign an Avalanche transaction */
981
1112
  AvaSignRequest: {
982
1113
  /**
983
1114
  * @description Transaction to sign.
@@ -1003,9 +1134,9 @@ export interface components {
1003
1134
  /** @description Wrapper around a zeroizing 32-byte fixed-size array */
1004
1135
  B32: string;
1005
1136
  /** @enum {string} */
1006
- BadGatewayErrorCode: "OAuthProviderError";
1137
+ BadGatewayErrorCode: "OAuthProviderError" | "OidcDisoveryFailed" | "OidcIssuerJwkEndpointUnavailable" | "SmtpServerUnavailable";
1007
1138
  /** @enum {string} */
1008
- BadRequestErrorCode: "GenericBadRequest" | "InvalidBody" | "TokenRequestError" | "InvalidMfaReceipt" | "InvalidMfaPolicyCount" | "InvalidMfaPolicyNumAuthFactors" | "InvalidMfaPolicyNumAllowedApprovers" | "InvalidMfaPolicyRedundantRule" | "InvalidCreateKeyCount" | "OrgInviteExistingUser" | "OrgNameTaken" | "RoleNameTaken" | "AddKeyToRoleCountTooHigh" | "InvalidKeyId" | "InvalidKeyMetadataLength" | "InvalidKeyMetadata" | "InvalidKeyMaterialId" | "KeyNotFound" | "UserExportDerivedKey" | "UserExportPublicKeyInvalid" | "UserExportInProgress" | "RoleNotFound" | "InvalidMfaReceiptOrgIdMissing" | "InvalidMfaReceiptInvalidOrgId" | "MfaRequestNotFound" | "InvalidKeyType" | "InvalidKeyMaterial" | "InvalidHexValue" | "InvalidBase32Value" | "InvalidBase58Value" | "InvalidForkVersionLength" | "InvalidEthAddress" | "InvalidStellarAddress" | "InvalidOrgNameOrId" | "InvalidStakeDeposit" | "InvalidBlobSignRequest" | "InvalidSolanaSignRequest" | "InvalidEip712SignRequest" | "InvalidEvmSignRequest" | "InvalidEth2SignRequest" | "InvalidDeriveKeyRequest" | "InvalidStakingAmount" | "CustomStakingAmountNotAllowedForWrapperContract" | "InvalidUnstakeRequest" | "InvalidCreateUserRequest" | "UserAlreadyExists" | "UserNotFound" | "PolicyRuleKeyMismatch" | "EmptyScopes" | "InvalidScopesForRoleSession" | "InvalidLifetime" | "NoSingleKeyForUser" | "InvalidOrgPolicyRule" | "SourceIpAllowlistEmpty" | "InvalidOrgPolicyRepeatedRule" | "AvaSignHashError" | "AvaSignError" | "BtcSegwitHashError" | "BtcSignError" | "Eip712SignError" | "InvalidMemberRoleInUserAdd" | "ThirdPartyUserAlreadyExists" | "ThirdPartyUserNotFound" | "DeleteOidcUserError" | "SessionRoleMismatch" | "InvalidOidcToken" | "OidcIssuerUnsupported" | "OidcIssuerNotAllowed" | "OidcIssuerNoApplicableJwk" | "FidoKeyAlreadyRegistered" | "FidoKeySignCountTooLow" | "FidoVerificationFailed" | "FidoChallengeMfaMismatch" | "UnsupportedLegacyCognitoSession" | "InvalidIdentityProof" | "PaginationDataExpired" | "ExistingKeysViolateExclusiveKeyAccess" | "ExportDelayTooShort" | "ExportWindowTooLong" | "InvalidTotpFailureLimit" | "InvalidEip191SignRequest" | "CannotResendUserInvitation" | "InvalidNotificationEndpointCount" | "CannotDeletePendingSubscription" | "InvalidNotificationUrlProtocol" | "EmptyOneOfOrgEventFilter" | "EmptyAllExceptOrgEventFilter";
1139
+ BadRequestErrorCode: "GenericBadRequest" | "InvalidBody" | "TokenRequestError" | "InvalidMfaReceipt" | "InvalidMfaPolicyCount" | "InvalidMfaPolicyNumAuthFactors" | "InvalidMfaPolicyNumAllowedApprovers" | "InvalidMfaPolicyRedundantRule" | "InvalidCreateKeyCount" | "OrgInviteExistingUser" | "OrgNameTaken" | "RoleNameTaken" | "AddKeyToRoleCountTooHigh" | "InvalidKeyId" | "InvalidTimeLockAlreadyInThePast" | "InvalidUpdate" | "InvalidMetadataLength" | "InvalidKeyMaterialId" | "KeyNotFound" | "UserExportDerivedKey" | "UserExportPublicKeyInvalid" | "UnableToAccessSmtpRelay" | "UserExportInProgress" | "RoleNotFound" | "InvalidMfaReceiptOrgIdMissing" | "InvalidMfaReceiptInvalidOrgId" | "MfaRequestNotFound" | "InvalidKeyType" | "InvalidKeyMaterial" | "InvalidHexValue" | "InvalidBase32Value" | "InvalidBase58Value" | "InvalidForkVersionLength" | "InvalidEthAddress" | "InvalidStellarAddress" | "InvalidOrgNameOrId" | "InvalidStakeDeposit" | "InvalidBlobSignRequest" | "InvalidSolanaSignRequest" | "InvalidEip712SignRequest" | "InvalidEvmSignRequest" | "InvalidEth2SignRequest" | "InvalidDeriveKeyRequest" | "InvalidStakingAmount" | "CustomStakingAmountNotAllowedForWrapperContract" | "InvalidUnstakeRequest" | "InvalidCreateUserRequest" | "UserAlreadyExists" | "UserNotFound" | "PolicyRuleKeyMismatch" | "EmptyScopes" | "InvalidScopesForRoleSession" | "InvalidLifetime" | "NoSingleKeyForUser" | "InvalidOrgPolicyRule" | "SourceIpAllowlistEmpty" | "InvalidOrgPolicyRepeatedRule" | "AvaSignHashError" | "AvaSignError" | "BtcSegwitHashError" | "BtcTaprootHashError" | "BtcSignError" | "TaprootSignError" | "Eip712SignError" | "InvalidMemberRoleInUserAdd" | "ThirdPartyUserAlreadyExists" | "OidcIdentityAlreadyExists" | "ThirdPartyUserNotFound" | "DeleteOidcUserError" | "DeleteUserError" | "SessionRoleMismatch" | "InvalidOidcToken" | "InvalidOidcIdentity" | "OidcIssuerUnsupported" | "OidcIssuerNotAllowed" | "OidcIssuerNoApplicableJwk" | "FidoKeyAlreadyRegistered" | "FidoKeySignCountTooLow" | "FidoVerificationFailed" | "FidoChallengeMfaMismatch" | "UnsupportedLegacyCognitoSession" | "InvalidIdentityProof" | "PaginationDataExpired" | "ExistingKeysViolateExclusiveKeyAccess" | "ExportDelayTooShort" | "ExportWindowTooLong" | "InvalidTotpFailureLimit" | "InvalidEip191SignRequest" | "CannotResendUserInvitation" | "InvalidNotificationEndpointCount" | "CannotDeletePendingSubscription" | "InvalidNotificationUrlProtocol" | "EmptyOneOfOrgEventFilter" | "EmptyAllExceptOrgEventFilter" | "InvalidTapNodeHash";
1009
1140
  /**
1010
1141
  * @example {
1011
1142
  * "message_base64": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTYK"
@@ -1019,17 +1150,37 @@ export interface components {
1019
1150
  * the message. For example, Secp256k1 keys require that the message is 32 bytes long.
1020
1151
  */
1021
1152
  message_base64: string;
1153
+ /**
1154
+ * @description An optional tweak value for use *only* with Taproot keys. This field is ignored
1155
+ * for all other key types.
1156
+ *
1157
+ * If this field is not present or null, no tweak is applied. If the field is an
1158
+ * empty string, the key is tweaked with an unspendable script path per BIP0341.
1159
+ * Otherwise, this field must contain a 32-byte, base-64 encoded hex string
1160
+ * representing the Merkle root with which to tweak the key before signing.
1161
+ * @example F41HAy2q5Gn8laF2CuMsZbRAQTmD+4Ob3VUMZ7TBGK4=
1162
+ */
1163
+ taproot_tweak?: string | null;
1022
1164
  };
1023
1165
  BlobSignResponse: {
1024
1166
  /** @description The hex-encoded signature. */
1025
1167
  signature: string;
1026
1168
  };
1169
+ /** @description Leaf hash and code, as per BIP341 and https://github.com/rust-bitcoin/rust-bitcoin/blob/464202109d2b2c96e9b4867461bffe420dbd8177/bitcoin/src/crypto/sighash.rs#L691 */
1170
+ BtcLeafHashCodeSeparator: {
1171
+ /**
1172
+ * Format: int32
1173
+ * @description Code separator
1174
+ */
1175
+ code_separator: number;
1176
+ /** @description Taproot-tagged hash with tag "TapLeaf". */
1177
+ leaf_hash: string;
1178
+ };
1027
1179
  /** @enum {string} */
1028
1180
  BtcSighashType: "All" | "None" | "Single" | "AllPlusAnyoneCanPay" | "NonePlusAnyoneCanPay" | "SinglePlusAnyoneCanPay";
1029
1181
  BtcSignRequest: {
1030
1182
  sig_kind: components["schemas"]["BtcSignatureKind"];
1031
- /** @description The bitcoin transaction to sign */
1032
- tx: Record<string, never>;
1183
+ tx: components["schemas"]["BtcTx"];
1033
1184
  };
1034
1185
  BtcSignResponse: {
1035
1186
  /**
@@ -1060,6 +1211,16 @@ export interface components {
1060
1211
  value: number;
1061
1212
  };
1062
1213
  };
1214
+ BtcTx: Record<string, never>;
1215
+ BtcTxOut: {
1216
+ /** @description The script which must be satisfied for the output to be spent. */
1217
+ script_pubkey: string;
1218
+ /**
1219
+ * Format: int64
1220
+ * @description The value of the output, in satoshis.
1221
+ */
1222
+ value: number;
1223
+ };
1063
1224
  /** @description Describes how to derive a WebAuthn challenge value. */
1064
1225
  ChallengePieces: {
1065
1226
  /**
@@ -1093,6 +1254,30 @@ export interface components {
1093
1254
  /** @description Session ID */
1094
1255
  session_id: string;
1095
1256
  };
1257
+ /** @description Fields that are common to different types of resources such as keys */
1258
+ CommonFields: {
1259
+ created?: components["schemas"]["EpochDateTime"] | null;
1260
+ edit_policy?: components["schemas"]["EditPolicy"];
1261
+ last_modified?: components["schemas"]["EpochDateTime"] | null;
1262
+ /**
1263
+ * @description User-defined metadata. When rendering (e.g., in the browser) you should treat
1264
+ * it as untrusted user data (and avoid injecting metadata into HTML directly) if
1265
+ * untrusted users can create/update keys (or their metadata).
1266
+ */
1267
+ metadata?: unknown;
1268
+ /**
1269
+ * Format: int64
1270
+ * @description Version of this object
1271
+ */
1272
+ version?: number;
1273
+ };
1274
+ ConfigureEmailOtpRequest: {
1275
+ auth: {
1276
+ smtp: string;
1277
+ };
1278
+ /** @description The email address that OTP requests will come from */
1279
+ sender: string;
1280
+ };
1096
1281
  ConfiguredMfa: {
1097
1282
  /** @enum {string} */
1098
1283
  type: "totp";
@@ -1105,11 +1290,12 @@ export interface components {
1105
1290
  type: "fido";
1106
1291
  };
1107
1292
  CreateAndUpdateKeyProperties: {
1293
+ edit_policy?: components["schemas"]["EditPolicy"] | null;
1108
1294
  /**
1109
- * @description Set this key's metadata. Validation regex: ^[A-Za-z0-9_=+/ \-\.\,]{0,1024}$
1110
- * @example Contract admin key
1295
+ * @description Set this key's metadata. If this value is `null`, the metadata is erased. If the field is
1296
+ * missing, the metadata remains unchanged.
1111
1297
  */
1112
- metadata?: string | null;
1298
+ metadata?: unknown;
1113
1299
  /**
1114
1300
  * @description Specify a user other than themselves to be the (potentially new) owner of the key.
1115
1301
  * The specified owner must be an existing user who is a member of the same org.
@@ -1273,6 +1459,10 @@ export interface components {
1273
1459
  */
1274
1460
  mnemonic_id: string;
1275
1461
  };
1462
+ EditPolicy: {
1463
+ mfa?: components["schemas"]["MfaPolicy"] | null;
1464
+ time_lock_until?: components["schemas"]["EpochDateTime"] | null;
1465
+ };
1276
1466
  Eip191Or712SignResponse: {
1277
1467
  /**
1278
1468
  * @description Hex-encoded signature comprising 65 bytes in the format required
@@ -1296,6 +1486,7 @@ export interface components {
1296
1486
  * "domain": {
1297
1487
  * "chainId": 1337,
1298
1488
  * "name": "Ether Mail",
1489
+ * "salt": "0x0000000000000000000000000000000000000000000000000000000000000000",
1299
1490
  * "verifyingContract": "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC",
1300
1491
  * "version": "1"
1301
1492
  * },
@@ -1335,6 +1526,10 @@ export interface components {
1335
1526
  * {
1336
1527
  * "name": "verifyingContract",
1337
1528
  * "type": "address"
1529
+ * },
1530
+ * {
1531
+ * "name": "salt",
1532
+ * "type": "bytes32"
1338
1533
  * }
1339
1534
  * ],
1340
1535
  * "Group": [
@@ -1384,11 +1579,95 @@ export interface components {
1384
1579
  /** @description EIP-712 typed data. Refer to the JSON schema defined in EIP-712. */
1385
1580
  typed_data: Record<string, never>;
1386
1581
  };
1582
+ /** @description The request users send to initiate email OTP */
1583
+ EmailOtpRequest: {
1584
+ /** @description The email which will receive the OTP */
1585
+ email: string;
1586
+ };
1587
+ /**
1588
+ * @description The HTTP response to an email OTP request.
1589
+ *
1590
+ * Users receive an encrypted OIDC token in their email inbox.
1591
+ * The values in this response can be used to decrypt that token
1592
+ * using AES-GCM. This ensures that clients need *both* the emailed token
1593
+ * and this response to complete OTP auth.
1594
+ */
1595
+ EmailOtpResponse: {
1596
+ /**
1597
+ * Format: binary
1598
+ * @description Base64 URL encoded IV value for AES-GCM
1599
+ */
1600
+ iv: string;
1601
+ /**
1602
+ * Format: binary
1603
+ * @description Base64 URL encoded key for AES-GCM
1604
+ */
1605
+ key: string;
1606
+ };
1387
1607
  /** @default null */
1388
1608
  Empty: unknown;
1389
1609
  EmptyImpl: {
1390
1610
  status: string;
1391
1611
  };
1612
+ /**
1613
+ * @description Request to create a set of EOTS nonces for a specified chain-id, starting
1614
+ * at a specified block height.
1615
+ */
1616
+ EotsCreateNonceRequest: {
1617
+ /**
1618
+ * @description The chain id for which the nonces will be used, as a hex string
1619
+ * @example 0x11223344
1620
+ */
1621
+ chain_id: string;
1622
+ /**
1623
+ * Format: int32
1624
+ * @description The number of nonces to generate
1625
+ * @example 16
1626
+ */
1627
+ num: number;
1628
+ /**
1629
+ * @description The starting block height of the generated nonces (quoted decimal u64)
1630
+ * @example 31337
1631
+ */
1632
+ start_height: string;
1633
+ };
1634
+ /** @description Response generated when creating EOTS nonces */
1635
+ EotsCreateNonceResponse: {
1636
+ /**
1637
+ * @description The generated nonces as an array of 0x-prefixed hex strings
1638
+ * @example [
1639
+ * "0xb393bf39e71a16d784853d58255a296222a99fd3c87aa7ca206c5230c188f1c7",
1640
+ * "0xe01936584b4f0c0e97f0d3018c4f9db2bf7de41395c6403a48fd0dff0ef7b40d"
1641
+ * ]
1642
+ */
1643
+ nonces: string[];
1644
+ };
1645
+ /** @description Request for an EOTS signature on a specified message, chain-id, block-height triple */
1646
+ EotsSignRequest: {
1647
+ /**
1648
+ * @description The block height for the signature (quoted decimal u64)
1649
+ * @example 123456
1650
+ */
1651
+ block_height: string;
1652
+ /**
1653
+ * @description The chain id for the signature
1654
+ * @example 0x11223344
1655
+ */
1656
+ chain_id: string;
1657
+ /**
1658
+ * @description The message to sign
1659
+ * @example 0x5a2688faea09d42b9270fdb8de6fff6f192243a910ba66329073e12e0d0046a2
1660
+ */
1661
+ message: string;
1662
+ };
1663
+ /** @description Response to an EOTS signing request */
1664
+ EotsSignResponse: {
1665
+ /**
1666
+ * @description The resulting signature, a hex-encoded 32-byte value
1667
+ * @example 0xd9804c04a696b522472c53bd3a3c664c4c3085a017927e45ffaed711d1613700
1668
+ */
1669
+ signature: string;
1670
+ };
1392
1671
  /**
1393
1672
  * @description Epoch is a quoted `uint64`.
1394
1673
  * @example 256
@@ -1521,7 +1800,7 @@ export interface components {
1521
1800
  name: string;
1522
1801
  };
1523
1802
  /** @enum {string} */
1524
- ForbiddenErrorCode: "FidoRequiredToRemoveTotp" | "MfaChallengeExpired" | "ChainIdNotAllowed" | "InvalidOrg" | "SessionForWrongOrg" | "OrgDisabled" | "OrgNotFound" | "OrgWithoutOwner" | "OrphanedUser" | "OidcUserNotFound" | "UserNotInOrg" | "UserNotOrgOwner" | "UserNotKeyOwner" | "InvalidRole" | "DisabledRole" | "KeyDisabled" | "RoleNotInOrg" | "KeyNotInRole" | "KeyNotInOrg" | "UserExportRequestNotInOrg" | "UserExportRequestInvalid" | "UserNotOriginalKeyOwner" | "UserNotInRole" | "MustBeFullMember" | "SessionExpired" | "SessionChanged" | "SessionRevoked" | "ExpectedUserSession" | "SessionRoleChanged" | "ScopedNameNotFound" | "SessionInvalidEpochToken" | "SessionInvalidRefreshToken" | "SessionRefreshTokenExpired" | "InvalidAuthHeader" | "SessionNotFound" | "InvalidArn" | "SessionInvalidAuthToken" | "SessionAuthTokenExpired" | "SessionPossiblyStolenToken" | "MfaDisallowedIdentity" | "MfaDisallowedApprover" | "MfaTypeNotAllowed" | "MfaNotApprovedYet" | "MfaConfirmationCodeMismatch" | "MfaHttpRequestMismatch" | "MfaRemoveBelowMin" | "TotpAlreadyConfigured" | "TotpConfigurationChanged" | "MfaTotpBadConfiguration" | "MfaTotpBadCode" | "MfaTotpRateLimit" | "ImproperSessionScope" | "FullSessionRequired" | "SessionWithoutAnyScopeUnder" | "UserRoleUnprivileged" | "MfaNotConfigured";
1803
+ ForbiddenErrorCode: "FidoRequiredToRemoveTotp" | "EmailOtpNotConfigured" | "MfaChallengeExpired" | "ChainIdNotAllowed" | "InvalidOrg" | "SessionForWrongOrg" | "SelfDelete" | "SelfDisable" | "UserHasNoMfa" | "UserDisabled" | "OrgDisabled" | "OrgNotFound" | "OrgWithoutOwner" | "OrphanedUser" | "OidcUserNotFound" | "UserNotInOrg" | "UserNotOrgOwner" | "UserNotKeyOwner" | "InvalidRole" | "DisabledRole" | "KeyDisabled" | "RoleNotInOrg" | "KeyNotInRole" | "KeyNotInOrg" | "UserExportRequestNotInOrg" | "UserExportRequestInvalid" | "UserNotOriginalKeyOwner" | "UserNotInRole" | "MustBeFullMember" | "SessionExpired" | "SessionChanged" | "SessionRevoked" | "ExpectedUserSession" | "SessionRoleChanged" | "ScopedNameNotFound" | "SessionInvalidEpochToken" | "SessionInvalidRefreshToken" | "SessionRefreshTokenExpired" | "InvalidAuthHeader" | "SessionNotFound" | "InvalidArn" | "SessionInvalidAuthToken" | "SessionAuthTokenExpired" | "SessionPossiblyStolenToken" | "MfaDisallowedIdentity" | "MfaDisallowedApprover" | "MfaTypeNotAllowed" | "MfaNotApprovedYet" | "MfaConfirmationCodeMismatch" | "MfaHttpRequestMismatch" | "MfaRemoveBelowMin" | "TotpAlreadyConfigured" | "TotpConfigurationChanged" | "MfaTotpBadConfiguration" | "MfaTotpBadCode" | "MfaTotpRateLimit" | "ImproperSessionScope" | "FullSessionRequired" | "SessionWithoutAnyScopeUnder" | "UserRoleUnprivileged" | "MfaNotConfigured";
1525
1804
  /**
1526
1805
  * @description Specifies a fork of the `BeaconChain`, to prevent replay attacks.
1527
1806
  * The schema of `Fork` is defined in the [Beacon chain
@@ -1641,6 +1920,7 @@ export interface components {
1641
1920
  /** @description HTTP path of the request (including host or not?) */
1642
1921
  path: string;
1643
1922
  };
1923
+ Id: string;
1644
1924
  /**
1645
1925
  * @description Proof that an end-user provided CubeSigner with a valid auth token
1646
1926
  * (either an OIDC token or a CubeSigner session token)
@@ -1692,7 +1972,7 @@ export interface components {
1692
1972
  salt: string;
1693
1973
  };
1694
1974
  /** @enum {string} */
1695
- InternalErrorCode: "SystemTimeError" | "ReqwestError" | "DbQueryError" | "DbGetError" | "DbDeleteError" | "DbPutError" | "DbUpdateError" | "SerdeError" | "TestAndSetError" | "DbGetItemsError" | "DbWriteError" | "CubistSignerError" | "CwPutMetricDataError" | "KmsGenerateRandomError" | "MalformedTotpBytes" | "KmsGenerateRandomNoResponseError" | "CreateKeyError" | "ParseDerivationPathError" | "SplitSignerError" | "CreateImportKeyError" | "CognitoDeleteUserError" | "CognitoListUsersError" | "CognitoGetUserError" | "MissingUserEmail" | "CognitoResendUserInvitation" | "CognitoSetUserPasswordError" | "GenericInternalError" | "OidcAuthWithoutOrg" | "MissingKeyMetadata" | "KmsKeyWithoutId" | "KmsEnableKeyError" | "KmsDisableKeyError" | "SerializeEncryptedExportKeyError" | "DeserializeEncryptedExportKeyError" | "ReEncryptUserExport" | "S3UploadError" | "S3DownloadError" | "ManagedStateMissing" | "InternalHeaderMissing" | "InvalidInternalHeaderValue" | "RequestLocalStateAlreadySet" | "OidcOrgMismatch" | "OrphanedRoleKeyId" | "OidcIssuerJwkEndpointUnavailable" | "OidcIssuerInvalidJwk" | "InvalidPkForMaterialId" | "UncheckedOrg" | "AvaSignCredsMissing" | "AvaSignSignatureMissing" | "ExpectedRoleSession" | "InvalidThirdPartyIdentity" | "CognitoGetUser" | "SnsSubscribeError" | "SnsUnsubscribeError" | "SnsGetSubscriptionAttributesError" | "SnsSubscriptionAttributesMissing" | "SnsSetSubscriptionAttributesError" | "SnsPublishBatchError";
1975
+ InternalErrorCode: "SystemTimeError" | "ReqwestError" | "EmailConstructionError" | "DbQueryError" | "DbGetError" | "DbDeleteError" | "DbPutError" | "DbUpdateError" | "SerdeError" | "TestAndSetError" | "DbGetItemsError" | "DbWriteError" | "CubistSignerError" | "CwPutMetricDataError" | "KmsGenerateRandomError" | "MalformedTotpBytes" | "KmsGenerateRandomNoResponseError" | "CreateKeyError" | "ParseDerivationPathError" | "SplitSignerError" | "CreateImportKeyError" | "CreateEotsNoncesError" | "EotsSignError" | "CognitoDeleteUserError" | "CognitoListUsersError" | "CognitoGetUserError" | "MissingUserEmail" | "CognitoResendUserInvitation" | "CognitoSetUserPasswordError" | "GenericInternalError" | "OidcAuthWithoutOrg" | "MissingKeyMetadata" | "KmsKeyWithoutId" | "KmsEnableKeyError" | "KmsDisableKeyError" | "SerializeEncryptedExportKeyError" | "DeserializeEncryptedExportKeyError" | "ReEncryptUserExport" | "S3UploadError" | "S3DownloadError" | "ManagedStateMissing" | "InternalHeaderMissing" | "InvalidInternalHeaderValue" | "RequestLocalStateAlreadySet" | "OidcOrgMismatch" | "OrphanedRoleKeyId" | "OidcIssuerInvalidJwk" | "InvalidPkForMaterialId" | "UncheckedOrg" | "AvaSignCredsMissing" | "AvaSignSignatureMissing" | "ExpectedRoleSession" | "InvalidThirdPartyIdentity" | "CognitoGetUser" | "SnsSubscribeError" | "SnsUnsubscribeError" | "SnsGetSubscriptionAttributesError" | "SnsSubscriptionAttributesMissing" | "SnsSetSubscriptionAttributesError" | "SnsPublishBatchError" | "InconsistentMultiValueTestAndSet";
1696
1976
  InviteRequest: {
1697
1977
  /**
1698
1978
  * @description The user's email address
@@ -1854,7 +2134,7 @@ export interface components {
1854
2134
  */
1855
2135
  role_id: string;
1856
2136
  };
1857
- KeyInfo: {
2137
+ KeyInfo: components["schemas"]["CommonFields"] & {
1858
2138
  derivation_info?: components["schemas"]["KeyDerivationInfo"] | null;
1859
2139
  /** @description Whether the key is enabled (only enabled keys may be used for signing) */
1860
2140
  enabled: boolean;
@@ -1870,12 +2150,6 @@ export interface components {
1870
2150
  * @example 0x8e3484687e66cdd26cf04c3647633ab4f3570148
1871
2151
  */
1872
2152
  material_id: string;
1873
- /**
1874
- * @description User-defined metadata. When rendering (e.g., in the browser) you should treat
1875
- * it as untrusted user data (and avoid injecting metadata into HTML directly) if
1876
- * untrusted users can create/update keys (or their metadata).
1877
- */
1878
- metadata?: string;
1879
2153
  /**
1880
2154
  * @description Owner of the key
1881
2155
  * @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
@@ -1912,7 +2186,7 @@ export interface components {
1912
2186
  keys: components["schemas"]["KeyInfo"][];
1913
2187
  };
1914
2188
  /** @enum {string} */
1915
- KeyType: "SecpEthAddr" | "SecpBtc" | "SecpBtcTest" | "SecpAvaAddr" | "SecpAvaTestAddr" | "BlsPub" | "BlsInactive" | "Ed25519SolanaAddr" | "Ed25519SuiAddr" | "Ed25519AptosAddr" | "Ed25519CardanoAddrVk" | "Ed25519StellarAddr" | "Mnemonic" | "Stark";
2189
+ KeyType: "SecpEthAddr" | "SecpBtc" | "SecpBtcTest" | "SecpAvaAddr" | "SecpAvaTestAddr" | "BlsPub" | "BlsInactive" | "Ed25519SolanaAddr" | "Ed25519SuiAddr" | "Ed25519AptosAddr" | "Ed25519CardanoAddrVk" | "Ed25519StellarAddr" | "Mnemonic" | "Stark" | "BabylonEots" | "TaprootBtc" | "TaprootBtcTest";
1916
2190
  /**
1917
2191
  * @description Wrapper around encrypted [UnencryptedLastEvalKey] bytes.
1918
2192
  *
@@ -1920,6 +2194,10 @@ export interface components {
1920
2194
  * so that they can pass this back to us as a url query parameter.
1921
2195
  */
1922
2196
  LastEvalKey: string;
2197
+ /** @description Third-party identities associated with the user's account */
2198
+ ListIdentitiesResponse: {
2199
+ identities: components["schemas"]["OIDCIdentity"][];
2200
+ };
1923
2201
  ListMfaResponse: {
1924
2202
  /** @description All pending MFA requests */
1925
2203
  mfa_requests: components["schemas"]["MfaRequestInfo"][];
@@ -1932,6 +2210,40 @@ export interface components {
1932
2210
  * @enum {string}
1933
2211
  */
1934
2212
  MemberRole: "Alien" | "Member" | "Owner";
2213
+ /** @enum {string} */
2214
+ MembershipStatus: "enabled" | "disabled";
2215
+ /**
2216
+ * @example {
2217
+ * "allowed_approvers": [
2218
+ * "User#fabc3f88-04e0-471b-9657-0ae12a3cd73e",
2219
+ * "User#d796c369-9974-473b-ab9e-e4a2418d2d07"
2220
+ * ],
2221
+ * "count": 2,
2222
+ * "lifetime": 900
2223
+ * }
2224
+ */
2225
+ MfaPolicy: {
2226
+ /** @description Users who are allowed to approve. If empty at creation time, default to the current user. */
2227
+ allowed_approvers?: string[];
2228
+ /** @description Allowed approval types. When omitted, defaults to any. */
2229
+ allowed_mfa_types?: components["schemas"]["MfaType"][] | null;
2230
+ /**
2231
+ * Format: int32
2232
+ * @description How many users to require to approve (defaults to 1).
2233
+ */
2234
+ count?: number;
2235
+ lifetime?: components["schemas"]["Seconds"];
2236
+ /**
2237
+ * Format: int32
2238
+ * @description How many auth factors to require per user (defaults to 1).
2239
+ */
2240
+ num_auth_factors?: number;
2241
+ /**
2242
+ * @description CubeSigner operations to which this policy should apply.
2243
+ * When omitted, applies to all operations.
2244
+ */
2245
+ restricted_operations?: components["schemas"]["OperationKind"][] | null;
2246
+ };
1935
2247
  /** @description Returned as a response from multiple routes (e.g., 'get mfa', 'approve mfa', 'approve totp'). */
1936
2248
  MfaRequestInfo: {
1937
2249
  expires_at: components["schemas"]["EpochDateTime"];
@@ -1979,6 +2291,8 @@ export interface components {
1979
2291
  */
1980
2292
  token: string;
1981
2293
  };
2294
+ /** Format: binary */
2295
+ NonceValue: string;
1982
2296
  /** @enum {string} */
1983
2297
  NotFoundErrorCode: "UriSegmentMissing" | "UriSegmentInvalid" | "TotpNotConfigured" | "FidoKeyNotFound" | "FidoChallengeNotFound" | "TotpChallengeNotFound" | "UserExportRequestNotFound" | "UserExportCiphertextNotFound";
1984
2298
  /** @description The configuration and status of a notification endpoint */
@@ -2005,7 +2319,7 @@ export interface components {
2005
2319
  */
2006
2320
  OIDCIdentity: {
2007
2321
  /**
2008
- * @description The root-level issuer who administrates this user. Frome the OIDC spec:
2322
+ * @description The root-level issuer who administrates this user. From the OIDC spec:
2009
2323
  * Issuer Identifier for the Issuer of the response. The iss
2010
2324
  * value is a case sensitive URL using the https scheme that contains
2011
2325
  * scheme, host, and optionally, port number and path components and
@@ -2037,6 +2351,23 @@ export interface components {
2037
2351
  scopes: string[];
2038
2352
  tokens?: components["schemas"]["RatchetConfig"];
2039
2353
  };
2354
+ /**
2355
+ * @description All different kinds of sensitive operations
2356
+ * @enum {string}
2357
+ */
2358
+ OperationKind: "AvaSign" | "AvaChainTxSign" | "BlobSign" | "BtcSign" | "TaprootSign" | "Eip191Sign" | "Eip712Sign" | "EotsNonces" | "EotsSign" | "Eth1Sign" | "Eth2Sign" | "Eth2Stake" | "Eth2Unstake" | "SolanaSign";
2359
+ OrgData: {
2360
+ /**
2361
+ * @description The id of the org
2362
+ * @example Org#123...
2363
+ */
2364
+ org_id: string;
2365
+ /**
2366
+ * @description The human-readable name for the org
2367
+ * @example my_org_name
2368
+ */
2369
+ org_name?: string | null;
2370
+ };
2040
2371
  /**
2041
2372
  * @description Auto-generated discriminant enum variants
2042
2373
  * @enum {string}
@@ -2272,10 +2603,32 @@ export interface components {
2272
2603
  };
2273
2604
  PolicyErrorCode: components["schemas"]["PolicyErrorOwnCodes"] | components["schemas"]["EvmTxDepositErrorCode"];
2274
2605
  /** @enum {string} */
2275
- PolicyErrorOwnCodes: "EvmTxReceiverMismatch" | "EvmTxSenderMismatch" | "PolicyDisjunctionError" | "PolicyNegationError" | "Eth2ExceededMaxUnstake" | "Eth2ConcurrentUnstaking" | "NotInIpv4Allowlist" | "NotInOriginAllowlist" | "InvalidSourceIp" | "RawSigningNotAllowed" | "Eip712SigningNotAllowed" | "OidcSourceNotAllowed" | "NoOidcAuthSourcesDefined" | "AddKeyToRoleDisallowed" | "KeysAlreadyInRole" | "KeyInMultipleRoles" | "KeyAccessError" | "Eip191SigningNotAllowed";
2606
+ PolicyErrorOwnCodes: "EvmTxReceiverMismatch" | "EvmTxSenderMismatch" | "PolicyDisjunctionError" | "PolicyNegationError" | "Eth2ExceededMaxUnstake" | "Eth2ConcurrentUnstaking" | "NotInIpv4Allowlist" | "NotInOriginAllowlist" | "InvalidSourceIp" | "RawSigningNotAllowed" | "Eip712SigningNotAllowed" | "OidcSourceNotAllowed" | "NoOidcAuthSourcesDefined" | "AddKeyToRoleDisallowed" | "KeysAlreadyInRole" | "KeyInMultipleRoles" | "KeyAccessError" | "Eip191SigningNotAllowed" | "TimeLocked";
2276
2607
  PreconditionErrorCode: components["schemas"]["PreconditionErrorOwnCodes"] | components["schemas"]["PolicyErrorCode"];
2277
2608
  /** @enum {string} */
2278
2609
  PreconditionErrorOwnCodes: "Eth2ProposerSlotTooLow" | "Eth2AttestationSourceEpochTooLow" | "Eth2AttestationTargetEpochTooLow" | "Eth2ConcurrentBlockSigning" | "Eth2ConcurrentAttestationSigning" | "Eth2MultiDepositToNonGeneratedKey" | "Eth2MultiDepositUnknownInitialDeposit" | "Eth2MultiDepositWithdrawalAddressMismatch";
2610
+ /** @description Contains outputs of previous transactions. */
2611
+ PrevOutputs: OneOf<[
2612
+ {
2613
+ /**
2614
+ * @description `One` variant allows provision of the single previous output needed. It's useful,
2615
+ * for example, when modifier `SIGHASH_ANYONECANPAY` is provided, only previous output
2616
+ * of the current input is needed. The first `index` argument is the input index
2617
+ * this output is referring to.
2618
+ */
2619
+ One: {
2620
+ index: number;
2621
+ tx_out: components["schemas"]["BtcTxOut"];
2622
+ };
2623
+ },
2624
+ {
2625
+ /**
2626
+ * @description When `SIGHASH_ANYONECANPAY` is not provided, or when the caller is giving all
2627
+ * previous outputs so the same variable can be used for multiple inputs.
2628
+ */
2629
+ All: components["schemas"]["BtcTxOut"][];
2630
+ }
2631
+ ]>;
2279
2632
  /**
2280
2633
  * @description This type represents a wire-encodable form of the PublicKeyCredential interface
2281
2634
  * Clients may need to manually encode into this format to communicate with the server
@@ -2637,7 +2990,7 @@ export interface components {
2637
2990
  /** @description Tokens that were revoked. */
2638
2991
  revoked: components["schemas"]["TokenInfo"][];
2639
2992
  };
2640
- RoleInfo: {
2993
+ RoleInfo: components["schemas"]["CommonFields"] & {
2641
2994
  /**
2642
2995
  * @description Whether the role is enabled
2643
2996
  * @example true
@@ -2776,6 +3129,49 @@ export interface components {
2776
3129
  * @enum {string}
2777
3130
  */
2778
3131
  SubscriptionStatus: "Confirmed" | "Pending";
3132
+ TaprootSignRequest: {
3133
+ sig_kind: components["schemas"]["TaprootSignatureKind"];
3134
+ tx: components["schemas"]["BtcTx"];
3135
+ };
3136
+ TaprootSignResponse: {
3137
+ /**
3138
+ * @description The 64-byte signature, encoded as defined in BIP0340.
3139
+ * @example 0x14110b79e65f90f70cd3ff5adf29bed9c9fcc035772240990fb51d25a10c9667669bba0c3b335163f65d1b9d8569cf22dd8210084cd24d83cc4bb396d979e10d
3140
+ */
3141
+ signature: string;
3142
+ };
3143
+ TaprootSignatureKind: {
3144
+ /** @description Optional annex, as per BIP341 */
3145
+ annex?: string | null;
3146
+ /**
3147
+ * @description Transaction input index
3148
+ * @example 0
3149
+ */
3150
+ input_index: number;
3151
+ leaf_hash_code_separator?: components["schemas"]["BtcLeafHashCodeSeparator"] | null;
3152
+ /**
3153
+ * @description If this field is not present or null, no tweak is applied. If the field is an
3154
+ * empty string, the key is tweaked with an unspendable script path per BIP0341.
3155
+ * Otherwise, this field must contain a 32-byte, base-64 encoded hex string
3156
+ * representing the Merkle root with which to tweak the key before signing.
3157
+ * @example F41HAy2q5Gn8laF2CuMsZbRAQTmD+4Ob3VUMZ7TBGK4=
3158
+ */
3159
+ merkle_root?: string | null;
3160
+ prevouts: components["schemas"]["PrevOutputs"];
3161
+ /**
3162
+ * @description Hash type of an input's signature, encoded in the last byte of the signature.
3163
+ * Possible values:
3164
+ * - SIGHASH_ALL
3165
+ * - SIGHASH_ALL|SIGHASH_ANYONECANPAY
3166
+ * - SIGHASH_DEFAULT
3167
+ * - SIGHASH_NONE
3168
+ * - SIGHASH_NONE|SIGHASH_ANYONECANPAY
3169
+ * - SIGHASH_SINGLE
3170
+ * - SIGHASH_SINGLE|SIGHASH_ANYONECANPAY
3171
+ * @example SIGHASH_ALL
3172
+ */
3173
+ sighash_type: string;
3174
+ };
2779
3175
  TokenInfo: {
2780
3176
  /** @description Session ID. Use it to revoke a session. Cannot be used for auth. */
2781
3177
  hash: string;
@@ -2895,6 +3291,11 @@ export interface components {
2895
3291
  * Once disabled, a key cannot be used for signing.
2896
3292
  */
2897
3293
  enabled?: boolean | null;
3294
+ /**
3295
+ * Format: int64
3296
+ * @description If set, updating the metadata only succeeds if the version matches this value.
3297
+ */
3298
+ version?: number | null;
2898
3299
  };
2899
3300
  UpdateOrgRequest: {
2900
3301
  /** @description If set, update this org's `enabled` field to this value. */
@@ -3039,6 +3440,7 @@ export interface components {
3039
3440
  user_export_window?: number | null;
3040
3441
  };
3041
3442
  UpdateRoleRequest: {
3443
+ edit_policy?: components["schemas"]["EditPolicy"] | null;
3042
3444
  /**
3043
3445
  * @description If set, updates the role's `enabled` property to this value.
3044
3446
  * Once disabled, a role cannot be used; and it's tokens cannot be used for signing.
@@ -3057,6 +3459,11 @@ export interface components {
3057
3459
  */
3058
3460
  policy?: Record<string, never>[] | null;
3059
3461
  };
3462
+ /** @description Request to update an existing user */
3463
+ UpdateUserMembershipRequest: {
3464
+ /** @description Enable or disable user */
3465
+ disabled?: boolean | null;
3466
+ };
3060
3467
  /** @description A request to complete a user export */
3061
3468
  UserExportCompleteRequest: {
3062
3469
  /**
@@ -3152,10 +3559,10 @@ export interface components {
3152
3559
  };
3153
3560
  UserInOrgInfo: {
3154
3561
  /**
3155
- * @description The user's email
3562
+ * @description The user's email (optional)
3156
3563
  * @example alice@example.com
3157
3564
  */
3158
- email: string;
3565
+ email?: string | null;
3159
3566
  /**
3160
3567
  * @description The id of the user
3161
3568
  * @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
@@ -3164,6 +3571,7 @@ export interface components {
3164
3571
  membership: components["schemas"]["MemberRole"];
3165
3572
  /** @description Optional user name. */
3166
3573
  name?: string | null;
3574
+ status: components["schemas"]["MembershipStatus"];
3167
3575
  };
3168
3576
  /**
3169
3577
  * @description Information about a user's membership in an organization
@@ -3176,6 +3584,7 @@ export interface components {
3176
3584
  * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
3177
3585
  */
3178
3586
  org_id: string;
3587
+ status: components["schemas"]["MembershipStatus"];
3179
3588
  };
3180
3589
  UserInRoleInfo: {
3181
3590
  user_id: string;
@@ -3185,7 +3594,7 @@ export interface components {
3185
3594
  * @description Optional email
3186
3595
  * @example alice@example.com
3187
3596
  */
3188
- email: string;
3597
+ email?: string | null;
3189
3598
  /** @description All multi-factor authentication methods configured for this user */
3190
3599
  mfa: components["schemas"]["ConfiguredMfa"][];
3191
3600
  /** @description MFA policy, applies before logging in and other sensitive operations */
@@ -3211,6 +3620,11 @@ export interface components {
3211
3620
  */
3212
3621
  user_id: string;
3213
3622
  };
3623
+ /** @description The response to the user/orgs endpoint */
3624
+ UserOrgsResponse: {
3625
+ /** @description The list of orgs this user is a member of */
3626
+ orgs: components["schemas"]["OrgData"][];
3627
+ };
3214
3628
  /**
3215
3629
  * @description A WebAuthn Relying Party may require user verification for some of its
3216
3630
  * operations but not for others, and may use this type to express its needs.
@@ -3323,6 +3737,30 @@ export interface components {
3323
3737
  };
3324
3738
  };
3325
3739
  };
3740
+ /**
3741
+ * @description The HTTP response to an email OTP request.
3742
+ *
3743
+ * Users receive an encrypted OIDC token in their email inbox.
3744
+ * The values in this response can be used to decrypt that token
3745
+ * using AES-GCM. This ensures that clients need *both* the emailed token
3746
+ * and this response to complete OTP auth.
3747
+ */
3748
+ EmailOtpResponse: {
3749
+ content: {
3750
+ "application/json": {
3751
+ /**
3752
+ * Format: binary
3753
+ * @description Base64 URL encoded IV value for AES-GCM
3754
+ */
3755
+ iv: string;
3756
+ /**
3757
+ * Format: binary
3758
+ * @description Base64 URL encoded key for AES-GCM
3759
+ */
3760
+ key: string;
3761
+ };
3762
+ };
3763
+ };
3326
3764
  EmptyImpl: {
3327
3765
  content: {
3328
3766
  "application/json": {
@@ -3330,6 +3768,33 @@ export interface components {
3330
3768
  };
3331
3769
  };
3332
3770
  };
3771
+ /** @description Response generated when creating EOTS nonces */
3772
+ EotsCreateNonceResponse: {
3773
+ content: {
3774
+ "application/json": {
3775
+ /**
3776
+ * @description The generated nonces as an array of 0x-prefixed hex strings
3777
+ * @example [
3778
+ * "0xb393bf39e71a16d784853d58255a296222a99fd3c87aa7ca206c5230c188f1c7",
3779
+ * "0xe01936584b4f0c0e97f0d3018c4f9db2bf7de41395c6403a48fd0dff0ef7b40d"
3780
+ * ]
3781
+ */
3782
+ nonces: string[];
3783
+ };
3784
+ };
3785
+ };
3786
+ /** @description Response to an EOTS signing request */
3787
+ EotsSignResponse: {
3788
+ content: {
3789
+ "application/json": {
3790
+ /**
3791
+ * @description The resulting signature, a hex-encoded 32-byte value
3792
+ * @example 0xd9804c04a696b522472c53bd3a3c664c4c3085a017927e45ffaed711d1613700
3793
+ */
3794
+ signature: string;
3795
+ };
3796
+ };
3797
+ };
3333
3798
  Eth1SignResponse: {
3334
3799
  content: {
3335
3800
  "application/json": {
@@ -3450,7 +3915,7 @@ export interface components {
3450
3915
  };
3451
3916
  KeyInfo: {
3452
3917
  content: {
3453
- "application/json": {
3918
+ "application/json": components["schemas"]["CommonFields"] & {
3454
3919
  derivation_info?: components["schemas"]["KeyDerivationInfo"] | null;
3455
3920
  /** @description Whether the key is enabled (only enabled keys may be used for signing) */
3456
3921
  enabled: boolean;
@@ -3466,12 +3931,6 @@ export interface components {
3466
3931
  * @example 0x8e3484687e66cdd26cf04c3647633ab4f3570148
3467
3932
  */
3468
3933
  material_id: string;
3469
- /**
3470
- * @description User-defined metadata. When rendering (e.g., in the browser) you should treat
3471
- * it as untrusted user data (and avoid injecting metadata into HTML directly) if
3472
- * untrusted users can create/update keys (or their metadata).
3473
- */
3474
- metadata?: string;
3475
3934
  /**
3476
3935
  * @description Owner of the key
3477
3936
  * @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
@@ -3513,6 +3972,14 @@ export interface components {
3513
3972
  };
3514
3973
  };
3515
3974
  };
3975
+ /** @description Third-party identities associated with the user's account */
3976
+ ListIdentitiesResponse: {
3977
+ content: {
3978
+ "application/json": {
3979
+ identities: components["schemas"]["OIDCIdentity"][];
3980
+ };
3981
+ };
3982
+ };
3516
3983
  ListMfaResponse: {
3517
3984
  content: {
3518
3985
  "application/json": {
@@ -3776,7 +4243,7 @@ export interface components {
3776
4243
  };
3777
4244
  RoleInfo: {
3778
4245
  content: {
3779
- "application/json": {
4246
+ "application/json": components["schemas"]["CommonFields"] & {
3780
4247
  /**
3781
4248
  * @description Whether the role is enabled
3782
4249
  * @example true
@@ -3860,6 +4327,17 @@ export interface components {
3860
4327
  };
3861
4328
  };
3862
4329
  };
4330
+ TaprootSignResponse: {
4331
+ content: {
4332
+ "application/json": {
4333
+ /**
4334
+ * @description The 64-byte signature, encoded as defined in BIP0340.
4335
+ * @example 0x14110b79e65f90f70cd3ff5adf29bed9c9fcc035772240990fb51d25a10c9667669bba0c3b335163f65d1b9d8569cf22dd8210084cd24d83cc4bb396d979e10d
4336
+ */
4337
+ signature: string;
4338
+ };
4339
+ };
4340
+ };
3863
4341
  TokenInfo: {
3864
4342
  content: {
3865
4343
  "application/json": {
@@ -4013,6 +4491,26 @@ export interface components {
4013
4491
  };
4014
4492
  };
4015
4493
  };
4494
+ UserInOrgInfo: {
4495
+ content: {
4496
+ "application/json": {
4497
+ /**
4498
+ * @description The user's email (optional)
4499
+ * @example alice@example.com
4500
+ */
4501
+ email?: string | null;
4502
+ /**
4503
+ * @description The id of the user
4504
+ * @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
4505
+ */
4506
+ id: string;
4507
+ membership: components["schemas"]["MemberRole"];
4508
+ /** @description Optional user name. */
4509
+ name?: string | null;
4510
+ status: components["schemas"]["MembershipStatus"];
4511
+ };
4512
+ };
4513
+ };
4016
4514
  UserInfo: {
4017
4515
  content: {
4018
4516
  "application/json": {
@@ -4020,7 +4518,7 @@ export interface components {
4020
4518
  * @description Optional email
4021
4519
  * @example alice@example.com
4022
4520
  */
4023
- email: string;
4521
+ email?: string | null;
4024
4522
  /** @description All multi-factor authentication methods configured for this user */
4025
4523
  mfa: components["schemas"]["ConfiguredMfa"][];
4026
4524
  /** @description MFA policy, applies before logging in and other sensitive operations */
@@ -4048,6 +4546,15 @@ export interface components {
4048
4546
  };
4049
4547
  };
4050
4548
  };
4549
+ /** @description The response to the user/orgs endpoint */
4550
+ UserOrgsResponse: {
4551
+ content: {
4552
+ "application/json": {
4553
+ /** @description The list of orgs this user is a member of */
4554
+ orgs: components["schemas"]["OrgData"][];
4555
+ };
4556
+ };
4557
+ };
4051
4558
  };
4052
4559
  parameters: never;
4053
4560
  requestBodies: never;
@@ -4129,13 +4636,17 @@ export interface operations {
4129
4636
  };
4130
4637
  };
4131
4638
  /**
4132
- * Sign Avalanche X- or P-Chain Message
4133
- * @description Sign Avalanche X- or P-Chain Message
4639
+ * Sign a serialized Avalanche C/X/P-Chain Message
4640
+ * @description Sign a serialized Avalanche C/X/P-Chain Message
4641
+ *
4642
+ * Signs an Avalanche message with a given SecpEth (C-Chain messages) or
4643
+ * SecpAva (X- and P-Chain messages) key. Currently signing C-Chain messages
4644
+ * with SecpEth key must also be explicitly allowed via `AllowRawBlobSigning`
4645
+ * policy.
4134
4646
  *
4135
- * Signs an Avalanche message with a given SecpAva key.
4136
4647
  * This is a pre-release feature.
4137
4648
  */
4138
- avaSign: {
4649
+ avaSerializedTxSign: {
4139
4650
  parameters: {
4140
4651
  path: {
4141
4652
  /**
@@ -4144,7 +4655,53 @@ export interface operations {
4144
4655
  */
4145
4656
  org_id: string;
4146
4657
  /**
4147
- * @description Avalanche bech32 address format without the chain prefix
4658
+ * @description Avalanche chain
4659
+ * @example P
4660
+ */
4661
+ ava_chain: string;
4662
+ /**
4663
+ * @description Avalanche address in bech32 or ETH format
4664
+ * @example 0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7
4665
+ */
4666
+ pubkey: string;
4667
+ };
4668
+ };
4669
+ requestBody: {
4670
+ content: {
4671
+ "application/json": components["schemas"]["AvaSerializedTxSignRequest"];
4672
+ };
4673
+ };
4674
+ responses: {
4675
+ 200: components["responses"]["AvaSignResponse"];
4676
+ 202: {
4677
+ content: {
4678
+ "application/json": components["schemas"]["AcceptedResponse"];
4679
+ };
4680
+ };
4681
+ default: {
4682
+ content: {
4683
+ "application/json": components["schemas"]["ErrorResponse"];
4684
+ };
4685
+ };
4686
+ };
4687
+ };
4688
+ /**
4689
+ * Sign JSON-encoded Avalanche X- or P-Chain Message
4690
+ * @description Sign JSON-encoded Avalanche X- or P-Chain Message
4691
+ *
4692
+ * Signs an Avalanche message with a given SecpAva key.
4693
+ * This is a pre-release feature.
4694
+ */
4695
+ avaSign: {
4696
+ parameters: {
4697
+ path: {
4698
+ /**
4699
+ * @description Name or ID of the desired Org
4700
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4701
+ */
4702
+ org_id: string;
4703
+ /**
4704
+ * @description Avalanche bech32 address format without the chain prefix
4148
4705
  * @example avax1am4w6hfrvmh3akduzkjthrtgtqafalce6an8cr
4149
4706
  */
4150
4707
  pubkey: string;
@@ -4170,10 +4727,86 @@ export interface operations {
4170
4727
  };
4171
4728
  };
4172
4729
  /**
4173
- * Sign Bitcoin Transaction
4174
- * @description Sign Bitcoin Transaction
4730
+ * Create EOTS nonces
4731
+ * @description Create EOTS nonces
4732
+ *
4733
+ * Generates a set of Babylon EOTS nonces for a specified chain-id, starting at a
4734
+ * specified block height.
4735
+ */
4736
+ createEotsNonces: {
4737
+ parameters: {
4738
+ path: {
4739
+ /**
4740
+ * @description Name or ID of the desired Org
4741
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4742
+ */
4743
+ org_id: string;
4744
+ /**
4745
+ * @description Hex-encoded public key of the EOTS key
4746
+ * @example 0x457f0f24cfb06c3c35874bbd1f59b57180a5a9d7e1f6929280839c830f5c147f
4747
+ */
4748
+ pubkey: string;
4749
+ };
4750
+ };
4751
+ requestBody: {
4752
+ content: {
4753
+ "application/json": components["schemas"]["EotsCreateNonceRequest"];
4754
+ };
4755
+ };
4756
+ responses: {
4757
+ 200: components["responses"]["EotsCreateNonceResponse"];
4758
+ default: {
4759
+ content: {
4760
+ "application/json": components["schemas"]["ErrorResponse"];
4761
+ };
4762
+ };
4763
+ };
4764
+ };
4765
+ /**
4766
+ * Create an EOTS signature
4767
+ * @description Create an EOTS signature
4175
4768
  *
4176
- * Signs a Bitcoin transaction with a given key.
4769
+ * Generates an EOTS signature for the specified chain-id, block height, and message.
4770
+ */
4771
+ eotsSign: {
4772
+ parameters: {
4773
+ path: {
4774
+ /**
4775
+ * @description Name or ID of the desired Org
4776
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4777
+ */
4778
+ org_id: string;
4779
+ /**
4780
+ * @description Hex-encoded public key of the EOTS key
4781
+ * @example 0x457f0f24cfb06c3c35874bbd1f59b57180a5a9d7e1f6929280839c830f5c147f
4782
+ */
4783
+ pubkey: string;
4784
+ };
4785
+ };
4786
+ requestBody: {
4787
+ content: {
4788
+ "application/json": components["schemas"]["EotsSignRequest"];
4789
+ };
4790
+ };
4791
+ responses: {
4792
+ 200: components["responses"]["EotsSignResponse"];
4793
+ 202: {
4794
+ content: {
4795
+ "application/json": components["schemas"]["AcceptedResponse"];
4796
+ };
4797
+ };
4798
+ default: {
4799
+ content: {
4800
+ "application/json": components["schemas"]["ErrorResponse"];
4801
+ };
4802
+ };
4803
+ };
4804
+ };
4805
+ /**
4806
+ * Sign Bitcoin Segwit Transaction
4807
+ * @description Sign Bitcoin Segwit Transaction
4808
+ *
4809
+ * Signs a Bitcoin Segwit transaction with a given key.
4177
4810
  * This is a pre-release feature.
4178
4811
  */
4179
4812
  btcSign: {
@@ -4210,6 +4843,47 @@ export interface operations {
4210
4843
  };
4211
4844
  };
4212
4845
  };
4846
+ /**
4847
+ * Sign Bitcoin Taproot Transaction
4848
+ * @description Sign Bitcoin Taproot Transaction
4849
+ *
4850
+ * Signs a Bitcoin Taproot transaction with a given key.
4851
+ * This is a pre-release feature.
4852
+ */
4853
+ btcTaprootSign: {
4854
+ parameters: {
4855
+ path: {
4856
+ /**
4857
+ * @description Name or ID of the desired Org
4858
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4859
+ */
4860
+ org_id: string;
4861
+ /**
4862
+ * @description bech32 encoding of the public key
4863
+ * @example bc1p2wsldez5mud2yam29q22wgfh9439spgduvct83k3pm50fcxa5dps59h4z5
4864
+ */
4865
+ pubkey: string;
4866
+ };
4867
+ };
4868
+ requestBody: {
4869
+ content: {
4870
+ "application/json": components["schemas"]["TaprootSignRequest"];
4871
+ };
4872
+ };
4873
+ responses: {
4874
+ 200: components["responses"]["TaprootSignResponse"];
4875
+ 202: {
4876
+ content: {
4877
+ "application/json": components["schemas"]["AcceptedResponse"];
4878
+ };
4879
+ };
4880
+ default: {
4881
+ content: {
4882
+ "application/json": components["schemas"]["ErrorResponse"];
4883
+ };
4884
+ };
4885
+ };
4886
+ };
4213
4887
  /**
4214
4888
  * Derive Key From Long-Lived Mnemonic
4215
4889
  * @description Derive Key From Long-Lived Mnemonic
@@ -4241,6 +4915,30 @@ export interface operations {
4241
4915
  };
4242
4916
  };
4243
4917
  };
4918
+ setEmailOtp: {
4919
+ parameters: {
4920
+ path: {
4921
+ /**
4922
+ * @description Name or ID of the desired Org
4923
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
4924
+ */
4925
+ org_id: string;
4926
+ };
4927
+ };
4928
+ requestBody: {
4929
+ content: {
4930
+ "application/json": components["schemas"]["ConfigureEmailOtpRequest"];
4931
+ };
4932
+ };
4933
+ responses: {
4934
+ 200: components["responses"]["EmptyImpl"];
4935
+ default: {
4936
+ content: {
4937
+ "application/json": components["schemas"]["ErrorResponse"];
4938
+ };
4939
+ };
4940
+ };
4941
+ };
4244
4942
  /**
4245
4943
  * Sign EIP-191 Data
4246
4944
  * @description Sign EIP-191 Data
@@ -4321,6 +5019,85 @@ export interface operations {
4321
5019
  };
4322
5020
  };
4323
5021
  };
5022
+ /**
5023
+ * List associated OIDC identities with the current user.
5024
+ * @description List associated OIDC identities with the current user.
5025
+ */
5026
+ listOidcIdentities: {
5027
+ parameters: {
5028
+ path: {
5029
+ /**
5030
+ * @description Name or ID of the desired Org
5031
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5032
+ */
5033
+ org_id: string;
5034
+ };
5035
+ };
5036
+ responses: {
5037
+ 200: components["responses"]["ListIdentitiesResponse"];
5038
+ default: {
5039
+ content: {
5040
+ "application/json": components["schemas"]["ErrorResponse"];
5041
+ };
5042
+ };
5043
+ };
5044
+ };
5045
+ /**
5046
+ * Associate an OIDC identity with the current user in org <session.org>.
5047
+ * @description Associate an OIDC identity with the current user in org <session.org>.
5048
+ */
5049
+ addOidcIdentity: {
5050
+ parameters: {
5051
+ path: {
5052
+ /**
5053
+ * @description Name or ID of the desired Org
5054
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5055
+ */
5056
+ org_id: string;
5057
+ };
5058
+ };
5059
+ requestBody: {
5060
+ content: {
5061
+ "application/json": components["schemas"]["AddIdentityRequest"];
5062
+ };
5063
+ };
5064
+ responses: {
5065
+ 200: components["responses"]["EmptyImpl"];
5066
+ default: {
5067
+ content: {
5068
+ "application/json": components["schemas"]["ErrorResponse"];
5069
+ };
5070
+ };
5071
+ };
5072
+ };
5073
+ /**
5074
+ * Remove an OIDC identity from the current user's account in org <session.org>.
5075
+ * @description Remove an OIDC identity from the current user's account in org <session.org>.
5076
+ */
5077
+ removeOidcIdentity: {
5078
+ parameters: {
5079
+ path: {
5080
+ /**
5081
+ * @description Name or ID of the desired Org
5082
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5083
+ */
5084
+ org_id: string;
5085
+ };
5086
+ };
5087
+ requestBody: {
5088
+ content: {
5089
+ "application/json": components["schemas"]["OIDCIdentity"];
5090
+ };
5091
+ };
5092
+ responses: {
5093
+ 200: components["responses"]["EmptyImpl"];
5094
+ default: {
5095
+ content: {
5096
+ "application/json": components["schemas"]["ErrorResponse"];
5097
+ };
5098
+ };
5099
+ };
5100
+ };
4324
5101
  /**
4325
5102
  * Create [IdentityProof] from CubeSigner user session
4326
5103
  * @description Create [IdentityProof] from CubeSigner user session
@@ -4520,6 +5297,11 @@ export interface operations {
4520
5297
  * @example SecpEthAddr
4521
5298
  */
4522
5299
  key_type?: components["schemas"]["KeyType"] | null;
5300
+ /**
5301
+ * @description Filter by key owner
5302
+ * @example User#5269c579-b4f9-4620-9e90-e46a5a0ffb4d
5303
+ */
5304
+ key_owner?: components["schemas"]["Id"] | null;
4523
5305
  };
4524
5306
  path: {
4525
5307
  /**
@@ -4603,7 +5385,9 @@ export interface operations {
4603
5385
  * @description Delete Key
4604
5386
  *
4605
5387
  * Deletes a key specified by its ID.
5388
+ *
4606
5389
  * Only the key owner and org owners are allowed to delete keys.
5390
+ * Additionally, the role's edit policy (if set) must permit the update.
4607
5391
  */
4608
5392
  deleteKey: {
4609
5393
  parameters: {
@@ -4620,6 +5404,11 @@ export interface operations {
4620
5404
  key_id: string;
4621
5405
  };
4622
5406
  };
5407
+ requestBody: {
5408
+ content: {
5409
+ "application/json": components["schemas"]["Empty"];
5410
+ };
5411
+ };
4623
5412
  responses: {
4624
5413
  200: components["responses"]["EmptyImpl"];
4625
5414
  default: {
@@ -4633,7 +5422,11 @@ export interface operations {
4633
5422
  * Update Key
4634
5423
  * @description Update Key
4635
5424
  *
4636
- * Enable or disable a key. The user must be the owner of the key or organization to perform this action.
5425
+ * Enable or disable a key. The user must be the owner of the key or
5426
+ * organization to perform this action.
5427
+ *
5428
+ * For each requested update, the session must have the corresponding 'manage:key:update:_' scope;
5429
+ * if no updates are requested, the session must have 'manage:key:get'.
4637
5430
  */
4638
5431
  updateKey: {
4639
5432
  parameters: {
@@ -4997,6 +5790,44 @@ export interface operations {
4997
5790
  };
4998
5791
  };
4999
5792
  };
5793
+ /**
5794
+ * Initiate login via email token
5795
+ * @description Initiate login via email token
5796
+ *
5797
+ * This endpoint sends an email to the provided address with an OIDC token encrypted with AES-GCM.
5798
+ * The decryption parameters are returned immediately in the response.
5799
+ * Once that token is decrypted, it can be used with the standard OIDC authentication flows
5800
+ *
5801
+ *
5802
+ * > [!IMPORTANT]
5803
+ * > For this endpoint to succeed, the org must be configured to:
5804
+ * > 1. Allow the issuer `https://shim.oauth2.cubist.dev/email-otp` and client ID being the Org ID
5805
+ * > 2. Have an email sender configured for OTPs
5806
+ */
5807
+ emailOtpAuth: {
5808
+ parameters: {
5809
+ path: {
5810
+ /**
5811
+ * @description Name or ID of the desired Org
5812
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
5813
+ */
5814
+ org_id: string;
5815
+ };
5816
+ };
5817
+ requestBody: {
5818
+ content: {
5819
+ "application/json": components["schemas"]["EmailOtpRequest"];
5820
+ };
5821
+ };
5822
+ responses: {
5823
+ 200: components["responses"]["EmailOtpResponse"];
5824
+ default: {
5825
+ content: {
5826
+ "application/json": components["schemas"]["ErrorResponse"];
5827
+ };
5828
+ };
5829
+ };
5830
+ };
5000
5831
  /**
5001
5832
  * List Roles
5002
5833
  * @description List Roles
@@ -5106,7 +5937,9 @@ export interface operations {
5106
5937
  * @description Delete Role
5107
5938
  *
5108
5939
  * Deletes a role in an organization.
5940
+ *
5109
5941
  * Only users in the role can perform this action.
5942
+ * Additionally, the role's edit policy (if set) must permit the update.
5110
5943
  */
5111
5944
  deleteRole: {
5112
5945
  parameters: {
@@ -5123,6 +5956,11 @@ export interface operations {
5123
5956
  role_id: string;
5124
5957
  };
5125
5958
  };
5959
+ requestBody: {
5960
+ content: {
5961
+ "application/json": components["schemas"]["Empty"];
5962
+ };
5963
+ };
5126
5964
  responses: {
5127
5965
  200: components["responses"]["EmptyImpl"];
5128
5966
  default: {
@@ -5138,7 +5976,9 @@ export interface operations {
5138
5976
  *
5139
5977
  * Enables or disables a role (this requires the `manage:role:update:enable` scope).
5140
5978
  * Updates the role's policies (this requires the `manage:role:update:policy` scope).
5979
+ *
5141
5980
  * The user must be in the role or an owner of the organization.
5981
+ * Additionally, the role's edit policy (if set) must permit the update.
5142
5982
  */
5143
5983
  updateRole: {
5144
5984
  parameters: {
@@ -5174,6 +6014,9 @@ export interface operations {
5174
6014
  * @description Add Keys
5175
6015
  *
5176
6016
  * Adds a list of existing keys to an existing role.
6017
+ *
6018
+ * Only the key owner can their key to a role.
6019
+ * Additionally, the role's edit policy (if set) must permit the update.
5177
6020
  */
5178
6021
  addKeysToRole: {
5179
6022
  parameters: {
@@ -5202,7 +6045,9 @@ export interface operations {
5202
6045
  * @description Add User
5203
6046
  *
5204
6047
  * Adds an existing user to an existing role.
5205
- * Only users in the role or owners can add users to a role.
6048
+ *
6049
+ * Only users in the role or org owners can add users to a role.
6050
+ * Additionally, the role's edit policy (if set) must permit the update.
5206
6051
  */
5207
6052
  addUserToRole: {
5208
6053
  parameters: {
@@ -5224,6 +6069,11 @@ export interface operations {
5224
6069
  user_id: string;
5225
6070
  };
5226
6071
  };
6072
+ requestBody: {
6073
+ content: {
6074
+ "application/json": components["schemas"]["Empty"];
6075
+ };
6076
+ };
5227
6077
  responses: {};
5228
6078
  };
5229
6079
  /**
@@ -5275,7 +6125,10 @@ export interface operations {
5275
6125
  * Remove Key
5276
6126
  * @description Remove Key
5277
6127
  *
5278
- * Removes a given key from a role
6128
+ * Removes a given key from a role.
6129
+ *
6130
+ * Only users in the role or org owners can remove keys from a role.
6131
+ * Additionally, the role's edit policy (if set) must permit the update.
5279
6132
  */
5280
6133
  removeKeyFromRole: {
5281
6134
  parameters: {
@@ -5297,6 +6150,11 @@ export interface operations {
5297
6150
  key_id: string;
5298
6151
  };
5299
6152
  };
6153
+ requestBody: {
6154
+ content: {
6155
+ "application/json": components["schemas"]["Empty"];
6156
+ };
6157
+ };
5300
6158
  responses: {};
5301
6159
  };
5302
6160
  /**
@@ -5492,7 +6350,9 @@ export interface operations {
5492
6350
  * @description Remove User
5493
6351
  *
5494
6352
  * Removes an existing user from an existing role.
6353
+ *
5495
6354
  * Only users in the role or org owners can remove users from a role.
6355
+ * Additionally, the role's edit policy (if set) must permit the update.
5496
6356
  */
5497
6357
  removeUserFromRole: {
5498
6358
  parameters: {
@@ -5514,6 +6374,11 @@ export interface operations {
5514
6374
  user_id: string;
5515
6375
  };
5516
6376
  };
6377
+ requestBody: {
6378
+ content: {
6379
+ "application/json": components["schemas"]["Empty"];
6380
+ };
6381
+ };
5517
6382
  responses: {};
5518
6383
  };
5519
6384
  /**
@@ -6276,6 +7141,69 @@ export interface operations {
6276
7141
  };
6277
7142
  };
6278
7143
  };
7144
+ /**
7145
+ * Remove a user from the org
7146
+ * @description Remove a user from the org
7147
+ */
7148
+ deleteUser: {
7149
+ parameters: {
7150
+ path: {
7151
+ /**
7152
+ * @description Name or ID of the desired Org
7153
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
7154
+ */
7155
+ org_id: string;
7156
+ /**
7157
+ * @description ID of the desired User
7158
+ * @example User#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
7159
+ */
7160
+ user_id: string;
7161
+ };
7162
+ };
7163
+ responses: {
7164
+ 200: components["responses"]["EmptyImpl"];
7165
+ default: {
7166
+ content: {
7167
+ "application/json": components["schemas"]["ErrorResponse"];
7168
+ };
7169
+ };
7170
+ };
7171
+ };
7172
+ /**
7173
+ * Update a user's membership in the org
7174
+ * @description Update a user's membership in the org
7175
+ *
7176
+ * Currently allows just enabling/disabling a user in the org.
7177
+ */
7178
+ updateUserMembership: {
7179
+ parameters: {
7180
+ path: {
7181
+ /**
7182
+ * @description Name or ID of the desired Org
7183
+ * @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
7184
+ */
7185
+ org_id: string;
7186
+ /**
7187
+ * @description ID of the desired User
7188
+ * @example User#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
7189
+ */
7190
+ user_id: string;
7191
+ };
7192
+ };
7193
+ requestBody: {
7194
+ content: {
7195
+ "application/json": components["schemas"]["UpdateUserMembershipRequest"];
7196
+ };
7197
+ };
7198
+ responses: {
7199
+ 200: components["responses"]["UserInOrgInfo"];
7200
+ default: {
7201
+ content: {
7202
+ "application/json": components["schemas"]["ErrorResponse"];
7203
+ };
7204
+ };
7205
+ };
7206
+ };
6279
7207
  /**
6280
7208
  * Initiate registration of a FIDO key
6281
7209
  * @deprecated
@@ -6404,12 +7332,25 @@ export interface operations {
6404
7332
  };
6405
7333
  };
6406
7334
  };
7335
+ /**
7336
+ * Retrieves all the orgs the user is a part of
7337
+ * @description Retrieves all the orgs the user is a part of
7338
+ */
7339
+ userOrgs: {
7340
+ responses: {
7341
+ 200: components["responses"]["UserOrgsResponse"];
7342
+ default: {
7343
+ content: {
7344
+ "application/json": components["schemas"]["ErrorResponse"];
7345
+ };
7346
+ };
7347
+ };
7348
+ };
6407
7349
  /**
6408
7350
  * Sign Raw Blob
6409
7351
  * @description Sign Raw Blob
6410
7352
  *
6411
7353
  * Signs an arbitrary blob with a given key.
6412
- * This is a pre-release feature.
6413
7354
  *
6414
7355
  * - ECDSA signatures are serialized as big-endian r and s plus recovery-id
6415
7356
  * byte v, which can in general take any of the values 0, 1, 2, or 3.