@cubist-labs/cubesigner-sdk 0.1.23
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.
- package/LICENSE-APACHE +177 -0
- package/LICENSE-MIT +25 -0
- package/NOTICE +13 -0
- package/README.md +470 -0
- package/dist/examples/ethers.d.ts +1 -0
- package/dist/examples/ethers.js +142 -0
- package/dist/spec/env/beta.json +9 -0
- package/dist/spec/env/gamma.json +9 -0
- package/dist/spec/env/prod.json +9 -0
- package/dist/src/client.d.ts +10 -0
- package/dist/src/client.js +21 -0
- package/dist/src/env.d.ts +15 -0
- package/dist/src/env.js +35 -0
- package/dist/src/ethers/index.d.ts +50 -0
- package/dist/src/ethers/index.js +122 -0
- package/dist/src/index.d.ts +114 -0
- package/dist/src/index.js +205 -0
- package/dist/src/key.d.ts +114 -0
- package/dist/src/key.js +201 -0
- package/dist/src/mfa.d.ts +23 -0
- package/dist/src/mfa.js +63 -0
- package/dist/src/org.d.ts +161 -0
- package/dist/src/org.js +264 -0
- package/dist/src/role.d.ts +224 -0
- package/dist/src/role.js +256 -0
- package/dist/src/schema.d.ts +3049 -0
- package/dist/src/schema.js +7 -0
- package/dist/src/session/generic.d.ts +47 -0
- package/dist/src/session/generic.js +3 -0
- package/dist/src/session/management_session_manager.d.ts +59 -0
- package/dist/src/session/management_session_manager.js +111 -0
- package/dist/src/session/oidc_session_manager.d.ts +78 -0
- package/dist/src/session/oidc_session_manager.js +142 -0
- package/dist/src/session/session_manager.d.ts +74 -0
- package/dist/src/session/session_manager.js +79 -0
- package/dist/src/session/session_storage.d.ts +47 -0
- package/dist/src/session/session_storage.js +76 -0
- package/dist/src/session/signer_session_manager.d.ts +88 -0
- package/dist/src/session/signer_session_manager.js +159 -0
- package/dist/src/sign.d.ts +114 -0
- package/dist/src/sign.js +248 -0
- package/dist/src/signer_session.d.ts +180 -0
- package/dist/src/signer_session.js +369 -0
- package/dist/src/util.d.ts +35 -0
- package/dist/src/util.js +75 -0
- package/dist/test/sessions.d.ts +35 -0
- package/dist/test/sessions.js +56 -0
- package/package.json +61 -0
- package/src/client.ts +12 -0
- package/src/env.ts +25 -0
- package/src/ethers/index.ts +131 -0
- package/src/index.ts +220 -0
- package/src/key.ts +249 -0
- package/src/org.ts +333 -0
- package/src/role.ts +385 -0
- package/src/schema.ts +3054 -0
- package/src/session/management_session_manager.ts +136 -0
- package/src/session/oidc_session_manager.ts +193 -0
- package/src/session/session_manager.ts +114 -0
- package/src/session/session_storage.ts +73 -0
- package/src/session/signer_session_manager.ts +211 -0
- package/src/signer_session.ts +464 -0
- package/src/util.ts +58 -0
- package/tsconfig.json +32 -0
|
@@ -0,0 +1,3049 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto-generated by openapi-typescript.
|
|
3
|
+
* Do not make direct changes to the file.
|
|
4
|
+
*/
|
|
5
|
+
/** OneOf type helpers */
|
|
6
|
+
type Without<T, U> = {
|
|
7
|
+
[P in Exclude<keyof T, keyof U>]?: never;
|
|
8
|
+
};
|
|
9
|
+
type XOR<T, U> = (T | U) extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
|
|
10
|
+
type OneOf<T extends any[]> = T extends [infer Only] ? Only : T extends [infer A, infer B, ...infer Rest] ? OneOf<[XOR<A, B>, ...Rest]> : never;
|
|
11
|
+
export interface paths {
|
|
12
|
+
"/v0/about_me": {
|
|
13
|
+
/**
|
|
14
|
+
* User Info
|
|
15
|
+
* @description User Info
|
|
16
|
+
*
|
|
17
|
+
* Retrieves information about the current user.
|
|
18
|
+
*/
|
|
19
|
+
get: operations["aboutMe"];
|
|
20
|
+
};
|
|
21
|
+
"/v0/org/{org_id}": {
|
|
22
|
+
/**
|
|
23
|
+
* Get Org
|
|
24
|
+
* @description Get Org
|
|
25
|
+
*
|
|
26
|
+
* Retrieves information about an organization.
|
|
27
|
+
*/
|
|
28
|
+
get: operations["getOrg"];
|
|
29
|
+
/**
|
|
30
|
+
* Update Org
|
|
31
|
+
* @description Update Org
|
|
32
|
+
*
|
|
33
|
+
* Update organization attributes (enabled flag, name, and policies).
|
|
34
|
+
*/
|
|
35
|
+
patch: operations["updateOrg"];
|
|
36
|
+
};
|
|
37
|
+
"/v0/org/{org_id}/btc/sign/{pubkey}": {
|
|
38
|
+
/**
|
|
39
|
+
* Sign Bitcoin Transaction
|
|
40
|
+
* @description Sign Bitcoin Transaction
|
|
41
|
+
*
|
|
42
|
+
* Signs a Bitcoin transaction with a given key.
|
|
43
|
+
* This is a pre-release feature.
|
|
44
|
+
*/
|
|
45
|
+
post: operations["btcSign"];
|
|
46
|
+
};
|
|
47
|
+
"/v0/org/{org_id}/import_key": {
|
|
48
|
+
/**
|
|
49
|
+
* Create Key-Import Key
|
|
50
|
+
* @description Create Key-Import Key
|
|
51
|
+
*
|
|
52
|
+
* Generate an ephemeral key that a client can use for key-import encryption.
|
|
53
|
+
*/
|
|
54
|
+
get: operations["createKeyImportKey"];
|
|
55
|
+
/**
|
|
56
|
+
* Import Key
|
|
57
|
+
* @description Import Key
|
|
58
|
+
*
|
|
59
|
+
* Securely imports an existing key using a previously generated key-import key.
|
|
60
|
+
*/
|
|
61
|
+
put: operations["importKey"];
|
|
62
|
+
};
|
|
63
|
+
"/v0/org/{org_id}/invite": {
|
|
64
|
+
/**
|
|
65
|
+
* Invite User
|
|
66
|
+
* @description Invite User
|
|
67
|
+
*
|
|
68
|
+
* Creates a new user in an existing org and sends that user an invite email.
|
|
69
|
+
*/
|
|
70
|
+
post: operations["invite"];
|
|
71
|
+
};
|
|
72
|
+
"/v0/org/{org_id}/keys": {
|
|
73
|
+
/**
|
|
74
|
+
* List Keys
|
|
75
|
+
* @description List Keys
|
|
76
|
+
*
|
|
77
|
+
* Gets the list of owned keys in a given org.
|
|
78
|
+
*/
|
|
79
|
+
get: operations["listKeysInOrg"];
|
|
80
|
+
/**
|
|
81
|
+
* Import Key (Deprecated)
|
|
82
|
+
* @description Import Key (Deprecated)
|
|
83
|
+
*
|
|
84
|
+
* Securely imports an existing key. This API is deprecated; please use the new version.
|
|
85
|
+
*/
|
|
86
|
+
put: operations["importKeyLegacy"];
|
|
87
|
+
/**
|
|
88
|
+
* Create Key
|
|
89
|
+
* @description Create Key
|
|
90
|
+
*
|
|
91
|
+
* Creates one or more new keys of the specified type (BLS or Secp).
|
|
92
|
+
*/
|
|
93
|
+
post: operations["createKey"];
|
|
94
|
+
};
|
|
95
|
+
"/v0/org/{org_id}/keys/get_keys": {
|
|
96
|
+
/**
|
|
97
|
+
* Legacy List Keys
|
|
98
|
+
* @deprecated
|
|
99
|
+
* @description Legacy List Keys
|
|
100
|
+
*
|
|
101
|
+
* This route is deprecated. Use `GET /v0/org/<org_id>/keys?<key_type>`
|
|
102
|
+
*/
|
|
103
|
+
post: operations["listKeysLegacy"];
|
|
104
|
+
};
|
|
105
|
+
"/v0/org/{org_id}/keys/{key_id}": {
|
|
106
|
+
/**
|
|
107
|
+
* Get Key
|
|
108
|
+
* @description Get Key
|
|
109
|
+
*
|
|
110
|
+
* Returns the properties of a key.
|
|
111
|
+
*/
|
|
112
|
+
get: operations["getKeyInOrg"];
|
|
113
|
+
/**
|
|
114
|
+
* Update Key
|
|
115
|
+
* @description Update Key
|
|
116
|
+
*
|
|
117
|
+
* Enable or disable a key. The user must be the owner of the key or organization to perform this action.
|
|
118
|
+
*/
|
|
119
|
+
patch: operations["updateKey"];
|
|
120
|
+
};
|
|
121
|
+
"/v0/org/{org_id}/mfa/{mfa_id}": {
|
|
122
|
+
/**
|
|
123
|
+
* Gets a Pending MFA Request
|
|
124
|
+
* @description Gets a Pending MFA Request
|
|
125
|
+
*
|
|
126
|
+
* Retrieves and returns a pending MFA request by its id.
|
|
127
|
+
*/
|
|
128
|
+
get: operations["mfaGet"];
|
|
129
|
+
/**
|
|
130
|
+
* Approve a Pending MFA Request
|
|
131
|
+
* @description Approve a Pending MFA Request
|
|
132
|
+
*
|
|
133
|
+
* Adds the current user as an approver of a pending MFA request of the [Status::RequiredApprovers] kind.
|
|
134
|
+
* If the required number of approvers is reached, the MFA request is approved;
|
|
135
|
+
* the confirmation receipt can be used to resume the original HTTP request.
|
|
136
|
+
*/
|
|
137
|
+
patch: operations["mfaApproveCs"];
|
|
138
|
+
};
|
|
139
|
+
"/v0/org/{org_id}/mfa/{mfa_id}/totp": {
|
|
140
|
+
/**
|
|
141
|
+
* Approve a TOTP MFA Request
|
|
142
|
+
* @description Approve a TOTP MFA Request
|
|
143
|
+
*
|
|
144
|
+
* Adds an approver to a pending TOTP MFA request.
|
|
145
|
+
*
|
|
146
|
+
* If the required number of approvers is reached, the MFA request is approved;
|
|
147
|
+
* the confirmation receipt can be used to resume the original HTTP request.
|
|
148
|
+
*/
|
|
149
|
+
patch: operations["mfaApproveTotp"];
|
|
150
|
+
};
|
|
151
|
+
"/v0/org/{org_id}/oidc": {
|
|
152
|
+
/**
|
|
153
|
+
* Login with OIDC
|
|
154
|
+
* @description Login with OIDC
|
|
155
|
+
*
|
|
156
|
+
* Exchange an OIDC ID token (passed via the `Authorization` header) for a signer session
|
|
157
|
+
*/
|
|
158
|
+
post: operations["oidcAuth"];
|
|
159
|
+
};
|
|
160
|
+
"/v0/org/{org_id}/roles": {
|
|
161
|
+
/**
|
|
162
|
+
* List Roles
|
|
163
|
+
* @description List Roles
|
|
164
|
+
*
|
|
165
|
+
* Retrieves all roles in an organization that the current user is allowed to access.
|
|
166
|
+
*/
|
|
167
|
+
get: operations["listRoles"];
|
|
168
|
+
/**
|
|
169
|
+
* Create Role
|
|
170
|
+
* @description Create Role
|
|
171
|
+
*
|
|
172
|
+
* Creates a new role in an organization. Unless the logged-in user
|
|
173
|
+
* is the owner, they are automatically added to the newly created role.
|
|
174
|
+
*/
|
|
175
|
+
post: operations["createRole"];
|
|
176
|
+
};
|
|
177
|
+
"/v0/org/{org_id}/roles/{role_id}": {
|
|
178
|
+
/**
|
|
179
|
+
* Get Role
|
|
180
|
+
* @description Get Role
|
|
181
|
+
*
|
|
182
|
+
* Retrieves information about a role in an organization
|
|
183
|
+
*/
|
|
184
|
+
get: operations["getRole"];
|
|
185
|
+
/**
|
|
186
|
+
* Delete Role
|
|
187
|
+
* @description Delete Role
|
|
188
|
+
*
|
|
189
|
+
* Deletes a role in an organization.
|
|
190
|
+
* Only organization owners can perform this action.
|
|
191
|
+
*/
|
|
192
|
+
delete: operations["deleteRole"];
|
|
193
|
+
/**
|
|
194
|
+
* Update Role
|
|
195
|
+
* @description Update Role
|
|
196
|
+
*
|
|
197
|
+
* Enables or disables a role.
|
|
198
|
+
* The user must be in the role or an owner of the organization.
|
|
199
|
+
*/
|
|
200
|
+
patch: operations["updateRole"];
|
|
201
|
+
};
|
|
202
|
+
"/v0/org/{org_id}/roles/{role_id}/add_keys": {
|
|
203
|
+
/**
|
|
204
|
+
* Add Keys
|
|
205
|
+
* @description Add Keys
|
|
206
|
+
*
|
|
207
|
+
* Adds a list of existing keys to an existing role.
|
|
208
|
+
*/
|
|
209
|
+
put: operations["addKeysToRole"];
|
|
210
|
+
};
|
|
211
|
+
"/v0/org/{org_id}/roles/{role_id}/add_user/{user_id}": {
|
|
212
|
+
/**
|
|
213
|
+
* Add User
|
|
214
|
+
* @description Add User
|
|
215
|
+
*
|
|
216
|
+
* Adds an existing user to an existing role.
|
|
217
|
+
* Only users in the role or owners can add users to a role.
|
|
218
|
+
*/
|
|
219
|
+
put: operations["addUserToRole"];
|
|
220
|
+
};
|
|
221
|
+
"/v0/org/{org_id}/roles/{role_id}/keys/{key_id}": {
|
|
222
|
+
/**
|
|
223
|
+
* Remove Key
|
|
224
|
+
* @description Remove Key
|
|
225
|
+
*
|
|
226
|
+
* Removes a given key from a role
|
|
227
|
+
*/
|
|
228
|
+
delete: operations["removeKeyFromRole"];
|
|
229
|
+
};
|
|
230
|
+
"/v0/org/{org_id}/roles/{role_id}/tokens": {
|
|
231
|
+
/**
|
|
232
|
+
* List Tokens
|
|
233
|
+
* @description List Tokens
|
|
234
|
+
*
|
|
235
|
+
* Returns all access tokens for a given role.
|
|
236
|
+
* Only users in the role or owners can create a token for it.
|
|
237
|
+
*/
|
|
238
|
+
get: operations["listRoleTokens"];
|
|
239
|
+
/**
|
|
240
|
+
* Create Token
|
|
241
|
+
* @description Create Token
|
|
242
|
+
*
|
|
243
|
+
* Creates a new access token for a given role (to be used as "API Key" for all signing actions).
|
|
244
|
+
* Only users in the role or owners can create a token for it.
|
|
245
|
+
*/
|
|
246
|
+
post: operations["createRoleToken"];
|
|
247
|
+
/**
|
|
248
|
+
* Revoke All Tokens
|
|
249
|
+
* @description Revoke All Tokens
|
|
250
|
+
*
|
|
251
|
+
* Revokes all access tokens associated with a role.
|
|
252
|
+
* Only users in the role or owners can perform this action.
|
|
253
|
+
*/
|
|
254
|
+
delete: operations["revokeAllRoleTokens"];
|
|
255
|
+
};
|
|
256
|
+
"/v0/org/{org_id}/roles/{role_id}/tokens/{session_id}": {
|
|
257
|
+
/**
|
|
258
|
+
* Revoke Token
|
|
259
|
+
* @description Revoke Token
|
|
260
|
+
*
|
|
261
|
+
* Revokes an access token associated with a role.
|
|
262
|
+
* Only users in the role or owners can perform this action.
|
|
263
|
+
*/
|
|
264
|
+
delete: operations["revokeRoleToken"];
|
|
265
|
+
};
|
|
266
|
+
"/v0/org/{org_id}/token/keys": {
|
|
267
|
+
/**
|
|
268
|
+
* Get Token-Accessible Keys
|
|
269
|
+
* @description Get Token-Accessible Keys
|
|
270
|
+
*
|
|
271
|
+
* Retrieves the keys that the role token can access.
|
|
272
|
+
*/
|
|
273
|
+
get: operations["listTokenKeys"];
|
|
274
|
+
};
|
|
275
|
+
"/v0/org/{org_id}/users": {
|
|
276
|
+
/**
|
|
277
|
+
* List users in organization
|
|
278
|
+
* @description List users in organization
|
|
279
|
+
*/
|
|
280
|
+
get: operations["listUsersInOrg"];
|
|
281
|
+
/**
|
|
282
|
+
* Adds a third-party user to the org
|
|
283
|
+
* @description Adds a third-party user to the org
|
|
284
|
+
*/
|
|
285
|
+
post: operations["createOidcUser"];
|
|
286
|
+
};
|
|
287
|
+
"/v0/totp": {
|
|
288
|
+
/**
|
|
289
|
+
* Reset TOTP
|
|
290
|
+
* @description Reset TOTP
|
|
291
|
+
*
|
|
292
|
+
* Creates and sets a new TOTP configuration for the current user,
|
|
293
|
+
* overriding the existing one (if any).
|
|
294
|
+
*/
|
|
295
|
+
patch: operations["userResetTotp"];
|
|
296
|
+
};
|
|
297
|
+
"/v0/totp/verify/{code}": {
|
|
298
|
+
/**
|
|
299
|
+
* Verify TOTP
|
|
300
|
+
* @description Verify TOTP
|
|
301
|
+
*
|
|
302
|
+
* Checks if a given code matches the current TOTP code for the current user.
|
|
303
|
+
* Errors with 403 if the current user has not set up TOTP or the code fails verification.
|
|
304
|
+
*/
|
|
305
|
+
get: operations["userVerifyTotp"];
|
|
306
|
+
};
|
|
307
|
+
"/v1/org/{org_id}/blob/sign/{key_id}": {
|
|
308
|
+
/**
|
|
309
|
+
* Sign Raw Blob
|
|
310
|
+
* @description Sign Raw Blob
|
|
311
|
+
*
|
|
312
|
+
* Signs an arbitrary blob with a given key.
|
|
313
|
+
* This is a pre-release feature.
|
|
314
|
+
*/
|
|
315
|
+
post: operations["blobSign"];
|
|
316
|
+
};
|
|
317
|
+
"/v1/org/{org_id}/cube3signer/heartbeat": {
|
|
318
|
+
/**
|
|
319
|
+
* Record heartbeat
|
|
320
|
+
* @description Record heartbeat
|
|
321
|
+
*
|
|
322
|
+
* This endpoint is called by the cube3signer proxy to record various metrics to CloudWatch.
|
|
323
|
+
*/
|
|
324
|
+
post: operations["cube3signerHeartbeat"];
|
|
325
|
+
};
|
|
326
|
+
"/v1/org/{org_id}/eth1/sign/{pubkey}": {
|
|
327
|
+
/**
|
|
328
|
+
* Sign EVM Transaction
|
|
329
|
+
* @description Sign EVM Transaction
|
|
330
|
+
*
|
|
331
|
+
* Signs an Ethereum (and other EVM) transaction with a given Secp256k1 key.
|
|
332
|
+
*
|
|
333
|
+
* The key must be associated with the role and organization on whose behalf this action is called.
|
|
334
|
+
*/
|
|
335
|
+
post: operations["eth1Sign"];
|
|
336
|
+
};
|
|
337
|
+
"/v1/org/{org_id}/eth2/sign/{pubkey}": {
|
|
338
|
+
/**
|
|
339
|
+
* Sign Validator Request
|
|
340
|
+
* @description Sign Validator Request
|
|
341
|
+
*
|
|
342
|
+
* Signs an eth2 validator request with a given BLS key.
|
|
343
|
+
*
|
|
344
|
+
* The key must be associated with the role and organization on whose behalf this action is called.
|
|
345
|
+
*/
|
|
346
|
+
post: operations["eth2Sign"];
|
|
347
|
+
};
|
|
348
|
+
"/v1/org/{org_id}/eth2/stake": {
|
|
349
|
+
/**
|
|
350
|
+
* Sign Stake Deposit
|
|
351
|
+
* @description Sign Stake Deposit
|
|
352
|
+
*
|
|
353
|
+
* Signs a deposit transaction with a `validator_key`. If `validator_key` is set to a pregenerated key, we use the
|
|
354
|
+
* provided validator key. Otherwise, we generate a new BLS key.
|
|
355
|
+
*
|
|
356
|
+
* When using a pregenerated key, the key must be associated with the role and organization on whose
|
|
357
|
+
* behalf this action is called.
|
|
358
|
+
*/
|
|
359
|
+
post: operations["stake"];
|
|
360
|
+
};
|
|
361
|
+
"/v1/org/{org_id}/eth2/unstake/{pubkey}": {
|
|
362
|
+
/**
|
|
363
|
+
* Sign Unstake Request
|
|
364
|
+
* @description Sign Unstake Request
|
|
365
|
+
*
|
|
366
|
+
* Handle unstaking request, producing a signed voluntary exit message
|
|
367
|
+
* that can be posted directly to the Beacon chain.
|
|
368
|
+
*
|
|
369
|
+
* The key must be associated with the role and organization on whose behalf this action is called.
|
|
370
|
+
*/
|
|
371
|
+
post: operations["unstake"];
|
|
372
|
+
};
|
|
373
|
+
"/v1/org/{org_id}/solana/sign/{pubkey}": {
|
|
374
|
+
/**
|
|
375
|
+
* Sign Solana Message
|
|
376
|
+
* @description Sign Solana Message
|
|
377
|
+
*
|
|
378
|
+
* Signs a Solana message with a given key.
|
|
379
|
+
* This is a pre-release feature.
|
|
380
|
+
*/
|
|
381
|
+
post: operations["solanaSign"];
|
|
382
|
+
};
|
|
383
|
+
"/v1/org/{org_id}/token/refresh": {
|
|
384
|
+
/**
|
|
385
|
+
* Refresh Signer Session
|
|
386
|
+
* @description Refresh Signer Session
|
|
387
|
+
*/
|
|
388
|
+
patch: operations["signerSessionRefresh"];
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
export type webhooks = Record<string, never>;
|
|
392
|
+
export interface components {
|
|
393
|
+
schemas: {
|
|
394
|
+
AcceptedResponse: components["schemas"]["ErrorResponse"] & Record<string, never>;
|
|
395
|
+
/**
|
|
396
|
+
* @description Different responses we return for status code "202 Accepted".
|
|
397
|
+
*
|
|
398
|
+
* Even though "202 Accepted" is a successful response, we represent
|
|
399
|
+
* it as a Rust error because that makes it easy to have route handlers
|
|
400
|
+
* return `Result<T, SignerError>` where `T` is the type of the
|
|
401
|
+
* response for the status code "200 Ok".
|
|
402
|
+
*/
|
|
403
|
+
AcceptedValue: {
|
|
404
|
+
MfaRequired: {
|
|
405
|
+
id: string;
|
|
406
|
+
};
|
|
407
|
+
};
|
|
408
|
+
AddKeysToRoleRequest: {
|
|
409
|
+
/**
|
|
410
|
+
* @description A list of keys to add to a role
|
|
411
|
+
* @example [
|
|
412
|
+
* "Key#63023a27-1e70-430a-b293-ffbc9d6c4484"
|
|
413
|
+
* ]
|
|
414
|
+
*/
|
|
415
|
+
key_ids: string[];
|
|
416
|
+
/**
|
|
417
|
+
* @description Optional policies to apply for each key
|
|
418
|
+
* @example [
|
|
419
|
+
* {
|
|
420
|
+
* "TxReceiver": "0x8c594691c0e592ffa21f153a16ae41db5befcaaa"
|
|
421
|
+
* },
|
|
422
|
+
* {
|
|
423
|
+
* "TxDeposit": {
|
|
424
|
+
* "kind": "Canonical"
|
|
425
|
+
* }
|
|
426
|
+
* },
|
|
427
|
+
* {
|
|
428
|
+
* "RequireMfa": {
|
|
429
|
+
* "kind": {
|
|
430
|
+
* "RequiredApprovers": {
|
|
431
|
+
* "count": 1
|
|
432
|
+
* }
|
|
433
|
+
* },
|
|
434
|
+
* "restricted_operations": [
|
|
435
|
+
* "Eth1Sign",
|
|
436
|
+
* "BlobSign"
|
|
437
|
+
* ]
|
|
438
|
+
* }
|
|
439
|
+
* }
|
|
440
|
+
* ]
|
|
441
|
+
*/
|
|
442
|
+
policy: Record<string, never>[] | null;
|
|
443
|
+
};
|
|
444
|
+
AddThirdPartyUserRequest: {
|
|
445
|
+
identity: components["schemas"]["OIDCIdentity"];
|
|
446
|
+
role: components["schemas"]["MemberRole"];
|
|
447
|
+
};
|
|
448
|
+
ApprovalInfo: {
|
|
449
|
+
timestamp: components["schemas"]["EpochDateTime"];
|
|
450
|
+
};
|
|
451
|
+
/** @description Data required for both `authenticate` and `refresh`. */
|
|
452
|
+
AuthData: {
|
|
453
|
+
/** Format: int32 */
|
|
454
|
+
epoch_num: number;
|
|
455
|
+
epoch_token: components["schemas"]["B32"];
|
|
456
|
+
other_token: string;
|
|
457
|
+
};
|
|
458
|
+
/** @description Wrapper around a zeroizing 32-byte fixed-size array */
|
|
459
|
+
B32: string;
|
|
460
|
+
/**
|
|
461
|
+
* @example {
|
|
462
|
+
* "message_base64": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTYK"
|
|
463
|
+
* }
|
|
464
|
+
*/
|
|
465
|
+
BlobSignRequest: {
|
|
466
|
+
/**
|
|
467
|
+
* @description The blob to sign, encoded as a base64 string.
|
|
468
|
+
*
|
|
469
|
+
* Note that certain signing keys impose additional requirements on the contents of
|
|
470
|
+
* the message. For example, Secp256k1 keys require that the message is 32 bytes long.
|
|
471
|
+
*/
|
|
472
|
+
message_base64: string;
|
|
473
|
+
};
|
|
474
|
+
/** @enum {string} */
|
|
475
|
+
BtcSighashType: "All" | "None" | "Single" | "AllPlusAnyoneCanPay" | "NonePlusAnyoneCanPay" | "SinglePlusAnyoneCanPay";
|
|
476
|
+
BtcSignRequest: {
|
|
477
|
+
sig_kind: components["schemas"]["BtcSignatureKind"];
|
|
478
|
+
/** @description The bitcoin transaction to sign */
|
|
479
|
+
tx: Record<string, never>;
|
|
480
|
+
};
|
|
481
|
+
BtcSignatureKind: {
|
|
482
|
+
/** @description Segregated Witness */
|
|
483
|
+
Segwit: {
|
|
484
|
+
/**
|
|
485
|
+
* @description Transaction input index
|
|
486
|
+
* @example 0
|
|
487
|
+
*/
|
|
488
|
+
input_index: number;
|
|
489
|
+
/**
|
|
490
|
+
* @description Script
|
|
491
|
+
* @example 0x76a91479091972186c449eb1ded22b78e40d009bdf008988ac
|
|
492
|
+
*/
|
|
493
|
+
script_code: string;
|
|
494
|
+
sighash_type: components["schemas"]["BtcSighashType"];
|
|
495
|
+
/**
|
|
496
|
+
* Format: int64
|
|
497
|
+
* @description Amount in satoshis
|
|
498
|
+
* @example 1000000
|
|
499
|
+
*/
|
|
500
|
+
value: number;
|
|
501
|
+
};
|
|
502
|
+
};
|
|
503
|
+
/**
|
|
504
|
+
* @description Session information sent to the client.
|
|
505
|
+
* This struct works in tandem with its server-side counterpart [`SessionData`].
|
|
506
|
+
*/
|
|
507
|
+
ClientSessionInfo: {
|
|
508
|
+
/** @description Token to use for authorization. */
|
|
509
|
+
auth_token: string;
|
|
510
|
+
auth_token_exp: components["schemas"]["EpochDateTime"];
|
|
511
|
+
/**
|
|
512
|
+
* Format: int32
|
|
513
|
+
* @description Epoch at which the token was last refreshed
|
|
514
|
+
*/
|
|
515
|
+
epoch: number;
|
|
516
|
+
epoch_token: components["schemas"]["B32"];
|
|
517
|
+
/** @description Token to use for refreshing the `(auth, refresh)` token pair */
|
|
518
|
+
refresh_token: string;
|
|
519
|
+
refresh_token_exp: components["schemas"]["EpochDateTime"];
|
|
520
|
+
/** @description Session ID */
|
|
521
|
+
session_id: string;
|
|
522
|
+
};
|
|
523
|
+
ConfiguredMfa: OneOf<[
|
|
524
|
+
"Totp",
|
|
525
|
+
{
|
|
526
|
+
/** @description Named FIDO device (multiple can be configured per user, but the names must be different) */
|
|
527
|
+
Fido: string;
|
|
528
|
+
}
|
|
529
|
+
]>;
|
|
530
|
+
CreateKeyRequest: {
|
|
531
|
+
/**
|
|
532
|
+
* Format: int64
|
|
533
|
+
* @description Chain id for which the key is allowed to sign messages
|
|
534
|
+
* @example 5
|
|
535
|
+
*/
|
|
536
|
+
chain_id: number | null;
|
|
537
|
+
/**
|
|
538
|
+
* Format: int32
|
|
539
|
+
* @description Number of keys to create
|
|
540
|
+
* @example 1
|
|
541
|
+
*/
|
|
542
|
+
count: number;
|
|
543
|
+
key_type: components["schemas"]["KeyType"];
|
|
544
|
+
/**
|
|
545
|
+
* @description Allows users to specify a user other than themselves to receive the key
|
|
546
|
+
* @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
|
|
547
|
+
*/
|
|
548
|
+
owner: string | null;
|
|
549
|
+
};
|
|
550
|
+
/** @description Optional create role request body */
|
|
551
|
+
CreateRoleRequest: {
|
|
552
|
+
/**
|
|
553
|
+
* @description A human-readable name for the role.
|
|
554
|
+
* @example my_role
|
|
555
|
+
*/
|
|
556
|
+
name: string;
|
|
557
|
+
};
|
|
558
|
+
CreateTokenRequest: components["schemas"]["RatchetConfig"] & {
|
|
559
|
+
/**
|
|
560
|
+
* @description A human readable description of the purpose of the key
|
|
561
|
+
* @example Validator Signing
|
|
562
|
+
*/
|
|
563
|
+
purpose: string;
|
|
564
|
+
};
|
|
565
|
+
/**
|
|
566
|
+
* @description Information produced by a successful deposit
|
|
567
|
+
* @example {
|
|
568
|
+
* "chain_id": 5,
|
|
569
|
+
* "deposit_txn": {
|
|
570
|
+
* "data": "0x...",
|
|
571
|
+
* "to": "0xff50ed3d0ec03ac01d4c79aad74928bff48a7b2b",
|
|
572
|
+
* "value": "0x1bc16d674ec800000"
|
|
573
|
+
* },
|
|
574
|
+
* "new_validator_pk": "9700fbb8c906942442c2a5b3ad7498f27aedda253786a6fbaa8fef47fb7af234e50cf2cce815a553087992ae565d48da"
|
|
575
|
+
* }
|
|
576
|
+
*/
|
|
577
|
+
DepositTxn: {
|
|
578
|
+
/**
|
|
579
|
+
* Format: int64
|
|
580
|
+
* @description Chain ID for which the deposit transaction was created
|
|
581
|
+
*/
|
|
582
|
+
chain_id: number;
|
|
583
|
+
/** @description The deposit transaction. Includes only `to`, `value`, and `data` fields. */
|
|
584
|
+
deposit_txn: Record<string, never>;
|
|
585
|
+
/** @description The hex-encoded compressed form of the new validator BLS public key */
|
|
586
|
+
new_validator_pk: string;
|
|
587
|
+
};
|
|
588
|
+
/**
|
|
589
|
+
* @description The type of deposit to perform
|
|
590
|
+
* @enum {string}
|
|
591
|
+
*/
|
|
592
|
+
DepositType: "Canonical" | "Wrapper";
|
|
593
|
+
/**
|
|
594
|
+
* @description Epoch is a quoted `uint64`.
|
|
595
|
+
* @example 256
|
|
596
|
+
*/
|
|
597
|
+
Epoch: string;
|
|
598
|
+
/**
|
|
599
|
+
* Format: int64
|
|
600
|
+
* @description DateTime measured in seconds since unix epoch.
|
|
601
|
+
* A wrapper type for serialization that encodes a [`SystemTime`] as a [`u64`]
|
|
602
|
+
* representing the number of seconds since [`SystemTime::UNIX_EPOCH`].
|
|
603
|
+
*/
|
|
604
|
+
EpochDateTime: number;
|
|
605
|
+
/** @description The structure of ErrorResponse must match the response template that AWS uses */
|
|
606
|
+
ErrorResponse: {
|
|
607
|
+
accepted?: components["schemas"]["AcceptedValue"] | null;
|
|
608
|
+
/** @description Error message */
|
|
609
|
+
message: string;
|
|
610
|
+
};
|
|
611
|
+
/**
|
|
612
|
+
* @example {
|
|
613
|
+
* "chain_id": 43113,
|
|
614
|
+
* "tx": {
|
|
615
|
+
* "chain_id": "0xa869",
|
|
616
|
+
* "gas": "0x61a80",
|
|
617
|
+
* "maxFeePerGas": "0x9502F900",
|
|
618
|
+
* "maxPriorityFeePerGas": "0x50",
|
|
619
|
+
* "nonce": "0xb",
|
|
620
|
+
* "to": "0xf00ba12f00000000b4121200000f00c0ffeef00d",
|
|
621
|
+
* "type": "0x02",
|
|
622
|
+
* "value": "0x10000000000"
|
|
623
|
+
* }
|
|
624
|
+
* }
|
|
625
|
+
*/
|
|
626
|
+
Eth1SignRequest: {
|
|
627
|
+
/**
|
|
628
|
+
* Format: int64
|
|
629
|
+
* @description The chain id to set in the given transaction.
|
|
630
|
+
*/
|
|
631
|
+
chain_id: number;
|
|
632
|
+
/**
|
|
633
|
+
* @description EIP-2718 typed transaction (see the [ethers-rs
|
|
634
|
+
* interface](https://docs.rs/ethers/latest/ethers/types/struct.Eip1559TransactionRequest.html)) types, including EIP-1559 transactions (`{ "type": "0x02" ... }`), and legacy
|
|
635
|
+
* transactions (`{ "type": "0x00" ... }`). All values in the transaction are expected
|
|
636
|
+
* to be (0x-prefixed or not) hex strings or byte arrays.
|
|
637
|
+
*/
|
|
638
|
+
tx: Record<string, never>;
|
|
639
|
+
};
|
|
640
|
+
/**
|
|
641
|
+
* @example {
|
|
642
|
+
* "eth2_sign_request": {
|
|
643
|
+
* "aggregation_slot": {
|
|
644
|
+
* "slot": "36"
|
|
645
|
+
* },
|
|
646
|
+
* "fork_info": {
|
|
647
|
+
* "fork": {
|
|
648
|
+
* "current_version": "0x42424242",
|
|
649
|
+
* "epoch": "0",
|
|
650
|
+
* "previous_version": "0x42424242"
|
|
651
|
+
* },
|
|
652
|
+
* "genesis_validators_root": "0x9d13d61212c067e02ce8e608a7007e2c3b02571e9e6f27ff45dfa91bf27c870b"
|
|
653
|
+
* },
|
|
654
|
+
* "signingRoot": "0x9c57e77c4965727542b9337df6756f948464bca3859bea6ed3c0ec6600d8982a",
|
|
655
|
+
* "type": "AGGREGATION_SLOT"
|
|
656
|
+
* },
|
|
657
|
+
* "network": "mainnet"
|
|
658
|
+
* }
|
|
659
|
+
*/
|
|
660
|
+
Eth2SignRequest: {
|
|
661
|
+
/**
|
|
662
|
+
* @description Subset of the Web3Signer Eth2 BLS signing request whose schema is defined
|
|
663
|
+
* [here](https://consensys.github.io/web3signer/web3signer-eth2.html#tag/Signing/operation/ETH2_SIGN).
|
|
664
|
+
* We handle deposits and voluntary exits separately.
|
|
665
|
+
*/
|
|
666
|
+
eth2_sign_request: Record<string, never>;
|
|
667
|
+
network: components["schemas"]["Network"];
|
|
668
|
+
};
|
|
669
|
+
/**
|
|
670
|
+
* @description Specifies a fork of the `BeaconChain`, to prevent replay attacks.
|
|
671
|
+
* The schema of `Fork` is defined in the [Beacon chain
|
|
672
|
+
* spec](https://github.com/ethereum/consensus-specs/blob/v1.0.1/specs/phase0/beacon-chain.md#fork).
|
|
673
|
+
* @example {
|
|
674
|
+
* "current_version": "0x00001020",
|
|
675
|
+
* "epoch": "0",
|
|
676
|
+
* "previous_version": "0x00001020"
|
|
677
|
+
* }
|
|
678
|
+
*/
|
|
679
|
+
Fork: {
|
|
680
|
+
/**
|
|
681
|
+
* @description Current fork version.
|
|
682
|
+
* @example 0x43434343
|
|
683
|
+
*/
|
|
684
|
+
current_version: string;
|
|
685
|
+
epoch: components["schemas"]["Epoch"];
|
|
686
|
+
/**
|
|
687
|
+
* @description Previous fork version.
|
|
688
|
+
* @example 0x42424242
|
|
689
|
+
*/
|
|
690
|
+
previous_version: string;
|
|
691
|
+
};
|
|
692
|
+
/**
|
|
693
|
+
* @description Genesis data as defined in the [Beacon API
|
|
694
|
+
* spec](https://ethereum.github.io/beacon-APIs/#/Beacon/getGenesis).
|
|
695
|
+
* You can get the genesis data from the Beacon node's `/eth/v1/beacon/genesis` end-point.
|
|
696
|
+
* This struct definition is originally from lighthouse's eth2.
|
|
697
|
+
*/
|
|
698
|
+
GenesisData: {
|
|
699
|
+
/**
|
|
700
|
+
* @description Genesis fork version.
|
|
701
|
+
* @example 0x42424242
|
|
702
|
+
*/
|
|
703
|
+
genesis_fork_version: string;
|
|
704
|
+
/**
|
|
705
|
+
* @description Genesis time
|
|
706
|
+
* @example 1679326449
|
|
707
|
+
*/
|
|
708
|
+
genesis_time: string;
|
|
709
|
+
/**
|
|
710
|
+
* @description Genesis validators root.
|
|
711
|
+
* @example 0x270d43e74ce340de4bca2b1936beca0f4f5408d9e78aec4850920baf659d5b69
|
|
712
|
+
*/
|
|
713
|
+
genesis_validators_root: string;
|
|
714
|
+
};
|
|
715
|
+
GetKeysInOrgRequest: {
|
|
716
|
+
key_type: components["schemas"]["KeyType"] | null;
|
|
717
|
+
};
|
|
718
|
+
/** @description Stats pertaining the the sender `cube3signer` instance */
|
|
719
|
+
HeartbeatRequest: {
|
|
720
|
+
/**
|
|
721
|
+
* Format: int64
|
|
722
|
+
* @description Number of requests currently active (received but not necessarily being processed yet)
|
|
723
|
+
*/
|
|
724
|
+
current_num_requests_active: number;
|
|
725
|
+
/**
|
|
726
|
+
* Format: int64
|
|
727
|
+
* @description Number of requests currently being processed by cube3signer
|
|
728
|
+
*/
|
|
729
|
+
current_num_requests_processing: number;
|
|
730
|
+
/**
|
|
731
|
+
* Format: int64
|
|
732
|
+
* @description Number of new requests during this heartbeat period
|
|
733
|
+
*/
|
|
734
|
+
num_requests: number;
|
|
735
|
+
/**
|
|
736
|
+
* Format: int64
|
|
737
|
+
* @description Number of requests that failed during this heartbeat period
|
|
738
|
+
*/
|
|
739
|
+
num_requests_failed: number;
|
|
740
|
+
/**
|
|
741
|
+
* Format: int64
|
|
742
|
+
* @description Number of requests were retried during this heartbeat period
|
|
743
|
+
*/
|
|
744
|
+
num_requests_retried: number;
|
|
745
|
+
/**
|
|
746
|
+
* Format: int64
|
|
747
|
+
* @description Number of retries during this heartbeat period
|
|
748
|
+
*/
|
|
749
|
+
num_retries: number;
|
|
750
|
+
/**
|
|
751
|
+
* Format: int64
|
|
752
|
+
* @description Number of times auth token was refreshed during this heartbeat period
|
|
753
|
+
*/
|
|
754
|
+
num_token_refreshes?: number;
|
|
755
|
+
/**
|
|
756
|
+
* Format: int64
|
|
757
|
+
* @description Number of times auth token refresh failed during this heartbeat period
|
|
758
|
+
*/
|
|
759
|
+
num_token_refreshes_failed?: number;
|
|
760
|
+
/**
|
|
761
|
+
* @description Version of the proxy sending the heart beat request
|
|
762
|
+
*
|
|
763
|
+
* TODO: Make non-optional once we do not support proxies without version information
|
|
764
|
+
*/
|
|
765
|
+
proxy_version: string | null;
|
|
766
|
+
};
|
|
767
|
+
/**
|
|
768
|
+
* @description Information about the request.
|
|
769
|
+
*
|
|
770
|
+
* Captures all the relevant info (including the request body) about requests that require MFA.
|
|
771
|
+
* We use this to verify that when a request is resumed (after obtaining necessary MFA approvals)
|
|
772
|
+
* it is exactly the same as it originally was.
|
|
773
|
+
*/
|
|
774
|
+
HttpRequest: {
|
|
775
|
+
/** @description HTTP request body */
|
|
776
|
+
body: Record<string, unknown> | null;
|
|
777
|
+
/** @description HTTP method of the request */
|
|
778
|
+
method: string;
|
|
779
|
+
/** @description HTTP path of the request (including host or not?) */
|
|
780
|
+
path: string;
|
|
781
|
+
};
|
|
782
|
+
ImportKeyLegacyRequest: {
|
|
783
|
+
/**
|
|
784
|
+
* Format: int64
|
|
785
|
+
* @description The chain ID of the chain that the key will be used for
|
|
786
|
+
* @example 5
|
|
787
|
+
*/
|
|
788
|
+
chain_id: number | null;
|
|
789
|
+
/** @description The key to import encrypted with the public key of the organization */
|
|
790
|
+
key_material: components["schemas"]["RsaOaepXChaChaMaterial"][];
|
|
791
|
+
key_type: components["schemas"]["KeyType"];
|
|
792
|
+
};
|
|
793
|
+
ImportKeyRequest: components["schemas"]["KeyImportKey"] & {
|
|
794
|
+
/** @description A set of encrypted keys to be imported */
|
|
795
|
+
key_material: components["schemas"]["ImportKeyRequestMaterial"][];
|
|
796
|
+
key_type: components["schemas"]["KeyType"];
|
|
797
|
+
};
|
|
798
|
+
ImportKeyRequestMaterial: {
|
|
799
|
+
/**
|
|
800
|
+
* @description The client's ephemeral public key used to derive a shared key.
|
|
801
|
+
* This is a base64-encoded, SEC1-encoded P384 public key.
|
|
802
|
+
*/
|
|
803
|
+
client_public_key: string;
|
|
804
|
+
/**
|
|
805
|
+
* @description The encrypted keying material to be imported.
|
|
806
|
+
* This is a base64-encoded ciphertext.
|
|
807
|
+
*/
|
|
808
|
+
ikm_enc: string;
|
|
809
|
+
/**
|
|
810
|
+
* @description A salt value used to derive a shared key.
|
|
811
|
+
* This is a base64-encoded byte string.
|
|
812
|
+
*/
|
|
813
|
+
salt: string;
|
|
814
|
+
};
|
|
815
|
+
InviteRequest: {
|
|
816
|
+
/**
|
|
817
|
+
* @description The user's email address
|
|
818
|
+
* @example alice@acme.com
|
|
819
|
+
*/
|
|
820
|
+
email: string;
|
|
821
|
+
/**
|
|
822
|
+
* @description The user's full name
|
|
823
|
+
* @example Alice Wonderland
|
|
824
|
+
*/
|
|
825
|
+
name: string;
|
|
826
|
+
/**
|
|
827
|
+
* @description Skip sending an invitation email to this user if true.
|
|
828
|
+
*
|
|
829
|
+
* NOTE: this field is for internal testing use ONLY. If you do not
|
|
830
|
+
* send an invitation email, the user will never be able to log in.
|
|
831
|
+
* @example false
|
|
832
|
+
*/
|
|
833
|
+
skip_email: boolean;
|
|
834
|
+
};
|
|
835
|
+
/** @description A wrapped key-import key */
|
|
836
|
+
KeyImportKey: {
|
|
837
|
+
/** @description Base64-encoded, encrypted data key. */
|
|
838
|
+
dk_enc: string;
|
|
839
|
+
/**
|
|
840
|
+
* Format: int64
|
|
841
|
+
* @description Expiration timestamp expressed as seconds since the UNIX epoch.
|
|
842
|
+
*/
|
|
843
|
+
expires: number;
|
|
844
|
+
/**
|
|
845
|
+
* @description The ephemeral public key to which an imported key should be encrypted.
|
|
846
|
+
* This is a P384 public key in base64-encoded uncompressed SECG format.
|
|
847
|
+
*/
|
|
848
|
+
public_key: string;
|
|
849
|
+
/** @description Base64-encoded, encrypted secret key. */
|
|
850
|
+
sk_enc: string;
|
|
851
|
+
};
|
|
852
|
+
KeyInfo: {
|
|
853
|
+
/** @description Whether the key is enabled (only enabled keys may be used for signing) */
|
|
854
|
+
enabled: boolean;
|
|
855
|
+
/**
|
|
856
|
+
* @description The id of the key: "Key#" followed by a unique identifier specific to
|
|
857
|
+
* the type of key (such as a public key for BLS or an ethereum address for Secp)
|
|
858
|
+
* @example Key#0x8e3484687e66cdd26cf04c3647633ab4f3570148
|
|
859
|
+
*/
|
|
860
|
+
key_id: string;
|
|
861
|
+
key_type: components["schemas"]["KeyType"];
|
|
862
|
+
/**
|
|
863
|
+
* @description A unique identifier specific to the type of key, such as a public key or an ethereum address
|
|
864
|
+
* @example 0x8e3484687e66cdd26cf04c3647633ab4f3570148
|
|
865
|
+
*/
|
|
866
|
+
material_id: string;
|
|
867
|
+
/**
|
|
868
|
+
* @description Owner of the key
|
|
869
|
+
* @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
|
|
870
|
+
*/
|
|
871
|
+
owner: string;
|
|
872
|
+
/**
|
|
873
|
+
* @description Key policy
|
|
874
|
+
* @example []
|
|
875
|
+
*/
|
|
876
|
+
policy: Record<string, never>[];
|
|
877
|
+
/**
|
|
878
|
+
* @description Hex-encoded, serialized public key. The format used depends on the key type:
|
|
879
|
+
* - secp256k1 keys use 65-byte uncompressed SECG format;
|
|
880
|
+
* - BLS keys use 48-byte compressed BLS12-381 (ZCash) format;
|
|
881
|
+
* - ed25519 keys use the canonical 64-byte encoding specified in RFC 8032.
|
|
882
|
+
* @example 0x04d2688b6bc2ce7f9879b9e745f3c4dc177908c5cef0c1b64cff19ae7ff27dee623c64fe9d9c325c7fbbc748bbd5f607ce14dd83e28ebbbb7d3e7f2ffb70a79431
|
|
883
|
+
*/
|
|
884
|
+
public_key: string;
|
|
885
|
+
/**
|
|
886
|
+
* @description The purpose for which the key can be used (e.g., chain id for which the key is allowed to sign messages)
|
|
887
|
+
* @example Eth2Validator(1)
|
|
888
|
+
*/
|
|
889
|
+
purpose: string;
|
|
890
|
+
};
|
|
891
|
+
/** @enum {string} */
|
|
892
|
+
KeyType: "SecpEthAddr" | "SecpBtc" | "SecpBtcTest" | "BlsPub" | "BlsInactive" | "Ed25519SolanaAddr" | "Ed25519SuiAddr" | "Ed25519AptosAddr";
|
|
893
|
+
KeyWithPolicies: {
|
|
894
|
+
/**
|
|
895
|
+
* @description Key ID
|
|
896
|
+
* @example Key#0x8e3484687e66cdd26cf04c3647633ab4f3570148
|
|
897
|
+
*/
|
|
898
|
+
key_id: string;
|
|
899
|
+
/**
|
|
900
|
+
* @description Policies that are checked before this key is used on behalf of this role
|
|
901
|
+
* @example [
|
|
902
|
+
* {
|
|
903
|
+
* "TxReceiver": "0x8c594691c0e592ffa21f153a16ae41db5befcaaa"
|
|
904
|
+
* },
|
|
905
|
+
* {
|
|
906
|
+
* "TxDeposit": {
|
|
907
|
+
* "kind": "Canonical"
|
|
908
|
+
* }
|
|
909
|
+
* }
|
|
910
|
+
* ]
|
|
911
|
+
*/
|
|
912
|
+
policy?: Record<string, never>[];
|
|
913
|
+
};
|
|
914
|
+
/**
|
|
915
|
+
* @description Describes whether a user in an org is an Owner or just a regular member
|
|
916
|
+
* @enum {string}
|
|
917
|
+
*/
|
|
918
|
+
MemberRole: "Owner" | "Member" | "Alien";
|
|
919
|
+
/** @enum {string} */
|
|
920
|
+
MfaType: "CubeSigner" | "Totp";
|
|
921
|
+
/**
|
|
922
|
+
* @description Network name ('mainnet', 'prater', 'goerli')
|
|
923
|
+
* @example goerli
|
|
924
|
+
* @enum {string}
|
|
925
|
+
*/
|
|
926
|
+
Network: "mainnet" | "prater" | "goerli";
|
|
927
|
+
/**
|
|
928
|
+
* @description Represents a globally unique OIDC-authorized user by expressing the full "path" to a user. That is:
|
|
929
|
+
*
|
|
930
|
+
* (iss) (sub)
|
|
931
|
+
* Issuer -> Subresource
|
|
932
|
+
*
|
|
933
|
+
* We include a non-standard third-tier `disambiguator` which allows us to map
|
|
934
|
+
* a single OIDC user to multiple `User`s in CubeSigner
|
|
935
|
+
*/
|
|
936
|
+
OIDCIdentity: {
|
|
937
|
+
/**
|
|
938
|
+
* @description Free-form additional user info.
|
|
939
|
+
* @example null
|
|
940
|
+
*/
|
|
941
|
+
disambiguator?: string | null;
|
|
942
|
+
/**
|
|
943
|
+
* @description The root-level issuer who administrates this user. Frome the OIDC spec:
|
|
944
|
+
* Issuer Identifier for the Issuer of the response. The iss
|
|
945
|
+
* value is a case sensitive URL using the https scheme that contains
|
|
946
|
+
* scheme, host, and optionally, port number and path components and
|
|
947
|
+
* no query or fragment components.
|
|
948
|
+
* @example https://accounts.google.com
|
|
949
|
+
*/
|
|
950
|
+
iss: string;
|
|
951
|
+
/**
|
|
952
|
+
* @description From the OIDC spec:
|
|
953
|
+
*
|
|
954
|
+
* A locally unique and never reassigned identifier within the Issuer for
|
|
955
|
+
* the End-User, which is intended to be consumed by the Client, e.g.,
|
|
956
|
+
* 24400320 or AItOawmwtWwcT0k51BayewNvutrJUqsvl6qs7A4. It MUST NOT exceed
|
|
957
|
+
* 255 ASCII characters in length. The sub value is a case sensitive
|
|
958
|
+
* string.
|
|
959
|
+
* @example 10769150350006150715113082367
|
|
960
|
+
*/
|
|
961
|
+
sub: string;
|
|
962
|
+
};
|
|
963
|
+
OidcLoginRequest: {
|
|
964
|
+
/**
|
|
965
|
+
* @description Controls what capabilities this session will have.
|
|
966
|
+
* @example [
|
|
967
|
+
* "sign:*"
|
|
968
|
+
* ]
|
|
969
|
+
*/
|
|
970
|
+
scopes: string[];
|
|
971
|
+
};
|
|
972
|
+
OidcLoginResponse: {
|
|
973
|
+
/**
|
|
974
|
+
* @description Token to be used for signing auth. Requests to signing endpoints
|
|
975
|
+
* should include this value in the `Authorization` header
|
|
976
|
+
*/
|
|
977
|
+
token: string;
|
|
978
|
+
};
|
|
979
|
+
OrgInfo: {
|
|
980
|
+
/** @description When false, all cryptographic operations involving keys in this org are disabled. */
|
|
981
|
+
enabled: boolean;
|
|
982
|
+
/**
|
|
983
|
+
* @description The RSA public key to use when importing keys into this organization. This string is the
|
|
984
|
+
* hex encoding of the DER representation of the key.
|
|
985
|
+
* @example 30820222300d06092a864886f70d01010105000382020f003082020a0282020100c89765b8f347caafbec09fcb17740e032d854ec99f2d9c16167be335339b4fdeba18a7f13d8e8b7ae7d689cab63d8ecdf548f4746eacaf95b61fef76ade9f81b3c038891c52542fd352697b618afbea6103723c28f2db450e9d852be16a4dc2cbc9442da9a6610044009e056ba90728f0b9888d9b036e493aaed168ccf930fa2f730b17eb3ad6f455a792b762c47f3d3c6b7a7c458556a592e688791599a576bf2149d8e9614db775e7a48602d237a347d5399c681f7f7d9c81f6a64e7cfd356bba545d45e5023ca1f09a66a1d4550f61cf2c4367e14997b5d749bb0326a44d058119e8caf7fd79d517eb2d11dddb2db329f350698f0f978d5e150bb402c8bc4c5ec36d6f38db3f3a204813cda9f52dbcee809204f8e35a455c0e110e10eec41f734f2d55a058a7a21fa90602f94da6de2378ff61e7b3550b77e53d75d7b3d3b39ccab0e5101b916dab01da096f7627175d5b68a1a6464ce5be3e95e7c464d69eb0b675057705c11bc79c3543313b0d9c703c50dc1a16dd9b55e5599e3b02e527b85938e7b81c65e56960bcd7c7a266b07dc05107fd0d7d3c208a878eb0fc74b0d007f421d0c5b28cf78eb441aa0166dceeeac255d68622492f9b526ae13c93754ea8eda96f3b764ba931f8d49c7de8b00ac53d993ab9b08fd2892d8e82cc1a9746f0b426b19256d13d780445e150ce81da0b3c96e32559cb47cb5cb93f805650203010001
|
|
986
|
+
*/
|
|
987
|
+
key_import_key: string;
|
|
988
|
+
/**
|
|
989
|
+
* @description The organization's universally unique key-wrapping-key identifier.
|
|
990
|
+
* This value is required when setting up key export.
|
|
991
|
+
* @example mrk-fce09525e81587d23520f11e07e2e9d9
|
|
992
|
+
*/
|
|
993
|
+
kwk_id: string;
|
|
994
|
+
/**
|
|
995
|
+
* @description Date/time (in UTC) when last 'unstake' was performed. Unix epoch if none.
|
|
996
|
+
* @example TODO
|
|
997
|
+
*/
|
|
998
|
+
last_unstake: string;
|
|
999
|
+
/**
|
|
1000
|
+
* Format: int32
|
|
1001
|
+
* @description How many 'unstake' calls happened on the day when `last_unstake` was performed.
|
|
1002
|
+
*/
|
|
1003
|
+
last_unstake_day_count: number;
|
|
1004
|
+
/**
|
|
1005
|
+
* @description The human-readable name for the org
|
|
1006
|
+
* @example my_org_name
|
|
1007
|
+
*/
|
|
1008
|
+
name?: string | null;
|
|
1009
|
+
/**
|
|
1010
|
+
* @description The ID of the organization
|
|
1011
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
1012
|
+
*/
|
|
1013
|
+
org_id: string;
|
|
1014
|
+
/**
|
|
1015
|
+
* @description Org-wide policies that are checked before a key is used for signing
|
|
1016
|
+
* @example [
|
|
1017
|
+
* {
|
|
1018
|
+
* "MaxDailyUnstake": 5
|
|
1019
|
+
* }
|
|
1020
|
+
* ]
|
|
1021
|
+
*/
|
|
1022
|
+
policy?: Record<string, never>[];
|
|
1023
|
+
};
|
|
1024
|
+
RatchetConfig: {
|
|
1025
|
+
auth_lifetime?: components["schemas"]["Seconds"];
|
|
1026
|
+
refresh_lifetime?: components["schemas"]["Seconds"];
|
|
1027
|
+
session_lifetime?: components["schemas"]["Seconds"];
|
|
1028
|
+
};
|
|
1029
|
+
/** @description Receipt that an MFA request was approved. */
|
|
1030
|
+
Receipt: {
|
|
1031
|
+
/**
|
|
1032
|
+
* @description Confirmation code the user needs to present when resuming the original request.
|
|
1033
|
+
* @example ba1d75dd-d999-4c1b-944d-25c25440c8af
|
|
1034
|
+
*/
|
|
1035
|
+
confirmation: string;
|
|
1036
|
+
/** @description The ID of the logged-in user whose action created this approval. */
|
|
1037
|
+
final_approver: string;
|
|
1038
|
+
timestamp: components["schemas"]["EpochDateTime"];
|
|
1039
|
+
};
|
|
1040
|
+
RoleInfo: {
|
|
1041
|
+
/**
|
|
1042
|
+
* @description Whether the role is enabled
|
|
1043
|
+
* @example true
|
|
1044
|
+
*/
|
|
1045
|
+
enabled: boolean;
|
|
1046
|
+
/** @description The CubeSigner IDs of the keys */
|
|
1047
|
+
keys: components["schemas"]["KeyWithPolicies"][];
|
|
1048
|
+
/**
|
|
1049
|
+
* @description The human-readable name for the role (must be alphanumeric)
|
|
1050
|
+
* @example my_role
|
|
1051
|
+
*/
|
|
1052
|
+
name?: string | null;
|
|
1053
|
+
/**
|
|
1054
|
+
* @description The ID of the role
|
|
1055
|
+
* @example Role#bfe3eccb-731e-430d-b1e5-ac1363e6b06b
|
|
1056
|
+
*/
|
|
1057
|
+
role_id: string;
|
|
1058
|
+
/**
|
|
1059
|
+
* @description The list of users with access to the role
|
|
1060
|
+
* @example [
|
|
1061
|
+
* "User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f",
|
|
1062
|
+
* "User#5593c25b-52e2-4fb5-b39b-96d41d681d82"
|
|
1063
|
+
* ]
|
|
1064
|
+
*/
|
|
1065
|
+
users: string[];
|
|
1066
|
+
};
|
|
1067
|
+
/**
|
|
1068
|
+
* @description Encrypted key material for import using hybrid encryption.
|
|
1069
|
+
*
|
|
1070
|
+
* The imported keying material is encrypted using [XChaCha20Poly1305], which
|
|
1071
|
+
* we choose for its speed and side channel resistance, its ability to encrypt
|
|
1072
|
+
* very long messages, and its safety when using random nonces even for a large
|
|
1073
|
+
* number of messages. The latter should not happen in this case, but the cost
|
|
1074
|
+
* is negligible and the benefit is that we know it's safe to use random nonces.
|
|
1075
|
+
*
|
|
1076
|
+
* The XChaCha key is encrypted using [RSAES-OAEP-SHA256], which we choose because
|
|
1077
|
+
* it's the best of the [available options for asymmetric encryption][kmsopts]
|
|
1078
|
+
* in AWS KMS.
|
|
1079
|
+
*
|
|
1080
|
+
* [XChaCha20Poly1305]: https://doc.libsodium.org/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction
|
|
1081
|
+
* [RSAES-OAEP-SHA256]: https://www.rfc-editor.org/rfc/rfc8017#section-7.1
|
|
1082
|
+
* [kmsopts]: https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html
|
|
1083
|
+
*/
|
|
1084
|
+
RsaOaepXChaChaMaterial: {
|
|
1085
|
+
/**
|
|
1086
|
+
* @description The keying material to be imported, encrypted with
|
|
1087
|
+
* [XChaCha20Poly1305](https://doc.libsodium.org/secret-key_cryptography/aead/chacha20-poly1305/xchacha20-poly1305_construction).
|
|
1088
|
+
*/
|
|
1089
|
+
ikm_enc: number[];
|
|
1090
|
+
/**
|
|
1091
|
+
* @description The key-wrapping key used to encrypt `ikm_enc`, encrypted with
|
|
1092
|
+
* [RSAES-OAEP-SHA256](https://www.rfc-editor.org/rfc/rfc8017#section-7.1).
|
|
1093
|
+
*/
|
|
1094
|
+
kwk_enc: number[];
|
|
1095
|
+
/** @description The nonce used to generate `ikm_enc`. */
|
|
1096
|
+
nonce: number[];
|
|
1097
|
+
};
|
|
1098
|
+
/**
|
|
1099
|
+
* Format: int64
|
|
1100
|
+
* @description Duration measured in seconds
|
|
1101
|
+
* A wrapper type for serialization that encodes a `Duration` as a `u64` representing the number of seconds.
|
|
1102
|
+
*/
|
|
1103
|
+
Seconds: number;
|
|
1104
|
+
SignRequest: {
|
|
1105
|
+
message: Record<string, never>;
|
|
1106
|
+
};
|
|
1107
|
+
SolanaSignRequest: components["schemas"]["SignRequest"] & Record<string, never>;
|
|
1108
|
+
StakeRequest: {
|
|
1109
|
+
/**
|
|
1110
|
+
* Format: int64
|
|
1111
|
+
* @description The chain on which we will deposit
|
|
1112
|
+
* @example 5
|
|
1113
|
+
*/
|
|
1114
|
+
chain_id: number;
|
|
1115
|
+
deposit_type: components["schemas"]["DepositType"];
|
|
1116
|
+
unsafe_conf: components["schemas"]["UnsafeConf"] | null;
|
|
1117
|
+
/**
|
|
1118
|
+
* @description The validator BLS public key to use, or `None` to generate a fresh one.
|
|
1119
|
+
* @example 0xa99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c
|
|
1120
|
+
*/
|
|
1121
|
+
validator_key: string | null;
|
|
1122
|
+
/**
|
|
1123
|
+
* @description The ethereum address to which withdrawn funds go
|
|
1124
|
+
* @example 0x8e3484687e66cdd26cf04c3647633ab4f3570148
|
|
1125
|
+
*/
|
|
1126
|
+
withdrawal_addr: string;
|
|
1127
|
+
};
|
|
1128
|
+
Status: {
|
|
1129
|
+
/** @description Users who are allowed to approve. Must be non-empty. */
|
|
1130
|
+
allowed_approvers: string[];
|
|
1131
|
+
/** @description Allowed approval types. When omitted, defaults to any. */
|
|
1132
|
+
allowed_mfa_types?: components["schemas"]["MfaType"][] | null;
|
|
1133
|
+
/** @description Users who have already approved */
|
|
1134
|
+
approved_by: {
|
|
1135
|
+
[key: string]: ({
|
|
1136
|
+
[key: string]: components["schemas"]["ApprovalInfo"] | undefined;
|
|
1137
|
+
}) | undefined;
|
|
1138
|
+
};
|
|
1139
|
+
/**
|
|
1140
|
+
* Format: int32
|
|
1141
|
+
* @description How many users must approve
|
|
1142
|
+
*/
|
|
1143
|
+
count: number;
|
|
1144
|
+
/**
|
|
1145
|
+
* Format: int32
|
|
1146
|
+
* @description How many auth factors to require per user
|
|
1147
|
+
*/
|
|
1148
|
+
num_auth_factors: number;
|
|
1149
|
+
};
|
|
1150
|
+
TokenInfo: {
|
|
1151
|
+
/** @description Session ID. Use it to revoke a session. Cannot be used for auth. */
|
|
1152
|
+
hash: string;
|
|
1153
|
+
/** @description Tokens purpose */
|
|
1154
|
+
purpose: string;
|
|
1155
|
+
};
|
|
1156
|
+
TotpApproveRequest: {
|
|
1157
|
+
/** @description TOTP verification code */
|
|
1158
|
+
code: string;
|
|
1159
|
+
};
|
|
1160
|
+
/** @description Options that should be set only for local devnet testing. */
|
|
1161
|
+
UnsafeConf: {
|
|
1162
|
+
/**
|
|
1163
|
+
* @description The hex-encoded address of the deposit contract. If omitted, inferred from `chain_id`
|
|
1164
|
+
* @example 0xff50ed3d0ec03ac01d4c79aad74928bff48a7b2b
|
|
1165
|
+
*/
|
|
1166
|
+
deposit_contract_addr: string | null;
|
|
1167
|
+
/**
|
|
1168
|
+
* @description The hex-encoded 4-byte fork version
|
|
1169
|
+
* @example 0x00001020
|
|
1170
|
+
*/
|
|
1171
|
+
genesis_fork_version: string | null;
|
|
1172
|
+
};
|
|
1173
|
+
/**
|
|
1174
|
+
* @description Unstake message request.
|
|
1175
|
+
* @example {
|
|
1176
|
+
* "epoch": "256",
|
|
1177
|
+
* "fork": {
|
|
1178
|
+
* "current_version": "0x00001020",
|
|
1179
|
+
* "epoch": "0",
|
|
1180
|
+
* "previous_version": "0x00001020"
|
|
1181
|
+
* },
|
|
1182
|
+
* "genesis_data": {
|
|
1183
|
+
* "genesis_fork_version": "0x00001020",
|
|
1184
|
+
* "genesis_time": "1679541642",
|
|
1185
|
+
* "genesis_validators_root": "0x270d43e74ce340de4bca2b1936beca0f4f5408d9e78aec4850920baf659d5b69"
|
|
1186
|
+
* },
|
|
1187
|
+
* "network": "goerli",
|
|
1188
|
+
* "validator_index": "0"
|
|
1189
|
+
* }
|
|
1190
|
+
*/
|
|
1191
|
+
UnstakeRequest: {
|
|
1192
|
+
epoch: components["schemas"]["Epoch"] | null;
|
|
1193
|
+
fork: components["schemas"]["Fork"];
|
|
1194
|
+
genesis_data: components["schemas"]["GenesisData"];
|
|
1195
|
+
network: components["schemas"]["Network"];
|
|
1196
|
+
/**
|
|
1197
|
+
* @description Validator index (`uint64`) to exit. You can get the validator index from the Beacon node's
|
|
1198
|
+
* `/eth/v1/beacon/states/head/validators/{pubkey}` end-point. This end point returns an
|
|
1199
|
+
* object that contains information about the validator (whose public key is `{pubkey}`),
|
|
1200
|
+
* including the validator index. The schema of this end-point is defined
|
|
1201
|
+
* [here](https://ethereum.github.io/beacon-APIs/#/Beacon/getStateValidator).
|
|
1202
|
+
* @example 31337
|
|
1203
|
+
*/
|
|
1204
|
+
validator_index: string;
|
|
1205
|
+
};
|
|
1206
|
+
UpdateKeyRequest: {
|
|
1207
|
+
/**
|
|
1208
|
+
* @description If set, updates the keys's `enabled` property to this value.
|
|
1209
|
+
* Once disabled, a key cannot be used for signing.
|
|
1210
|
+
*/
|
|
1211
|
+
enabled?: boolean | null;
|
|
1212
|
+
/**
|
|
1213
|
+
* @description If set, updates key's owner to this value.
|
|
1214
|
+
* The new owner must be an existing user who is a member of the same org.
|
|
1215
|
+
* @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
|
|
1216
|
+
*/
|
|
1217
|
+
owner?: string | null;
|
|
1218
|
+
/**
|
|
1219
|
+
* @description If set, update this key's policies (old policies will be overwritten!).
|
|
1220
|
+
* @example []
|
|
1221
|
+
*/
|
|
1222
|
+
policy?: Record<string, never>[] | null;
|
|
1223
|
+
};
|
|
1224
|
+
UpdateOrgRequest: {
|
|
1225
|
+
/** @description If set, update this org's `enabled` field to this value. */
|
|
1226
|
+
enabled?: boolean | null;
|
|
1227
|
+
/**
|
|
1228
|
+
* @description If set, update this org's alias. Org aliases are globally unique.
|
|
1229
|
+
* @example my_org
|
|
1230
|
+
*/
|
|
1231
|
+
name?: string | null;
|
|
1232
|
+
/**
|
|
1233
|
+
* @description If set, update this org's policies (old policies will be overwritten!).
|
|
1234
|
+
* @example [
|
|
1235
|
+
* {
|
|
1236
|
+
* "MaxDailyUnstake": 5
|
|
1237
|
+
* },
|
|
1238
|
+
* {
|
|
1239
|
+
* "OriginAllowlist": [
|
|
1240
|
+
* "https://example.com"
|
|
1241
|
+
* ]
|
|
1242
|
+
* },
|
|
1243
|
+
* {
|
|
1244
|
+
* "SourceIpAllowlist": [
|
|
1245
|
+
* "10.1.2.3/8",
|
|
1246
|
+
* "169.254.17.1/16"
|
|
1247
|
+
* ]
|
|
1248
|
+
* }
|
|
1249
|
+
* ]
|
|
1250
|
+
*/
|
|
1251
|
+
policy?: Record<string, never>[] | null;
|
|
1252
|
+
};
|
|
1253
|
+
UpdateRoleRequest: {
|
|
1254
|
+
/**
|
|
1255
|
+
* @description If set, updates the role's `enabled` property to this value.
|
|
1256
|
+
* Once disabled, a role cannot be used; and it's tokens cannot be used for signing.
|
|
1257
|
+
*/
|
|
1258
|
+
enabled?: boolean | null;
|
|
1259
|
+
};
|
|
1260
|
+
UserIdInfo: {
|
|
1261
|
+
/**
|
|
1262
|
+
* @description The user's email
|
|
1263
|
+
* @example alice@example.com
|
|
1264
|
+
*/
|
|
1265
|
+
email: string;
|
|
1266
|
+
/**
|
|
1267
|
+
* @description The id of the user
|
|
1268
|
+
* @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
|
|
1269
|
+
*/
|
|
1270
|
+
id: string;
|
|
1271
|
+
};
|
|
1272
|
+
UserInfo: {
|
|
1273
|
+
/** @example alice@example.com */
|
|
1274
|
+
email: string;
|
|
1275
|
+
/** @description All multi-factor authentication methods configured for this user */
|
|
1276
|
+
mfa: components["schemas"]["ConfiguredMfa"][];
|
|
1277
|
+
/**
|
|
1278
|
+
* @description All organizations the user belongs to
|
|
1279
|
+
* @example [
|
|
1280
|
+
* "Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a"
|
|
1281
|
+
* ]
|
|
1282
|
+
*/
|
|
1283
|
+
org_ids: string[];
|
|
1284
|
+
/**
|
|
1285
|
+
* @description The id of the currently logged in user
|
|
1286
|
+
* @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
|
|
1287
|
+
*/
|
|
1288
|
+
user_id: string;
|
|
1289
|
+
};
|
|
1290
|
+
/**
|
|
1291
|
+
* @description An exit voluntarily submitted a validator who wishes to withdraw.
|
|
1292
|
+
* The schema for this message is defined
|
|
1293
|
+
* [here](https://github.com/ethereum/consensus-specs/blob/v1.0.1/specs/phase0/beacon-chain.md#signedvoluntaryexit).
|
|
1294
|
+
*/
|
|
1295
|
+
VoluntaryExit: {
|
|
1296
|
+
epoch: components["schemas"]["Epoch"];
|
|
1297
|
+
/**
|
|
1298
|
+
* @description Index of the exiting validator.
|
|
1299
|
+
* @example 256
|
|
1300
|
+
*/
|
|
1301
|
+
validator_index: string;
|
|
1302
|
+
};
|
|
1303
|
+
};
|
|
1304
|
+
responses: {
|
|
1305
|
+
AddThirdPartyUserResponse: {
|
|
1306
|
+
content: {
|
|
1307
|
+
"application/json": {
|
|
1308
|
+
/** @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f */
|
|
1309
|
+
user_id: string;
|
|
1310
|
+
};
|
|
1311
|
+
};
|
|
1312
|
+
};
|
|
1313
|
+
BlobSignResponse: {
|
|
1314
|
+
content: {
|
|
1315
|
+
"application/json": {
|
|
1316
|
+
/** @description The hex-encoded signature. */
|
|
1317
|
+
signature: string;
|
|
1318
|
+
};
|
|
1319
|
+
};
|
|
1320
|
+
};
|
|
1321
|
+
BtcSignResponse: {
|
|
1322
|
+
content: {
|
|
1323
|
+
"application/json": {
|
|
1324
|
+
/**
|
|
1325
|
+
* @description The hex-encoded signature in DER format.
|
|
1326
|
+
* @example 0x3045022100e12be3904f665f755e106741680548fefc9febf4cff31c5c0ee4627b3c1b35fe022066fde9a0b17e4cd38da983fb0d604294f00d0bd47fcb649c5216f3a2e8b7ad2d01
|
|
1327
|
+
*/
|
|
1328
|
+
signature: string;
|
|
1329
|
+
};
|
|
1330
|
+
};
|
|
1331
|
+
};
|
|
1332
|
+
CreateKeyImportKeyResponse: {
|
|
1333
|
+
content: {
|
|
1334
|
+
"application/json": components["schemas"]["KeyImportKey"] & {
|
|
1335
|
+
/**
|
|
1336
|
+
* @description An attestation document from a secure enclave, including an
|
|
1337
|
+
* RSA signing key used to sign the contents of this message.
|
|
1338
|
+
*/
|
|
1339
|
+
enclave_attestation: string;
|
|
1340
|
+
/**
|
|
1341
|
+
* @description An RSA-PSS-SHA256 signature on the public key and encrypted
|
|
1342
|
+
* secrets attesting to their generation inside a secure enclave.
|
|
1343
|
+
*/
|
|
1344
|
+
enclave_signature: string;
|
|
1345
|
+
};
|
|
1346
|
+
};
|
|
1347
|
+
};
|
|
1348
|
+
CreateKeyResponse: {
|
|
1349
|
+
content: {
|
|
1350
|
+
"application/json": {
|
|
1351
|
+
/** @description The info about the created keys */
|
|
1352
|
+
keys: components["schemas"]["KeyInfo"][];
|
|
1353
|
+
};
|
|
1354
|
+
};
|
|
1355
|
+
};
|
|
1356
|
+
/** @description The newly created role information */
|
|
1357
|
+
CreateRoleResponse: {
|
|
1358
|
+
content: {
|
|
1359
|
+
"application/json": {
|
|
1360
|
+
/**
|
|
1361
|
+
* @description A human-readable name for the role.
|
|
1362
|
+
* @example my_role
|
|
1363
|
+
*/
|
|
1364
|
+
name?: string | null;
|
|
1365
|
+
/**
|
|
1366
|
+
* @description The id of the newly created role
|
|
1367
|
+
* @example Role#bfe3eccb-731e-430d-b1e5-ac1363e6b06b
|
|
1368
|
+
*/
|
|
1369
|
+
role_id: string;
|
|
1370
|
+
};
|
|
1371
|
+
};
|
|
1372
|
+
};
|
|
1373
|
+
CreateTokenResponse: {
|
|
1374
|
+
content: {
|
|
1375
|
+
"application/json": {
|
|
1376
|
+
session_info: components["schemas"]["ClientSessionInfo"];
|
|
1377
|
+
/**
|
|
1378
|
+
* @description Token to be used for signing auth. Requests to signing endpoints
|
|
1379
|
+
* should include this value in the `Authorization` header
|
|
1380
|
+
*/
|
|
1381
|
+
token: string;
|
|
1382
|
+
};
|
|
1383
|
+
};
|
|
1384
|
+
};
|
|
1385
|
+
EmptyImpl: {
|
|
1386
|
+
content: {
|
|
1387
|
+
"application/json": {
|
|
1388
|
+
status: string;
|
|
1389
|
+
};
|
|
1390
|
+
};
|
|
1391
|
+
};
|
|
1392
|
+
Eth1SignResponse: {
|
|
1393
|
+
content: {
|
|
1394
|
+
"application/json": {
|
|
1395
|
+
/**
|
|
1396
|
+
* @description Hex-encoded RLP encoding of the transaction and its signature
|
|
1397
|
+
* @example 0x22895118000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001201d58656b0e22aaa68fdc692db41979098c3886ed33015d7467de9211609cdac000000000000000000000000000000000000000000000000000000000000000308b0c2900324d3ff9adfba7fdfe5af3f9b2cdbeef7b280437bbf1b1c59a093d615afe3e5dfed9622b540cdd9b49b3c5ad00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002001000000000000000000000049011adbcc3bc9c0307bb07f37dda1a1a9c69d2e0000000000000000000000000000000000000000000000000000000000000060903db8525674b8e7904f9b7d7d9ec55a0a42d33cf58be25469b0c21bbb6d06172bc5bb5fd1aed8e4f35936968958116b0619553c2cb1c52e7323074c6f8eb3d5a7074fc6580148df907837fa3b164ad7fbc2288dad1e8a5b021095b57c8a36d4
|
|
1398
|
+
*/
|
|
1399
|
+
rlp_signed_tx: string;
|
|
1400
|
+
};
|
|
1401
|
+
};
|
|
1402
|
+
};
|
|
1403
|
+
Eth2SignResponse: {
|
|
1404
|
+
content: {
|
|
1405
|
+
"application/json": {
|
|
1406
|
+
/**
|
|
1407
|
+
* @description Hex encoded signature prefixed with 0x e.g. "0x0000..."
|
|
1408
|
+
* @example 0xb4f2ef9d12a54e1f569596c07c97d6d730535b6ffc0d287761dc78103a86326782471a04c75ce7a6faea08ca9a4a0830031cdcb893da8711d54aa22619f1a7e71b8185ddf4c6bfd9babbd735960e35e56bd6eeb89625b04850e7a9ef8846e549
|
|
1409
|
+
*/
|
|
1410
|
+
signature: string;
|
|
1411
|
+
};
|
|
1412
|
+
};
|
|
1413
|
+
};
|
|
1414
|
+
GetKeysInOrgResponse: {
|
|
1415
|
+
content: {
|
|
1416
|
+
"application/json": {
|
|
1417
|
+
keys: components["schemas"]["KeyInfo"][];
|
|
1418
|
+
};
|
|
1419
|
+
};
|
|
1420
|
+
};
|
|
1421
|
+
GetUsersInOrgResponse: {
|
|
1422
|
+
content: {
|
|
1423
|
+
"application/json": {
|
|
1424
|
+
/** @description The list of users in the org */
|
|
1425
|
+
users: components["schemas"]["UserIdInfo"][];
|
|
1426
|
+
};
|
|
1427
|
+
};
|
|
1428
|
+
};
|
|
1429
|
+
/** @description A wrapped key-import key */
|
|
1430
|
+
KeyImportKey: {
|
|
1431
|
+
content: {
|
|
1432
|
+
"application/json": {
|
|
1433
|
+
/** @description Base64-encoded, encrypted data key. */
|
|
1434
|
+
dk_enc: string;
|
|
1435
|
+
/**
|
|
1436
|
+
* Format: int64
|
|
1437
|
+
* @description Expiration timestamp expressed as seconds since the UNIX epoch.
|
|
1438
|
+
*/
|
|
1439
|
+
expires: number;
|
|
1440
|
+
/**
|
|
1441
|
+
* @description The ephemeral public key to which an imported key should be encrypted.
|
|
1442
|
+
* This is a P384 public key in base64-encoded uncompressed SECG format.
|
|
1443
|
+
*/
|
|
1444
|
+
public_key: string;
|
|
1445
|
+
/** @description Base64-encoded, encrypted secret key. */
|
|
1446
|
+
sk_enc: string;
|
|
1447
|
+
};
|
|
1448
|
+
};
|
|
1449
|
+
};
|
|
1450
|
+
KeyInfo: {
|
|
1451
|
+
content: {
|
|
1452
|
+
"application/json": {
|
|
1453
|
+
/** @description Whether the key is enabled (only enabled keys may be used for signing) */
|
|
1454
|
+
enabled: boolean;
|
|
1455
|
+
/**
|
|
1456
|
+
* @description The id of the key: "Key#" followed by a unique identifier specific to
|
|
1457
|
+
* the type of key (such as a public key for BLS or an ethereum address for Secp)
|
|
1458
|
+
* @example Key#0x8e3484687e66cdd26cf04c3647633ab4f3570148
|
|
1459
|
+
*/
|
|
1460
|
+
key_id: string;
|
|
1461
|
+
key_type: components["schemas"]["KeyType"];
|
|
1462
|
+
/**
|
|
1463
|
+
* @description A unique identifier specific to the type of key, such as a public key or an ethereum address
|
|
1464
|
+
* @example 0x8e3484687e66cdd26cf04c3647633ab4f3570148
|
|
1465
|
+
*/
|
|
1466
|
+
material_id: string;
|
|
1467
|
+
/**
|
|
1468
|
+
* @description Owner of the key
|
|
1469
|
+
* @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
|
|
1470
|
+
*/
|
|
1471
|
+
owner: string;
|
|
1472
|
+
/**
|
|
1473
|
+
* @description Key policy
|
|
1474
|
+
* @example []
|
|
1475
|
+
*/
|
|
1476
|
+
policy: Record<string, never>[];
|
|
1477
|
+
/**
|
|
1478
|
+
* @description Hex-encoded, serialized public key. The format used depends on the key type:
|
|
1479
|
+
* - secp256k1 keys use 65-byte uncompressed SECG format;
|
|
1480
|
+
* - BLS keys use 48-byte compressed BLS12-381 (ZCash) format;
|
|
1481
|
+
* - ed25519 keys use the canonical 64-byte encoding specified in RFC 8032.
|
|
1482
|
+
* @example 0x04d2688b6bc2ce7f9879b9e745f3c4dc177908c5cef0c1b64cff19ae7ff27dee623c64fe9d9c325c7fbbc748bbd5f607ce14dd83e28ebbbb7d3e7f2ffb70a79431
|
|
1483
|
+
*/
|
|
1484
|
+
public_key: string;
|
|
1485
|
+
/**
|
|
1486
|
+
* @description The purpose for which the key can be used (e.g., chain id for which the key is allowed to sign messages)
|
|
1487
|
+
* @example Eth2Validator(1)
|
|
1488
|
+
*/
|
|
1489
|
+
purpose: string;
|
|
1490
|
+
};
|
|
1491
|
+
};
|
|
1492
|
+
};
|
|
1493
|
+
KeyInfos: {
|
|
1494
|
+
content: {
|
|
1495
|
+
"application/json": {
|
|
1496
|
+
keys: components["schemas"]["KeyInfo"][];
|
|
1497
|
+
};
|
|
1498
|
+
};
|
|
1499
|
+
};
|
|
1500
|
+
ListRolesResponse: {
|
|
1501
|
+
content: {
|
|
1502
|
+
"application/json": {
|
|
1503
|
+
/** @description All roles in an organization. */
|
|
1504
|
+
roles: components["schemas"]["RoleInfo"][];
|
|
1505
|
+
};
|
|
1506
|
+
};
|
|
1507
|
+
};
|
|
1508
|
+
ListTokensResponse: {
|
|
1509
|
+
content: {
|
|
1510
|
+
"application/json": {
|
|
1511
|
+
tokens: components["schemas"]["TokenInfo"][];
|
|
1512
|
+
};
|
|
1513
|
+
};
|
|
1514
|
+
};
|
|
1515
|
+
/** @description Returned as a response from multiple routes (e.g., 'get mfa', 'approve mfa', 'approve totp'). */
|
|
1516
|
+
MfaRequestInfo: {
|
|
1517
|
+
content: {
|
|
1518
|
+
"application/json": {
|
|
1519
|
+
expires_at: components["schemas"]["EpochDateTime"];
|
|
1520
|
+
/** @description Approval request ID. */
|
|
1521
|
+
id: string;
|
|
1522
|
+
receipt: components["schemas"]["Receipt"] | null;
|
|
1523
|
+
request: components["schemas"]["HttpRequest"];
|
|
1524
|
+
status: components["schemas"]["Status"];
|
|
1525
|
+
};
|
|
1526
|
+
};
|
|
1527
|
+
};
|
|
1528
|
+
OidcLoginResponse: {
|
|
1529
|
+
content: {
|
|
1530
|
+
"application/json": {
|
|
1531
|
+
/**
|
|
1532
|
+
* @description Token to be used for signing auth. Requests to signing endpoints
|
|
1533
|
+
* should include this value in the `Authorization` header
|
|
1534
|
+
*/
|
|
1535
|
+
token: string;
|
|
1536
|
+
};
|
|
1537
|
+
};
|
|
1538
|
+
};
|
|
1539
|
+
OrgInfo: {
|
|
1540
|
+
content: {
|
|
1541
|
+
"application/json": {
|
|
1542
|
+
/** @description When false, all cryptographic operations involving keys in this org are disabled. */
|
|
1543
|
+
enabled: boolean;
|
|
1544
|
+
/**
|
|
1545
|
+
* @description The RSA public key to use when importing keys into this organization. This string is the
|
|
1546
|
+
* hex encoding of the DER representation of the key.
|
|
1547
|
+
* @example 30820222300d06092a864886f70d01010105000382020f003082020a0282020100c89765b8f347caafbec09fcb17740e032d854ec99f2d9c16167be335339b4fdeba18a7f13d8e8b7ae7d689cab63d8ecdf548f4746eacaf95b61fef76ade9f81b3c038891c52542fd352697b618afbea6103723c28f2db450e9d852be16a4dc2cbc9442da9a6610044009e056ba90728f0b9888d9b036e493aaed168ccf930fa2f730b17eb3ad6f455a792b762c47f3d3c6b7a7c458556a592e688791599a576bf2149d8e9614db775e7a48602d237a347d5399c681f7f7d9c81f6a64e7cfd356bba545d45e5023ca1f09a66a1d4550f61cf2c4367e14997b5d749bb0326a44d058119e8caf7fd79d517eb2d11dddb2db329f350698f0f978d5e150bb402c8bc4c5ec36d6f38db3f3a204813cda9f52dbcee809204f8e35a455c0e110e10eec41f734f2d55a058a7a21fa90602f94da6de2378ff61e7b3550b77e53d75d7b3d3b39ccab0e5101b916dab01da096f7627175d5b68a1a6464ce5be3e95e7c464d69eb0b675057705c11bc79c3543313b0d9c703c50dc1a16dd9b55e5599e3b02e527b85938e7b81c65e56960bcd7c7a266b07dc05107fd0d7d3c208a878eb0fc74b0d007f421d0c5b28cf78eb441aa0166dceeeac255d68622492f9b526ae13c93754ea8eda96f3b764ba931f8d49c7de8b00ac53d993ab9b08fd2892d8e82cc1a9746f0b426b19256d13d780445e150ce81da0b3c96e32559cb47cb5cb93f805650203010001
|
|
1548
|
+
*/
|
|
1549
|
+
key_import_key: string;
|
|
1550
|
+
/**
|
|
1551
|
+
* @description The organization's universally unique key-wrapping-key identifier.
|
|
1552
|
+
* This value is required when setting up key export.
|
|
1553
|
+
* @example mrk-fce09525e81587d23520f11e07e2e9d9
|
|
1554
|
+
*/
|
|
1555
|
+
kwk_id: string;
|
|
1556
|
+
/**
|
|
1557
|
+
* @description Date/time (in UTC) when last 'unstake' was performed. Unix epoch if none.
|
|
1558
|
+
* @example TODO
|
|
1559
|
+
*/
|
|
1560
|
+
last_unstake: string;
|
|
1561
|
+
/**
|
|
1562
|
+
* Format: int32
|
|
1563
|
+
* @description How many 'unstake' calls happened on the day when `last_unstake` was performed.
|
|
1564
|
+
*/
|
|
1565
|
+
last_unstake_day_count: number;
|
|
1566
|
+
/**
|
|
1567
|
+
* @description The human-readable name for the org
|
|
1568
|
+
* @example my_org_name
|
|
1569
|
+
*/
|
|
1570
|
+
name?: string | null;
|
|
1571
|
+
/**
|
|
1572
|
+
* @description The ID of the organization
|
|
1573
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
1574
|
+
*/
|
|
1575
|
+
org_id: string;
|
|
1576
|
+
/**
|
|
1577
|
+
* @description Org-wide policies that are checked before a key is used for signing
|
|
1578
|
+
* @example [
|
|
1579
|
+
* {
|
|
1580
|
+
* "MaxDailyUnstake": 5
|
|
1581
|
+
* }
|
|
1582
|
+
* ]
|
|
1583
|
+
*/
|
|
1584
|
+
policy?: Record<string, never>[];
|
|
1585
|
+
};
|
|
1586
|
+
};
|
|
1587
|
+
};
|
|
1588
|
+
RefreshResponse: {
|
|
1589
|
+
content: {
|
|
1590
|
+
"application/json": {
|
|
1591
|
+
session_info: components["schemas"]["ClientSessionInfo"];
|
|
1592
|
+
/**
|
|
1593
|
+
* @description New token to be used for signing auth. Requests to signing endpoints
|
|
1594
|
+
* should include this value in the `Authorization` header
|
|
1595
|
+
*/
|
|
1596
|
+
token: string;
|
|
1597
|
+
};
|
|
1598
|
+
};
|
|
1599
|
+
};
|
|
1600
|
+
RevokeTokenResponse: {
|
|
1601
|
+
content: {
|
|
1602
|
+
"application/json": {
|
|
1603
|
+
token?: components["schemas"]["TokenInfo"] | null;
|
|
1604
|
+
};
|
|
1605
|
+
};
|
|
1606
|
+
};
|
|
1607
|
+
RevokeTokensResponse: {
|
|
1608
|
+
content: {
|
|
1609
|
+
"application/json": {
|
|
1610
|
+
/** @description Tokens that were revoked. */
|
|
1611
|
+
revoked: components["schemas"]["TokenInfo"][];
|
|
1612
|
+
};
|
|
1613
|
+
};
|
|
1614
|
+
};
|
|
1615
|
+
RoleInfo: {
|
|
1616
|
+
content: {
|
|
1617
|
+
"application/json": {
|
|
1618
|
+
/**
|
|
1619
|
+
* @description Whether the role is enabled
|
|
1620
|
+
* @example true
|
|
1621
|
+
*/
|
|
1622
|
+
enabled: boolean;
|
|
1623
|
+
/** @description The CubeSigner IDs of the keys */
|
|
1624
|
+
keys: components["schemas"]["KeyWithPolicies"][];
|
|
1625
|
+
/**
|
|
1626
|
+
* @description The human-readable name for the role (must be alphanumeric)
|
|
1627
|
+
* @example my_role
|
|
1628
|
+
*/
|
|
1629
|
+
name?: string | null;
|
|
1630
|
+
/**
|
|
1631
|
+
* @description The ID of the role
|
|
1632
|
+
* @example Role#bfe3eccb-731e-430d-b1e5-ac1363e6b06b
|
|
1633
|
+
*/
|
|
1634
|
+
role_id: string;
|
|
1635
|
+
/**
|
|
1636
|
+
* @description The list of users with access to the role
|
|
1637
|
+
* @example [
|
|
1638
|
+
* "User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f",
|
|
1639
|
+
* "User#5593c25b-52e2-4fb5-b39b-96d41d681d82"
|
|
1640
|
+
* ]
|
|
1641
|
+
*/
|
|
1642
|
+
users: string[];
|
|
1643
|
+
};
|
|
1644
|
+
};
|
|
1645
|
+
};
|
|
1646
|
+
SolanaSignResponse: {
|
|
1647
|
+
content: {
|
|
1648
|
+
"application/json": {
|
|
1649
|
+
/** @description The hex-encoded signature. */
|
|
1650
|
+
signature: string;
|
|
1651
|
+
};
|
|
1652
|
+
};
|
|
1653
|
+
};
|
|
1654
|
+
StakeResponse: {
|
|
1655
|
+
content: {
|
|
1656
|
+
"application/json": {
|
|
1657
|
+
/**
|
|
1658
|
+
* @description The validator key id ("Key#...")
|
|
1659
|
+
* @example Key#db1731f8-3659-45c0-885b-e11e1f5b7be2
|
|
1660
|
+
*/
|
|
1661
|
+
created_validator_key_id: string;
|
|
1662
|
+
deposit_tx: components["schemas"]["DepositTxn"];
|
|
1663
|
+
};
|
|
1664
|
+
};
|
|
1665
|
+
};
|
|
1666
|
+
TotpInfo: {
|
|
1667
|
+
content: {
|
|
1668
|
+
"application/json": {
|
|
1669
|
+
/**
|
|
1670
|
+
* @description Standard TOTP url which includes everything needed to initialize TOTP.
|
|
1671
|
+
* @example otpauth://totp/Cubist:alice-%40example.com?secret=DAHF7KCOTQWSOMK4XFEMNHXO4J433OD7&issuer=Cubist
|
|
1672
|
+
*/
|
|
1673
|
+
totp_url: string;
|
|
1674
|
+
};
|
|
1675
|
+
};
|
|
1676
|
+
};
|
|
1677
|
+
/**
|
|
1678
|
+
* @description Unstake responses are signed voluntary exit messages.
|
|
1679
|
+
* The schema for this message is defined
|
|
1680
|
+
* [here](https://github.com/ethereum/consensus-specs/blob/v1.0.1/specs/phase0/beacon-chain.md#signedvoluntaryexit).
|
|
1681
|
+
* This message can be directly POSTed to the Beacon node's
|
|
1682
|
+
* `/eth/v1/beacon/pool/voluntary_exits` end-point (see expected schema
|
|
1683
|
+
* [here](https://ethereum.github.io/beacon-APIs/#/Beacon/submitPoolVoluntaryExit)).
|
|
1684
|
+
*/
|
|
1685
|
+
UnstakeResponse: {
|
|
1686
|
+
content: {
|
|
1687
|
+
"application/json": {
|
|
1688
|
+
message: components["schemas"]["VoluntaryExit"];
|
|
1689
|
+
/**
|
|
1690
|
+
* @description BLS signature.
|
|
1691
|
+
* @example 0x910c7cd537ed91cc8c4a82f3cbd832e9be8c24a22e9c86df479f7ce42025ea6a09619b418b666a060e260d2aae31b8e50e9d05ca3442c7eed3b507e5207e14674275f68c2ba84c4bf6b8dd364a304acac8cfab3681e2514b4400f9242bc61164
|
|
1692
|
+
*/
|
|
1693
|
+
signature: string;
|
|
1694
|
+
};
|
|
1695
|
+
};
|
|
1696
|
+
};
|
|
1697
|
+
UpdateOrgResponse: {
|
|
1698
|
+
content: {
|
|
1699
|
+
"application/json": {
|
|
1700
|
+
/** @description The new value of the 'enabled' property */
|
|
1701
|
+
enabled?: boolean | null;
|
|
1702
|
+
/**
|
|
1703
|
+
* @description The new human-readable name for the org (must be alphanumeric)
|
|
1704
|
+
* @example my_org_name
|
|
1705
|
+
*/
|
|
1706
|
+
name?: string | null;
|
|
1707
|
+
/**
|
|
1708
|
+
* @description The ID of the organization
|
|
1709
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
1710
|
+
*/
|
|
1711
|
+
org_id: string;
|
|
1712
|
+
/**
|
|
1713
|
+
* @description The new value of org-wide policies
|
|
1714
|
+
* @example [
|
|
1715
|
+
* {
|
|
1716
|
+
* "MaxDailyUnstake": 5
|
|
1717
|
+
* },
|
|
1718
|
+
* {
|
|
1719
|
+
* "OriginAllowlist": [
|
|
1720
|
+
* "https://example.com"
|
|
1721
|
+
* ]
|
|
1722
|
+
* }
|
|
1723
|
+
* ]
|
|
1724
|
+
*/
|
|
1725
|
+
policy?: Record<string, never>[] | null;
|
|
1726
|
+
};
|
|
1727
|
+
};
|
|
1728
|
+
};
|
|
1729
|
+
UserInfo: {
|
|
1730
|
+
content: {
|
|
1731
|
+
"application/json": {
|
|
1732
|
+
/** @example alice@example.com */
|
|
1733
|
+
email: string;
|
|
1734
|
+
/** @description All multi-factor authentication methods configured for this user */
|
|
1735
|
+
mfa: components["schemas"]["ConfiguredMfa"][];
|
|
1736
|
+
/**
|
|
1737
|
+
* @description All organizations the user belongs to
|
|
1738
|
+
* @example [
|
|
1739
|
+
* "Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a"
|
|
1740
|
+
* ]
|
|
1741
|
+
*/
|
|
1742
|
+
org_ids: string[];
|
|
1743
|
+
/**
|
|
1744
|
+
* @description The id of the currently logged in user
|
|
1745
|
+
* @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
|
|
1746
|
+
*/
|
|
1747
|
+
user_id: string;
|
|
1748
|
+
};
|
|
1749
|
+
};
|
|
1750
|
+
};
|
|
1751
|
+
};
|
|
1752
|
+
parameters: never;
|
|
1753
|
+
requestBodies: never;
|
|
1754
|
+
headers: never;
|
|
1755
|
+
pathItems: never;
|
|
1756
|
+
}
|
|
1757
|
+
export type external = Record<string, never>;
|
|
1758
|
+
export interface operations {
|
|
1759
|
+
/**
|
|
1760
|
+
* User Info
|
|
1761
|
+
* @description User Info
|
|
1762
|
+
*
|
|
1763
|
+
* Retrieves information about the current user.
|
|
1764
|
+
*/
|
|
1765
|
+
aboutMe: {
|
|
1766
|
+
responses: {
|
|
1767
|
+
200: components["responses"]["UserInfo"];
|
|
1768
|
+
default: {
|
|
1769
|
+
content: {
|
|
1770
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1771
|
+
};
|
|
1772
|
+
};
|
|
1773
|
+
};
|
|
1774
|
+
};
|
|
1775
|
+
/**
|
|
1776
|
+
* Get Org
|
|
1777
|
+
* @description Get Org
|
|
1778
|
+
*
|
|
1779
|
+
* Retrieves information about an organization.
|
|
1780
|
+
*/
|
|
1781
|
+
getOrg: {
|
|
1782
|
+
parameters: {
|
|
1783
|
+
path: {
|
|
1784
|
+
/**
|
|
1785
|
+
* @description Name or ID of the desired Org
|
|
1786
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
1787
|
+
*/
|
|
1788
|
+
org_id: string;
|
|
1789
|
+
};
|
|
1790
|
+
};
|
|
1791
|
+
responses: {
|
|
1792
|
+
200: components["responses"]["OrgInfo"];
|
|
1793
|
+
default: {
|
|
1794
|
+
content: {
|
|
1795
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1796
|
+
};
|
|
1797
|
+
};
|
|
1798
|
+
};
|
|
1799
|
+
};
|
|
1800
|
+
/**
|
|
1801
|
+
* Update Org
|
|
1802
|
+
* @description Update Org
|
|
1803
|
+
*
|
|
1804
|
+
* Update organization attributes (enabled flag, name, and policies).
|
|
1805
|
+
*/
|
|
1806
|
+
updateOrg: {
|
|
1807
|
+
parameters: {
|
|
1808
|
+
path: {
|
|
1809
|
+
/**
|
|
1810
|
+
* @description Name or ID of the desired Org
|
|
1811
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
1812
|
+
*/
|
|
1813
|
+
org_id: string;
|
|
1814
|
+
};
|
|
1815
|
+
};
|
|
1816
|
+
requestBody: {
|
|
1817
|
+
content: {
|
|
1818
|
+
"application/json": components["schemas"]["UpdateOrgRequest"];
|
|
1819
|
+
};
|
|
1820
|
+
};
|
|
1821
|
+
responses: {
|
|
1822
|
+
200: components["responses"]["UpdateOrgResponse"];
|
|
1823
|
+
default: {
|
|
1824
|
+
content: {
|
|
1825
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1826
|
+
};
|
|
1827
|
+
};
|
|
1828
|
+
};
|
|
1829
|
+
};
|
|
1830
|
+
/**
|
|
1831
|
+
* Sign Bitcoin Transaction
|
|
1832
|
+
* @description Sign Bitcoin Transaction
|
|
1833
|
+
*
|
|
1834
|
+
* Signs a Bitcoin transaction with a given key.
|
|
1835
|
+
* This is a pre-release feature.
|
|
1836
|
+
*/
|
|
1837
|
+
btcSign: {
|
|
1838
|
+
parameters: {
|
|
1839
|
+
path: {
|
|
1840
|
+
/**
|
|
1841
|
+
* @description Name or ID of the desired Org
|
|
1842
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
1843
|
+
*/
|
|
1844
|
+
org_id: string;
|
|
1845
|
+
/**
|
|
1846
|
+
* @description bech32 encoding of the public key
|
|
1847
|
+
* @example bc1q5p5qkae77ly80kr4pyfytdqm7rf08ddhdejl9g
|
|
1848
|
+
*/
|
|
1849
|
+
pubkey: string;
|
|
1850
|
+
};
|
|
1851
|
+
};
|
|
1852
|
+
requestBody: {
|
|
1853
|
+
content: {
|
|
1854
|
+
"application/json": components["schemas"]["BtcSignRequest"];
|
|
1855
|
+
};
|
|
1856
|
+
};
|
|
1857
|
+
responses: {
|
|
1858
|
+
200: components["responses"]["BtcSignResponse"];
|
|
1859
|
+
202: {
|
|
1860
|
+
content: {
|
|
1861
|
+
"application/json": components["schemas"]["AcceptedResponse"];
|
|
1862
|
+
};
|
|
1863
|
+
};
|
|
1864
|
+
default: {
|
|
1865
|
+
content: {
|
|
1866
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1867
|
+
};
|
|
1868
|
+
};
|
|
1869
|
+
};
|
|
1870
|
+
};
|
|
1871
|
+
/**
|
|
1872
|
+
* Create Key-Import Key
|
|
1873
|
+
* @description Create Key-Import Key
|
|
1874
|
+
*
|
|
1875
|
+
* Generate an ephemeral key that a client can use for key-import encryption.
|
|
1876
|
+
*/
|
|
1877
|
+
createKeyImportKey: {
|
|
1878
|
+
parameters: {
|
|
1879
|
+
path: {
|
|
1880
|
+
/**
|
|
1881
|
+
* @description Name or ID of the desired Org
|
|
1882
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
1883
|
+
*/
|
|
1884
|
+
org_id: string;
|
|
1885
|
+
};
|
|
1886
|
+
};
|
|
1887
|
+
responses: {
|
|
1888
|
+
200: components["responses"]["CreateKeyImportKeyResponse"];
|
|
1889
|
+
default: {
|
|
1890
|
+
content: {
|
|
1891
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1892
|
+
};
|
|
1893
|
+
};
|
|
1894
|
+
};
|
|
1895
|
+
};
|
|
1896
|
+
/**
|
|
1897
|
+
* Import Key
|
|
1898
|
+
* @description Import Key
|
|
1899
|
+
*
|
|
1900
|
+
* Securely imports an existing key using a previously generated key-import key.
|
|
1901
|
+
*/
|
|
1902
|
+
importKey: {
|
|
1903
|
+
parameters: {
|
|
1904
|
+
path: {
|
|
1905
|
+
/**
|
|
1906
|
+
* @description Name or ID of the desired Org
|
|
1907
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
1908
|
+
*/
|
|
1909
|
+
org_id: string;
|
|
1910
|
+
};
|
|
1911
|
+
};
|
|
1912
|
+
requestBody: {
|
|
1913
|
+
content: {
|
|
1914
|
+
"application/json": components["schemas"]["ImportKeyRequest"];
|
|
1915
|
+
};
|
|
1916
|
+
};
|
|
1917
|
+
responses: {
|
|
1918
|
+
200: components["responses"]["CreateKeyResponse"];
|
|
1919
|
+
default: {
|
|
1920
|
+
content: {
|
|
1921
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1922
|
+
};
|
|
1923
|
+
};
|
|
1924
|
+
};
|
|
1925
|
+
};
|
|
1926
|
+
/**
|
|
1927
|
+
* Invite User
|
|
1928
|
+
* @description Invite User
|
|
1929
|
+
*
|
|
1930
|
+
* Creates a new user in an existing org and sends that user an invite email.
|
|
1931
|
+
*/
|
|
1932
|
+
invite: {
|
|
1933
|
+
parameters: {
|
|
1934
|
+
path: {
|
|
1935
|
+
/**
|
|
1936
|
+
* @description Name or ID of the desired Org
|
|
1937
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
1938
|
+
*/
|
|
1939
|
+
org_id: string;
|
|
1940
|
+
};
|
|
1941
|
+
};
|
|
1942
|
+
requestBody: {
|
|
1943
|
+
content: {
|
|
1944
|
+
"application/json": components["schemas"]["InviteRequest"];
|
|
1945
|
+
};
|
|
1946
|
+
};
|
|
1947
|
+
responses: {
|
|
1948
|
+
200: components["responses"]["EmptyImpl"];
|
|
1949
|
+
default: {
|
|
1950
|
+
content: {
|
|
1951
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1952
|
+
};
|
|
1953
|
+
};
|
|
1954
|
+
};
|
|
1955
|
+
};
|
|
1956
|
+
/**
|
|
1957
|
+
* List Keys
|
|
1958
|
+
* @description List Keys
|
|
1959
|
+
*
|
|
1960
|
+
* Gets the list of owned keys in a given org.
|
|
1961
|
+
*/
|
|
1962
|
+
listKeysInOrg: {
|
|
1963
|
+
parameters: {
|
|
1964
|
+
query?: {
|
|
1965
|
+
/**
|
|
1966
|
+
* @description Filter by key type
|
|
1967
|
+
* @example SecpEthAddr
|
|
1968
|
+
*/
|
|
1969
|
+
key_type?: components["schemas"]["KeyType"];
|
|
1970
|
+
};
|
|
1971
|
+
path: {
|
|
1972
|
+
/**
|
|
1973
|
+
* @description Name or ID of the desired Org
|
|
1974
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
1975
|
+
*/
|
|
1976
|
+
org_id: string;
|
|
1977
|
+
};
|
|
1978
|
+
};
|
|
1979
|
+
responses: {
|
|
1980
|
+
200: components["responses"]["GetKeysInOrgResponse"];
|
|
1981
|
+
default: {
|
|
1982
|
+
content: {
|
|
1983
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1984
|
+
};
|
|
1985
|
+
};
|
|
1986
|
+
};
|
|
1987
|
+
};
|
|
1988
|
+
/**
|
|
1989
|
+
* Import Key (Deprecated)
|
|
1990
|
+
* @description Import Key (Deprecated)
|
|
1991
|
+
*
|
|
1992
|
+
* Securely imports an existing key. This API is deprecated; please use the new version.
|
|
1993
|
+
*/
|
|
1994
|
+
importKeyLegacy: {
|
|
1995
|
+
parameters: {
|
|
1996
|
+
path: {
|
|
1997
|
+
/**
|
|
1998
|
+
* @description Name or ID of the desired Org
|
|
1999
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2000
|
+
*/
|
|
2001
|
+
org_id: string;
|
|
2002
|
+
};
|
|
2003
|
+
};
|
|
2004
|
+
requestBody: {
|
|
2005
|
+
content: {
|
|
2006
|
+
"application/json": components["schemas"]["ImportKeyLegacyRequest"];
|
|
2007
|
+
};
|
|
2008
|
+
};
|
|
2009
|
+
responses: {
|
|
2010
|
+
200: components["responses"]["CreateKeyResponse"];
|
|
2011
|
+
default: {
|
|
2012
|
+
content: {
|
|
2013
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2014
|
+
};
|
|
2015
|
+
};
|
|
2016
|
+
};
|
|
2017
|
+
};
|
|
2018
|
+
/**
|
|
2019
|
+
* Create Key
|
|
2020
|
+
* @description Create Key
|
|
2021
|
+
*
|
|
2022
|
+
* Creates one or more new keys of the specified type (BLS or Secp).
|
|
2023
|
+
*/
|
|
2024
|
+
createKey: {
|
|
2025
|
+
parameters: {
|
|
2026
|
+
path: {
|
|
2027
|
+
/**
|
|
2028
|
+
* @description Name or ID of the desired Org
|
|
2029
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2030
|
+
*/
|
|
2031
|
+
org_id: string;
|
|
2032
|
+
};
|
|
2033
|
+
};
|
|
2034
|
+
requestBody: {
|
|
2035
|
+
content: {
|
|
2036
|
+
"application/json": components["schemas"]["CreateKeyRequest"];
|
|
2037
|
+
};
|
|
2038
|
+
};
|
|
2039
|
+
responses: {
|
|
2040
|
+
200: components["responses"]["CreateKeyResponse"];
|
|
2041
|
+
default: {
|
|
2042
|
+
content: {
|
|
2043
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2044
|
+
};
|
|
2045
|
+
};
|
|
2046
|
+
};
|
|
2047
|
+
};
|
|
2048
|
+
/**
|
|
2049
|
+
* Legacy List Keys
|
|
2050
|
+
* @deprecated
|
|
2051
|
+
* @description Legacy List Keys
|
|
2052
|
+
*
|
|
2053
|
+
* This route is deprecated. Use `GET /v0/org/<org_id>/keys?<key_type>`
|
|
2054
|
+
*/
|
|
2055
|
+
listKeysLegacy: {
|
|
2056
|
+
parameters: {
|
|
2057
|
+
path: {
|
|
2058
|
+
/**
|
|
2059
|
+
* @description Name or ID of the desired Org
|
|
2060
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2061
|
+
*/
|
|
2062
|
+
org_id: string;
|
|
2063
|
+
};
|
|
2064
|
+
};
|
|
2065
|
+
requestBody: {
|
|
2066
|
+
content: {
|
|
2067
|
+
"application/json": components["schemas"]["GetKeysInOrgRequest"];
|
|
2068
|
+
};
|
|
2069
|
+
};
|
|
2070
|
+
responses: {
|
|
2071
|
+
200: components["responses"]["GetKeysInOrgResponse"];
|
|
2072
|
+
default: {
|
|
2073
|
+
content: {
|
|
2074
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2075
|
+
};
|
|
2076
|
+
};
|
|
2077
|
+
};
|
|
2078
|
+
};
|
|
2079
|
+
/**
|
|
2080
|
+
* Get Key
|
|
2081
|
+
* @description Get Key
|
|
2082
|
+
*
|
|
2083
|
+
* Returns the properties of a key.
|
|
2084
|
+
*/
|
|
2085
|
+
getKeyInOrg: {
|
|
2086
|
+
parameters: {
|
|
2087
|
+
path: {
|
|
2088
|
+
/**
|
|
2089
|
+
* @description Name or ID of the desired Org
|
|
2090
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2091
|
+
*/
|
|
2092
|
+
org_id: string;
|
|
2093
|
+
/**
|
|
2094
|
+
* @description ID of the key
|
|
2095
|
+
* @example Key#0x8e3484687e66cdd26cf04c3647633ab4f3570148
|
|
2096
|
+
*/
|
|
2097
|
+
key_id: string;
|
|
2098
|
+
};
|
|
2099
|
+
};
|
|
2100
|
+
responses: {
|
|
2101
|
+
200: components["responses"]["KeyInfo"];
|
|
2102
|
+
default: {
|
|
2103
|
+
content: {
|
|
2104
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2105
|
+
};
|
|
2106
|
+
};
|
|
2107
|
+
};
|
|
2108
|
+
};
|
|
2109
|
+
/**
|
|
2110
|
+
* Update Key
|
|
2111
|
+
* @description Update Key
|
|
2112
|
+
*
|
|
2113
|
+
* Enable or disable a key. The user must be the owner of the key or organization to perform this action.
|
|
2114
|
+
*/
|
|
2115
|
+
updateKey: {
|
|
2116
|
+
parameters: {
|
|
2117
|
+
path: {
|
|
2118
|
+
/**
|
|
2119
|
+
* @description Name or ID of the desired Org
|
|
2120
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2121
|
+
*/
|
|
2122
|
+
org_id: string;
|
|
2123
|
+
/**
|
|
2124
|
+
* @description ID of the key
|
|
2125
|
+
* @example Key#0x8e3484687e66cdd26cf04c3647633ab4f3570148
|
|
2126
|
+
*/
|
|
2127
|
+
key_id: string;
|
|
2128
|
+
};
|
|
2129
|
+
};
|
|
2130
|
+
requestBody: {
|
|
2131
|
+
content: {
|
|
2132
|
+
"application/json": components["schemas"]["UpdateKeyRequest"];
|
|
2133
|
+
};
|
|
2134
|
+
};
|
|
2135
|
+
responses: {
|
|
2136
|
+
200: components["responses"]["KeyInfo"];
|
|
2137
|
+
default: {
|
|
2138
|
+
content: {
|
|
2139
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2140
|
+
};
|
|
2141
|
+
};
|
|
2142
|
+
};
|
|
2143
|
+
};
|
|
2144
|
+
/**
|
|
2145
|
+
* Gets a Pending MFA Request
|
|
2146
|
+
* @description Gets a Pending MFA Request
|
|
2147
|
+
*
|
|
2148
|
+
* Retrieves and returns a pending MFA request by its id.
|
|
2149
|
+
*/
|
|
2150
|
+
mfaGet: {
|
|
2151
|
+
parameters: {
|
|
2152
|
+
path: {
|
|
2153
|
+
/**
|
|
2154
|
+
* @description Name or ID of the desired Org
|
|
2155
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2156
|
+
*/
|
|
2157
|
+
org_id: string;
|
|
2158
|
+
/**
|
|
2159
|
+
* @description ID of the approval
|
|
2160
|
+
* @example ...
|
|
2161
|
+
*/
|
|
2162
|
+
mfa_id: string;
|
|
2163
|
+
};
|
|
2164
|
+
};
|
|
2165
|
+
responses: {
|
|
2166
|
+
200: components["responses"]["MfaRequestInfo"];
|
|
2167
|
+
default: {
|
|
2168
|
+
content: {
|
|
2169
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2170
|
+
};
|
|
2171
|
+
};
|
|
2172
|
+
};
|
|
2173
|
+
};
|
|
2174
|
+
/**
|
|
2175
|
+
* Approve a Pending MFA Request
|
|
2176
|
+
* @description Approve a Pending MFA Request
|
|
2177
|
+
*
|
|
2178
|
+
* Adds the current user as an approver of a pending MFA request of the [Status::RequiredApprovers] kind.
|
|
2179
|
+
* If the required number of approvers is reached, the MFA request is approved;
|
|
2180
|
+
* the confirmation receipt can be used to resume the original HTTP request.
|
|
2181
|
+
*/
|
|
2182
|
+
mfaApproveCs: {
|
|
2183
|
+
parameters: {
|
|
2184
|
+
path: {
|
|
2185
|
+
/**
|
|
2186
|
+
* @description Name or ID of the desired Org
|
|
2187
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2188
|
+
*/
|
|
2189
|
+
org_id: string;
|
|
2190
|
+
/**
|
|
2191
|
+
* @description ID of the MFA approval request
|
|
2192
|
+
* @example MfaRequest#6de79de4-662c-4203-9235-b6ace5cb432b
|
|
2193
|
+
*/
|
|
2194
|
+
mfa_id: string;
|
|
2195
|
+
};
|
|
2196
|
+
};
|
|
2197
|
+
responses: {
|
|
2198
|
+
200: components["responses"]["MfaRequestInfo"];
|
|
2199
|
+
default: {
|
|
2200
|
+
content: {
|
|
2201
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2202
|
+
};
|
|
2203
|
+
};
|
|
2204
|
+
};
|
|
2205
|
+
};
|
|
2206
|
+
/**
|
|
2207
|
+
* Approve a TOTP MFA Request
|
|
2208
|
+
* @description Approve a TOTP MFA Request
|
|
2209
|
+
*
|
|
2210
|
+
* Adds an approver to a pending TOTP MFA request.
|
|
2211
|
+
*
|
|
2212
|
+
* If the required number of approvers is reached, the MFA request is approved;
|
|
2213
|
+
* the confirmation receipt can be used to resume the original HTTP request.
|
|
2214
|
+
*/
|
|
2215
|
+
mfaApproveTotp: {
|
|
2216
|
+
parameters: {
|
|
2217
|
+
path: {
|
|
2218
|
+
/**
|
|
2219
|
+
* @description Name or ID of the desired Org
|
|
2220
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2221
|
+
*/
|
|
2222
|
+
org_id: string;
|
|
2223
|
+
/**
|
|
2224
|
+
* @description ID of the MFA approval request
|
|
2225
|
+
* @example MfaRequest#6de79de4-662c-4203-9235-b6ace5cb432b
|
|
2226
|
+
*/
|
|
2227
|
+
mfa_id: string;
|
|
2228
|
+
};
|
|
2229
|
+
};
|
|
2230
|
+
requestBody: {
|
|
2231
|
+
content: {
|
|
2232
|
+
"application/json": components["schemas"]["TotpApproveRequest"];
|
|
2233
|
+
};
|
|
2234
|
+
};
|
|
2235
|
+
responses: {
|
|
2236
|
+
200: components["responses"]["MfaRequestInfo"];
|
|
2237
|
+
default: {
|
|
2238
|
+
content: {
|
|
2239
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2240
|
+
};
|
|
2241
|
+
};
|
|
2242
|
+
};
|
|
2243
|
+
};
|
|
2244
|
+
/**
|
|
2245
|
+
* Login with OIDC
|
|
2246
|
+
* @description Login with OIDC
|
|
2247
|
+
*
|
|
2248
|
+
* Exchange an OIDC ID token (passed via the `Authorization` header) for a signer session
|
|
2249
|
+
*/
|
|
2250
|
+
oidcAuth: {
|
|
2251
|
+
parameters: {
|
|
2252
|
+
path: {
|
|
2253
|
+
/**
|
|
2254
|
+
* @description Name or ID of the desired Org
|
|
2255
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2256
|
+
*/
|
|
2257
|
+
org_id: string;
|
|
2258
|
+
};
|
|
2259
|
+
};
|
|
2260
|
+
requestBody: {
|
|
2261
|
+
content: {
|
|
2262
|
+
"application/json": components["schemas"]["OidcLoginRequest"];
|
|
2263
|
+
};
|
|
2264
|
+
};
|
|
2265
|
+
responses: {
|
|
2266
|
+
200: components["responses"]["OidcLoginResponse"];
|
|
2267
|
+
202: {
|
|
2268
|
+
content: {
|
|
2269
|
+
"application/json": components["schemas"]["AcceptedResponse"];
|
|
2270
|
+
};
|
|
2271
|
+
};
|
|
2272
|
+
default: {
|
|
2273
|
+
content: {
|
|
2274
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2275
|
+
};
|
|
2276
|
+
};
|
|
2277
|
+
};
|
|
2278
|
+
};
|
|
2279
|
+
/**
|
|
2280
|
+
* List Roles
|
|
2281
|
+
* @description List Roles
|
|
2282
|
+
*
|
|
2283
|
+
* Retrieves all roles in an organization that the current user is allowed to access.
|
|
2284
|
+
*/
|
|
2285
|
+
listRoles: {
|
|
2286
|
+
parameters: {
|
|
2287
|
+
path: {
|
|
2288
|
+
/**
|
|
2289
|
+
* @description Name or ID of the desired Org
|
|
2290
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2291
|
+
*/
|
|
2292
|
+
org_id: string;
|
|
2293
|
+
};
|
|
2294
|
+
};
|
|
2295
|
+
responses: {
|
|
2296
|
+
200: components["responses"]["ListRolesResponse"];
|
|
2297
|
+
default: {
|
|
2298
|
+
content: {
|
|
2299
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2300
|
+
};
|
|
2301
|
+
};
|
|
2302
|
+
};
|
|
2303
|
+
};
|
|
2304
|
+
/**
|
|
2305
|
+
* Create Role
|
|
2306
|
+
* @description Create Role
|
|
2307
|
+
*
|
|
2308
|
+
* Creates a new role in an organization. Unless the logged-in user
|
|
2309
|
+
* is the owner, they are automatically added to the newly created role.
|
|
2310
|
+
*/
|
|
2311
|
+
createRole: {
|
|
2312
|
+
parameters: {
|
|
2313
|
+
path: {
|
|
2314
|
+
/**
|
|
2315
|
+
* @description Name or ID of the desired Org
|
|
2316
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2317
|
+
*/
|
|
2318
|
+
org_id: string;
|
|
2319
|
+
};
|
|
2320
|
+
};
|
|
2321
|
+
/** @description Optional request body to set the role name */
|
|
2322
|
+
requestBody?: {
|
|
2323
|
+
content: {
|
|
2324
|
+
"application/json": components["schemas"]["CreateRoleRequest"];
|
|
2325
|
+
};
|
|
2326
|
+
};
|
|
2327
|
+
responses: {
|
|
2328
|
+
200: components["responses"]["CreateRoleResponse"];
|
|
2329
|
+
default: {
|
|
2330
|
+
content: {
|
|
2331
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2332
|
+
};
|
|
2333
|
+
};
|
|
2334
|
+
};
|
|
2335
|
+
};
|
|
2336
|
+
/**
|
|
2337
|
+
* Get Role
|
|
2338
|
+
* @description Get Role
|
|
2339
|
+
*
|
|
2340
|
+
* Retrieves information about a role in an organization
|
|
2341
|
+
*/
|
|
2342
|
+
getRole: {
|
|
2343
|
+
parameters: {
|
|
2344
|
+
path: {
|
|
2345
|
+
/**
|
|
2346
|
+
* @description Name or ID of the desired Org
|
|
2347
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2348
|
+
*/
|
|
2349
|
+
org_id: string;
|
|
2350
|
+
/**
|
|
2351
|
+
* @description Name or ID of the desired Role
|
|
2352
|
+
* @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2353
|
+
*/
|
|
2354
|
+
role_id: string;
|
|
2355
|
+
};
|
|
2356
|
+
};
|
|
2357
|
+
responses: {
|
|
2358
|
+
200: components["responses"]["RoleInfo"];
|
|
2359
|
+
default: {
|
|
2360
|
+
content: {
|
|
2361
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2362
|
+
};
|
|
2363
|
+
};
|
|
2364
|
+
};
|
|
2365
|
+
};
|
|
2366
|
+
/**
|
|
2367
|
+
* Delete Role
|
|
2368
|
+
* @description Delete Role
|
|
2369
|
+
*
|
|
2370
|
+
* Deletes a role in an organization.
|
|
2371
|
+
* Only organization owners can perform this action.
|
|
2372
|
+
*/
|
|
2373
|
+
deleteRole: {
|
|
2374
|
+
parameters: {
|
|
2375
|
+
path: {
|
|
2376
|
+
/**
|
|
2377
|
+
* @description Name or ID of the desired Org
|
|
2378
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2379
|
+
*/
|
|
2380
|
+
org_id: string;
|
|
2381
|
+
/**
|
|
2382
|
+
* @description Name or ID of the desired Role
|
|
2383
|
+
* @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2384
|
+
*/
|
|
2385
|
+
role_id: string;
|
|
2386
|
+
};
|
|
2387
|
+
};
|
|
2388
|
+
responses: {
|
|
2389
|
+
200: components["responses"]["EmptyImpl"];
|
|
2390
|
+
default: {
|
|
2391
|
+
content: {
|
|
2392
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2393
|
+
};
|
|
2394
|
+
};
|
|
2395
|
+
};
|
|
2396
|
+
};
|
|
2397
|
+
/**
|
|
2398
|
+
* Update Role
|
|
2399
|
+
* @description Update Role
|
|
2400
|
+
*
|
|
2401
|
+
* Enables or disables a role.
|
|
2402
|
+
* The user must be in the role or an owner of the organization.
|
|
2403
|
+
*/
|
|
2404
|
+
updateRole: {
|
|
2405
|
+
parameters: {
|
|
2406
|
+
path: {
|
|
2407
|
+
/**
|
|
2408
|
+
* @description Name or ID of the desired Org
|
|
2409
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2410
|
+
*/
|
|
2411
|
+
org_id: string;
|
|
2412
|
+
/**
|
|
2413
|
+
* @description Name or ID of the desired Role
|
|
2414
|
+
* @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2415
|
+
*/
|
|
2416
|
+
role_id: string;
|
|
2417
|
+
};
|
|
2418
|
+
};
|
|
2419
|
+
requestBody: {
|
|
2420
|
+
content: {
|
|
2421
|
+
"application/json": components["schemas"]["UpdateRoleRequest"];
|
|
2422
|
+
};
|
|
2423
|
+
};
|
|
2424
|
+
responses: {
|
|
2425
|
+
200: components["responses"]["EmptyImpl"];
|
|
2426
|
+
default: {
|
|
2427
|
+
content: {
|
|
2428
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2429
|
+
};
|
|
2430
|
+
};
|
|
2431
|
+
};
|
|
2432
|
+
};
|
|
2433
|
+
/**
|
|
2434
|
+
* Add Keys
|
|
2435
|
+
* @description Add Keys
|
|
2436
|
+
*
|
|
2437
|
+
* Adds a list of existing keys to an existing role.
|
|
2438
|
+
*/
|
|
2439
|
+
addKeysToRole: {
|
|
2440
|
+
parameters: {
|
|
2441
|
+
path: {
|
|
2442
|
+
/**
|
|
2443
|
+
* @description Name or ID of the desired Org
|
|
2444
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2445
|
+
*/
|
|
2446
|
+
org_id: string;
|
|
2447
|
+
/**
|
|
2448
|
+
* @description Name or ID of the desired Role
|
|
2449
|
+
* @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2450
|
+
*/
|
|
2451
|
+
role_id: string;
|
|
2452
|
+
};
|
|
2453
|
+
};
|
|
2454
|
+
requestBody: {
|
|
2455
|
+
content: {
|
|
2456
|
+
"application/json": components["schemas"]["AddKeysToRoleRequest"];
|
|
2457
|
+
};
|
|
2458
|
+
};
|
|
2459
|
+
responses: {};
|
|
2460
|
+
};
|
|
2461
|
+
/**
|
|
2462
|
+
* Add User
|
|
2463
|
+
* @description Add User
|
|
2464
|
+
*
|
|
2465
|
+
* Adds an existing user to an existing role.
|
|
2466
|
+
* Only users in the role or owners can add users to a role.
|
|
2467
|
+
*/
|
|
2468
|
+
addUserToRole: {
|
|
2469
|
+
parameters: {
|
|
2470
|
+
path: {
|
|
2471
|
+
/**
|
|
2472
|
+
* @description Name or ID of the desired Org
|
|
2473
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2474
|
+
*/
|
|
2475
|
+
org_id: string;
|
|
2476
|
+
/**
|
|
2477
|
+
* @description Name or ID of the desired Role
|
|
2478
|
+
* @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2479
|
+
*/
|
|
2480
|
+
role_id: string;
|
|
2481
|
+
/**
|
|
2482
|
+
* @description ID of the user to add to role
|
|
2483
|
+
* @example User#c3b9379c-4e8c-4216-bd0a-65ace53cf98f
|
|
2484
|
+
*/
|
|
2485
|
+
user_id: string;
|
|
2486
|
+
};
|
|
2487
|
+
};
|
|
2488
|
+
responses: {};
|
|
2489
|
+
};
|
|
2490
|
+
/**
|
|
2491
|
+
* Remove Key
|
|
2492
|
+
* @description Remove Key
|
|
2493
|
+
*
|
|
2494
|
+
* Removes a given key from a role
|
|
2495
|
+
*/
|
|
2496
|
+
removeKeyFromRole: {
|
|
2497
|
+
parameters: {
|
|
2498
|
+
path: {
|
|
2499
|
+
/**
|
|
2500
|
+
* @description Name or ID of the desired Org
|
|
2501
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2502
|
+
*/
|
|
2503
|
+
org_id: string;
|
|
2504
|
+
/**
|
|
2505
|
+
* @description Name or ID of the desired Role
|
|
2506
|
+
* @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2507
|
+
*/
|
|
2508
|
+
role_id: string;
|
|
2509
|
+
/**
|
|
2510
|
+
* @description ID of the desired Key
|
|
2511
|
+
* @example Key#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2512
|
+
*/
|
|
2513
|
+
key_id: string;
|
|
2514
|
+
};
|
|
2515
|
+
};
|
|
2516
|
+
responses: {};
|
|
2517
|
+
};
|
|
2518
|
+
/**
|
|
2519
|
+
* List Tokens
|
|
2520
|
+
* @description List Tokens
|
|
2521
|
+
*
|
|
2522
|
+
* Returns all access tokens for a given role.
|
|
2523
|
+
* Only users in the role or owners can create a token for it.
|
|
2524
|
+
*/
|
|
2525
|
+
listRoleTokens: {
|
|
2526
|
+
parameters: {
|
|
2527
|
+
path: {
|
|
2528
|
+
/**
|
|
2529
|
+
* @description Name or ID of the desired Org
|
|
2530
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2531
|
+
*/
|
|
2532
|
+
org_id: string;
|
|
2533
|
+
/**
|
|
2534
|
+
* @description Name or ID of the desired Role
|
|
2535
|
+
* @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2536
|
+
*/
|
|
2537
|
+
role_id: string;
|
|
2538
|
+
};
|
|
2539
|
+
};
|
|
2540
|
+
responses: {
|
|
2541
|
+
200: components["responses"]["ListTokensResponse"];
|
|
2542
|
+
default: {
|
|
2543
|
+
content: {
|
|
2544
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2545
|
+
};
|
|
2546
|
+
};
|
|
2547
|
+
};
|
|
2548
|
+
};
|
|
2549
|
+
/**
|
|
2550
|
+
* Create Token
|
|
2551
|
+
* @description Create Token
|
|
2552
|
+
*
|
|
2553
|
+
* Creates a new access token for a given role (to be used as "API Key" for all signing actions).
|
|
2554
|
+
* Only users in the role or owners can create a token for it.
|
|
2555
|
+
*/
|
|
2556
|
+
createRoleToken: {
|
|
2557
|
+
parameters: {
|
|
2558
|
+
path: {
|
|
2559
|
+
/**
|
|
2560
|
+
* @description Name or ID of the desired Org
|
|
2561
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2562
|
+
*/
|
|
2563
|
+
org_id: string;
|
|
2564
|
+
/**
|
|
2565
|
+
* @description Name or ID of the desired Role
|
|
2566
|
+
* @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2567
|
+
*/
|
|
2568
|
+
role_id: string;
|
|
2569
|
+
};
|
|
2570
|
+
};
|
|
2571
|
+
requestBody: {
|
|
2572
|
+
content: {
|
|
2573
|
+
"application/json": components["schemas"]["CreateTokenRequest"];
|
|
2574
|
+
};
|
|
2575
|
+
};
|
|
2576
|
+
responses: {
|
|
2577
|
+
200: components["responses"]["CreateTokenResponse"];
|
|
2578
|
+
default: {
|
|
2579
|
+
content: {
|
|
2580
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2581
|
+
};
|
|
2582
|
+
};
|
|
2583
|
+
};
|
|
2584
|
+
};
|
|
2585
|
+
/**
|
|
2586
|
+
* Revoke All Tokens
|
|
2587
|
+
* @description Revoke All Tokens
|
|
2588
|
+
*
|
|
2589
|
+
* Revokes all access tokens associated with a role.
|
|
2590
|
+
* Only users in the role or owners can perform this action.
|
|
2591
|
+
*/
|
|
2592
|
+
revokeAllRoleTokens: {
|
|
2593
|
+
parameters: {
|
|
2594
|
+
path: {
|
|
2595
|
+
/**
|
|
2596
|
+
* @description Name or ID of the desired Org
|
|
2597
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2598
|
+
*/
|
|
2599
|
+
org_id: string;
|
|
2600
|
+
/**
|
|
2601
|
+
* @description Name or ID of the desired Role
|
|
2602
|
+
* @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2603
|
+
*/
|
|
2604
|
+
role_id: string;
|
|
2605
|
+
};
|
|
2606
|
+
};
|
|
2607
|
+
responses: {
|
|
2608
|
+
200: components["responses"]["RevokeTokensResponse"];
|
|
2609
|
+
default: {
|
|
2610
|
+
content: {
|
|
2611
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2612
|
+
};
|
|
2613
|
+
};
|
|
2614
|
+
};
|
|
2615
|
+
};
|
|
2616
|
+
/**
|
|
2617
|
+
* Revoke Token
|
|
2618
|
+
* @description Revoke Token
|
|
2619
|
+
*
|
|
2620
|
+
* Revokes an access token associated with a role.
|
|
2621
|
+
* Only users in the role or owners can perform this action.
|
|
2622
|
+
*/
|
|
2623
|
+
revokeRoleToken: {
|
|
2624
|
+
parameters: {
|
|
2625
|
+
path: {
|
|
2626
|
+
/**
|
|
2627
|
+
* @description Name or ID of the desired Org
|
|
2628
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2629
|
+
*/
|
|
2630
|
+
org_id: string;
|
|
2631
|
+
/**
|
|
2632
|
+
* @description Name or ID of the desired Role
|
|
2633
|
+
* @example Role#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2634
|
+
*/
|
|
2635
|
+
role_id: string;
|
|
2636
|
+
/**
|
|
2637
|
+
* @description The ID of the session to revoke
|
|
2638
|
+
* @example 77aad2100c361f497635dd005c4d15781e2e5df4b9f45d8e74f37425cbc30b9e
|
|
2639
|
+
*/
|
|
2640
|
+
session_id: string;
|
|
2641
|
+
};
|
|
2642
|
+
};
|
|
2643
|
+
responses: {
|
|
2644
|
+
200: components["responses"]["RevokeTokenResponse"];
|
|
2645
|
+
default: {
|
|
2646
|
+
content: {
|
|
2647
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2648
|
+
};
|
|
2649
|
+
};
|
|
2650
|
+
};
|
|
2651
|
+
};
|
|
2652
|
+
/**
|
|
2653
|
+
* Get Token-Accessible Keys
|
|
2654
|
+
* @description Get Token-Accessible Keys
|
|
2655
|
+
*
|
|
2656
|
+
* Retrieves the keys that the role token can access.
|
|
2657
|
+
*/
|
|
2658
|
+
listTokenKeys: {
|
|
2659
|
+
parameters: {
|
|
2660
|
+
path: {
|
|
2661
|
+
/**
|
|
2662
|
+
* @description Name or ID of the desired Org
|
|
2663
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2664
|
+
*/
|
|
2665
|
+
org_id: string;
|
|
2666
|
+
};
|
|
2667
|
+
};
|
|
2668
|
+
responses: {
|
|
2669
|
+
200: components["responses"]["KeyInfos"];
|
|
2670
|
+
default: {
|
|
2671
|
+
content: {
|
|
2672
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2673
|
+
};
|
|
2674
|
+
};
|
|
2675
|
+
};
|
|
2676
|
+
};
|
|
2677
|
+
/**
|
|
2678
|
+
* List users in organization
|
|
2679
|
+
* @description List users in organization
|
|
2680
|
+
*/
|
|
2681
|
+
listUsersInOrg: {
|
|
2682
|
+
parameters: {
|
|
2683
|
+
path: {
|
|
2684
|
+
/**
|
|
2685
|
+
* @description Name or ID of the desired Org
|
|
2686
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2687
|
+
*/
|
|
2688
|
+
org_id: string;
|
|
2689
|
+
};
|
|
2690
|
+
};
|
|
2691
|
+
responses: {
|
|
2692
|
+
200: components["responses"]["GetUsersInOrgResponse"];
|
|
2693
|
+
default: {
|
|
2694
|
+
content: {
|
|
2695
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2696
|
+
};
|
|
2697
|
+
};
|
|
2698
|
+
};
|
|
2699
|
+
};
|
|
2700
|
+
/**
|
|
2701
|
+
* Adds a third-party user to the org
|
|
2702
|
+
* @description Adds a third-party user to the org
|
|
2703
|
+
*/
|
|
2704
|
+
createOidcUser: {
|
|
2705
|
+
parameters: {
|
|
2706
|
+
path: {
|
|
2707
|
+
/**
|
|
2708
|
+
* @description Name or ID of the desired Org
|
|
2709
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2710
|
+
*/
|
|
2711
|
+
org_id: string;
|
|
2712
|
+
};
|
|
2713
|
+
};
|
|
2714
|
+
requestBody: {
|
|
2715
|
+
content: {
|
|
2716
|
+
"application/json": components["schemas"]["AddThirdPartyUserRequest"];
|
|
2717
|
+
};
|
|
2718
|
+
};
|
|
2719
|
+
responses: {
|
|
2720
|
+
200: components["responses"]["AddThirdPartyUserResponse"];
|
|
2721
|
+
default: {
|
|
2722
|
+
content: {
|
|
2723
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2724
|
+
};
|
|
2725
|
+
};
|
|
2726
|
+
};
|
|
2727
|
+
};
|
|
2728
|
+
/**
|
|
2729
|
+
* Reset TOTP
|
|
2730
|
+
* @description Reset TOTP
|
|
2731
|
+
*
|
|
2732
|
+
* Creates and sets a new TOTP configuration for the current user,
|
|
2733
|
+
* overriding the existing one (if any).
|
|
2734
|
+
*/
|
|
2735
|
+
userResetTotp: {
|
|
2736
|
+
responses: {
|
|
2737
|
+
200: components["responses"]["TotpInfo"];
|
|
2738
|
+
default: {
|
|
2739
|
+
content: {
|
|
2740
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2741
|
+
};
|
|
2742
|
+
};
|
|
2743
|
+
};
|
|
2744
|
+
};
|
|
2745
|
+
/**
|
|
2746
|
+
* Verify TOTP
|
|
2747
|
+
* @description Verify TOTP
|
|
2748
|
+
*
|
|
2749
|
+
* Checks if a given code matches the current TOTP code for the current user.
|
|
2750
|
+
* Errors with 403 if the current user has not set up TOTP or the code fails verification.
|
|
2751
|
+
*/
|
|
2752
|
+
userVerifyTotp: {
|
|
2753
|
+
parameters: {
|
|
2754
|
+
path: {
|
|
2755
|
+
code: string;
|
|
2756
|
+
};
|
|
2757
|
+
};
|
|
2758
|
+
responses: {
|
|
2759
|
+
200: components["responses"]["EmptyImpl"];
|
|
2760
|
+
default: {
|
|
2761
|
+
content: {
|
|
2762
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2763
|
+
};
|
|
2764
|
+
};
|
|
2765
|
+
};
|
|
2766
|
+
};
|
|
2767
|
+
/**
|
|
2768
|
+
* Sign Raw Blob
|
|
2769
|
+
* @description Sign Raw Blob
|
|
2770
|
+
*
|
|
2771
|
+
* Signs an arbitrary blob with a given key.
|
|
2772
|
+
* This is a pre-release feature.
|
|
2773
|
+
*/
|
|
2774
|
+
blobSign: {
|
|
2775
|
+
parameters: {
|
|
2776
|
+
path: {
|
|
2777
|
+
/**
|
|
2778
|
+
* @description Name or ID of the desired Org
|
|
2779
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2780
|
+
*/
|
|
2781
|
+
org_id: string;
|
|
2782
|
+
/**
|
|
2783
|
+
* @description The ID of the key
|
|
2784
|
+
* @example Key#0x49011adbCC3bC9c0307BB07F37Dda1a1a9c69d2E
|
|
2785
|
+
*/
|
|
2786
|
+
key_id: string;
|
|
2787
|
+
};
|
|
2788
|
+
};
|
|
2789
|
+
requestBody: {
|
|
2790
|
+
content: {
|
|
2791
|
+
"application/json": components["schemas"]["BlobSignRequest"];
|
|
2792
|
+
};
|
|
2793
|
+
};
|
|
2794
|
+
responses: {
|
|
2795
|
+
200: components["responses"]["BlobSignResponse"];
|
|
2796
|
+
202: {
|
|
2797
|
+
content: {
|
|
2798
|
+
"application/json": components["schemas"]["AcceptedResponse"];
|
|
2799
|
+
};
|
|
2800
|
+
};
|
|
2801
|
+
default: {
|
|
2802
|
+
content: {
|
|
2803
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2804
|
+
};
|
|
2805
|
+
};
|
|
2806
|
+
};
|
|
2807
|
+
};
|
|
2808
|
+
/**
|
|
2809
|
+
* Record heartbeat
|
|
2810
|
+
* @description Record heartbeat
|
|
2811
|
+
*
|
|
2812
|
+
* This endpoint is called by the cube3signer proxy to record various metrics to CloudWatch.
|
|
2813
|
+
*/
|
|
2814
|
+
cube3signerHeartbeat: {
|
|
2815
|
+
parameters: {
|
|
2816
|
+
path: {
|
|
2817
|
+
/**
|
|
2818
|
+
* @description Name or ID of the organization owning the key
|
|
2819
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2820
|
+
*/
|
|
2821
|
+
org_id: string;
|
|
2822
|
+
};
|
|
2823
|
+
};
|
|
2824
|
+
requestBody: {
|
|
2825
|
+
content: {
|
|
2826
|
+
"application/json": components["schemas"]["HeartbeatRequest"];
|
|
2827
|
+
};
|
|
2828
|
+
};
|
|
2829
|
+
responses: {
|
|
2830
|
+
200: components["responses"]["EmptyImpl"];
|
|
2831
|
+
default: {
|
|
2832
|
+
content: {
|
|
2833
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2834
|
+
};
|
|
2835
|
+
};
|
|
2836
|
+
};
|
|
2837
|
+
};
|
|
2838
|
+
/**
|
|
2839
|
+
* Sign EVM Transaction
|
|
2840
|
+
* @description Sign EVM Transaction
|
|
2841
|
+
*
|
|
2842
|
+
* Signs an Ethereum (and other EVM) transaction with a given Secp256k1 key.
|
|
2843
|
+
*
|
|
2844
|
+
* The key must be associated with the role and organization on whose behalf this action is called.
|
|
2845
|
+
*/
|
|
2846
|
+
eth1Sign: {
|
|
2847
|
+
parameters: {
|
|
2848
|
+
path: {
|
|
2849
|
+
/**
|
|
2850
|
+
* @description Name or ID of the desired Org
|
|
2851
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2852
|
+
*/
|
|
2853
|
+
org_id: string;
|
|
2854
|
+
/**
|
|
2855
|
+
* @description Hex-encoded ethereum address of the secp key
|
|
2856
|
+
* @example 0x49011adbCC3bC9c0307BB07F37Dda1a1a9c69d2E
|
|
2857
|
+
*/
|
|
2858
|
+
pubkey: string;
|
|
2859
|
+
};
|
|
2860
|
+
};
|
|
2861
|
+
requestBody: {
|
|
2862
|
+
content: {
|
|
2863
|
+
"application/json": components["schemas"]["Eth1SignRequest"];
|
|
2864
|
+
};
|
|
2865
|
+
};
|
|
2866
|
+
responses: {
|
|
2867
|
+
200: components["responses"]["Eth1SignResponse"];
|
|
2868
|
+
default: {
|
|
2869
|
+
content: {
|
|
2870
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2871
|
+
};
|
|
2872
|
+
};
|
|
2873
|
+
};
|
|
2874
|
+
};
|
|
2875
|
+
/**
|
|
2876
|
+
* Sign Validator Request
|
|
2877
|
+
* @description Sign Validator Request
|
|
2878
|
+
*
|
|
2879
|
+
* Signs an eth2 validator request with a given BLS key.
|
|
2880
|
+
*
|
|
2881
|
+
* The key must be associated with the role and organization on whose behalf this action is called.
|
|
2882
|
+
*/
|
|
2883
|
+
eth2Sign: {
|
|
2884
|
+
parameters: {
|
|
2885
|
+
path: {
|
|
2886
|
+
/**
|
|
2887
|
+
* @description Name or ID of the desired Org
|
|
2888
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2889
|
+
*/
|
|
2890
|
+
org_id: string;
|
|
2891
|
+
/**
|
|
2892
|
+
* @description Hex-encoded validator (BLS) public key with 0x prefix
|
|
2893
|
+
* @example 0x9700fbb8c906942442c2a5b3ad7498f27aedda253786a6fbaa8fef47fb7af234e50cf2cce815a553087992ae565d48da
|
|
2894
|
+
*/
|
|
2895
|
+
pubkey: string;
|
|
2896
|
+
};
|
|
2897
|
+
};
|
|
2898
|
+
requestBody: {
|
|
2899
|
+
content: {
|
|
2900
|
+
"application/json": components["schemas"]["Eth2SignRequest"];
|
|
2901
|
+
};
|
|
2902
|
+
};
|
|
2903
|
+
responses: {
|
|
2904
|
+
200: components["responses"]["Eth2SignResponse"];
|
|
2905
|
+
default: {
|
|
2906
|
+
content: {
|
|
2907
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2908
|
+
};
|
|
2909
|
+
};
|
|
2910
|
+
};
|
|
2911
|
+
};
|
|
2912
|
+
/**
|
|
2913
|
+
* Sign Stake Deposit
|
|
2914
|
+
* @description Sign Stake Deposit
|
|
2915
|
+
*
|
|
2916
|
+
* Signs a deposit transaction with a `validator_key`. If `validator_key` is set to a pregenerated key, we use the
|
|
2917
|
+
* provided validator key. Otherwise, we generate a new BLS key.
|
|
2918
|
+
*
|
|
2919
|
+
* When using a pregenerated key, the key must be associated with the role and organization on whose
|
|
2920
|
+
* behalf this action is called.
|
|
2921
|
+
*/
|
|
2922
|
+
stake: {
|
|
2923
|
+
parameters: {
|
|
2924
|
+
path: {
|
|
2925
|
+
/**
|
|
2926
|
+
* @description Name or ID of the desired Org
|
|
2927
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2928
|
+
*/
|
|
2929
|
+
org_id: string;
|
|
2930
|
+
};
|
|
2931
|
+
};
|
|
2932
|
+
requestBody: {
|
|
2933
|
+
content: {
|
|
2934
|
+
"application/json": components["schemas"]["StakeRequest"];
|
|
2935
|
+
};
|
|
2936
|
+
};
|
|
2937
|
+
responses: {
|
|
2938
|
+
200: components["responses"]["StakeResponse"];
|
|
2939
|
+
default: {
|
|
2940
|
+
content: {
|
|
2941
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2942
|
+
};
|
|
2943
|
+
};
|
|
2944
|
+
};
|
|
2945
|
+
};
|
|
2946
|
+
/**
|
|
2947
|
+
* Sign Unstake Request
|
|
2948
|
+
* @description Sign Unstake Request
|
|
2949
|
+
*
|
|
2950
|
+
* Handle unstaking request, producing a signed voluntary exit message
|
|
2951
|
+
* that can be posted directly to the Beacon chain.
|
|
2952
|
+
*
|
|
2953
|
+
* The key must be associated with the role and organization on whose behalf this action is called.
|
|
2954
|
+
*/
|
|
2955
|
+
unstake: {
|
|
2956
|
+
parameters: {
|
|
2957
|
+
path: {
|
|
2958
|
+
/**
|
|
2959
|
+
* @description Name or ID of the desired Org
|
|
2960
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2961
|
+
*/
|
|
2962
|
+
org_id: string;
|
|
2963
|
+
/**
|
|
2964
|
+
* @description Hex-encoded validator (BLS) public key
|
|
2965
|
+
* @example 0xa99a76ed7796f7be22d5b7e85deeb7c5677e88e511e0b337618f8c4eb61349b4bf2d153f649f7b53359fe8b94a38e44c
|
|
2966
|
+
*/
|
|
2967
|
+
pubkey: string;
|
|
2968
|
+
};
|
|
2969
|
+
};
|
|
2970
|
+
requestBody: {
|
|
2971
|
+
content: {
|
|
2972
|
+
"application/json": components["schemas"]["UnstakeRequest"];
|
|
2973
|
+
};
|
|
2974
|
+
};
|
|
2975
|
+
responses: {
|
|
2976
|
+
200: components["responses"]["UnstakeResponse"];
|
|
2977
|
+
default: {
|
|
2978
|
+
content: {
|
|
2979
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
2980
|
+
};
|
|
2981
|
+
};
|
|
2982
|
+
};
|
|
2983
|
+
};
|
|
2984
|
+
/**
|
|
2985
|
+
* Sign Solana Message
|
|
2986
|
+
* @description Sign Solana Message
|
|
2987
|
+
*
|
|
2988
|
+
* Signs a Solana message with a given key.
|
|
2989
|
+
* This is a pre-release feature.
|
|
2990
|
+
*/
|
|
2991
|
+
solanaSign: {
|
|
2992
|
+
parameters: {
|
|
2993
|
+
path: {
|
|
2994
|
+
/**
|
|
2995
|
+
* @description Name or ID of the desired Org
|
|
2996
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
2997
|
+
*/
|
|
2998
|
+
org_id: string;
|
|
2999
|
+
/**
|
|
3000
|
+
* @description The base58-encoded public key
|
|
3001
|
+
* @example 86ZRPszBp5EoPj7wR3bHn7wnAZ5iYfpasRc7DKFPTUaZ
|
|
3002
|
+
*/
|
|
3003
|
+
pubkey: string;
|
|
3004
|
+
};
|
|
3005
|
+
};
|
|
3006
|
+
requestBody: {
|
|
3007
|
+
content: {
|
|
3008
|
+
"application/json": components["schemas"]["SolanaSignRequest"];
|
|
3009
|
+
};
|
|
3010
|
+
};
|
|
3011
|
+
responses: {
|
|
3012
|
+
200: components["responses"]["SolanaSignResponse"];
|
|
3013
|
+
default: {
|
|
3014
|
+
content: {
|
|
3015
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3016
|
+
};
|
|
3017
|
+
};
|
|
3018
|
+
};
|
|
3019
|
+
};
|
|
3020
|
+
/**
|
|
3021
|
+
* Refresh Signer Session
|
|
3022
|
+
* @description Refresh Signer Session
|
|
3023
|
+
*/
|
|
3024
|
+
signerSessionRefresh: {
|
|
3025
|
+
parameters: {
|
|
3026
|
+
path: {
|
|
3027
|
+
/**
|
|
3028
|
+
* @description ID of the organization owning the key
|
|
3029
|
+
* @example Org#124dfe3e-3bbd-487d-80c0-53c55e8ab87a
|
|
3030
|
+
*/
|
|
3031
|
+
org_id: string;
|
|
3032
|
+
};
|
|
3033
|
+
};
|
|
3034
|
+
requestBody: {
|
|
3035
|
+
content: {
|
|
3036
|
+
"application/json": components["schemas"]["AuthData"];
|
|
3037
|
+
};
|
|
3038
|
+
};
|
|
3039
|
+
responses: {
|
|
3040
|
+
200: components["responses"]["RefreshResponse"];
|
|
3041
|
+
default: {
|
|
3042
|
+
content: {
|
|
3043
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
3044
|
+
};
|
|
3045
|
+
};
|
|
3046
|
+
};
|
|
3047
|
+
};
|
|
3048
|
+
}
|
|
3049
|
+
export {};
|