@shardflux/sdk 0.13.0 → 0.14.0
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/CHANGELOG.md +172 -2
- package/README.md +131 -15
- package/dist/account.d.ts +41 -2
- package/dist/account.js +36 -2
- package/dist/cell.d.ts +21 -4
- package/dist/cell.js +67 -10
- package/dist/client.d.ts +86 -2
- package/dist/client.js +148 -0
- package/dist/codex-proof.d.ts +53 -0
- package/dist/codex-proof.js +200 -0
- package/dist/errors.d.ts +20 -1
- package/dist/errors.js +10 -0
- package/dist/generated/app-api.d.ts +1995 -255
- package/dist/generated/cell-api.d.ts +19 -9
- package/dist/http.d.ts +40 -3
- package/dist/http.js +74 -10
- package/dist/index.d.ts +9 -5
- package/dist/index.js +3 -1
- package/dist/ports.d.ts +117 -0
- package/dist/ports.js +62 -0
- package/dist/progress.d.ts +52 -8
- package/dist/progress.js +37 -1
- package/dist/tools.d.ts +8 -0
- package/dist/tools.js +20 -0
- package/dist/usage.d.ts +3 -1
- package/dist/usage.js +3 -1
- package/dist/workspace.d.ts +43 -7
- package/dist/workspace.js +41 -3
- package/package.json +1 -1
|
@@ -125,8 +125,8 @@ export interface paths {
|
|
|
125
125
|
cookie?: never;
|
|
126
126
|
};
|
|
127
127
|
/**
|
|
128
|
-
* Public keys (JWKS) for verifying ES256 workspace tool tokens
|
|
129
|
-
* @description Consumed by the cell gateway. Tokens carry `kid
|
|
128
|
+
* Public keys (JWKS) for verifying ES256 workspace tool tokens and port tokens
|
|
129
|
+
* @description Consumed by the cell gateway. Tokens carry `kid`. Tool tokens live at most 15 min; port tokens (`sfp_` + JWS, aud shardflux-ports, contracts §39.3) at most 1 day (bearer) or 7 days (link): keep a rotated-out key in TOOL_TOKEN_KMS_VERIFY_KEYS for 7 days.
|
|
130
130
|
*/
|
|
131
131
|
get: operations["getV1WellKnownToolTokenKeys"];
|
|
132
132
|
put?: never;
|
|
@@ -602,6 +602,46 @@ export interface paths {
|
|
|
602
602
|
patch?: never;
|
|
603
603
|
trace?: never;
|
|
604
604
|
};
|
|
605
|
+
"/v1/auth/signup": {
|
|
606
|
+
parameters: {
|
|
607
|
+
query?: never;
|
|
608
|
+
header?: never;
|
|
609
|
+
path?: never;
|
|
610
|
+
cookie?: never;
|
|
611
|
+
};
|
|
612
|
+
get?: never;
|
|
613
|
+
put?: never;
|
|
614
|
+
/**
|
|
615
|
+
* Sign up from an agent, without a browser or an email round-trip
|
|
616
|
+
* @description Returns a CLI session at once. With `codex_id_token` (a Codex CLI login, contracts §44.2) the email is verified and the request signs in to the account of that ChatGPT identity or email, creating it when there is none (201 when created, 200 when it signed in; `mfa_required` when the account has TOTP). With `email` only, a new unverified account is created (201) with `access: provisional` (resource routes on the default plan before verification) or `verification_required`; an address that already has an account is 409 conflict, details.reason `email_registered`. Verify later with POST /v1/auth/verify-email/code.
|
|
617
|
+
*/
|
|
618
|
+
post: operations["postV1AuthSignup"];
|
|
619
|
+
delete?: never;
|
|
620
|
+
options?: never;
|
|
621
|
+
head?: never;
|
|
622
|
+
patch?: never;
|
|
623
|
+
trace?: never;
|
|
624
|
+
};
|
|
625
|
+
"/v1/auth/verify-email/code": {
|
|
626
|
+
parameters: {
|
|
627
|
+
query?: never;
|
|
628
|
+
header?: never;
|
|
629
|
+
path?: never;
|
|
630
|
+
cookie?: never;
|
|
631
|
+
};
|
|
632
|
+
get?: never;
|
|
633
|
+
put?: never;
|
|
634
|
+
/**
|
|
635
|
+
* Verify the email with a 6-digit code
|
|
636
|
+
* @description Without `code`: emails a 6-digit code to the account address (202; valid 15 minutes, once; a new one ends the previous). With `code`: verifies the address (200). The code proves that whoever holds this session reads the inbox, so nothing is signed out; the signup trial is granted when it applies. 5 wrong attempts end a code: 400 token_invalid.
|
|
637
|
+
*/
|
|
638
|
+
post: operations["postV1AuthVerifyEmailCode"];
|
|
639
|
+
delete?: never;
|
|
640
|
+
options?: never;
|
|
641
|
+
head?: never;
|
|
642
|
+
patch?: never;
|
|
643
|
+
trace?: never;
|
|
644
|
+
};
|
|
605
645
|
"/v1/auth/login": {
|
|
606
646
|
parameters: {
|
|
607
647
|
query?: never;
|
|
@@ -724,7 +764,7 @@ export interface paths {
|
|
|
724
764
|
put?: never;
|
|
725
765
|
/**
|
|
726
766
|
* Re-authenticate for sensitive actions
|
|
727
|
-
* @description Password, plus a TOTP or recovery code when MFA is enabled. Rotates the session; valid for STEP_UP_WINDOW_SECONDS.
|
|
767
|
+
* @description Password, or a Codex identity proof (`codex_id_token`) of a Codex login linked to the account (contracts §44.2), plus a TOTP or recovery code when MFA is enabled. Rotates the session; valid for STEP_UP_WINDOW_SECONDS.
|
|
728
768
|
*/
|
|
729
769
|
post: operations["postV1AuthStepUp"];
|
|
730
770
|
delete?: never;
|
|
@@ -1553,6 +1593,26 @@ export interface paths {
|
|
|
1553
1593
|
patch?: never;
|
|
1554
1594
|
trace?: never;
|
|
1555
1595
|
};
|
|
1596
|
+
"/v1/workspaces/{workspace_id}/caps": {
|
|
1597
|
+
parameters: {
|
|
1598
|
+
query?: never;
|
|
1599
|
+
header?: never;
|
|
1600
|
+
path?: never;
|
|
1601
|
+
cookie?: never;
|
|
1602
|
+
};
|
|
1603
|
+
get?: never;
|
|
1604
|
+
put?: never;
|
|
1605
|
+
post?: never;
|
|
1606
|
+
delete?: never;
|
|
1607
|
+
options?: never;
|
|
1608
|
+
head?: never;
|
|
1609
|
+
/**
|
|
1610
|
+
* Resize a workspace: memory, its allocation mode, CPU and disk, running or suspended
|
|
1611
|
+
* @description Changes the caps of any workspace, fixed or elastic, running or suspended, without restarting or forking it. Each given field replaces the stored one (omitted fields keep theirs); every later start uses the new caps. Each value is bounded like caps at open: by the plan’s per-workspace maximum and the template’s limit (`limit_reason` plan or template). A running workspace changes live where it can (memory plugged or unplugged, CPU within its boot vCPUs, disk grown online); a suspended one gets the change right after its next resume, before the first call; what cannot apply now says `applies_at: next_start` and applies at the next start. The request is held until the resize finishes, up to `Prefer: wait=<seconds>` (default 20, at most 55): 200 ResizeResult (per resource: `applies_at` now | resume | next_start, requested, target, previous and applied values, `limit_reason`, `reason`) with the workspace caps; otherwise 202 with the `resize` operation, whose `result` carries the same per-resource fields when it succeeds. A resize that fails answers with its error. Errors (nothing changes): 409 conflict reason resize_not_available (not enabled for the organization), workspace_deleted, operation_in_progress (another lifecycle operation is active; details.active_operation_id, retryable); 422 validation_failed reason not_supported_for_mode (file-first workspace), shrink_not_supported (disk_gib below the current disk; details.current_disk_gib), requires_elastic (memory_mib_held without an elastic mode), exceeds_memory_mib (memory_mib_held above the maximum), allocation_mode_not_available (elastic memory is not available to the organization); 402 as for a start (no plan, new starts on hold). Owners, admins and members, and API keys with a tool permission. Supports Idempotency-Key.
|
|
1612
|
+
*/
|
|
1613
|
+
patch: operations["patchV1WorkspacesWorkspaceIdCaps"];
|
|
1614
|
+
trace?: never;
|
|
1615
|
+
};
|
|
1556
1616
|
"/v1/workspaces/{workspace_id}/suspend-when-idle": {
|
|
1557
1617
|
parameters: {
|
|
1558
1618
|
query?: never;
|
|
@@ -1946,6 +2006,26 @@ export interface paths {
|
|
|
1946
2006
|
patch?: never;
|
|
1947
2007
|
trace?: never;
|
|
1948
2008
|
};
|
|
2009
|
+
"/api/v1/workspaces/{workspace_id}/caps": {
|
|
2010
|
+
parameters: {
|
|
2011
|
+
query?: never;
|
|
2012
|
+
header?: never;
|
|
2013
|
+
path?: never;
|
|
2014
|
+
cookie?: never;
|
|
2015
|
+
};
|
|
2016
|
+
get?: never;
|
|
2017
|
+
put?: never;
|
|
2018
|
+
post?: never;
|
|
2019
|
+
delete?: never;
|
|
2020
|
+
options?: never;
|
|
2021
|
+
head?: never;
|
|
2022
|
+
/**
|
|
2023
|
+
* Resize a workspace: memory, its allocation mode, CPU and disk, running or suspended
|
|
2024
|
+
* @description Changes the caps of any workspace, fixed or elastic, running or suspended, without restarting or forking it. Each given field replaces the stored one (omitted fields keep theirs); every later start uses the new caps. Each value is bounded like caps at open: by the plan’s per-workspace maximum and the template’s limit (`limit_reason` plan or template). A running workspace changes live where it can (memory plugged or unplugged, CPU within its boot vCPUs, disk grown online); a suspended one gets the change right after its next resume, before the first call; what cannot apply now says `applies_at: next_start` and applies at the next start. The request is held until the resize finishes, up to `Prefer: wait=<seconds>` (default 20, at most 55): 200 ResizeResult (per resource: `applies_at` now | resume | next_start, requested, target, previous and applied values, `limit_reason`, `reason`) with the workspace caps; otherwise 202 with the `resize` operation, whose `result` carries the same per-resource fields when it succeeds. A resize that fails answers with its error. Errors (nothing changes): 409 conflict reason resize_not_available (not enabled for the organization), workspace_deleted, operation_in_progress (another lifecycle operation is active; details.active_operation_id, retryable); 422 validation_failed reason not_supported_for_mode (file-first workspace), shrink_not_supported (disk_gib below the current disk; details.current_disk_gib), requires_elastic (memory_mib_held without an elastic mode), exceeds_memory_mib (memory_mib_held above the maximum), allocation_mode_not_available (elastic memory is not available to the organization); 402 as for a start (no plan, new starts on hold). Owners, admins and members, and API keys with a tool permission. Supports Idempotency-Key.
|
|
2025
|
+
*/
|
|
2026
|
+
patch: operations["patchApiV1WorkspacesWorkspaceIdCaps"];
|
|
2027
|
+
trace?: never;
|
|
2028
|
+
};
|
|
1949
2029
|
"/api/v1/workspaces/{workspace_id}/suspend-when-idle": {
|
|
1950
2030
|
parameters: {
|
|
1951
2031
|
query?: never;
|
|
@@ -2161,6 +2241,242 @@ export interface paths {
|
|
|
2161
2241
|
patch?: never;
|
|
2162
2242
|
trace?: never;
|
|
2163
2243
|
};
|
|
2244
|
+
"/v1/workspaces/{workspace_id}/ports/{port}": {
|
|
2245
|
+
parameters: {
|
|
2246
|
+
query?: never;
|
|
2247
|
+
header?: never;
|
|
2248
|
+
path?: never;
|
|
2249
|
+
cookie?: never;
|
|
2250
|
+
};
|
|
2251
|
+
get?: never;
|
|
2252
|
+
/**
|
|
2253
|
+
* Expose a port of the workspace at its own HTTPS URL
|
|
2254
|
+
* @description Serves TCP `port` inside the workspace at `https://<port>-<handle>.<ingress domain>` (contracts §39.3). The port is private: every request needs a port token (POST …/tokens), a signed link (POST …/links) or the port’s callback URL (POST …/callback). A request to a suspended workspace resumes it and is held until it runs; a parked one wakes inside the request. 201 when exposed now, 200 when it already was (unchanged: its tokens, links and callback URL stay valid). The handle is the workspace’s for good (kept when ports are closed and exposed again, across suspend, resume and reset; a fork gets none). At most 10 exposed ports: 409 conflict details.reason port_limit (details.limit 10). Errors: 403 forbidden details.reason inbound_ports_not_available (inbound ports are not enabled for the organization), 409 conflict not_supported_for_mode (file-first workspace) or workspace_deleted, 422 validation_failed for a port outside 1-65535.
|
|
2255
|
+
*/
|
|
2256
|
+
put: operations["putV1WorkspacesWorkspaceIdPortsPort"];
|
|
2257
|
+
post?: never;
|
|
2258
|
+
/**
|
|
2259
|
+
* Close an exposed port
|
|
2260
|
+
* @description 204, also when the port was not exposed. Its tokens, links and callback URL stop working at once (the gateway caches for at most 5 s), and stay revoked if the port is exposed again. The workspace keeps its URL handle. Errors: 403 forbidden details.reason inbound_ports_not_available (inbound ports are not enabled for the organization), 409 conflict not_supported_for_mode (file-first workspace) or workspace_deleted, 422 validation_failed for a port outside 1-65535.
|
|
2261
|
+
*/
|
|
2262
|
+
delete: operations["deleteV1WorkspacesWorkspaceIdPortsPort"];
|
|
2263
|
+
options?: never;
|
|
2264
|
+
head?: never;
|
|
2265
|
+
patch?: never;
|
|
2266
|
+
trace?: never;
|
|
2267
|
+
};
|
|
2268
|
+
"/v1/workspaces/{workspace_id}/ports": {
|
|
2269
|
+
parameters: {
|
|
2270
|
+
query?: never;
|
|
2271
|
+
header?: never;
|
|
2272
|
+
path?: never;
|
|
2273
|
+
cookie?: never;
|
|
2274
|
+
};
|
|
2275
|
+
/**
|
|
2276
|
+
* List the workspace’s exposed ports
|
|
2277
|
+
* @description Ordered by port. `callback` is set when the port has a callback URL (its secret is never shown again). Errors: 403 forbidden details.reason inbound_ports_not_available (inbound ports are not enabled for the organization), 409 conflict not_supported_for_mode (file-first workspace) or workspace_deleted, 422 validation_failed for a port outside 1-65535.
|
|
2278
|
+
*/
|
|
2279
|
+
get: operations["getV1WorkspacesWorkspaceIdPorts"];
|
|
2280
|
+
put?: never;
|
|
2281
|
+
post?: never;
|
|
2282
|
+
delete?: never;
|
|
2283
|
+
options?: never;
|
|
2284
|
+
head?: never;
|
|
2285
|
+
patch?: never;
|
|
2286
|
+
trace?: never;
|
|
2287
|
+
};
|
|
2288
|
+
"/v1/workspaces/{workspace_id}/ports/{port}/tokens": {
|
|
2289
|
+
parameters: {
|
|
2290
|
+
query?: never;
|
|
2291
|
+
header?: never;
|
|
2292
|
+
path?: never;
|
|
2293
|
+
cookie?: never;
|
|
2294
|
+
};
|
|
2295
|
+
get?: never;
|
|
2296
|
+
put?: never;
|
|
2297
|
+
/**
|
|
2298
|
+
* Mint a port token for an exposed port
|
|
2299
|
+
* @description A bearer token for requests to the port’s URL: `Authorization: Bearer <token>` (or `X-Shardflux-Token: <token>` when the app uses Authorization itself). `sfp_` + an ES256 JWS (claims iss, aud `shardflux-ports`, sub, pty, org, prj, ws, port, pxid, use `bearer`, iat, exp, jti; keys at GET /v1/.well-known/tool-token-keys). Revoked by closing the port, deleting the workspace, revoking the API key that minted it, or the minting member’s removal or role change. 404 not_found details.reason port_not_exposed. Errors: 403 forbidden details.reason inbound_ports_not_available (inbound ports are not enabled for the organization), 409 conflict not_supported_for_mode (file-first workspace) or workspace_deleted, 422 validation_failed for a port outside 1-65535.
|
|
2300
|
+
*/
|
|
2301
|
+
post: operations["postV1WorkspacesWorkspaceIdPortsPortTokens"];
|
|
2302
|
+
delete?: never;
|
|
2303
|
+
options?: never;
|
|
2304
|
+
head?: never;
|
|
2305
|
+
patch?: never;
|
|
2306
|
+
trace?: never;
|
|
2307
|
+
};
|
|
2308
|
+
"/v1/workspaces/{workspace_id}/ports/{port}/links": {
|
|
2309
|
+
parameters: {
|
|
2310
|
+
query?: never;
|
|
2311
|
+
header?: never;
|
|
2312
|
+
path?: never;
|
|
2313
|
+
cookie?: never;
|
|
2314
|
+
};
|
|
2315
|
+
get?: never;
|
|
2316
|
+
put?: never;
|
|
2317
|
+
/**
|
|
2318
|
+
* Create a signed link that opens an exposed port in a browser
|
|
2319
|
+
* @description Opening the link sets a session cookie for the port’s host (HttpOnly, Secure, until `expires_at`) and redirects to `path`, so a person can use the app in a browser without a header. Share it like a password: anyone with the link can open the port until it expires. Revoked like a port token (closing the port, deleting the workspace, revoking the minting API key). 422 validation_failed details.field path for a path that does not start with one `/` or has characters other than printable ASCII. 404 not_found details.reason port_not_exposed. Errors: 403 forbidden details.reason inbound_ports_not_available (inbound ports are not enabled for the organization), 409 conflict not_supported_for_mode (file-first workspace) or workspace_deleted, 422 validation_failed for a port outside 1-65535.
|
|
2320
|
+
*/
|
|
2321
|
+
post: operations["postV1WorkspacesWorkspaceIdPortsPortLinks"];
|
|
2322
|
+
delete?: never;
|
|
2323
|
+
options?: never;
|
|
2324
|
+
head?: never;
|
|
2325
|
+
patch?: never;
|
|
2326
|
+
trace?: never;
|
|
2327
|
+
};
|
|
2328
|
+
"/v1/workspaces/{workspace_id}/ports/{port}/callback": {
|
|
2329
|
+
parameters: {
|
|
2330
|
+
query?: never;
|
|
2331
|
+
header?: never;
|
|
2332
|
+
path?: never;
|
|
2333
|
+
cookie?: never;
|
|
2334
|
+
};
|
|
2335
|
+
get?: never;
|
|
2336
|
+
put?: never;
|
|
2337
|
+
/**
|
|
2338
|
+
* Create or replace the port’s callback URL (webhooks, OAuth redirects)
|
|
2339
|
+
* @description A URL with a secret in its path that reaches the port without a token header: register `<url><your path>` with GitHub, Slack, Stripe or an OAuth provider; a request to `/__shardflux/callback/<secret>/<rest>` reaches `/<rest>` (query kept) and wakes the workspace like any request. Creating it again replaces it (the previous URL stops working). The secret is shown only in this response (stored as a SHA-256 hash). Revoke it with DELETE, by closing the port, or by deleting the workspace; it also stops waking the workspace when its creator can no longer manage the workspace. 404 not_found details.reason port_not_exposed. Errors: 403 forbidden details.reason inbound_ports_not_available (inbound ports are not enabled for the organization), 409 conflict not_supported_for_mode (file-first workspace) or workspace_deleted, 422 validation_failed for a port outside 1-65535.
|
|
2340
|
+
*/
|
|
2341
|
+
post: operations["postV1WorkspacesWorkspaceIdPortsPortCallback"];
|
|
2342
|
+
/**
|
|
2343
|
+
* Revoke the port’s callback URL
|
|
2344
|
+
* @description 204, also when the port has no callback URL. The URL stops working at once (the gateway caches for at most 5 s). 404 not_found details.reason port_not_exposed. Errors: 403 forbidden details.reason inbound_ports_not_available (inbound ports are not enabled for the organization), 409 conflict not_supported_for_mode (file-first workspace) or workspace_deleted, 422 validation_failed for a port outside 1-65535.
|
|
2345
|
+
*/
|
|
2346
|
+
delete: operations["deleteV1WorkspacesWorkspaceIdPortsPortCallback"];
|
|
2347
|
+
options?: never;
|
|
2348
|
+
head?: never;
|
|
2349
|
+
patch?: never;
|
|
2350
|
+
trace?: never;
|
|
2351
|
+
};
|
|
2352
|
+
"/api/v1/workspaces/{workspace_id}/ports/{port}": {
|
|
2353
|
+
parameters: {
|
|
2354
|
+
query?: never;
|
|
2355
|
+
header?: never;
|
|
2356
|
+
path?: never;
|
|
2357
|
+
cookie?: never;
|
|
2358
|
+
};
|
|
2359
|
+
get?: never;
|
|
2360
|
+
/**
|
|
2361
|
+
* Expose a port of the workspace at its own HTTPS URL
|
|
2362
|
+
* @description Serves TCP `port` inside the workspace at `https://<port>-<handle>.<ingress domain>` (contracts §39.3). The port is private: every request needs a port token (POST …/tokens), a signed link (POST …/links) or the port’s callback URL (POST …/callback). A request to a suspended workspace resumes it and is held until it runs; a parked one wakes inside the request. 201 when exposed now, 200 when it already was (unchanged: its tokens, links and callback URL stay valid). The handle is the workspace’s for good (kept when ports are closed and exposed again, across suspend, resume and reset; a fork gets none). At most 10 exposed ports: 409 conflict details.reason port_limit (details.limit 10). Errors: 403 forbidden details.reason inbound_ports_not_available (inbound ports are not enabled for the organization), 409 conflict not_supported_for_mode (file-first workspace) or workspace_deleted, 422 validation_failed for a port outside 1-65535.
|
|
2363
|
+
*/
|
|
2364
|
+
put: operations["putApiV1WorkspacesWorkspaceIdPortsPort"];
|
|
2365
|
+
post?: never;
|
|
2366
|
+
/**
|
|
2367
|
+
* Close an exposed port
|
|
2368
|
+
* @description 204, also when the port was not exposed. Its tokens, links and callback URL stop working at once (the gateway caches for at most 5 s), and stay revoked if the port is exposed again. The workspace keeps its URL handle. Errors: 403 forbidden details.reason inbound_ports_not_available (inbound ports are not enabled for the organization), 409 conflict not_supported_for_mode (file-first workspace) or workspace_deleted, 422 validation_failed for a port outside 1-65535.
|
|
2369
|
+
*/
|
|
2370
|
+
delete: operations["deleteApiV1WorkspacesWorkspaceIdPortsPort"];
|
|
2371
|
+
options?: never;
|
|
2372
|
+
head?: never;
|
|
2373
|
+
patch?: never;
|
|
2374
|
+
trace?: never;
|
|
2375
|
+
};
|
|
2376
|
+
"/api/v1/workspaces/{workspace_id}/ports": {
|
|
2377
|
+
parameters: {
|
|
2378
|
+
query?: never;
|
|
2379
|
+
header?: never;
|
|
2380
|
+
path?: never;
|
|
2381
|
+
cookie?: never;
|
|
2382
|
+
};
|
|
2383
|
+
/**
|
|
2384
|
+
* List the workspace’s exposed ports
|
|
2385
|
+
* @description Ordered by port. `callback` is set when the port has a callback URL (its secret is never shown again). Errors: 403 forbidden details.reason inbound_ports_not_available (inbound ports are not enabled for the organization), 409 conflict not_supported_for_mode (file-first workspace) or workspace_deleted, 422 validation_failed for a port outside 1-65535.
|
|
2386
|
+
*/
|
|
2387
|
+
get: operations["getApiV1WorkspacesWorkspaceIdPorts"];
|
|
2388
|
+
put?: never;
|
|
2389
|
+
post?: never;
|
|
2390
|
+
delete?: never;
|
|
2391
|
+
options?: never;
|
|
2392
|
+
head?: never;
|
|
2393
|
+
patch?: never;
|
|
2394
|
+
trace?: never;
|
|
2395
|
+
};
|
|
2396
|
+
"/api/v1/workspaces/{workspace_id}/ports/{port}/tokens": {
|
|
2397
|
+
parameters: {
|
|
2398
|
+
query?: never;
|
|
2399
|
+
header?: never;
|
|
2400
|
+
path?: never;
|
|
2401
|
+
cookie?: never;
|
|
2402
|
+
};
|
|
2403
|
+
get?: never;
|
|
2404
|
+
put?: never;
|
|
2405
|
+
/**
|
|
2406
|
+
* Mint a port token for an exposed port
|
|
2407
|
+
* @description A bearer token for requests to the port’s URL: `Authorization: Bearer <token>` (or `X-Shardflux-Token: <token>` when the app uses Authorization itself). `sfp_` + an ES256 JWS (claims iss, aud `shardflux-ports`, sub, pty, org, prj, ws, port, pxid, use `bearer`, iat, exp, jti; keys at GET /v1/.well-known/tool-token-keys). Revoked by closing the port, deleting the workspace, revoking the API key that minted it, or the minting member’s removal or role change. 404 not_found details.reason port_not_exposed. Errors: 403 forbidden details.reason inbound_ports_not_available (inbound ports are not enabled for the organization), 409 conflict not_supported_for_mode (file-first workspace) or workspace_deleted, 422 validation_failed for a port outside 1-65535.
|
|
2408
|
+
*/
|
|
2409
|
+
post: operations["postApiV1WorkspacesWorkspaceIdPortsPortTokens"];
|
|
2410
|
+
delete?: never;
|
|
2411
|
+
options?: never;
|
|
2412
|
+
head?: never;
|
|
2413
|
+
patch?: never;
|
|
2414
|
+
trace?: never;
|
|
2415
|
+
};
|
|
2416
|
+
"/api/v1/workspaces/{workspace_id}/ports/{port}/links": {
|
|
2417
|
+
parameters: {
|
|
2418
|
+
query?: never;
|
|
2419
|
+
header?: never;
|
|
2420
|
+
path?: never;
|
|
2421
|
+
cookie?: never;
|
|
2422
|
+
};
|
|
2423
|
+
get?: never;
|
|
2424
|
+
put?: never;
|
|
2425
|
+
/**
|
|
2426
|
+
* Create a signed link that opens an exposed port in a browser
|
|
2427
|
+
* @description Opening the link sets a session cookie for the port’s host (HttpOnly, Secure, until `expires_at`) and redirects to `path`, so a person can use the app in a browser without a header. Share it like a password: anyone with the link can open the port until it expires. Revoked like a port token (closing the port, deleting the workspace, revoking the minting API key). 422 validation_failed details.field path for a path that does not start with one `/` or has characters other than printable ASCII. 404 not_found details.reason port_not_exposed. Errors: 403 forbidden details.reason inbound_ports_not_available (inbound ports are not enabled for the organization), 409 conflict not_supported_for_mode (file-first workspace) or workspace_deleted, 422 validation_failed for a port outside 1-65535.
|
|
2428
|
+
*/
|
|
2429
|
+
post: operations["postApiV1WorkspacesWorkspaceIdPortsPortLinks"];
|
|
2430
|
+
delete?: never;
|
|
2431
|
+
options?: never;
|
|
2432
|
+
head?: never;
|
|
2433
|
+
patch?: never;
|
|
2434
|
+
trace?: never;
|
|
2435
|
+
};
|
|
2436
|
+
"/api/v1/workspaces/{workspace_id}/ports/{port}/callback": {
|
|
2437
|
+
parameters: {
|
|
2438
|
+
query?: never;
|
|
2439
|
+
header?: never;
|
|
2440
|
+
path?: never;
|
|
2441
|
+
cookie?: never;
|
|
2442
|
+
};
|
|
2443
|
+
get?: never;
|
|
2444
|
+
put?: never;
|
|
2445
|
+
/**
|
|
2446
|
+
* Create or replace the port’s callback URL (webhooks, OAuth redirects)
|
|
2447
|
+
* @description A URL with a secret in its path that reaches the port without a token header: register `<url><your path>` with GitHub, Slack, Stripe or an OAuth provider; a request to `/__shardflux/callback/<secret>/<rest>` reaches `/<rest>` (query kept) and wakes the workspace like any request. Creating it again replaces it (the previous URL stops working). The secret is shown only in this response (stored as a SHA-256 hash). Revoke it with DELETE, by closing the port, or by deleting the workspace; it also stops waking the workspace when its creator can no longer manage the workspace. 404 not_found details.reason port_not_exposed. Errors: 403 forbidden details.reason inbound_ports_not_available (inbound ports are not enabled for the organization), 409 conflict not_supported_for_mode (file-first workspace) or workspace_deleted, 422 validation_failed for a port outside 1-65535.
|
|
2448
|
+
*/
|
|
2449
|
+
post: operations["postApiV1WorkspacesWorkspaceIdPortsPortCallback"];
|
|
2450
|
+
/**
|
|
2451
|
+
* Revoke the port’s callback URL
|
|
2452
|
+
* @description 204, also when the port has no callback URL. The URL stops working at once (the gateway caches for at most 5 s). 404 not_found details.reason port_not_exposed. Errors: 403 forbidden details.reason inbound_ports_not_available (inbound ports are not enabled for the organization), 409 conflict not_supported_for_mode (file-first workspace) or workspace_deleted, 422 validation_failed for a port outside 1-65535.
|
|
2453
|
+
*/
|
|
2454
|
+
delete: operations["deleteApiV1WorkspacesWorkspaceIdPortsPortCallback"];
|
|
2455
|
+
options?: never;
|
|
2456
|
+
head?: never;
|
|
2457
|
+
patch?: never;
|
|
2458
|
+
trace?: never;
|
|
2459
|
+
};
|
|
2460
|
+
"/v1/internal/port-wakes": {
|
|
2461
|
+
parameters: {
|
|
2462
|
+
query?: never;
|
|
2463
|
+
header?: never;
|
|
2464
|
+
path?: never;
|
|
2465
|
+
cookie?: never;
|
|
2466
|
+
};
|
|
2467
|
+
get?: never;
|
|
2468
|
+
put?: never;
|
|
2469
|
+
/**
|
|
2470
|
+
* Wake a workspace for an inbound port request (called by the cell gateway)
|
|
2471
|
+
* @description Contracts §39.3. The credential is the ingress request’s port token, forwarded unchanged as `Authorization: Bearer sfp_…` (`use` bearer or link), or the callback URL’s secret in `callback_secret`. The API verifies it as the gateway does: ES256 with its own keys, iss, aud shardflux-ports, iat/exp, workspace and port of the token (403 port_token_scope), the port exposed (404 port_not_exposed) under the token’s exposure (`pxid`), the revocation watermarks of the minting principal and the workspace and the minting API key (401 port_token_revoked), or the callback secret’s SHA-256 and its creator’s lifecycle permission (401 callback_invalid); then the organization’s `policy.inbound_ports` (403 inbound_ports_not_enabled). A deleted workspace is 404 unknown_host. It then resumes the workspace as that principal exactly like POST /v1/workspaces/{id}/resume (joins an active resume/open, recovers a failed workspace with an open, refuses with its admission errors, which the gateway passes through), audited workspace.resume with details.via inbound_port. With `Prefer: wait=<seconds>` (at most 20) it holds like a held resume: 200 {workspace, operation} once the operation succeeded, 202 with the operation otherwise (also without the preference). A running workspace answers 200 at once with operation null. 401 port_auth_required (no credential), port_token_invalid; 429 rate_limited per workspace. `Cache-Control: no-store`.
|
|
2472
|
+
*/
|
|
2473
|
+
post: operations["postV1InternalPortWakes"];
|
|
2474
|
+
delete?: never;
|
|
2475
|
+
options?: never;
|
|
2476
|
+
head?: never;
|
|
2477
|
+
patch?: never;
|
|
2478
|
+
trace?: never;
|
|
2479
|
+
};
|
|
2164
2480
|
"/v1/projects/{project_id}/volumes": {
|
|
2165
2481
|
parameters: {
|
|
2166
2482
|
query?: never;
|
|
@@ -5524,6 +5840,30 @@ export interface paths {
|
|
|
5524
5840
|
patch?: never;
|
|
5525
5841
|
trace?: never;
|
|
5526
5842
|
};
|
|
5843
|
+
"/api/v1/oauth/authorization": {
|
|
5844
|
+
parameters: {
|
|
5845
|
+
query?: never;
|
|
5846
|
+
header?: never;
|
|
5847
|
+
path?: never;
|
|
5848
|
+
cookie?: never;
|
|
5849
|
+
};
|
|
5850
|
+
/**
|
|
5851
|
+
* Describe a hosted MCP connection request (consent page)
|
|
5852
|
+
* @description Validates an authorization request for the hosted MCP endpoint and returns the client, where the browser goes afterwards and the projects the user may connect. 422 `validation_failed` (details.oauth_error) when the client or its redirect_uri cannot be trusted; otherwise a request with another problem still describes the client, and the POST answers it with the OAuth error.
|
|
5853
|
+
*/
|
|
5854
|
+
get: operations["getApiV1OauthAuthorization"];
|
|
5855
|
+
put?: never;
|
|
5856
|
+
/**
|
|
5857
|
+
* Approve or decline a hosted MCP connection request
|
|
5858
|
+
* @description approve (with project_id, a project where the user is owner or admin) creates the connection: a project API key named "<client> (MCP connector)" with every tool permission, held by Shardflux for the client, and a single-use authorization code (5 minutes). deny sends access_denied. Either way the answer is redirect_to, where the browser goes next.
|
|
5859
|
+
*/
|
|
5860
|
+
post: operations["postApiV1OauthAuthorization"];
|
|
5861
|
+
delete?: never;
|
|
5862
|
+
options?: never;
|
|
5863
|
+
head?: never;
|
|
5864
|
+
patch?: never;
|
|
5865
|
+
trace?: never;
|
|
5866
|
+
};
|
|
5527
5867
|
}
|
|
5528
5868
|
export type webhooks = Record<string, never>;
|
|
5529
5869
|
export interface components {
|
|
@@ -5630,6 +5970,21 @@ export interface components {
|
|
|
5630
5970
|
} & {
|
|
5631
5971
|
[key: string]: unknown;
|
|
5632
5972
|
};
|
|
5973
|
+
host_lost?: {
|
|
5974
|
+
/** @description RFC 3339: when the host failure was detected; the workspace was suspended then. */
|
|
5975
|
+
detected_at: string;
|
|
5976
|
+
/**
|
|
5977
|
+
* @description resume and open: disk when the workspace booted from its disk (files kept, processes and memory not); checkpoint when it was restored from its newest checkpoint (see state_as_of). Absent on a suspend.
|
|
5978
|
+
* @enum {string}
|
|
5979
|
+
*/
|
|
5980
|
+
restored_from?: "disk" | "checkpoint";
|
|
5981
|
+
/** @description restored_from checkpoint: the checkpoint this resume restored. */
|
|
5982
|
+
restored_checkpoint_id?: string;
|
|
5983
|
+
/** @description restored_from checkpoint, RFC 3339: when that checkpoint committed; the workspace state is as of then. */
|
|
5984
|
+
state_as_of?: string;
|
|
5985
|
+
} & {
|
|
5986
|
+
[key: string]: unknown;
|
|
5987
|
+
};
|
|
5633
5988
|
} & {
|
|
5634
5989
|
[key: string]: unknown;
|
|
5635
5990
|
};
|
|
@@ -6735,6 +7090,102 @@ export interface components {
|
|
|
6735
7090
|
*/
|
|
6736
7091
|
not_before: string;
|
|
6737
7092
|
};
|
|
7093
|
+
/** @description At least one field. Each given value replaces the stored one; omitted fields keep theirs. */
|
|
7094
|
+
ResizeWorkspaceBody: {
|
|
7095
|
+
/** @description Memory (MiB): the size of a fixed workspace, the maximum of an elastic one. Bounded by the plan and the template (`limit_reason`). */
|
|
7096
|
+
memory_mib?: number;
|
|
7097
|
+
/** @description Elastic only: the memory held while idle (MiB), at most the maximum. */
|
|
7098
|
+
memory_mib_held?: number;
|
|
7099
|
+
/**
|
|
7100
|
+
* @description fixed: memory_mib is plugged and held; elastic: the workspace holds memory_mib_held and grows to memory_mib when a command needs it.
|
|
7101
|
+
* @enum {string}
|
|
7102
|
+
*/
|
|
7103
|
+
allocation_mode?: "fixed" | "elastic";
|
|
7104
|
+
/** @description CPU (millicores). Bounded by the plan and the template. */
|
|
7105
|
+
cpu_millis?: number;
|
|
7106
|
+
/** @description Disk (GiB). Grow only. Bounded by the plan and the template. */
|
|
7107
|
+
disk_gib?: number;
|
|
7108
|
+
};
|
|
7109
|
+
/** @description Per resource the request named (allocation_mode and memory_mib_held report under memory): what applied now and what applies later. caps: the workspace caps every later start uses. */
|
|
7110
|
+
ResizeResult: {
|
|
7111
|
+
/**
|
|
7112
|
+
* Format: uuid
|
|
7113
|
+
* @description UUIDv7, lowercase canonical form.
|
|
7114
|
+
*/
|
|
7115
|
+
workspace_id: string;
|
|
7116
|
+
/**
|
|
7117
|
+
* Format: uuid
|
|
7118
|
+
* @description UUIDv7, lowercase canonical form.
|
|
7119
|
+
*/
|
|
7120
|
+
operation_id: string;
|
|
7121
|
+
/** @description The workspace state the resize found (running, suspended, ...). */
|
|
7122
|
+
state: string;
|
|
7123
|
+
memory?: {
|
|
7124
|
+
/**
|
|
7125
|
+
* @description now: live; resume: right after the next resume, before its first call; next_start: at the next start that boots the workspace.
|
|
7126
|
+
* @enum {string}
|
|
7127
|
+
*/
|
|
7128
|
+
applies_at: "now" | "resume" | "next_start";
|
|
7129
|
+
/**
|
|
7130
|
+
* @description The memory layout after the resize.
|
|
7131
|
+
* @enum {string}
|
|
7132
|
+
*/
|
|
7133
|
+
allocation_mode: "fixed" | "elastic";
|
|
7134
|
+
requested_mib: number | null;
|
|
7135
|
+
target_mib: number | null;
|
|
7136
|
+
previous_mib: number | null;
|
|
7137
|
+
applied_mib: number | null;
|
|
7138
|
+
held_mib: number | null;
|
|
7139
|
+
converged: boolean | null;
|
|
7140
|
+
/** @description Why the target or the applied value is below what was requested: plan or template (bounded like caps at open), host_capacity (the rest did not fit on the host at once), shrink_stalled (the guest kept the memory its processes use). */
|
|
7141
|
+
limit_reason: ("plan" | "template" | "host_capacity" | "shrink_stalled") | null;
|
|
7142
|
+
/** @description Why it does not apply now (null when it does). */
|
|
7143
|
+
reason: ("region" | "below_base" | "legacy_layout" | "boot_vcpus" | "suspended" | "stopped") | null;
|
|
7144
|
+
};
|
|
7145
|
+
cpu?: {
|
|
7146
|
+
/**
|
|
7147
|
+
* @description now: live; resume: right after the next resume, before its first call; next_start: at the next start that boots the workspace.
|
|
7148
|
+
* @enum {string}
|
|
7149
|
+
*/
|
|
7150
|
+
applies_at: "now" | "resume" | "next_start";
|
|
7151
|
+
requested_millis: number | null;
|
|
7152
|
+
target_millis: number | null;
|
|
7153
|
+
previous_millis: number | null;
|
|
7154
|
+
applied_millis: number | null;
|
|
7155
|
+
/** @description Why the target or the applied value is below what was requested: plan or template (bounded like caps at open), host_capacity (the rest did not fit on the host at once), shrink_stalled (the guest kept the memory its processes use). */
|
|
7156
|
+
limit_reason: ("plan" | "template" | "host_capacity" | "shrink_stalled") | null;
|
|
7157
|
+
/** @description Why it does not apply now (null when it does). */
|
|
7158
|
+
reason: ("region" | "below_base" | "legacy_layout" | "boot_vcpus" | "suspended" | "stopped") | null;
|
|
7159
|
+
};
|
|
7160
|
+
disk?: {
|
|
7161
|
+
/**
|
|
7162
|
+
* @description now: live; resume: right after the next resume, before its first call; next_start: at the next start that boots the workspace.
|
|
7163
|
+
* @enum {string}
|
|
7164
|
+
*/
|
|
7165
|
+
applies_at: "now" | "resume" | "next_start";
|
|
7166
|
+
requested_gib: number | null;
|
|
7167
|
+
target_gib: number | null;
|
|
7168
|
+
previous_gib: number | null;
|
|
7169
|
+
applied_gib: number | null;
|
|
7170
|
+
/** @description Why the target or the applied value is below what was requested: plan or template (bounded like caps at open), host_capacity (the rest did not fit on the host at once), shrink_stalled (the guest kept the memory its processes use). */
|
|
7171
|
+
limit_reason: ("plan" | "template" | "host_capacity" | "shrink_stalled") | null;
|
|
7172
|
+
/** @description Why it does not apply now (null when it does). */
|
|
7173
|
+
reason: ("region" | "below_base" | "legacy_layout" | "boot_vcpus" | "suspended" | "stopped") | null;
|
|
7174
|
+
};
|
|
7175
|
+
/** @description User caps for this workspace (null = no user restriction) and its memory allocation mode. */
|
|
7176
|
+
caps: {
|
|
7177
|
+
cpu_millis: number | null;
|
|
7178
|
+
memory_mib: number | null;
|
|
7179
|
+
disk_gib: number | null;
|
|
7180
|
+
/**
|
|
7181
|
+
* @description Memory allocation (contracts §32): fixed (default) boots memory_mib and holds it; elastic holds memory_mib_held while idle and is grown up to memory_mib (the promise) when a command needs it. The mode the next VM start uses: an elastic request whose promise does not exceed the held floor by at least 512 MiB is fixed at the promise.
|
|
7182
|
+
* @enum {string}
|
|
7183
|
+
*/
|
|
7184
|
+
allocation_mode: "fixed" | "elastic";
|
|
7185
|
+
/** @description Elastic only: the memory held while idle (MiB). */
|
|
7186
|
+
memory_mib_held?: number;
|
|
7187
|
+
};
|
|
7188
|
+
};
|
|
6738
7189
|
Workspace: {
|
|
6739
7190
|
/**
|
|
6740
7191
|
* Format: uuid
|
|
@@ -6938,6 +7389,25 @@ export interface components {
|
|
|
6938
7389
|
tools: ("exec" | "files" | "pty" | "process" | "git" | "browser")[];
|
|
6939
7390
|
cell_endpoint: string;
|
|
6940
7391
|
};
|
|
7392
|
+
/** @description An exposed port of a workspace (contracts §39.3). Private: every request needs a credential. */
|
|
7393
|
+
Port: {
|
|
7394
|
+
/** @description TCP port inside the workspace (1-65535). */
|
|
7395
|
+
port: number;
|
|
7396
|
+
/** @description https://<port>-<handle>.<ingress domain>: requests need a port token (Authorization: Bearer sfp_…), a signed link’s cookie, or the callback URL. */
|
|
7397
|
+
url: string;
|
|
7398
|
+
/**
|
|
7399
|
+
* Format: date-time
|
|
7400
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
7401
|
+
*/
|
|
7402
|
+
created_at: string;
|
|
7403
|
+
callback: {
|
|
7404
|
+
/**
|
|
7405
|
+
* Format: date-time
|
|
7406
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
7407
|
+
*/
|
|
7408
|
+
created_at: string;
|
|
7409
|
+
} | null;
|
|
7410
|
+
};
|
|
6941
7411
|
Volume: {
|
|
6942
7412
|
/**
|
|
6943
7413
|
* Format: uuid
|
|
@@ -7116,6 +7586,39 @@ export interface components {
|
|
|
7116
7586
|
/** @description When the charges reach the effective cap at the average burn of this period so far. Null when not accruing or when it would fall after resets_at. */
|
|
7117
7587
|
projected_reached_at: string | null;
|
|
7118
7588
|
};
|
|
7589
|
+
OAuthConsentView: {
|
|
7590
|
+
client: {
|
|
7591
|
+
client_id: string;
|
|
7592
|
+
/** @description client_name from its registration or metadata document. Self-declared: show it with redirect_host. */
|
|
7593
|
+
name: string;
|
|
7594
|
+
uri: string | null;
|
|
7595
|
+
logo_uri: string | null;
|
|
7596
|
+
/** @description `metadata_document`: client_id is an https URL its owner serves (the host is verified by that); `registered`: dynamic client registration. */
|
|
7597
|
+
kind: "registered" | "metadata_document";
|
|
7598
|
+
client_id_host: string | null;
|
|
7599
|
+
};
|
|
7600
|
+
/** @description Where the browser goes after the decision (host, or scheme://host for a native app). */
|
|
7601
|
+
redirect_host: string;
|
|
7602
|
+
scope: string;
|
|
7603
|
+
/** @description The MCP endpoint the client will be able to use. */
|
|
7604
|
+
resource: string;
|
|
7605
|
+
/** @description Projects the user may connect (owner or admin of the organization), by organization then project name; at most 200. */
|
|
7606
|
+
projects: {
|
|
7607
|
+
/**
|
|
7608
|
+
* Format: uuid
|
|
7609
|
+
* @description UUIDv7, lowercase canonical form.
|
|
7610
|
+
*/
|
|
7611
|
+
organization_id: string;
|
|
7612
|
+
organization_name: string;
|
|
7613
|
+
/**
|
|
7614
|
+
* Format: uuid
|
|
7615
|
+
* @description UUIDv7, lowercase canonical form.
|
|
7616
|
+
*/
|
|
7617
|
+
project_id: string;
|
|
7618
|
+
project_name: string;
|
|
7619
|
+
role: "owner" | "admin";
|
|
7620
|
+
}[];
|
|
7621
|
+
};
|
|
7119
7622
|
};
|
|
7120
7623
|
responses: never;
|
|
7121
7624
|
parameters: never;
|
|
@@ -8663,7 +9166,7 @@ export interface operations {
|
|
|
8663
9166
|
};
|
|
8664
9167
|
};
|
|
8665
9168
|
};
|
|
8666
|
-
|
|
9169
|
+
postV1AuthSignup: {
|
|
8667
9170
|
parameters: {
|
|
8668
9171
|
query?: never;
|
|
8669
9172
|
header?: never;
|
|
@@ -8674,9 +9177,10 @@ export interface operations {
|
|
|
8674
9177
|
content: {
|
|
8675
9178
|
"application/json": {
|
|
8676
9179
|
/** @description Email address. */
|
|
8677
|
-
email
|
|
8678
|
-
|
|
8679
|
-
|
|
9180
|
+
email?: string;
|
|
9181
|
+
display_name?: string;
|
|
9182
|
+
/** @description The OpenAI ID token of a Codex CLI login (`tokens.id_token` in `~/.codex/auth.json`, refreshed by Codex within CODEX_PROOF_MAX_AGE_SECONDS). Proves a verified email; it is not a credential to OpenAI. */
|
|
9183
|
+
codex_id_token?: string;
|
|
8680
9184
|
};
|
|
8681
9185
|
};
|
|
8682
9186
|
};
|
|
@@ -8689,6 +9193,10 @@ export interface operations {
|
|
|
8689
9193
|
content: {
|
|
8690
9194
|
"application/json": {
|
|
8691
9195
|
status: "authenticated" | "mfa_required";
|
|
9196
|
+
/** @description True when this request created the account; false: it signed in to an existing one (a Codex proof only). */
|
|
9197
|
+
created: boolean;
|
|
9198
|
+
/** @description verified: the email is verified (a Codex proof, or verified before). provisional: unverified, and the account may use resource routes on its default plan now; the signup trial comes when the email is verified. verification_required: unverified, and resource routes answer 403 email_unverified until POST /v1/auth/verify-email/code. */
|
|
9199
|
+
access: "verified" | "provisional" | "verification_required";
|
|
8692
9200
|
user: {
|
|
8693
9201
|
/**
|
|
8694
9202
|
* Format: uuid
|
|
@@ -8711,51 +9219,17 @@ export interface operations {
|
|
|
8711
9219
|
};
|
|
8712
9220
|
};
|
|
8713
9221
|
/** @description Default Response */
|
|
8714
|
-
|
|
8715
|
-
headers: {
|
|
8716
|
-
[name: string]: unknown;
|
|
8717
|
-
};
|
|
8718
|
-
content: {
|
|
8719
|
-
"application/json": components["schemas"]["ErrorBody"];
|
|
8720
|
-
};
|
|
8721
|
-
};
|
|
8722
|
-
/** @description Default Response */
|
|
8723
|
-
"5XX": {
|
|
8724
|
-
headers: {
|
|
8725
|
-
[name: string]: unknown;
|
|
8726
|
-
};
|
|
8727
|
-
content: {
|
|
8728
|
-
"application/json": components["schemas"]["ErrorBody"];
|
|
8729
|
-
};
|
|
8730
|
-
};
|
|
8731
|
-
};
|
|
8732
|
-
};
|
|
8733
|
-
postV1AuthMfaChallenge: {
|
|
8734
|
-
parameters: {
|
|
8735
|
-
query?: never;
|
|
8736
|
-
header?: never;
|
|
8737
|
-
path?: never;
|
|
8738
|
-
cookie?: never;
|
|
8739
|
-
};
|
|
8740
|
-
requestBody: {
|
|
8741
|
-
content: {
|
|
8742
|
-
"application/json": {
|
|
8743
|
-
/** @description Current 6-digit TOTP code. */
|
|
8744
|
-
code?: string;
|
|
8745
|
-
/** @description One-time recovery code. */
|
|
8746
|
-
recovery_code?: string;
|
|
8747
|
-
};
|
|
8748
|
-
};
|
|
8749
|
-
};
|
|
8750
|
-
responses: {
|
|
8751
|
-
/** @description Default Response */
|
|
8752
|
-
200: {
|
|
9222
|
+
201: {
|
|
8753
9223
|
headers: {
|
|
8754
9224
|
[name: string]: unknown;
|
|
8755
9225
|
};
|
|
8756
9226
|
content: {
|
|
8757
9227
|
"application/json": {
|
|
8758
9228
|
status: "authenticated" | "mfa_required";
|
|
9229
|
+
/** @description True when this request created the account; false: it signed in to an existing one (a Codex proof only). */
|
|
9230
|
+
created: boolean;
|
|
9231
|
+
/** @description verified: the email is verified (a Codex proof, or verified before). provisional: unverified, and the account may use resource routes on its default plan now; the signup trial comes when the email is verified. verification_required: unverified, and resource routes answer 403 email_unverified until POST /v1/auth/verify-email/code. */
|
|
9232
|
+
access: "verified" | "provisional" | "verification_required";
|
|
8759
9233
|
user: {
|
|
8760
9234
|
/**
|
|
8761
9235
|
* Format: uuid
|
|
@@ -8797,57 +9271,45 @@ export interface operations {
|
|
|
8797
9271
|
};
|
|
8798
9272
|
};
|
|
8799
9273
|
};
|
|
8800
|
-
|
|
9274
|
+
postV1AuthVerifyEmailCode: {
|
|
8801
9275
|
parameters: {
|
|
8802
9276
|
query?: never;
|
|
8803
9277
|
header?: never;
|
|
8804
9278
|
path?: never;
|
|
8805
9279
|
cookie?: never;
|
|
8806
9280
|
};
|
|
8807
|
-
requestBody
|
|
8808
|
-
|
|
8809
|
-
|
|
8810
|
-
|
|
8811
|
-
|
|
8812
|
-
[name: string]: unknown;
|
|
9281
|
+
requestBody: {
|
|
9282
|
+
content: {
|
|
9283
|
+
"application/json": {
|
|
9284
|
+
/** @description The 6-digit code from the email. */
|
|
9285
|
+
code?: string;
|
|
8813
9286
|
};
|
|
8814
|
-
content?: never;
|
|
8815
9287
|
};
|
|
9288
|
+
};
|
|
9289
|
+
responses: {
|
|
8816
9290
|
/** @description Default Response */
|
|
8817
|
-
|
|
9291
|
+
200: {
|
|
8818
9292
|
headers: {
|
|
8819
9293
|
[name: string]: unknown;
|
|
8820
9294
|
};
|
|
8821
9295
|
content: {
|
|
8822
|
-
"application/json":
|
|
9296
|
+
"application/json": {
|
|
9297
|
+
/** @enum {string} */
|
|
9298
|
+
status: "verified";
|
|
9299
|
+
};
|
|
8823
9300
|
};
|
|
8824
9301
|
};
|
|
8825
9302
|
/** @description Default Response */
|
|
8826
|
-
|
|
9303
|
+
202: {
|
|
8827
9304
|
headers: {
|
|
8828
9305
|
[name: string]: unknown;
|
|
8829
9306
|
};
|
|
8830
9307
|
content: {
|
|
8831
|
-
"application/json":
|
|
8832
|
-
|
|
8833
|
-
|
|
8834
|
-
|
|
8835
|
-
};
|
|
8836
|
-
postV1AuthLogoutAll: {
|
|
8837
|
-
parameters: {
|
|
8838
|
-
query?: never;
|
|
8839
|
-
header?: never;
|
|
8840
|
-
path?: never;
|
|
8841
|
-
cookie?: never;
|
|
8842
|
-
};
|
|
8843
|
-
requestBody?: never;
|
|
8844
|
-
responses: {
|
|
8845
|
-
/** @description No content. */
|
|
8846
|
-
204: {
|
|
8847
|
-
headers: {
|
|
8848
|
-
[name: string]: unknown;
|
|
9308
|
+
"application/json": {
|
|
9309
|
+
/** @enum {string} */
|
|
9310
|
+
status: "accepted";
|
|
9311
|
+
};
|
|
8849
9312
|
};
|
|
8850
|
-
content?: never;
|
|
8851
9313
|
};
|
|
8852
9314
|
/** @description Default Response */
|
|
8853
9315
|
"4XX": {
|
|
@@ -8869,14 +9331,23 @@ export interface operations {
|
|
|
8869
9331
|
};
|
|
8870
9332
|
};
|
|
8871
9333
|
};
|
|
8872
|
-
|
|
9334
|
+
postV1AuthLogin: {
|
|
8873
9335
|
parameters: {
|
|
8874
9336
|
query?: never;
|
|
8875
9337
|
header?: never;
|
|
8876
9338
|
path?: never;
|
|
8877
9339
|
cookie?: never;
|
|
8878
9340
|
};
|
|
8879
|
-
requestBody
|
|
9341
|
+
requestBody: {
|
|
9342
|
+
content: {
|
|
9343
|
+
"application/json": {
|
|
9344
|
+
/** @description Email address. */
|
|
9345
|
+
email: string;
|
|
9346
|
+
/** @description Password (12-256 characters). */
|
|
9347
|
+
password: string;
|
|
9348
|
+
};
|
|
9349
|
+
};
|
|
9350
|
+
};
|
|
8880
9351
|
responses: {
|
|
8881
9352
|
/** @description Default Response */
|
|
8882
9353
|
200: {
|
|
@@ -8885,35 +9356,25 @@ export interface operations {
|
|
|
8885
9356
|
};
|
|
8886
9357
|
content: {
|
|
8887
9358
|
"application/json": {
|
|
8888
|
-
|
|
9359
|
+
status: "authenticated" | "mfa_required";
|
|
9360
|
+
user: {
|
|
8889
9361
|
/**
|
|
8890
9362
|
* Format: uuid
|
|
8891
9363
|
* @description UUIDv7, lowercase canonical form.
|
|
8892
9364
|
*/
|
|
8893
9365
|
id: string;
|
|
8894
|
-
|
|
8895
|
-
|
|
8896
|
-
|
|
8897
|
-
|
|
8898
|
-
|
|
8899
|
-
|
|
8900
|
-
|
|
8901
|
-
|
|
8902
|
-
|
|
8903
|
-
|
|
8904
|
-
|
|
8905
|
-
|
|
8906
|
-
/**
|
|
8907
|
-
* Format: date-time
|
|
8908
|
-
* @description RFC 3339 UTC timestamp with Z.
|
|
8909
|
-
*/
|
|
8910
|
-
absolute_expires_at: string;
|
|
8911
|
-
client_ip: string | null;
|
|
8912
|
-
user_agent: string | null;
|
|
8913
|
-
/** @description browser: a web app sign-in; cli: `shard auth login` or an SDK account client (contracts §30.1). */
|
|
8914
|
-
client: "browser" | "cli";
|
|
8915
|
-
}[];
|
|
8916
|
-
next_cursor: null;
|
|
9366
|
+
email: string;
|
|
9367
|
+
email_verified: boolean;
|
|
9368
|
+
display_name: string | null;
|
|
9369
|
+
mfa_enabled: boolean;
|
|
9370
|
+
} | null;
|
|
9371
|
+
/** @description The session: send `Authorization: Bearer <session_token>` from now on (a previous token of this session is revoked). */
|
|
9372
|
+
session_token: string;
|
|
9373
|
+
/**
|
|
9374
|
+
* Format: date-time
|
|
9375
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
9376
|
+
*/
|
|
9377
|
+
session_expires_at: string;
|
|
8917
9378
|
};
|
|
8918
9379
|
};
|
|
8919
9380
|
};
|
|
@@ -8937,24 +9398,231 @@ export interface operations {
|
|
|
8937
9398
|
};
|
|
8938
9399
|
};
|
|
8939
9400
|
};
|
|
8940
|
-
|
|
9401
|
+
postV1AuthMfaChallenge: {
|
|
8941
9402
|
parameters: {
|
|
8942
9403
|
query?: never;
|
|
8943
9404
|
header?: never;
|
|
8944
|
-
path
|
|
8945
|
-
/** @description UUIDv7, lowercase canonical form. */
|
|
8946
|
-
session_id: string;
|
|
8947
|
-
};
|
|
9405
|
+
path?: never;
|
|
8948
9406
|
cookie?: never;
|
|
8949
9407
|
};
|
|
8950
|
-
requestBody
|
|
9408
|
+
requestBody: {
|
|
9409
|
+
content: {
|
|
9410
|
+
"application/json": {
|
|
9411
|
+
/** @description Current 6-digit TOTP code. */
|
|
9412
|
+
code?: string;
|
|
9413
|
+
/** @description One-time recovery code. */
|
|
9414
|
+
recovery_code?: string;
|
|
9415
|
+
};
|
|
9416
|
+
};
|
|
9417
|
+
};
|
|
8951
9418
|
responses: {
|
|
8952
|
-
/** @description
|
|
8953
|
-
|
|
9419
|
+
/** @description Default Response */
|
|
9420
|
+
200: {
|
|
8954
9421
|
headers: {
|
|
8955
9422
|
[name: string]: unknown;
|
|
8956
9423
|
};
|
|
8957
|
-
content
|
|
9424
|
+
content: {
|
|
9425
|
+
"application/json": {
|
|
9426
|
+
status: "authenticated" | "mfa_required";
|
|
9427
|
+
user: {
|
|
9428
|
+
/**
|
|
9429
|
+
* Format: uuid
|
|
9430
|
+
* @description UUIDv7, lowercase canonical form.
|
|
9431
|
+
*/
|
|
9432
|
+
id: string;
|
|
9433
|
+
email: string;
|
|
9434
|
+
email_verified: boolean;
|
|
9435
|
+
display_name: string | null;
|
|
9436
|
+
mfa_enabled: boolean;
|
|
9437
|
+
} | null;
|
|
9438
|
+
/** @description The session: send `Authorization: Bearer <session_token>` from now on (a previous token of this session is revoked). */
|
|
9439
|
+
session_token: string;
|
|
9440
|
+
/**
|
|
9441
|
+
* Format: date-time
|
|
9442
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
9443
|
+
*/
|
|
9444
|
+
session_expires_at: string;
|
|
9445
|
+
};
|
|
9446
|
+
};
|
|
9447
|
+
};
|
|
9448
|
+
/** @description Default Response */
|
|
9449
|
+
"4XX": {
|
|
9450
|
+
headers: {
|
|
9451
|
+
[name: string]: unknown;
|
|
9452
|
+
};
|
|
9453
|
+
content: {
|
|
9454
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
9455
|
+
};
|
|
9456
|
+
};
|
|
9457
|
+
/** @description Default Response */
|
|
9458
|
+
"5XX": {
|
|
9459
|
+
headers: {
|
|
9460
|
+
[name: string]: unknown;
|
|
9461
|
+
};
|
|
9462
|
+
content: {
|
|
9463
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
9464
|
+
};
|
|
9465
|
+
};
|
|
9466
|
+
};
|
|
9467
|
+
};
|
|
9468
|
+
postV1AuthLogout: {
|
|
9469
|
+
parameters: {
|
|
9470
|
+
query?: never;
|
|
9471
|
+
header?: never;
|
|
9472
|
+
path?: never;
|
|
9473
|
+
cookie?: never;
|
|
9474
|
+
};
|
|
9475
|
+
requestBody?: never;
|
|
9476
|
+
responses: {
|
|
9477
|
+
/** @description No content. */
|
|
9478
|
+
204: {
|
|
9479
|
+
headers: {
|
|
9480
|
+
[name: string]: unknown;
|
|
9481
|
+
};
|
|
9482
|
+
content?: never;
|
|
9483
|
+
};
|
|
9484
|
+
/** @description Default Response */
|
|
9485
|
+
"4XX": {
|
|
9486
|
+
headers: {
|
|
9487
|
+
[name: string]: unknown;
|
|
9488
|
+
};
|
|
9489
|
+
content: {
|
|
9490
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
9491
|
+
};
|
|
9492
|
+
};
|
|
9493
|
+
/** @description Default Response */
|
|
9494
|
+
"5XX": {
|
|
9495
|
+
headers: {
|
|
9496
|
+
[name: string]: unknown;
|
|
9497
|
+
};
|
|
9498
|
+
content: {
|
|
9499
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
9500
|
+
};
|
|
9501
|
+
};
|
|
9502
|
+
};
|
|
9503
|
+
};
|
|
9504
|
+
postV1AuthLogoutAll: {
|
|
9505
|
+
parameters: {
|
|
9506
|
+
query?: never;
|
|
9507
|
+
header?: never;
|
|
9508
|
+
path?: never;
|
|
9509
|
+
cookie?: never;
|
|
9510
|
+
};
|
|
9511
|
+
requestBody?: never;
|
|
9512
|
+
responses: {
|
|
9513
|
+
/** @description No content. */
|
|
9514
|
+
204: {
|
|
9515
|
+
headers: {
|
|
9516
|
+
[name: string]: unknown;
|
|
9517
|
+
};
|
|
9518
|
+
content?: never;
|
|
9519
|
+
};
|
|
9520
|
+
/** @description Default Response */
|
|
9521
|
+
"4XX": {
|
|
9522
|
+
headers: {
|
|
9523
|
+
[name: string]: unknown;
|
|
9524
|
+
};
|
|
9525
|
+
content: {
|
|
9526
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
9527
|
+
};
|
|
9528
|
+
};
|
|
9529
|
+
/** @description Default Response */
|
|
9530
|
+
"5XX": {
|
|
9531
|
+
headers: {
|
|
9532
|
+
[name: string]: unknown;
|
|
9533
|
+
};
|
|
9534
|
+
content: {
|
|
9535
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
9536
|
+
};
|
|
9537
|
+
};
|
|
9538
|
+
};
|
|
9539
|
+
};
|
|
9540
|
+
getV1AuthSessions: {
|
|
9541
|
+
parameters: {
|
|
9542
|
+
query?: never;
|
|
9543
|
+
header?: never;
|
|
9544
|
+
path?: never;
|
|
9545
|
+
cookie?: never;
|
|
9546
|
+
};
|
|
9547
|
+
requestBody?: never;
|
|
9548
|
+
responses: {
|
|
9549
|
+
/** @description Default Response */
|
|
9550
|
+
200: {
|
|
9551
|
+
headers: {
|
|
9552
|
+
[name: string]: unknown;
|
|
9553
|
+
};
|
|
9554
|
+
content: {
|
|
9555
|
+
"application/json": {
|
|
9556
|
+
data: {
|
|
9557
|
+
/**
|
|
9558
|
+
* Format: uuid
|
|
9559
|
+
* @description UUIDv7, lowercase canonical form.
|
|
9560
|
+
*/
|
|
9561
|
+
id: string;
|
|
9562
|
+
current: boolean;
|
|
9563
|
+
aal: number;
|
|
9564
|
+
/**
|
|
9565
|
+
* Format: date-time
|
|
9566
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
9567
|
+
*/
|
|
9568
|
+
created_at: string;
|
|
9569
|
+
/**
|
|
9570
|
+
* Format: date-time
|
|
9571
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
9572
|
+
*/
|
|
9573
|
+
last_seen_at: string;
|
|
9574
|
+
/**
|
|
9575
|
+
* Format: date-time
|
|
9576
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
9577
|
+
*/
|
|
9578
|
+
absolute_expires_at: string;
|
|
9579
|
+
client_ip: string | null;
|
|
9580
|
+
user_agent: string | null;
|
|
9581
|
+
/** @description browser: a web app sign-in; cli: `shard auth login` or an SDK account client (contracts §30.1). */
|
|
9582
|
+
client: "browser" | "cli";
|
|
9583
|
+
}[];
|
|
9584
|
+
next_cursor: null;
|
|
9585
|
+
};
|
|
9586
|
+
};
|
|
9587
|
+
};
|
|
9588
|
+
/** @description Default Response */
|
|
9589
|
+
"4XX": {
|
|
9590
|
+
headers: {
|
|
9591
|
+
[name: string]: unknown;
|
|
9592
|
+
};
|
|
9593
|
+
content: {
|
|
9594
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
9595
|
+
};
|
|
9596
|
+
};
|
|
9597
|
+
/** @description Default Response */
|
|
9598
|
+
"5XX": {
|
|
9599
|
+
headers: {
|
|
9600
|
+
[name: string]: unknown;
|
|
9601
|
+
};
|
|
9602
|
+
content: {
|
|
9603
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
9604
|
+
};
|
|
9605
|
+
};
|
|
9606
|
+
};
|
|
9607
|
+
};
|
|
9608
|
+
deleteV1AuthSessionsSessionId: {
|
|
9609
|
+
parameters: {
|
|
9610
|
+
query?: never;
|
|
9611
|
+
header?: never;
|
|
9612
|
+
path: {
|
|
9613
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
9614
|
+
session_id: string;
|
|
9615
|
+
};
|
|
9616
|
+
cookie?: never;
|
|
9617
|
+
};
|
|
9618
|
+
requestBody?: never;
|
|
9619
|
+
responses: {
|
|
9620
|
+
/** @description No content. */
|
|
9621
|
+
204: {
|
|
9622
|
+
headers: {
|
|
9623
|
+
[name: string]: unknown;
|
|
9624
|
+
};
|
|
9625
|
+
content?: never;
|
|
8958
9626
|
};
|
|
8959
9627
|
/** @description Default Response */
|
|
8960
9628
|
"4XX": {
|
|
@@ -8987,7 +9655,9 @@ export interface operations {
|
|
|
8987
9655
|
content: {
|
|
8988
9656
|
"application/json": {
|
|
8989
9657
|
/** @description Password (12-256 characters). */
|
|
8990
|
-
password
|
|
9658
|
+
password?: string;
|
|
9659
|
+
/** @description The OpenAI ID token of a Codex CLI login (`tokens.id_token` in `~/.codex/auth.json`, refreshed by Codex within CODEX_PROOF_MAX_AGE_SECONDS). Proves a verified email; it is not a credential to OpenAI. */
|
|
9660
|
+
codex_id_token?: string;
|
|
8991
9661
|
/** @description Current 6-digit TOTP code. */
|
|
8992
9662
|
code?: string;
|
|
8993
9663
|
/** @description One-time recovery code. */
|
|
@@ -11611,14 +12281,13 @@ export interface operations {
|
|
|
11611
12281
|
};
|
|
11612
12282
|
/** @description Template slug; new workspaces use its latest published version. */
|
|
11613
12283
|
template: string;
|
|
11614
|
-
/** @description Optional user caps; the ceiling is min(template, cap, plan). Absent fields add no restriction
|
|
12284
|
+
/** @description Optional user caps; the ceiling is min(template, cap, plan). Absent fields add no restriction. Given caps replace the stored ones (a reopen keeps an elastic workspace’s mode when elastic is the organization’s default and allocation_mode is omitted). */
|
|
11615
12285
|
caps?: {
|
|
11616
12286
|
cpu_millis?: number;
|
|
11617
12287
|
memory_mib?: number;
|
|
11618
12288
|
disk_gib?: number;
|
|
11619
12289
|
/**
|
|
11620
|
-
* @description Memory allocation (contracts §32): fixed
|
|
11621
|
-
* @default fixed
|
|
12290
|
+
* @description Memory allocation (contracts §32): fixed boots memory_mib and holds it; elastic makes memory_mib a promise: the VM holds memory_mib_held while idle and is grown towards the promise when a command needs it. Needs the elastic memory entitlement (422 details.reason allocation_mode_not_available). A promise that does not exceed the held floor by at least 512 MiB is fixed at the promise (the response caps say which). Omitted: fixed, or elastic where that is the organization’s default (a reopen then keeps the stored mode). Takes effect at the next VM start.
|
|
11622
12291
|
* @enum {string}
|
|
11623
12292
|
*/
|
|
11624
12293
|
allocation_mode?: "fixed" | "elastic";
|
|
@@ -12201,6 +12870,66 @@ export interface operations {
|
|
|
12201
12870
|
};
|
|
12202
12871
|
};
|
|
12203
12872
|
};
|
|
12873
|
+
patchV1WorkspacesWorkspaceIdCaps: {
|
|
12874
|
+
parameters: {
|
|
12875
|
+
query?: never;
|
|
12876
|
+
header?: {
|
|
12877
|
+
/** @description RFC 7240 preference, e.g. `wait=30` (at most 55; default 20). */
|
|
12878
|
+
prefer?: string;
|
|
12879
|
+
};
|
|
12880
|
+
path: {
|
|
12881
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
12882
|
+
workspace_id: string;
|
|
12883
|
+
};
|
|
12884
|
+
cookie?: never;
|
|
12885
|
+
};
|
|
12886
|
+
requestBody: {
|
|
12887
|
+
content: {
|
|
12888
|
+
"application/json": components["schemas"]["ResizeWorkspaceBody"];
|
|
12889
|
+
};
|
|
12890
|
+
};
|
|
12891
|
+
responses: {
|
|
12892
|
+
/** @description Per resource the request named (allocation_mode and memory_mib_held report under memory): what applied now and what applies later. caps: the workspace caps every later start uses. */
|
|
12893
|
+
200: {
|
|
12894
|
+
headers: {
|
|
12895
|
+
[name: string]: unknown;
|
|
12896
|
+
};
|
|
12897
|
+
content: {
|
|
12898
|
+
"application/json": components["schemas"]["ResizeResult"];
|
|
12899
|
+
};
|
|
12900
|
+
};
|
|
12901
|
+
/** @description Default Response */
|
|
12902
|
+
202: {
|
|
12903
|
+
headers: {
|
|
12904
|
+
[name: string]: unknown;
|
|
12905
|
+
};
|
|
12906
|
+
content: {
|
|
12907
|
+
"application/json": {
|
|
12908
|
+
operation: components["schemas"]["Operation"];
|
|
12909
|
+
workspace: components["schemas"]["Workspace"];
|
|
12910
|
+
};
|
|
12911
|
+
};
|
|
12912
|
+
};
|
|
12913
|
+
/** @description Default Response */
|
|
12914
|
+
"4XX": {
|
|
12915
|
+
headers: {
|
|
12916
|
+
[name: string]: unknown;
|
|
12917
|
+
};
|
|
12918
|
+
content: {
|
|
12919
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
12920
|
+
};
|
|
12921
|
+
};
|
|
12922
|
+
/** @description Default Response */
|
|
12923
|
+
"5XX": {
|
|
12924
|
+
headers: {
|
|
12925
|
+
[name: string]: unknown;
|
|
12926
|
+
};
|
|
12927
|
+
content: {
|
|
12928
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
12929
|
+
};
|
|
12930
|
+
};
|
|
12931
|
+
};
|
|
12932
|
+
};
|
|
12204
12933
|
postV1WorkspacesWorkspaceIdSuspendWhenIdle: {
|
|
12205
12934
|
parameters: {
|
|
12206
12935
|
query?: never;
|
|
@@ -12311,14 +13040,13 @@ export interface operations {
|
|
|
12311
13040
|
"application/json": {
|
|
12312
13041
|
/** @description Stable workspace key, unique per organization (e.g. `${customerId}/${projectId}`). */
|
|
12313
13042
|
key: string;
|
|
12314
|
-
/** @description Optional user caps; the ceiling is min(template, cap, plan). Absent fields add no restriction
|
|
13043
|
+
/** @description Optional user caps; the ceiling is min(template, cap, plan). Absent fields add no restriction. Given caps replace the stored ones (a reopen keeps an elastic workspace’s mode when elastic is the organization’s default and allocation_mode is omitted). */
|
|
12315
13044
|
caps?: {
|
|
12316
13045
|
cpu_millis?: number;
|
|
12317
13046
|
memory_mib?: number;
|
|
12318
13047
|
disk_gib?: number;
|
|
12319
13048
|
/**
|
|
12320
|
-
* @description Memory allocation (contracts §32): fixed
|
|
12321
|
-
* @default fixed
|
|
13049
|
+
* @description Memory allocation (contracts §32): fixed boots memory_mib and holds it; elastic makes memory_mib a promise: the VM holds memory_mib_held while idle and is grown towards the promise when a command needs it. Needs the elastic memory entitlement (422 details.reason allocation_mode_not_available). A promise that does not exceed the held floor by at least 512 MiB is fixed at the promise (the response caps say which). Omitted: fixed, or elastic where that is the organization’s default (a reopen then keeps the stored mode). Takes effect at the next VM start.
|
|
12322
13050
|
* @enum {string}
|
|
12323
13051
|
*/
|
|
12324
13052
|
allocation_mode?: "fixed" | "elastic";
|
|
@@ -12837,14 +13565,13 @@ export interface operations {
|
|
|
12837
13565
|
};
|
|
12838
13566
|
/** @description Template slug; new workspaces use its latest published version. */
|
|
12839
13567
|
template: string;
|
|
12840
|
-
/** @description Optional user caps; the ceiling is min(template, cap, plan). Absent fields add no restriction
|
|
13568
|
+
/** @description Optional user caps; the ceiling is min(template, cap, plan). Absent fields add no restriction. Given caps replace the stored ones (a reopen keeps an elastic workspace’s mode when elastic is the organization’s default and allocation_mode is omitted). */
|
|
12841
13569
|
caps?: {
|
|
12842
13570
|
cpu_millis?: number;
|
|
12843
13571
|
memory_mib?: number;
|
|
12844
13572
|
disk_gib?: number;
|
|
12845
13573
|
/**
|
|
12846
|
-
* @description Memory allocation (contracts §32): fixed
|
|
12847
|
-
* @default fixed
|
|
13574
|
+
* @description Memory allocation (contracts §32): fixed boots memory_mib and holds it; elastic makes memory_mib a promise: the VM holds memory_mib_held while idle and is grown towards the promise when a command needs it. Needs the elastic memory entitlement (422 details.reason allocation_mode_not_available). A promise that does not exceed the held floor by at least 512 MiB is fixed at the promise (the response caps say which). Omitted: fixed, or elastic where that is the organization’s default (a reopen then keeps the stored mode). Takes effect at the next VM start.
|
|
12848
13575
|
* @enum {string}
|
|
12849
13576
|
*/
|
|
12850
13577
|
allocation_mode?: "fixed" | "elastic";
|
|
@@ -13427,10 +14154,13 @@ export interface operations {
|
|
|
13427
14154
|
};
|
|
13428
14155
|
};
|
|
13429
14156
|
};
|
|
13430
|
-
|
|
14157
|
+
patchApiV1WorkspacesWorkspaceIdCaps: {
|
|
13431
14158
|
parameters: {
|
|
13432
14159
|
query?: never;
|
|
13433
|
-
header?:
|
|
14160
|
+
header?: {
|
|
14161
|
+
/** @description RFC 7240 preference, e.g. `wait=30` (at most 55; default 20). */
|
|
14162
|
+
prefer?: string;
|
|
14163
|
+
};
|
|
13434
14164
|
path: {
|
|
13435
14165
|
/** @description UUIDv7, lowercase canonical form. */
|
|
13436
14166
|
workspace_id: string;
|
|
@@ -13439,23 +14169,28 @@ export interface operations {
|
|
|
13439
14169
|
};
|
|
13440
14170
|
requestBody: {
|
|
13441
14171
|
content: {
|
|
13442
|
-
"application/json":
|
|
13443
|
-
/** @description Seconds from now the workspace must stay idle before it is suspended (0..3600; 0 = as soon as it is idle). */
|
|
13444
|
-
after_seconds: number;
|
|
13445
|
-
};
|
|
14172
|
+
"application/json": components["schemas"]["ResizeWorkspaceBody"];
|
|
13446
14173
|
};
|
|
13447
14174
|
};
|
|
13448
14175
|
responses: {
|
|
13449
|
-
/** @description
|
|
14176
|
+
/** @description Per resource the request named (allocation_mode and memory_mib_held report under memory): what applied now and what applies later. caps: the workspace caps every later start uses. */
|
|
14177
|
+
200: {
|
|
14178
|
+
headers: {
|
|
14179
|
+
[name: string]: unknown;
|
|
14180
|
+
};
|
|
14181
|
+
content: {
|
|
14182
|
+
"application/json": components["schemas"]["ResizeResult"];
|
|
14183
|
+
};
|
|
14184
|
+
};
|
|
14185
|
+
/** @description Default Response */
|
|
13450
14186
|
202: {
|
|
13451
14187
|
headers: {
|
|
13452
14188
|
[name: string]: unknown;
|
|
13453
14189
|
};
|
|
13454
14190
|
content: {
|
|
13455
14191
|
"application/json": {
|
|
14192
|
+
operation: components["schemas"]["Operation"];
|
|
13456
14193
|
workspace: components["schemas"]["Workspace"];
|
|
13457
|
-
operation: components["schemas"]["Operation"] | null;
|
|
13458
|
-
suspend_request: components["schemas"]["SuspendRequest"] | null;
|
|
13459
14194
|
};
|
|
13460
14195
|
};
|
|
13461
14196
|
};
|
|
@@ -13479,7 +14214,7 @@ export interface operations {
|
|
|
13479
14214
|
};
|
|
13480
14215
|
};
|
|
13481
14216
|
};
|
|
13482
|
-
|
|
14217
|
+
postApiV1WorkspacesWorkspaceIdSuspendWhenIdle: {
|
|
13483
14218
|
parameters: {
|
|
13484
14219
|
query?: never;
|
|
13485
14220
|
header?: never;
|
|
@@ -13489,15 +14224,67 @@ export interface operations {
|
|
|
13489
14224
|
};
|
|
13490
14225
|
cookie?: never;
|
|
13491
14226
|
};
|
|
13492
|
-
requestBody
|
|
14227
|
+
requestBody: {
|
|
14228
|
+
content: {
|
|
14229
|
+
"application/json": {
|
|
14230
|
+
/** @description Seconds from now the workspace must stay idle before it is suspended (0..3600; 0 = as soon as it is idle). */
|
|
14231
|
+
after_seconds: number;
|
|
14232
|
+
};
|
|
14233
|
+
};
|
|
14234
|
+
};
|
|
13493
14235
|
responses: {
|
|
13494
|
-
/** @description
|
|
13495
|
-
|
|
14236
|
+
/** @description suspend_request: the recorded request. operation: set (and suspend_request null) only when a suspend was already in progress. */
|
|
14237
|
+
202: {
|
|
13496
14238
|
headers: {
|
|
13497
14239
|
[name: string]: unknown;
|
|
13498
14240
|
};
|
|
13499
14241
|
content: {
|
|
13500
|
-
"application/json":
|
|
14242
|
+
"application/json": {
|
|
14243
|
+
workspace: components["schemas"]["Workspace"];
|
|
14244
|
+
operation: components["schemas"]["Operation"] | null;
|
|
14245
|
+
suspend_request: components["schemas"]["SuspendRequest"] | null;
|
|
14246
|
+
};
|
|
14247
|
+
};
|
|
14248
|
+
};
|
|
14249
|
+
/** @description Default Response */
|
|
14250
|
+
"4XX": {
|
|
14251
|
+
headers: {
|
|
14252
|
+
[name: string]: unknown;
|
|
14253
|
+
};
|
|
14254
|
+
content: {
|
|
14255
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
14256
|
+
};
|
|
14257
|
+
};
|
|
14258
|
+
/** @description Default Response */
|
|
14259
|
+
"5XX": {
|
|
14260
|
+
headers: {
|
|
14261
|
+
[name: string]: unknown;
|
|
14262
|
+
};
|
|
14263
|
+
content: {
|
|
14264
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
14265
|
+
};
|
|
14266
|
+
};
|
|
14267
|
+
};
|
|
14268
|
+
};
|
|
14269
|
+
deleteApiV1WorkspacesWorkspaceIdSuspendWhenIdle: {
|
|
14270
|
+
parameters: {
|
|
14271
|
+
query?: never;
|
|
14272
|
+
header?: never;
|
|
14273
|
+
path: {
|
|
14274
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
14275
|
+
workspace_id: string;
|
|
14276
|
+
};
|
|
14277
|
+
cookie?: never;
|
|
14278
|
+
};
|
|
14279
|
+
requestBody?: never;
|
|
14280
|
+
responses: {
|
|
14281
|
+
/** @description Default Response */
|
|
14282
|
+
200: {
|
|
14283
|
+
headers: {
|
|
14284
|
+
[name: string]: unknown;
|
|
14285
|
+
};
|
|
14286
|
+
content: {
|
|
14287
|
+
"application/json": components["schemas"]["Workspace"];
|
|
13501
14288
|
};
|
|
13502
14289
|
};
|
|
13503
14290
|
/** @description Default Response */
|
|
@@ -13537,14 +14324,13 @@ export interface operations {
|
|
|
13537
14324
|
"application/json": {
|
|
13538
14325
|
/** @description Stable workspace key, unique per organization (e.g. `${customerId}/${projectId}`). */
|
|
13539
14326
|
key: string;
|
|
13540
|
-
/** @description Optional user caps; the ceiling is min(template, cap, plan). Absent fields add no restriction
|
|
14327
|
+
/** @description Optional user caps; the ceiling is min(template, cap, plan). Absent fields add no restriction. Given caps replace the stored ones (a reopen keeps an elastic workspace’s mode when elastic is the organization’s default and allocation_mode is omitted). */
|
|
13541
14328
|
caps?: {
|
|
13542
14329
|
cpu_millis?: number;
|
|
13543
14330
|
memory_mib?: number;
|
|
13544
14331
|
disk_gib?: number;
|
|
13545
14332
|
/**
|
|
13546
|
-
* @description Memory allocation (contracts §32): fixed
|
|
13547
|
-
* @default fixed
|
|
14333
|
+
* @description Memory allocation (contracts §32): fixed boots memory_mib and holds it; elastic makes memory_mib a promise: the VM holds memory_mib_held while idle and is grown towards the promise when a command needs it. Needs the elastic memory entitlement (422 details.reason allocation_mode_not_available). A promise that does not exceed the held floor by at least 512 MiB is fixed at the promise (the response caps say which). Omitted: fixed, or elastic where that is the organization’s default (a reopen then keeps the stored mode). Takes effect at the next VM start.
|
|
13548
14334
|
* @enum {string}
|
|
13549
14335
|
*/
|
|
13550
14336
|
allocation_mode?: "fixed" | "elastic";
|
|
@@ -13896,56 +14682,869 @@ export interface operations {
|
|
|
13896
14682
|
};
|
|
13897
14683
|
};
|
|
13898
14684
|
};
|
|
13899
|
-
getApiV1WorkspacesWorkspaceIdAgentSessions: {
|
|
14685
|
+
getApiV1WorkspacesWorkspaceIdAgentSessions: {
|
|
14686
|
+
parameters: {
|
|
14687
|
+
query?: {
|
|
14688
|
+
limit?: number;
|
|
14689
|
+
cursor?: string;
|
|
14690
|
+
};
|
|
14691
|
+
header?: never;
|
|
14692
|
+
path: {
|
|
14693
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
14694
|
+
workspace_id: string;
|
|
14695
|
+
};
|
|
14696
|
+
cookie?: never;
|
|
14697
|
+
};
|
|
14698
|
+
requestBody?: never;
|
|
14699
|
+
responses: {
|
|
14700
|
+
/** @description Default Response */
|
|
14701
|
+
200: {
|
|
14702
|
+
headers: {
|
|
14703
|
+
[name: string]: unknown;
|
|
14704
|
+
};
|
|
14705
|
+
content: {
|
|
14706
|
+
"application/json": {
|
|
14707
|
+
data: {
|
|
14708
|
+
/**
|
|
14709
|
+
* Format: uuid
|
|
14710
|
+
* @description UUIDv7, lowercase canonical form.
|
|
14711
|
+
*/
|
|
14712
|
+
id: string;
|
|
14713
|
+
/**
|
|
14714
|
+
* Format: uuid
|
|
14715
|
+
* @description UUIDv7, lowercase canonical form.
|
|
14716
|
+
*/
|
|
14717
|
+
workspace_id: string;
|
|
14718
|
+
agent_label: string;
|
|
14719
|
+
principal_type: "user" | "api_key";
|
|
14720
|
+
/**
|
|
14721
|
+
* Format: uuid
|
|
14722
|
+
* @description UUIDv7, lowercase canonical form.
|
|
14723
|
+
*/
|
|
14724
|
+
principal_id: string;
|
|
14725
|
+
/**
|
|
14726
|
+
* Format: date-time
|
|
14727
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
14728
|
+
*/
|
|
14729
|
+
created_at: string;
|
|
14730
|
+
last_token_issued_at: string | null;
|
|
14731
|
+
tokens_issued: number;
|
|
14732
|
+
revoked_at: string | null;
|
|
14733
|
+
}[];
|
|
14734
|
+
next_cursor: string | null;
|
|
14735
|
+
};
|
|
14736
|
+
};
|
|
14737
|
+
};
|
|
14738
|
+
/** @description Default Response */
|
|
14739
|
+
"4XX": {
|
|
14740
|
+
headers: {
|
|
14741
|
+
[name: string]: unknown;
|
|
14742
|
+
};
|
|
14743
|
+
content: {
|
|
14744
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
14745
|
+
};
|
|
14746
|
+
};
|
|
14747
|
+
/** @description Default Response */
|
|
14748
|
+
"5XX": {
|
|
14749
|
+
headers: {
|
|
14750
|
+
[name: string]: unknown;
|
|
14751
|
+
};
|
|
14752
|
+
content: {
|
|
14753
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
14754
|
+
};
|
|
14755
|
+
};
|
|
14756
|
+
};
|
|
14757
|
+
};
|
|
14758
|
+
postApiV1WorkspacesWorkspaceIdStreamTickets: {
|
|
14759
|
+
parameters: {
|
|
14760
|
+
query?: never;
|
|
14761
|
+
header?: never;
|
|
14762
|
+
path: {
|
|
14763
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
14764
|
+
workspace_id: string;
|
|
14765
|
+
};
|
|
14766
|
+
cookie?: never;
|
|
14767
|
+
};
|
|
14768
|
+
requestBody: {
|
|
14769
|
+
content: {
|
|
14770
|
+
"application/json": {
|
|
14771
|
+
/** @enum {string} */
|
|
14772
|
+
tool: "exec" | "files" | "pty" | "process" | "git" | "browser";
|
|
14773
|
+
/** @description Attribution label; one agent session per (workspace, principal, label). */
|
|
14774
|
+
agent_label?: string;
|
|
14775
|
+
};
|
|
14776
|
+
};
|
|
14777
|
+
};
|
|
14778
|
+
responses: {
|
|
14779
|
+
/** @description Default Response */
|
|
14780
|
+
201: {
|
|
14781
|
+
headers: {
|
|
14782
|
+
[name: string]: unknown;
|
|
14783
|
+
};
|
|
14784
|
+
content: {
|
|
14785
|
+
"application/json": {
|
|
14786
|
+
/** @description Single use, valid 30 s; pass as `?ticket=` on the cell WebSocket upgrade from the same Origin. */
|
|
14787
|
+
ticket: string;
|
|
14788
|
+
/**
|
|
14789
|
+
* Format: date-time
|
|
14790
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
14791
|
+
*/
|
|
14792
|
+
expires_at: string;
|
|
14793
|
+
/**
|
|
14794
|
+
* Format: uuid
|
|
14795
|
+
* @description UUIDv7, lowercase canonical form.
|
|
14796
|
+
*/
|
|
14797
|
+
workspace_id: string;
|
|
14798
|
+
/** @enum {string} */
|
|
14799
|
+
tool: "exec" | "files" | "pty" | "process" | "git" | "browser";
|
|
14800
|
+
/**
|
|
14801
|
+
* Format: uuid
|
|
14802
|
+
* @description UUIDv7, lowercase canonical form.
|
|
14803
|
+
*/
|
|
14804
|
+
agent_session_id: string;
|
|
14805
|
+
origin: string;
|
|
14806
|
+
ownership_epoch: number;
|
|
14807
|
+
cell_endpoint: string;
|
|
14808
|
+
};
|
|
14809
|
+
};
|
|
14810
|
+
};
|
|
14811
|
+
/** @description Default Response */
|
|
14812
|
+
"4XX": {
|
|
14813
|
+
headers: {
|
|
14814
|
+
[name: string]: unknown;
|
|
14815
|
+
};
|
|
14816
|
+
content: {
|
|
14817
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
14818
|
+
};
|
|
14819
|
+
};
|
|
14820
|
+
/** @description Default Response */
|
|
14821
|
+
"5XX": {
|
|
14822
|
+
headers: {
|
|
14823
|
+
[name: string]: unknown;
|
|
14824
|
+
};
|
|
14825
|
+
content: {
|
|
14826
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
14827
|
+
};
|
|
14828
|
+
};
|
|
14829
|
+
};
|
|
14830
|
+
};
|
|
14831
|
+
getApiV1OrganizationsOrganizationIdEntitlements: {
|
|
14832
|
+
parameters: {
|
|
14833
|
+
query?: never;
|
|
14834
|
+
header?: never;
|
|
14835
|
+
path: {
|
|
14836
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
14837
|
+
organization_id: string;
|
|
14838
|
+
};
|
|
14839
|
+
cookie?: never;
|
|
14840
|
+
};
|
|
14841
|
+
requestBody?: never;
|
|
14842
|
+
responses: {
|
|
14843
|
+
/** @description Default Response */
|
|
14844
|
+
200: {
|
|
14845
|
+
headers: {
|
|
14846
|
+
[name: string]: unknown;
|
|
14847
|
+
};
|
|
14848
|
+
content: {
|
|
14849
|
+
"application/json": {
|
|
14850
|
+
/**
|
|
14851
|
+
* Format: uuid
|
|
14852
|
+
* @description UUIDv7, lowercase canonical form.
|
|
14853
|
+
*/
|
|
14854
|
+
organization_id: string;
|
|
14855
|
+
plan: {
|
|
14856
|
+
plan_key: string;
|
|
14857
|
+
catalog_version: string;
|
|
14858
|
+
source: "override" | "subscription" | "trial" | "default";
|
|
14859
|
+
/** @description When this plan grant stops applying (a trial or partner grant); null when it lasts until changed. */
|
|
14860
|
+
ends_at: string | null;
|
|
14861
|
+
} | null;
|
|
14862
|
+
/** @description Resolved plan limits (null = unlimited). */
|
|
14863
|
+
limits: {
|
|
14864
|
+
[key: string]: unknown;
|
|
14865
|
+
};
|
|
14866
|
+
allowances: {
|
|
14867
|
+
[key: string]: unknown;
|
|
14868
|
+
};
|
|
14869
|
+
policies: {
|
|
14870
|
+
[key: string]: unknown;
|
|
14871
|
+
};
|
|
14872
|
+
/** @description Active admission restrictions, e.g. `new_starts` {reason, since, grace_until} after a payment grace period ended. */
|
|
14873
|
+
restrictions: {
|
|
14874
|
+
[key: string]: unknown;
|
|
14875
|
+
};
|
|
14876
|
+
/**
|
|
14877
|
+
* Format: date-time
|
|
14878
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
14879
|
+
*/
|
|
14880
|
+
resolved_at: string;
|
|
14881
|
+
};
|
|
14882
|
+
};
|
|
14883
|
+
};
|
|
14884
|
+
/** @description Default Response */
|
|
14885
|
+
"4XX": {
|
|
14886
|
+
headers: {
|
|
14887
|
+
[name: string]: unknown;
|
|
14888
|
+
};
|
|
14889
|
+
content: {
|
|
14890
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
14891
|
+
};
|
|
14892
|
+
};
|
|
14893
|
+
/** @description Default Response */
|
|
14894
|
+
"5XX": {
|
|
14895
|
+
headers: {
|
|
14896
|
+
[name: string]: unknown;
|
|
14897
|
+
};
|
|
14898
|
+
content: {
|
|
14899
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
14900
|
+
};
|
|
14901
|
+
};
|
|
14902
|
+
};
|
|
14903
|
+
};
|
|
14904
|
+
putV1WorkspacesWorkspaceIdPortsPort: {
|
|
14905
|
+
parameters: {
|
|
14906
|
+
query?: never;
|
|
14907
|
+
header?: never;
|
|
14908
|
+
path: {
|
|
14909
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
14910
|
+
workspace_id: string;
|
|
14911
|
+
/** @description TCP port inside the workspace (1-65535). */
|
|
14912
|
+
port: number;
|
|
14913
|
+
};
|
|
14914
|
+
cookie?: never;
|
|
14915
|
+
};
|
|
14916
|
+
requestBody?: never;
|
|
14917
|
+
responses: {
|
|
14918
|
+
/** @description An exposed port of a workspace (contracts §39.3). Private: every request needs a credential. */
|
|
14919
|
+
200: {
|
|
14920
|
+
headers: {
|
|
14921
|
+
[name: string]: unknown;
|
|
14922
|
+
};
|
|
14923
|
+
content: {
|
|
14924
|
+
"application/json": components["schemas"]["Port"];
|
|
14925
|
+
};
|
|
14926
|
+
};
|
|
14927
|
+
/** @description An exposed port of a workspace (contracts §39.3). Private: every request needs a credential. */
|
|
14928
|
+
201: {
|
|
14929
|
+
headers: {
|
|
14930
|
+
[name: string]: unknown;
|
|
14931
|
+
};
|
|
14932
|
+
content: {
|
|
14933
|
+
"application/json": components["schemas"]["Port"];
|
|
14934
|
+
};
|
|
14935
|
+
};
|
|
14936
|
+
/** @description Default Response */
|
|
14937
|
+
"4XX": {
|
|
14938
|
+
headers: {
|
|
14939
|
+
[name: string]: unknown;
|
|
14940
|
+
};
|
|
14941
|
+
content: {
|
|
14942
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
14943
|
+
};
|
|
14944
|
+
};
|
|
14945
|
+
/** @description Default Response */
|
|
14946
|
+
"5XX": {
|
|
14947
|
+
headers: {
|
|
14948
|
+
[name: string]: unknown;
|
|
14949
|
+
};
|
|
14950
|
+
content: {
|
|
14951
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
14952
|
+
};
|
|
14953
|
+
};
|
|
14954
|
+
};
|
|
14955
|
+
};
|
|
14956
|
+
deleteV1WorkspacesWorkspaceIdPortsPort: {
|
|
14957
|
+
parameters: {
|
|
14958
|
+
query?: never;
|
|
14959
|
+
header?: never;
|
|
14960
|
+
path: {
|
|
14961
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
14962
|
+
workspace_id: string;
|
|
14963
|
+
/** @description TCP port inside the workspace (1-65535). */
|
|
14964
|
+
port: number;
|
|
14965
|
+
};
|
|
14966
|
+
cookie?: never;
|
|
14967
|
+
};
|
|
14968
|
+
requestBody?: never;
|
|
14969
|
+
responses: {
|
|
14970
|
+
/** @description No content. */
|
|
14971
|
+
204: {
|
|
14972
|
+
headers: {
|
|
14973
|
+
[name: string]: unknown;
|
|
14974
|
+
};
|
|
14975
|
+
content?: never;
|
|
14976
|
+
};
|
|
14977
|
+
/** @description Default Response */
|
|
14978
|
+
"4XX": {
|
|
14979
|
+
headers: {
|
|
14980
|
+
[name: string]: unknown;
|
|
14981
|
+
};
|
|
14982
|
+
content: {
|
|
14983
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
14984
|
+
};
|
|
14985
|
+
};
|
|
14986
|
+
/** @description Default Response */
|
|
14987
|
+
"5XX": {
|
|
14988
|
+
headers: {
|
|
14989
|
+
[name: string]: unknown;
|
|
14990
|
+
};
|
|
14991
|
+
content: {
|
|
14992
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
14993
|
+
};
|
|
14994
|
+
};
|
|
14995
|
+
};
|
|
14996
|
+
};
|
|
14997
|
+
getV1WorkspacesWorkspaceIdPorts: {
|
|
14998
|
+
parameters: {
|
|
14999
|
+
query?: never;
|
|
15000
|
+
header?: never;
|
|
15001
|
+
path: {
|
|
15002
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
15003
|
+
workspace_id: string;
|
|
15004
|
+
};
|
|
15005
|
+
cookie?: never;
|
|
15006
|
+
};
|
|
15007
|
+
requestBody?: never;
|
|
15008
|
+
responses: {
|
|
15009
|
+
/** @description Default Response */
|
|
15010
|
+
200: {
|
|
15011
|
+
headers: {
|
|
15012
|
+
[name: string]: unknown;
|
|
15013
|
+
};
|
|
15014
|
+
content: {
|
|
15015
|
+
"application/json": {
|
|
15016
|
+
ports: components["schemas"]["Port"][];
|
|
15017
|
+
};
|
|
15018
|
+
};
|
|
15019
|
+
};
|
|
15020
|
+
/** @description Default Response */
|
|
15021
|
+
"4XX": {
|
|
15022
|
+
headers: {
|
|
15023
|
+
[name: string]: unknown;
|
|
15024
|
+
};
|
|
15025
|
+
content: {
|
|
15026
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15027
|
+
};
|
|
15028
|
+
};
|
|
15029
|
+
/** @description Default Response */
|
|
15030
|
+
"5XX": {
|
|
15031
|
+
headers: {
|
|
15032
|
+
[name: string]: unknown;
|
|
15033
|
+
};
|
|
15034
|
+
content: {
|
|
15035
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15036
|
+
};
|
|
15037
|
+
};
|
|
15038
|
+
};
|
|
15039
|
+
};
|
|
15040
|
+
postV1WorkspacesWorkspaceIdPortsPortTokens: {
|
|
15041
|
+
parameters: {
|
|
15042
|
+
query?: never;
|
|
15043
|
+
header?: never;
|
|
15044
|
+
path: {
|
|
15045
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
15046
|
+
workspace_id: string;
|
|
15047
|
+
/** @description TCP port inside the workspace (1-65535). */
|
|
15048
|
+
port: number;
|
|
15049
|
+
};
|
|
15050
|
+
cookie?: never;
|
|
15051
|
+
};
|
|
15052
|
+
requestBody?: {
|
|
15053
|
+
content: {
|
|
15054
|
+
"application/json": {
|
|
15055
|
+
/**
|
|
15056
|
+
* @description Lifetime in seconds (60-86400, default 3600).
|
|
15057
|
+
* @default 3600
|
|
15058
|
+
*/
|
|
15059
|
+
ttl_seconds?: number;
|
|
15060
|
+
};
|
|
15061
|
+
};
|
|
15062
|
+
};
|
|
15063
|
+
responses: {
|
|
15064
|
+
/** @description Default Response */
|
|
15065
|
+
201: {
|
|
15066
|
+
headers: {
|
|
15067
|
+
[name: string]: unknown;
|
|
15068
|
+
};
|
|
15069
|
+
content: {
|
|
15070
|
+
"application/json": {
|
|
15071
|
+
/** @description sfp_…: send as `Authorization: Bearer <token>` (or `X-Shardflux-Token`) to `url`. Revoked when the port is closed. */
|
|
15072
|
+
token: string;
|
|
15073
|
+
/**
|
|
15074
|
+
* Format: date-time
|
|
15075
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
15076
|
+
*/
|
|
15077
|
+
expires_at: string;
|
|
15078
|
+
/** @description The port’s URL. */
|
|
15079
|
+
url: string;
|
|
15080
|
+
};
|
|
15081
|
+
};
|
|
15082
|
+
};
|
|
15083
|
+
/** @description Default Response */
|
|
15084
|
+
"4XX": {
|
|
15085
|
+
headers: {
|
|
15086
|
+
[name: string]: unknown;
|
|
15087
|
+
};
|
|
15088
|
+
content: {
|
|
15089
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15090
|
+
};
|
|
15091
|
+
};
|
|
15092
|
+
/** @description Default Response */
|
|
15093
|
+
"5XX": {
|
|
15094
|
+
headers: {
|
|
15095
|
+
[name: string]: unknown;
|
|
15096
|
+
};
|
|
15097
|
+
content: {
|
|
15098
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15099
|
+
};
|
|
15100
|
+
};
|
|
15101
|
+
};
|
|
15102
|
+
};
|
|
15103
|
+
postV1WorkspacesWorkspaceIdPortsPortLinks: {
|
|
15104
|
+
parameters: {
|
|
15105
|
+
query?: never;
|
|
15106
|
+
header?: never;
|
|
15107
|
+
path: {
|
|
15108
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
15109
|
+
workspace_id: string;
|
|
15110
|
+
/** @description TCP port inside the workspace (1-65535). */
|
|
15111
|
+
port: number;
|
|
15112
|
+
};
|
|
15113
|
+
cookie?: never;
|
|
15114
|
+
};
|
|
15115
|
+
requestBody?: {
|
|
15116
|
+
content: {
|
|
15117
|
+
"application/json": {
|
|
15118
|
+
/**
|
|
15119
|
+
* @description Lifetime of the link and of the browser session it starts (60-604800 s, default 86400).
|
|
15120
|
+
* @default 86400
|
|
15121
|
+
*/
|
|
15122
|
+
ttl_seconds?: number;
|
|
15123
|
+
/** @description Where the link lands (default `/`): a path starting with one `/`, printable ASCII, query allowed. */
|
|
15124
|
+
path?: string;
|
|
15125
|
+
};
|
|
15126
|
+
};
|
|
15127
|
+
};
|
|
15128
|
+
responses: {
|
|
15129
|
+
/** @description Default Response */
|
|
15130
|
+
201: {
|
|
15131
|
+
headers: {
|
|
15132
|
+
[name: string]: unknown;
|
|
15133
|
+
};
|
|
15134
|
+
content: {
|
|
15135
|
+
"application/json": {
|
|
15136
|
+
/** @description Open in a browser: it sets a session cookie for the port’s host (until expires_at) and redirects to `path`. */
|
|
15137
|
+
url: string;
|
|
15138
|
+
/**
|
|
15139
|
+
* Format: date-time
|
|
15140
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
15141
|
+
*/
|
|
15142
|
+
expires_at: string;
|
|
15143
|
+
};
|
|
15144
|
+
};
|
|
15145
|
+
};
|
|
15146
|
+
/** @description Default Response */
|
|
15147
|
+
"4XX": {
|
|
15148
|
+
headers: {
|
|
15149
|
+
[name: string]: unknown;
|
|
15150
|
+
};
|
|
15151
|
+
content: {
|
|
15152
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15153
|
+
};
|
|
15154
|
+
};
|
|
15155
|
+
/** @description Default Response */
|
|
15156
|
+
"5XX": {
|
|
15157
|
+
headers: {
|
|
15158
|
+
[name: string]: unknown;
|
|
15159
|
+
};
|
|
15160
|
+
content: {
|
|
15161
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15162
|
+
};
|
|
15163
|
+
};
|
|
15164
|
+
};
|
|
15165
|
+
};
|
|
15166
|
+
postV1WorkspacesWorkspaceIdPortsPortCallback: {
|
|
15167
|
+
parameters: {
|
|
15168
|
+
query?: never;
|
|
15169
|
+
header?: never;
|
|
15170
|
+
path: {
|
|
15171
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
15172
|
+
workspace_id: string;
|
|
15173
|
+
/** @description TCP port inside the workspace (1-65535). */
|
|
15174
|
+
port: number;
|
|
15175
|
+
};
|
|
15176
|
+
cookie?: never;
|
|
15177
|
+
};
|
|
15178
|
+
requestBody?: never;
|
|
15179
|
+
responses: {
|
|
15180
|
+
/** @description Default Response */
|
|
15181
|
+
201: {
|
|
15182
|
+
headers: {
|
|
15183
|
+
[name: string]: unknown;
|
|
15184
|
+
};
|
|
15185
|
+
content: {
|
|
15186
|
+
"application/json": {
|
|
15187
|
+
/** @description https://<port>-<handle>.<domain>/__shardflux/callback/sfcb_…/: append your own path. Shown once. */
|
|
15188
|
+
url: string;
|
|
15189
|
+
/**
|
|
15190
|
+
* Format: date-time
|
|
15191
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
15192
|
+
*/
|
|
15193
|
+
created_at: string;
|
|
15194
|
+
};
|
|
15195
|
+
};
|
|
15196
|
+
};
|
|
15197
|
+
/** @description Default Response */
|
|
15198
|
+
"4XX": {
|
|
15199
|
+
headers: {
|
|
15200
|
+
[name: string]: unknown;
|
|
15201
|
+
};
|
|
15202
|
+
content: {
|
|
15203
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15204
|
+
};
|
|
15205
|
+
};
|
|
15206
|
+
/** @description Default Response */
|
|
15207
|
+
"5XX": {
|
|
15208
|
+
headers: {
|
|
15209
|
+
[name: string]: unknown;
|
|
15210
|
+
};
|
|
15211
|
+
content: {
|
|
15212
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15213
|
+
};
|
|
15214
|
+
};
|
|
15215
|
+
};
|
|
15216
|
+
};
|
|
15217
|
+
deleteV1WorkspacesWorkspaceIdPortsPortCallback: {
|
|
15218
|
+
parameters: {
|
|
15219
|
+
query?: never;
|
|
15220
|
+
header?: never;
|
|
15221
|
+
path: {
|
|
15222
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
15223
|
+
workspace_id: string;
|
|
15224
|
+
/** @description TCP port inside the workspace (1-65535). */
|
|
15225
|
+
port: number;
|
|
15226
|
+
};
|
|
15227
|
+
cookie?: never;
|
|
15228
|
+
};
|
|
15229
|
+
requestBody?: never;
|
|
15230
|
+
responses: {
|
|
15231
|
+
/** @description No content. */
|
|
15232
|
+
204: {
|
|
15233
|
+
headers: {
|
|
15234
|
+
[name: string]: unknown;
|
|
15235
|
+
};
|
|
15236
|
+
content?: never;
|
|
15237
|
+
};
|
|
15238
|
+
/** @description Default Response */
|
|
15239
|
+
"4XX": {
|
|
15240
|
+
headers: {
|
|
15241
|
+
[name: string]: unknown;
|
|
15242
|
+
};
|
|
15243
|
+
content: {
|
|
15244
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15245
|
+
};
|
|
15246
|
+
};
|
|
15247
|
+
/** @description Default Response */
|
|
15248
|
+
"5XX": {
|
|
15249
|
+
headers: {
|
|
15250
|
+
[name: string]: unknown;
|
|
15251
|
+
};
|
|
15252
|
+
content: {
|
|
15253
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15254
|
+
};
|
|
15255
|
+
};
|
|
15256
|
+
};
|
|
15257
|
+
};
|
|
15258
|
+
putApiV1WorkspacesWorkspaceIdPortsPort: {
|
|
15259
|
+
parameters: {
|
|
15260
|
+
query?: never;
|
|
15261
|
+
header?: never;
|
|
15262
|
+
path: {
|
|
15263
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
15264
|
+
workspace_id: string;
|
|
15265
|
+
/** @description TCP port inside the workspace (1-65535). */
|
|
15266
|
+
port: number;
|
|
15267
|
+
};
|
|
15268
|
+
cookie?: never;
|
|
15269
|
+
};
|
|
15270
|
+
requestBody?: never;
|
|
15271
|
+
responses: {
|
|
15272
|
+
/** @description An exposed port of a workspace (contracts §39.3). Private: every request needs a credential. */
|
|
15273
|
+
200: {
|
|
15274
|
+
headers: {
|
|
15275
|
+
[name: string]: unknown;
|
|
15276
|
+
};
|
|
15277
|
+
content: {
|
|
15278
|
+
"application/json": components["schemas"]["Port"];
|
|
15279
|
+
};
|
|
15280
|
+
};
|
|
15281
|
+
/** @description An exposed port of a workspace (contracts §39.3). Private: every request needs a credential. */
|
|
15282
|
+
201: {
|
|
15283
|
+
headers: {
|
|
15284
|
+
[name: string]: unknown;
|
|
15285
|
+
};
|
|
15286
|
+
content: {
|
|
15287
|
+
"application/json": components["schemas"]["Port"];
|
|
15288
|
+
};
|
|
15289
|
+
};
|
|
15290
|
+
/** @description Default Response */
|
|
15291
|
+
"4XX": {
|
|
15292
|
+
headers: {
|
|
15293
|
+
[name: string]: unknown;
|
|
15294
|
+
};
|
|
15295
|
+
content: {
|
|
15296
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15297
|
+
};
|
|
15298
|
+
};
|
|
15299
|
+
/** @description Default Response */
|
|
15300
|
+
"5XX": {
|
|
15301
|
+
headers: {
|
|
15302
|
+
[name: string]: unknown;
|
|
15303
|
+
};
|
|
15304
|
+
content: {
|
|
15305
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15306
|
+
};
|
|
15307
|
+
};
|
|
15308
|
+
};
|
|
15309
|
+
};
|
|
15310
|
+
deleteApiV1WorkspacesWorkspaceIdPortsPort: {
|
|
15311
|
+
parameters: {
|
|
15312
|
+
query?: never;
|
|
15313
|
+
header?: never;
|
|
15314
|
+
path: {
|
|
15315
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
15316
|
+
workspace_id: string;
|
|
15317
|
+
/** @description TCP port inside the workspace (1-65535). */
|
|
15318
|
+
port: number;
|
|
15319
|
+
};
|
|
15320
|
+
cookie?: never;
|
|
15321
|
+
};
|
|
15322
|
+
requestBody?: never;
|
|
15323
|
+
responses: {
|
|
15324
|
+
/** @description No content. */
|
|
15325
|
+
204: {
|
|
15326
|
+
headers: {
|
|
15327
|
+
[name: string]: unknown;
|
|
15328
|
+
};
|
|
15329
|
+
content?: never;
|
|
15330
|
+
};
|
|
15331
|
+
/** @description Default Response */
|
|
15332
|
+
"4XX": {
|
|
15333
|
+
headers: {
|
|
15334
|
+
[name: string]: unknown;
|
|
15335
|
+
};
|
|
15336
|
+
content: {
|
|
15337
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15338
|
+
};
|
|
15339
|
+
};
|
|
15340
|
+
/** @description Default Response */
|
|
15341
|
+
"5XX": {
|
|
15342
|
+
headers: {
|
|
15343
|
+
[name: string]: unknown;
|
|
15344
|
+
};
|
|
15345
|
+
content: {
|
|
15346
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15347
|
+
};
|
|
15348
|
+
};
|
|
15349
|
+
};
|
|
15350
|
+
};
|
|
15351
|
+
getApiV1WorkspacesWorkspaceIdPorts: {
|
|
15352
|
+
parameters: {
|
|
15353
|
+
query?: never;
|
|
15354
|
+
header?: never;
|
|
15355
|
+
path: {
|
|
15356
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
15357
|
+
workspace_id: string;
|
|
15358
|
+
};
|
|
15359
|
+
cookie?: never;
|
|
15360
|
+
};
|
|
15361
|
+
requestBody?: never;
|
|
15362
|
+
responses: {
|
|
15363
|
+
/** @description Default Response */
|
|
15364
|
+
200: {
|
|
15365
|
+
headers: {
|
|
15366
|
+
[name: string]: unknown;
|
|
15367
|
+
};
|
|
15368
|
+
content: {
|
|
15369
|
+
"application/json": {
|
|
15370
|
+
ports: components["schemas"]["Port"][];
|
|
15371
|
+
};
|
|
15372
|
+
};
|
|
15373
|
+
};
|
|
15374
|
+
/** @description Default Response */
|
|
15375
|
+
"4XX": {
|
|
15376
|
+
headers: {
|
|
15377
|
+
[name: string]: unknown;
|
|
15378
|
+
};
|
|
15379
|
+
content: {
|
|
15380
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15381
|
+
};
|
|
15382
|
+
};
|
|
15383
|
+
/** @description Default Response */
|
|
15384
|
+
"5XX": {
|
|
15385
|
+
headers: {
|
|
15386
|
+
[name: string]: unknown;
|
|
15387
|
+
};
|
|
15388
|
+
content: {
|
|
15389
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15390
|
+
};
|
|
15391
|
+
};
|
|
15392
|
+
};
|
|
15393
|
+
};
|
|
15394
|
+
postApiV1WorkspacesWorkspaceIdPortsPortTokens: {
|
|
15395
|
+
parameters: {
|
|
15396
|
+
query?: never;
|
|
15397
|
+
header?: never;
|
|
15398
|
+
path: {
|
|
15399
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
15400
|
+
workspace_id: string;
|
|
15401
|
+
/** @description TCP port inside the workspace (1-65535). */
|
|
15402
|
+
port: number;
|
|
15403
|
+
};
|
|
15404
|
+
cookie?: never;
|
|
15405
|
+
};
|
|
15406
|
+
requestBody?: {
|
|
15407
|
+
content: {
|
|
15408
|
+
"application/json": {
|
|
15409
|
+
/**
|
|
15410
|
+
* @description Lifetime in seconds (60-86400, default 3600).
|
|
15411
|
+
* @default 3600
|
|
15412
|
+
*/
|
|
15413
|
+
ttl_seconds?: number;
|
|
15414
|
+
};
|
|
15415
|
+
};
|
|
15416
|
+
};
|
|
15417
|
+
responses: {
|
|
15418
|
+
/** @description Default Response */
|
|
15419
|
+
201: {
|
|
15420
|
+
headers: {
|
|
15421
|
+
[name: string]: unknown;
|
|
15422
|
+
};
|
|
15423
|
+
content: {
|
|
15424
|
+
"application/json": {
|
|
15425
|
+
/** @description sfp_…: send as `Authorization: Bearer <token>` (or `X-Shardflux-Token`) to `url`. Revoked when the port is closed. */
|
|
15426
|
+
token: string;
|
|
15427
|
+
/**
|
|
15428
|
+
* Format: date-time
|
|
15429
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
15430
|
+
*/
|
|
15431
|
+
expires_at: string;
|
|
15432
|
+
/** @description The port’s URL. */
|
|
15433
|
+
url: string;
|
|
15434
|
+
};
|
|
15435
|
+
};
|
|
15436
|
+
};
|
|
15437
|
+
/** @description Default Response */
|
|
15438
|
+
"4XX": {
|
|
15439
|
+
headers: {
|
|
15440
|
+
[name: string]: unknown;
|
|
15441
|
+
};
|
|
15442
|
+
content: {
|
|
15443
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15444
|
+
};
|
|
15445
|
+
};
|
|
15446
|
+
/** @description Default Response */
|
|
15447
|
+
"5XX": {
|
|
15448
|
+
headers: {
|
|
15449
|
+
[name: string]: unknown;
|
|
15450
|
+
};
|
|
15451
|
+
content: {
|
|
15452
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15453
|
+
};
|
|
15454
|
+
};
|
|
15455
|
+
};
|
|
15456
|
+
};
|
|
15457
|
+
postApiV1WorkspacesWorkspaceIdPortsPortLinks: {
|
|
15458
|
+
parameters: {
|
|
15459
|
+
query?: never;
|
|
15460
|
+
header?: never;
|
|
15461
|
+
path: {
|
|
15462
|
+
/** @description UUIDv7, lowercase canonical form. */
|
|
15463
|
+
workspace_id: string;
|
|
15464
|
+
/** @description TCP port inside the workspace (1-65535). */
|
|
15465
|
+
port: number;
|
|
15466
|
+
};
|
|
15467
|
+
cookie?: never;
|
|
15468
|
+
};
|
|
15469
|
+
requestBody?: {
|
|
15470
|
+
content: {
|
|
15471
|
+
"application/json": {
|
|
15472
|
+
/**
|
|
15473
|
+
* @description Lifetime of the link and of the browser session it starts (60-604800 s, default 86400).
|
|
15474
|
+
* @default 86400
|
|
15475
|
+
*/
|
|
15476
|
+
ttl_seconds?: number;
|
|
15477
|
+
/** @description Where the link lands (default `/`): a path starting with one `/`, printable ASCII, query allowed. */
|
|
15478
|
+
path?: string;
|
|
15479
|
+
};
|
|
15480
|
+
};
|
|
15481
|
+
};
|
|
15482
|
+
responses: {
|
|
15483
|
+
/** @description Default Response */
|
|
15484
|
+
201: {
|
|
15485
|
+
headers: {
|
|
15486
|
+
[name: string]: unknown;
|
|
15487
|
+
};
|
|
15488
|
+
content: {
|
|
15489
|
+
"application/json": {
|
|
15490
|
+
/** @description Open in a browser: it sets a session cookie for the port’s host (until expires_at) and redirects to `path`. */
|
|
15491
|
+
url: string;
|
|
15492
|
+
/**
|
|
15493
|
+
* Format: date-time
|
|
15494
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
15495
|
+
*/
|
|
15496
|
+
expires_at: string;
|
|
15497
|
+
};
|
|
15498
|
+
};
|
|
15499
|
+
};
|
|
15500
|
+
/** @description Default Response */
|
|
15501
|
+
"4XX": {
|
|
15502
|
+
headers: {
|
|
15503
|
+
[name: string]: unknown;
|
|
15504
|
+
};
|
|
15505
|
+
content: {
|
|
15506
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15507
|
+
};
|
|
15508
|
+
};
|
|
15509
|
+
/** @description Default Response */
|
|
15510
|
+
"5XX": {
|
|
15511
|
+
headers: {
|
|
15512
|
+
[name: string]: unknown;
|
|
15513
|
+
};
|
|
15514
|
+
content: {
|
|
15515
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
15516
|
+
};
|
|
15517
|
+
};
|
|
15518
|
+
};
|
|
15519
|
+
};
|
|
15520
|
+
postApiV1WorkspacesWorkspaceIdPortsPortCallback: {
|
|
13900
15521
|
parameters: {
|
|
13901
|
-
query?:
|
|
13902
|
-
limit?: number;
|
|
13903
|
-
cursor?: string;
|
|
13904
|
-
};
|
|
15522
|
+
query?: never;
|
|
13905
15523
|
header?: never;
|
|
13906
15524
|
path: {
|
|
13907
15525
|
/** @description UUIDv7, lowercase canonical form. */
|
|
13908
15526
|
workspace_id: string;
|
|
15527
|
+
/** @description TCP port inside the workspace (1-65535). */
|
|
15528
|
+
port: number;
|
|
13909
15529
|
};
|
|
13910
15530
|
cookie?: never;
|
|
13911
15531
|
};
|
|
13912
15532
|
requestBody?: never;
|
|
13913
15533
|
responses: {
|
|
13914
15534
|
/** @description Default Response */
|
|
13915
|
-
|
|
15535
|
+
201: {
|
|
13916
15536
|
headers: {
|
|
13917
15537
|
[name: string]: unknown;
|
|
13918
15538
|
};
|
|
13919
15539
|
content: {
|
|
13920
15540
|
"application/json": {
|
|
13921
|
-
|
|
13922
|
-
|
|
13923
|
-
|
|
13924
|
-
|
|
13925
|
-
|
|
13926
|
-
|
|
13927
|
-
|
|
13928
|
-
* Format: uuid
|
|
13929
|
-
* @description UUIDv7, lowercase canonical form.
|
|
13930
|
-
*/
|
|
13931
|
-
workspace_id: string;
|
|
13932
|
-
agent_label: string;
|
|
13933
|
-
principal_type: "user" | "api_key";
|
|
13934
|
-
/**
|
|
13935
|
-
* Format: uuid
|
|
13936
|
-
* @description UUIDv7, lowercase canonical form.
|
|
13937
|
-
*/
|
|
13938
|
-
principal_id: string;
|
|
13939
|
-
/**
|
|
13940
|
-
* Format: date-time
|
|
13941
|
-
* @description RFC 3339 UTC timestamp with Z.
|
|
13942
|
-
*/
|
|
13943
|
-
created_at: string;
|
|
13944
|
-
last_token_issued_at: string | null;
|
|
13945
|
-
tokens_issued: number;
|
|
13946
|
-
revoked_at: string | null;
|
|
13947
|
-
}[];
|
|
13948
|
-
next_cursor: string | null;
|
|
15541
|
+
/** @description https://<port>-<handle>.<domain>/__shardflux/callback/sfcb_…/: append your own path. Shown once. */
|
|
15542
|
+
url: string;
|
|
15543
|
+
/**
|
|
15544
|
+
* Format: date-time
|
|
15545
|
+
* @description RFC 3339 UTC timestamp with Z.
|
|
15546
|
+
*/
|
|
15547
|
+
created_at: string;
|
|
13949
15548
|
};
|
|
13950
15549
|
};
|
|
13951
15550
|
};
|
|
@@ -13969,58 +15568,26 @@ export interface operations {
|
|
|
13969
15568
|
};
|
|
13970
15569
|
};
|
|
13971
15570
|
};
|
|
13972
|
-
|
|
15571
|
+
deleteApiV1WorkspacesWorkspaceIdPortsPortCallback: {
|
|
13973
15572
|
parameters: {
|
|
13974
15573
|
query?: never;
|
|
13975
15574
|
header?: never;
|
|
13976
15575
|
path: {
|
|
13977
15576
|
/** @description UUIDv7, lowercase canonical form. */
|
|
13978
15577
|
workspace_id: string;
|
|
15578
|
+
/** @description TCP port inside the workspace (1-65535). */
|
|
15579
|
+
port: number;
|
|
13979
15580
|
};
|
|
13980
15581
|
cookie?: never;
|
|
13981
15582
|
};
|
|
13982
|
-
requestBody
|
|
13983
|
-
content: {
|
|
13984
|
-
"application/json": {
|
|
13985
|
-
/** @enum {string} */
|
|
13986
|
-
tool: "exec" | "files" | "pty" | "process" | "git" | "browser";
|
|
13987
|
-
/** @description Attribution label; one agent session per (workspace, principal, label). */
|
|
13988
|
-
agent_label?: string;
|
|
13989
|
-
};
|
|
13990
|
-
};
|
|
13991
|
-
};
|
|
15583
|
+
requestBody?: never;
|
|
13992
15584
|
responses: {
|
|
13993
|
-
/** @description
|
|
13994
|
-
|
|
15585
|
+
/** @description No content. */
|
|
15586
|
+
204: {
|
|
13995
15587
|
headers: {
|
|
13996
15588
|
[name: string]: unknown;
|
|
13997
15589
|
};
|
|
13998
|
-
content
|
|
13999
|
-
"application/json": {
|
|
14000
|
-
/** @description Single use, valid 30 s; pass as `?ticket=` on the cell WebSocket upgrade from the same Origin. */
|
|
14001
|
-
ticket: string;
|
|
14002
|
-
/**
|
|
14003
|
-
* Format: date-time
|
|
14004
|
-
* @description RFC 3339 UTC timestamp with Z.
|
|
14005
|
-
*/
|
|
14006
|
-
expires_at: string;
|
|
14007
|
-
/**
|
|
14008
|
-
* Format: uuid
|
|
14009
|
-
* @description UUIDv7, lowercase canonical form.
|
|
14010
|
-
*/
|
|
14011
|
-
workspace_id: string;
|
|
14012
|
-
/** @enum {string} */
|
|
14013
|
-
tool: "exec" | "files" | "pty" | "process" | "git" | "browser";
|
|
14014
|
-
/**
|
|
14015
|
-
* Format: uuid
|
|
14016
|
-
* @description UUIDv7, lowercase canonical form.
|
|
14017
|
-
*/
|
|
14018
|
-
agent_session_id: string;
|
|
14019
|
-
origin: string;
|
|
14020
|
-
ownership_epoch: number;
|
|
14021
|
-
cell_endpoint: string;
|
|
14022
|
-
};
|
|
14023
|
-
};
|
|
15590
|
+
content?: never;
|
|
14024
15591
|
};
|
|
14025
15592
|
/** @description Default Response */
|
|
14026
15593
|
"4XX": {
|
|
@@ -14042,56 +15609,69 @@ export interface operations {
|
|
|
14042
15609
|
};
|
|
14043
15610
|
};
|
|
14044
15611
|
};
|
|
14045
|
-
|
|
15612
|
+
postV1InternalPortWakes: {
|
|
14046
15613
|
parameters: {
|
|
14047
15614
|
query?: never;
|
|
14048
|
-
header?:
|
|
14049
|
-
|
|
14050
|
-
|
|
14051
|
-
organization_id: string;
|
|
15615
|
+
header?: {
|
|
15616
|
+
/** @description RFC 7240 preference, e.g. `wait=20` (held wake). */
|
|
15617
|
+
prefer?: string;
|
|
14052
15618
|
};
|
|
15619
|
+
path?: never;
|
|
14053
15620
|
cookie?: never;
|
|
14054
15621
|
};
|
|
14055
|
-
requestBody
|
|
15622
|
+
requestBody: {
|
|
15623
|
+
content: {
|
|
15624
|
+
"application/json": {
|
|
15625
|
+
/**
|
|
15626
|
+
* Format: uuid
|
|
15627
|
+
* @description UUIDv7, lowercase canonical form.
|
|
15628
|
+
*/
|
|
15629
|
+
workspace_id: string;
|
|
15630
|
+
/** @description TCP port inside the workspace (1-65535). */
|
|
15631
|
+
port: number;
|
|
15632
|
+
/** @description The callback URL’s secret (`sfcb_…`) when the request came in on the callback path; omit when Authorization carries a port token. */
|
|
15633
|
+
callback_secret?: string;
|
|
15634
|
+
};
|
|
15635
|
+
};
|
|
15636
|
+
};
|
|
14056
15637
|
responses: {
|
|
14057
|
-
/** @description
|
|
15638
|
+
/** @description 200: running (operation null: it already was) or the resume succeeded during the hold. 202: the resume/open to wait for. */
|
|
14058
15639
|
200: {
|
|
14059
15640
|
headers: {
|
|
14060
15641
|
[name: string]: unknown;
|
|
14061
15642
|
};
|
|
14062
15643
|
content: {
|
|
14063
15644
|
"application/json": {
|
|
14064
|
-
|
|
14065
|
-
|
|
14066
|
-
|
|
14067
|
-
|
|
14068
|
-
|
|
14069
|
-
|
|
14070
|
-
|
|
14071
|
-
|
|
14072
|
-
source: "override" | "subscription" | "trial" | "default";
|
|
14073
|
-
/** @description When this plan grant stops applying (a trial or partner grant); null when it lasts until changed. */
|
|
14074
|
-
ends_at: string | null;
|
|
14075
|
-
} | null;
|
|
14076
|
-
/** @description Resolved plan limits (null = unlimited). */
|
|
14077
|
-
limits: {
|
|
14078
|
-
[key: string]: unknown;
|
|
14079
|
-
};
|
|
14080
|
-
allowances: {
|
|
14081
|
-
[key: string]: unknown;
|
|
14082
|
-
};
|
|
14083
|
-
policies: {
|
|
14084
|
-
[key: string]: unknown;
|
|
15645
|
+
workspace: {
|
|
15646
|
+
/**
|
|
15647
|
+
* Format: uuid
|
|
15648
|
+
* @description UUIDv7, lowercase canonical form.
|
|
15649
|
+
*/
|
|
15650
|
+
id: string;
|
|
15651
|
+
observed_state: string;
|
|
15652
|
+
ownership_epoch: number;
|
|
14085
15653
|
};
|
|
14086
|
-
|
|
14087
|
-
|
|
14088
|
-
|
|
15654
|
+
operation: components["schemas"]["Operation"] | null;
|
|
15655
|
+
};
|
|
15656
|
+
};
|
|
15657
|
+
};
|
|
15658
|
+
/** @description 200: running (operation null: it already was) or the resume succeeded during the hold. 202: the resume/open to wait for. */
|
|
15659
|
+
202: {
|
|
15660
|
+
headers: {
|
|
15661
|
+
[name: string]: unknown;
|
|
15662
|
+
};
|
|
15663
|
+
content: {
|
|
15664
|
+
"application/json": {
|
|
15665
|
+
workspace: {
|
|
15666
|
+
/**
|
|
15667
|
+
* Format: uuid
|
|
15668
|
+
* @description UUIDv7, lowercase canonical form.
|
|
15669
|
+
*/
|
|
15670
|
+
id: string;
|
|
15671
|
+
observed_state: string;
|
|
15672
|
+
ownership_epoch: number;
|
|
14089
15673
|
};
|
|
14090
|
-
|
|
14091
|
-
* Format: date-time
|
|
14092
|
-
* @description RFC 3339 UTC timestamp with Z.
|
|
14093
|
-
*/
|
|
14094
|
-
resolved_at: string;
|
|
15674
|
+
operation: components["schemas"]["Operation"] | null;
|
|
14095
15675
|
};
|
|
14096
15676
|
};
|
|
14097
15677
|
};
|
|
@@ -28007,8 +29587,8 @@ export interface operations {
|
|
|
28007
29587
|
display_name: string;
|
|
28008
29588
|
unit: string;
|
|
28009
29589
|
meters: ("cpu_seconds" | "memory_gib_seconds" | "storage_gib_seconds" | "egress_bytes" | "ingress_bytes" | "volume_storage_gib_seconds")[];
|
|
28010
|
-
/** @description hard_cap: exhausting it refuses opens/resumes (402 allowance_exhausted) and running workspaces are suspended; spare_capacity: no allowance cap (runs on reclaimable spare capacity); reported: shown and notified, never enforced by refusing access; egress_block (outbound_transfer_gb, contracts §18): at 100% outbound internet traffic is blocked by an organization egress override until upgrade, purchase or the next period (workspaces keep running, starts are not refused). */
|
|
28011
|
-
enforcement: "hard_cap" | "spare_capacity" | "reported" | "egress_block";
|
|
29590
|
+
/** @description hard_cap: exhausting it refuses opens/resumes (402 allowance_exhausted) and running workspaces are suspended; spare_capacity: no allowance cap (runs on reclaimable spare capacity); reported: shown and notified, never enforced by refusing access; egress_block (outbound_transfer_gb, contracts §18): at 100% outbound internet traffic is blocked by an organization egress override until upgrade, purchase or the next period (workspaces keep running, starts are not refused); storage_block (retained_state_gib, contracts §40): at 100% opening a new workspace key and forking are refused (403 quota_exceeded, details.limit retained_state) until retained state is below the allowance (existing workspaces keep running, waking, suspending and resuming; nothing is deleted or charged). */
|
|
29591
|
+
enforcement: "hard_cap" | "spare_capacity" | "reported" | "egress_block" | "storage_block";
|
|
28012
29592
|
included: number | null;
|
|
28013
29593
|
used: number;
|
|
28014
29594
|
remaining: number | null;
|
|
@@ -28016,8 +29596,8 @@ export interface operations {
|
|
|
28016
29596
|
included_meter_units: number | null;
|
|
28017
29597
|
used_meter_units: number | null;
|
|
28018
29598
|
remaining_meter_units: number | null;
|
|
28019
|
-
/** @description ok: below 80 %. warning: 80 % or more of the allowance. exhausted: a hard cap is used up and starts are refused (402 allowance_exhausted; see exhausted_reason). overage: a CPU-hours or RAM GiB-hours allowance is used up while opt-in overage is on and below its spend cap, so starts are admitted and the usage past it is charged (spend_cap). over_allowance: a reported allowance is exceeded (never refused). egress_blocked: the outbound transfer allowance is used up and outbound traffic is blocked. uncapped: runs on spare capacity. not_included: the plan does not define it. */
|
|
28020
|
-
cap_state: "ok" | "warning" | "exhausted" | "overage" | "over_allowance" | "egress_blocked" | "uncapped" | "not_included";
|
|
29599
|
+
/** @description ok: below 80 %. warning: 80 % or more of the allowance. exhausted: a hard cap is used up and starts are refused (402 allowance_exhausted; see exhausted_reason). overage: a CPU-hours or RAM GiB-hours allowance is used up while opt-in overage is on and below its spend cap, so starts are admitted and the usage past it is charged (spend_cap). over_allowance: a reported allowance is exceeded (never refused). egress_blocked: the outbound transfer allowance is used up and outbound traffic is blocked. storage_blocked: the retained state allowance is used up and new workspaces and forks are refused (403 quota_exceeded). uncapped: runs on spare capacity. not_included: the plan does not define it. */
|
|
29600
|
+
cap_state: "ok" | "warning" | "exhausted" | "overage" | "over_allowance" | "egress_blocked" | "storage_blocked" | "uncapped" | "not_included";
|
|
28021
29601
|
}[];
|
|
28022
29602
|
meters: {
|
|
28023
29603
|
/** @enum {string} */
|
|
@@ -29062,8 +30642,8 @@ export interface operations {
|
|
|
29062
30642
|
display_name: string;
|
|
29063
30643
|
unit: string;
|
|
29064
30644
|
meters: ("cpu_seconds" | "memory_gib_seconds" | "storage_gib_seconds" | "egress_bytes" | "ingress_bytes" | "volume_storage_gib_seconds")[];
|
|
29065
|
-
/** @description hard_cap: exhausting it refuses opens/resumes (402 allowance_exhausted) and running workspaces are suspended; spare_capacity: no allowance cap (runs on reclaimable spare capacity); reported: shown and notified, never enforced by refusing access; egress_block (outbound_transfer_gb, contracts §18): at 100% outbound internet traffic is blocked by an organization egress override until upgrade, purchase or the next period (workspaces keep running, starts are not refused). */
|
|
29066
|
-
enforcement: "hard_cap" | "spare_capacity" | "reported" | "egress_block";
|
|
30645
|
+
/** @description hard_cap: exhausting it refuses opens/resumes (402 allowance_exhausted) and running workspaces are suspended; spare_capacity: no allowance cap (runs on reclaimable spare capacity); reported: shown and notified, never enforced by refusing access; egress_block (outbound_transfer_gb, contracts §18): at 100% outbound internet traffic is blocked by an organization egress override until upgrade, purchase or the next period (workspaces keep running, starts are not refused); storage_block (retained_state_gib, contracts §40): at 100% opening a new workspace key and forking are refused (403 quota_exceeded, details.limit retained_state) until retained state is below the allowance (existing workspaces keep running, waking, suspending and resuming; nothing is deleted or charged). */
|
|
30646
|
+
enforcement: "hard_cap" | "spare_capacity" | "reported" | "egress_block" | "storage_block";
|
|
29067
30647
|
included: number | null;
|
|
29068
30648
|
used: number;
|
|
29069
30649
|
remaining: number | null;
|
|
@@ -29071,8 +30651,8 @@ export interface operations {
|
|
|
29071
30651
|
included_meter_units: number | null;
|
|
29072
30652
|
used_meter_units: number | null;
|
|
29073
30653
|
remaining_meter_units: number | null;
|
|
29074
|
-
/** @description ok: below 80 %. warning: 80 % or more of the allowance. exhausted: a hard cap is used up and starts are refused (402 allowance_exhausted; see exhausted_reason). overage: a CPU-hours or RAM GiB-hours allowance is used up while opt-in overage is on and below its spend cap, so starts are admitted and the usage past it is charged (spend_cap). over_allowance: a reported allowance is exceeded (never refused). egress_blocked: the outbound transfer allowance is used up and outbound traffic is blocked. uncapped: runs on spare capacity. not_included: the plan does not define it. */
|
|
29075
|
-
cap_state: "ok" | "warning" | "exhausted" | "overage" | "over_allowance" | "egress_blocked" | "uncapped" | "not_included";
|
|
30654
|
+
/** @description ok: below 80 %. warning: 80 % or more of the allowance. exhausted: a hard cap is used up and starts are refused (402 allowance_exhausted; see exhausted_reason). overage: a CPU-hours or RAM GiB-hours allowance is used up while opt-in overage is on and below its spend cap, so starts are admitted and the usage past it is charged (spend_cap). over_allowance: a reported allowance is exceeded (never refused). egress_blocked: the outbound transfer allowance is used up and outbound traffic is blocked. storage_blocked: the retained state allowance is used up and new workspaces and forks are refused (403 quota_exceeded). uncapped: runs on spare capacity. not_included: the plan does not define it. */
|
|
30655
|
+
cap_state: "ok" | "warning" | "exhausted" | "overage" | "over_allowance" | "egress_blocked" | "storage_blocked" | "uncapped" | "not_included";
|
|
29076
30656
|
}[];
|
|
29077
30657
|
meters: {
|
|
29078
30658
|
/** @enum {string} */
|
|
@@ -35348,6 +36928,18 @@ export interface operations {
|
|
|
35348
36928
|
disk_gib: number;
|
|
35349
36929
|
}[];
|
|
35350
36930
|
heartbeat_stale_after_seconds: number;
|
|
36931
|
+
/** @description Contracts §42.5: what draining this host costs in memory (cell.hosts.drain_runtime_impact). */
|
|
36932
|
+
runtime_impact?: {
|
|
36933
|
+
/** @description known: recorded by the cell’s capacity tick within 15 minutes; unknown: not recorded; stale: older (both reported, neither blocks). */
|
|
36934
|
+
status: "known" | "unknown" | "stale";
|
|
36935
|
+
memory_lost: number | null;
|
|
36936
|
+
waits: number | null;
|
|
36937
|
+
/** @description Affected snapshot compatibility keys with counts and their outlook without this host (largest first, at most 20). */
|
|
36938
|
+
keys: {
|
|
36939
|
+
[key: string]: unknown;
|
|
36940
|
+
}[];
|
|
36941
|
+
computed_at: string | null;
|
|
36942
|
+
};
|
|
35351
36943
|
host: {
|
|
35352
36944
|
/**
|
|
35353
36945
|
* Format: uuid
|
|
@@ -35539,6 +37131,18 @@ export interface operations {
|
|
|
35539
37131
|
disk_gib: number;
|
|
35540
37132
|
}[];
|
|
35541
37133
|
heartbeat_stale_after_seconds: number;
|
|
37134
|
+
/** @description Contracts §42.5: what draining this host costs in memory (cell.hosts.drain_runtime_impact). */
|
|
37135
|
+
runtime_impact?: {
|
|
37136
|
+
/** @description known: recorded by the cell’s capacity tick within 15 minutes; unknown: not recorded; stale: older (both reported, neither blocks). */
|
|
37137
|
+
status: "known" | "unknown" | "stale";
|
|
37138
|
+
memory_lost: number | null;
|
|
37139
|
+
waits: number | null;
|
|
37140
|
+
/** @description Affected snapshot compatibility keys with counts and their outlook without this host (largest first, at most 20). */
|
|
37141
|
+
keys: {
|
|
37142
|
+
[key: string]: unknown;
|
|
37143
|
+
}[];
|
|
37144
|
+
computed_at: string | null;
|
|
37145
|
+
};
|
|
35542
37146
|
host: {
|
|
35543
37147
|
/**
|
|
35544
37148
|
* Format: uuid
|
|
@@ -35727,6 +37331,18 @@ export interface operations {
|
|
|
35727
37331
|
disk_gib: number;
|
|
35728
37332
|
}[];
|
|
35729
37333
|
heartbeat_stale_after_seconds: number;
|
|
37334
|
+
/** @description Contracts §42.5: what draining this host costs in memory (cell.hosts.drain_runtime_impact). */
|
|
37335
|
+
runtime_impact?: {
|
|
37336
|
+
/** @description known: recorded by the cell’s capacity tick within 15 minutes; unknown: not recorded; stale: older (both reported, neither blocks). */
|
|
37337
|
+
status: "known" | "unknown" | "stale";
|
|
37338
|
+
memory_lost: number | null;
|
|
37339
|
+
waits: number | null;
|
|
37340
|
+
/** @description Affected snapshot compatibility keys with counts and their outlook without this host (largest first, at most 20). */
|
|
37341
|
+
keys: {
|
|
37342
|
+
[key: string]: unknown;
|
|
37343
|
+
}[];
|
|
37344
|
+
computed_at: string | null;
|
|
37345
|
+
};
|
|
35730
37346
|
host: {
|
|
35731
37347
|
/**
|
|
35732
37348
|
* Format: uuid
|
|
@@ -35920,6 +37536,18 @@ export interface operations {
|
|
|
35920
37536
|
disk_gib: number;
|
|
35921
37537
|
}[];
|
|
35922
37538
|
heartbeat_stale_after_seconds: number;
|
|
37539
|
+
/** @description Contracts §42.5: what draining this host costs in memory (cell.hosts.drain_runtime_impact). */
|
|
37540
|
+
runtime_impact?: {
|
|
37541
|
+
/** @description known: recorded by the cell’s capacity tick within 15 minutes; unknown: not recorded; stale: older (both reported, neither blocks). */
|
|
37542
|
+
status: "known" | "unknown" | "stale";
|
|
37543
|
+
memory_lost: number | null;
|
|
37544
|
+
waits: number | null;
|
|
37545
|
+
/** @description Affected snapshot compatibility keys with counts and their outlook without this host (largest first, at most 20). */
|
|
37546
|
+
keys: {
|
|
37547
|
+
[key: string]: unknown;
|
|
37548
|
+
}[];
|
|
37549
|
+
computed_at: string | null;
|
|
37550
|
+
};
|
|
35923
37551
|
host: {
|
|
35924
37552
|
/**
|
|
35925
37553
|
* Format: uuid
|
|
@@ -37070,4 +38698,116 @@ export interface operations {
|
|
|
37070
38698
|
};
|
|
37071
38699
|
};
|
|
37072
38700
|
};
|
|
38701
|
+
getApiV1OauthAuthorization: {
|
|
38702
|
+
parameters: {
|
|
38703
|
+
query?: {
|
|
38704
|
+
response_type?: string;
|
|
38705
|
+
client_id?: string;
|
|
38706
|
+
redirect_uri?: string;
|
|
38707
|
+
code_challenge?: string;
|
|
38708
|
+
code_challenge_method?: string;
|
|
38709
|
+
scope?: string;
|
|
38710
|
+
state?: string;
|
|
38711
|
+
resource?: string;
|
|
38712
|
+
};
|
|
38713
|
+
header?: never;
|
|
38714
|
+
path?: never;
|
|
38715
|
+
cookie?: never;
|
|
38716
|
+
};
|
|
38717
|
+
requestBody?: never;
|
|
38718
|
+
responses: {
|
|
38719
|
+
/** @description Default Response */
|
|
38720
|
+
200: {
|
|
38721
|
+
headers: {
|
|
38722
|
+
[name: string]: unknown;
|
|
38723
|
+
};
|
|
38724
|
+
content: {
|
|
38725
|
+
"application/json": components["schemas"]["OAuthConsentView"];
|
|
38726
|
+
};
|
|
38727
|
+
};
|
|
38728
|
+
/** @description Default Response */
|
|
38729
|
+
"4XX": {
|
|
38730
|
+
headers: {
|
|
38731
|
+
[name: string]: unknown;
|
|
38732
|
+
};
|
|
38733
|
+
content: {
|
|
38734
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
38735
|
+
};
|
|
38736
|
+
};
|
|
38737
|
+
/** @description Default Response */
|
|
38738
|
+
"5XX": {
|
|
38739
|
+
headers: {
|
|
38740
|
+
[name: string]: unknown;
|
|
38741
|
+
};
|
|
38742
|
+
content: {
|
|
38743
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
38744
|
+
};
|
|
38745
|
+
};
|
|
38746
|
+
};
|
|
38747
|
+
};
|
|
38748
|
+
postApiV1OauthAuthorization: {
|
|
38749
|
+
parameters: {
|
|
38750
|
+
query?: never;
|
|
38751
|
+
header?: never;
|
|
38752
|
+
path?: never;
|
|
38753
|
+
cookie?: never;
|
|
38754
|
+
};
|
|
38755
|
+
requestBody: {
|
|
38756
|
+
content: {
|
|
38757
|
+
"application/json": {
|
|
38758
|
+
/** @description The authorization request exactly as /oauth/authorize received it (RFC 6749 §4.1.1, PKCE S256, RFC 8707 resource). */
|
|
38759
|
+
request: {
|
|
38760
|
+
response_type?: string;
|
|
38761
|
+
client_id?: string;
|
|
38762
|
+
redirect_uri?: string;
|
|
38763
|
+
code_challenge?: string;
|
|
38764
|
+
code_challenge_method?: string;
|
|
38765
|
+
scope?: string;
|
|
38766
|
+
state?: string;
|
|
38767
|
+
resource?: string;
|
|
38768
|
+
} & {
|
|
38769
|
+
[key: string]: unknown;
|
|
38770
|
+
};
|
|
38771
|
+
decision: "approve" | "deny";
|
|
38772
|
+
/**
|
|
38773
|
+
* Format: uuid
|
|
38774
|
+
* @description UUIDv7, lowercase canonical form.
|
|
38775
|
+
*/
|
|
38776
|
+
project_id?: string;
|
|
38777
|
+
};
|
|
38778
|
+
};
|
|
38779
|
+
};
|
|
38780
|
+
responses: {
|
|
38781
|
+
/** @description Default Response */
|
|
38782
|
+
200: {
|
|
38783
|
+
headers: {
|
|
38784
|
+
[name: string]: unknown;
|
|
38785
|
+
};
|
|
38786
|
+
content: {
|
|
38787
|
+
"application/json": {
|
|
38788
|
+
/** @description Send the browser here (the client’s redirect_uri with code or error, state and iss). */
|
|
38789
|
+
redirect_to: string;
|
|
38790
|
+
};
|
|
38791
|
+
};
|
|
38792
|
+
};
|
|
38793
|
+
/** @description Default Response */
|
|
38794
|
+
"4XX": {
|
|
38795
|
+
headers: {
|
|
38796
|
+
[name: string]: unknown;
|
|
38797
|
+
};
|
|
38798
|
+
content: {
|
|
38799
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
38800
|
+
};
|
|
38801
|
+
};
|
|
38802
|
+
/** @description Default Response */
|
|
38803
|
+
"5XX": {
|
|
38804
|
+
headers: {
|
|
38805
|
+
[name: string]: unknown;
|
|
38806
|
+
};
|
|
38807
|
+
content: {
|
|
38808
|
+
"application/json": components["schemas"]["ErrorBody"];
|
|
38809
|
+
};
|
|
38810
|
+
};
|
|
38811
|
+
};
|
|
38812
|
+
};
|
|
37073
38813
|
}
|