@boatdev/sdk 1.9.9 → 1.11.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/.openapi-generator/FILES +30 -0
- package/dist/apis/BoatApi.d.ts +144 -18
- package/dist/apis/BoatApi.js +305 -22
- package/dist/esm/apis/BoatApi.d.ts +144 -18
- package/dist/esm/apis/BoatApi.js +304 -21
- package/dist/esm/models/CreateSandboxRequest.d.ts +9 -3
- package/dist/esm/models/CreateSandboxRequest.js +2 -0
- package/dist/esm/models/CreateSandboxResponse.d.ts +6 -0
- package/dist/esm/models/CreateSandboxResponse.js +2 -0
- package/dist/esm/models/CreateScopedApiKeyRequest.d.ts +1 -1
- package/dist/esm/models/CredentialId.d.ts +3 -0
- package/dist/esm/models/CredentialId.js +3 -0
- package/dist/esm/models/CredentialProfile.d.ts +7 -0
- package/dist/esm/models/CredentialProfile.js +3 -0
- package/dist/esm/models/DeletionOperation.d.ts +1 -1
- package/dist/esm/models/LimitsFields.d.ts +1 -1
- package/dist/esm/models/LimitsResponse.d.ts +1 -1
- package/dist/esm/models/MeResponseAllOfUser.d.ts +1 -0
- package/dist/esm/models/MeResponseAllOfUser.js +1 -0
- package/dist/esm/models/ResourceAccess.d.ts +38 -0
- package/dist/esm/models/ResourceAccess.js +47 -0
- package/dist/esm/models/ResourceAccessUpdate.d.ts +38 -0
- package/dist/esm/models/ResourceAccessUpdate.js +45 -0
- package/dist/esm/models/ResumeRequest.d.ts +1 -1
- package/dist/esm/models/Sandbox.d.ts +35 -1
- package/dist/esm/models/Sandbox.js +17 -0
- package/dist/esm/models/SandboxCost.d.ts +44 -0
- package/dist/esm/models/SandboxCost.js +51 -0
- package/dist/esm/models/SandboxEnvironment.d.ts +7 -0
- package/dist/esm/models/SandboxEnvironment.js +3 -0
- package/dist/esm/models/SandboxLastReboot.d.ts +47 -0
- package/dist/esm/models/SandboxLastReboot.js +51 -0
- package/dist/esm/models/SandboxListResponse.d.ts +7 -0
- package/dist/esm/models/SandboxListResponse.js +3 -0
- package/dist/esm/models/SandboxListResponseAllOfDeletedCost.d.ts +44 -0
- package/dist/esm/models/SandboxListResponseAllOfDeletedCost.js +51 -0
- package/dist/esm/models/SavedSnapshot.d.ts +83 -0
- package/dist/esm/models/SavedSnapshot.js +71 -0
- package/dist/esm/models/SavedSnapshotAllowance.d.ts +81 -0
- package/dist/esm/models/SavedSnapshotAllowance.js +57 -0
- package/dist/esm/models/SavedSnapshotDeletedResponse.d.ts +64 -0
- package/dist/esm/models/SavedSnapshotDeletedResponse.js +67 -0
- package/dist/esm/models/SavedSnapshotInfoResponse.d.ts +52 -0
- package/dist/esm/models/SavedSnapshotInfoResponse.js +58 -0
- package/dist/esm/models/SavedSnapshotListResponse.d.ts +59 -0
- package/dist/esm/models/SavedSnapshotListResponse.js +61 -0
- package/dist/esm/models/SavedSnapshotSaveRequest.d.ts +38 -0
- package/dist/esm/models/SavedSnapshotSaveRequest.js +47 -0
- package/dist/esm/models/SavedSnapshotSavingResponse.d.ts +65 -0
- package/dist/esm/models/SavedSnapshotSavingResponse.js +68 -0
- package/dist/esm/models/SnapshotSummary.d.ts +1 -1
- package/dist/esm/models/Unshare200Response.d.ts +39 -0
- package/dist/esm/models/Unshare200Response.js +44 -0
- package/dist/esm/models/UpdateCredentialProfileRequest.d.ts +7 -0
- package/dist/esm/models/UpdateCredentialProfileRequest.js +3 -0
- package/dist/esm/models/UpdateOrganization200Response.d.ts +50 -0
- package/dist/esm/models/UpdateOrganization200Response.js +47 -0
- package/dist/esm/models/UpdateOrganizationRequest.d.ts +32 -0
- package/dist/esm/models/UpdateOrganizationRequest.js +43 -0
- package/dist/esm/models/UpdateSandboxEnvironmentRequest.d.ts +7 -0
- package/dist/esm/models/UpdateSandboxEnvironmentRequest.js +3 -0
- package/dist/esm/models/index.d.ts +15 -0
- package/dist/esm/models/index.js +15 -0
- package/dist/models/CreateSandboxRequest.d.ts +9 -3
- package/dist/models/CreateSandboxRequest.js +2 -0
- package/dist/models/CreateSandboxResponse.d.ts +6 -0
- package/dist/models/CreateSandboxResponse.js +2 -0
- package/dist/models/CreateScopedApiKeyRequest.d.ts +1 -1
- package/dist/models/CredentialId.d.ts +3 -0
- package/dist/models/CredentialId.js +3 -0
- package/dist/models/CredentialProfile.d.ts +7 -0
- package/dist/models/CredentialProfile.js +3 -0
- package/dist/models/DeletionOperation.d.ts +1 -1
- package/dist/models/LimitsFields.d.ts +1 -1
- package/dist/models/LimitsResponse.d.ts +1 -1
- package/dist/models/MeResponseAllOfUser.d.ts +1 -0
- package/dist/models/MeResponseAllOfUser.js +1 -0
- package/dist/models/ResourceAccess.d.ts +38 -0
- package/dist/models/ResourceAccess.js +54 -0
- package/dist/models/ResourceAccessUpdate.d.ts +38 -0
- package/dist/models/ResourceAccessUpdate.js +52 -0
- package/dist/models/ResumeRequest.d.ts +1 -1
- package/dist/models/Sandbox.d.ts +35 -1
- package/dist/models/Sandbox.js +18 -1
- package/dist/models/SandboxCost.d.ts +44 -0
- package/dist/models/SandboxCost.js +58 -0
- package/dist/models/SandboxEnvironment.d.ts +7 -0
- package/dist/models/SandboxEnvironment.js +3 -0
- package/dist/models/SandboxLastReboot.d.ts +47 -0
- package/dist/models/SandboxLastReboot.js +59 -0
- package/dist/models/SandboxListResponse.d.ts +7 -0
- package/dist/models/SandboxListResponse.js +3 -0
- package/dist/models/SandboxListResponseAllOfDeletedCost.d.ts +44 -0
- package/dist/models/SandboxListResponseAllOfDeletedCost.js +58 -0
- package/dist/models/SavedSnapshot.d.ts +83 -0
- package/dist/models/SavedSnapshot.js +79 -0
- package/dist/models/SavedSnapshotAllowance.d.ts +81 -0
- package/dist/models/SavedSnapshotAllowance.js +64 -0
- package/dist/models/SavedSnapshotDeletedResponse.d.ts +64 -0
- package/dist/models/SavedSnapshotDeletedResponse.js +75 -0
- package/dist/models/SavedSnapshotInfoResponse.d.ts +52 -0
- package/dist/models/SavedSnapshotInfoResponse.js +66 -0
- package/dist/models/SavedSnapshotListResponse.d.ts +59 -0
- package/dist/models/SavedSnapshotListResponse.js +69 -0
- package/dist/models/SavedSnapshotSaveRequest.d.ts +38 -0
- package/dist/models/SavedSnapshotSaveRequest.js +54 -0
- package/dist/models/SavedSnapshotSavingResponse.d.ts +65 -0
- package/dist/models/SavedSnapshotSavingResponse.js +76 -0
- package/dist/models/SnapshotSummary.d.ts +1 -1
- package/dist/models/Unshare200Response.d.ts +39 -0
- package/dist/models/Unshare200Response.js +51 -0
- package/dist/models/UpdateCredentialProfileRequest.d.ts +7 -0
- package/dist/models/UpdateCredentialProfileRequest.js +3 -0
- package/dist/models/UpdateOrganization200Response.d.ts +50 -0
- package/dist/models/UpdateOrganization200Response.js +54 -0
- package/dist/models/UpdateOrganizationRequest.d.ts +32 -0
- package/dist/models/UpdateOrganizationRequest.js +50 -0
- package/dist/models/UpdateSandboxEnvironmentRequest.d.ts +7 -0
- package/dist/models/UpdateSandboxEnvironmentRequest.js +3 -0
- package/dist/models/index.d.ts +15 -0
- package/dist/models/index.js +15 -0
- package/docs/BoatApi.md +468 -19
- package/docs/CreateSandboxRequest.md +2 -0
- package/docs/CreateSandboxResponse.md +2 -0
- package/docs/CredentialProfile.md +2 -0
- package/docs/ResourceAccess.md +35 -0
- package/docs/ResourceAccessUpdate.md +35 -0
- package/docs/Sandbox.md +8 -0
- package/docs/SandboxCost.md +37 -0
- package/docs/SandboxEnvironment.md +2 -0
- package/docs/SandboxLastReboot.md +35 -0
- package/docs/SandboxListResponse.md +2 -0
- package/docs/SandboxListResponseAllOfDeletedCost.md +37 -0
- package/docs/SavedSnapshot.md +47 -0
- package/docs/SavedSnapshotAllowance.md +49 -0
- package/docs/SavedSnapshotDeletedResponse.md +38 -0
- package/docs/SavedSnapshotInfoResponse.md +36 -0
- package/docs/SavedSnapshotListResponse.md +38 -0
- package/docs/SavedSnapshotSaveRequest.md +34 -0
- package/docs/SavedSnapshotSavingResponse.md +38 -0
- package/docs/Unshare200Response.md +34 -0
- package/docs/UpdateCredentialProfileRequest.md +2 -0
- package/docs/UpdateOrganization200Response.md +38 -0
- package/docs/UpdateOrganizationRequest.md +32 -0
- package/docs/UpdateSandboxEnvironmentRequest.md +2 -0
- package/package.json +1 -1
- package/src/apis/BoatApi.ts +440 -21
- package/src/models/CreateSandboxRequest.ts +11 -3
- package/src/models/CreateSandboxResponse.ts +8 -0
- package/src/models/CreateScopedApiKeyRequest.ts +1 -1
- package/src/models/CredentialId.ts +3 -0
- package/src/models/CredentialProfile.ts +15 -0
- package/src/models/DeletionOperation.ts +1 -1
- package/src/models/LimitsFields.ts +1 -1
- package/src/models/LimitsResponse.ts +1 -1
- package/src/models/MeResponseAllOfUser.ts +1 -0
- package/src/models/ResourceAccess.ts +75 -0
- package/src/models/ResourceAccessUpdate.ts +74 -0
- package/src/models/ResumeRequest.ts +1 -1
- package/src/models/Sandbox.ts +56 -1
- package/src/models/SandboxCost.ts +84 -0
- package/src/models/SandboxEnvironment.ts +15 -0
- package/src/models/SandboxLastReboot.ts +85 -0
- package/src/models/SandboxListResponse.ts +15 -0
- package/src/models/SandboxListResponseAllOfDeletedCost.ts +84 -0
- package/src/models/SavedSnapshot.ts +137 -0
- package/src/models/SavedSnapshotAllowance.ts +130 -0
- package/src/models/SavedSnapshotDeletedResponse.ts +111 -0
- package/src/models/SavedSnapshotInfoResponse.ts +102 -0
- package/src/models/SavedSnapshotListResponse.ts +117 -0
- package/src/models/SavedSnapshotSaveRequest.ts +75 -0
- package/src/models/SavedSnapshotSavingResponse.ts +119 -0
- package/src/models/SnapshotSummary.ts +1 -1
- package/src/models/Unshare200Response.ts +81 -0
- package/src/models/UpdateCredentialProfileRequest.ts +16 -0
- package/src/models/UpdateOrganization200Response.ts +89 -0
- package/src/models/UpdateOrganizationRequest.ts +66 -0
- package/src/models/UpdateSandboxEnvironmentRequest.ts +15 -0
- package/src/models/index.ts +15 -0
package/docs/BoatApi.md
CHANGED
|
@@ -20,7 +20,7 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
20
20
|
| [**createDownloadUrl**](BoatApi.md#createdownloadurl) | **POST** /sandboxes/{sandboxId}/files/download-url | Get a download URL for a sandbox file |
|
|
21
21
|
| [**createEnvironment**](BoatApi.md#createenvironment) | **POST** /environments | Create a sandbox environment |
|
|
22
22
|
| [**createScopedApiKey**](BoatApi.md#createscopedapikeyoperation) | **POST** /api-keys/scoped | Create a scoped API key |
|
|
23
|
-
| [**createSnapshotShare**](BoatApi.md#createsnapshotshare) | **POST** /
|
|
23
|
+
| [**createSnapshotShare**](BoatApi.md#createsnapshotshare) | **POST** /saved-snapshots/{name}/shares | Share a saved snapshot |
|
|
24
24
|
| [**createUploadUrl**](BoatApi.md#createuploadurl) | **POST** /sandboxes/{sandboxId}/files/upload-url | Get an upload URL for a sandbox file |
|
|
25
25
|
| [**createWebhook**](BoatApi.md#createwebhook) | **POST** /webhooks | Create webhook |
|
|
26
26
|
| [**deleteCredentialAccount**](BoatApi.md#deletecredentialaccount) | **DELETE** /credential-profiles/{profile}/accounts/{credential}/{account} | Forget an account of a credential |
|
|
@@ -34,6 +34,7 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
34
34
|
| [**deleteNamedSnapshot**](BoatApi.md#deletenamedsnapshot) | **DELETE** /named-snapshots/{name} | Remove a named snapshot |
|
|
35
35
|
| [**deleteSandbox**](BoatApi.md#deletesandbox) | **DELETE** /sandboxes/{sandboxId} | Permanently delete sandbox data |
|
|
36
36
|
| [**deleteSandboxSnapshots**](BoatApi.md#deletesandboxsnapshots) | **DELETE** /sandboxes/{sandboxId}/snapshots | Permanently delete all snapshots of a sandbox |
|
|
37
|
+
| [**deleteSavedSnapshot**](BoatApi.md#deletesavedsnapshot) | **DELETE** /saved-snapshots/{name} | Remove a saved snapshot |
|
|
37
38
|
| [**deleteSnapshot**](BoatApi.md#deletesnapshot) | **DELETE** /snapshots/{snapshotId} | Permanently delete snapshot data |
|
|
38
39
|
| [**deleteTelemetry**](BoatApi.md#deletetelemetry) | **DELETE** /telemetry | Remove OpenTelemetry export |
|
|
39
40
|
| [**deleteWebhook**](BoatApi.md#deletewebhook) | **DELETE** /webhooks/{webhookId} | Delete webhook |
|
|
@@ -50,6 +51,7 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
50
51
|
| [**getLatestSandboxSnapshot**](BoatApi.md#getlatestsandboxsnapshot) | **GET** /sandboxes/{sandboxId}/snapshots/latest | Get latest boat snapshot |
|
|
51
52
|
| [**getNamedSnapshot**](BoatApi.md#getnamedsnapshot) | **GET** /named-snapshots/{name} | Get a named snapshot |
|
|
52
53
|
| [**getSandboxAiUsage**](BoatApi.md#getsandboxaiusage) | **GET** /sandboxes/{sandboxId}/ai-usage | Get sandbox AI usage |
|
|
54
|
+
| [**getSavedSnapshot**](BoatApi.md#getsavedsnapshot) | **GET** /saved-snapshots/{name} | Get a saved snapshot |
|
|
53
55
|
| [**getSnapshotDownload**](BoatApi.md#getsnapshotdownload) | **GET** /snapshots/{snapshotId}/download | Get snapshot download |
|
|
54
56
|
| [**getSnapshotFile**](BoatApi.md#getsnapshotfile) | **GET** /snapshots/{snapshotId}/files | Download a file or folder from a snapshot |
|
|
55
57
|
| [**getSnapshotTree**](BoatApi.md#getsnapshottree) | **GET** /snapshots/{snapshotId}/tree | Get snapshot file tree |
|
|
@@ -64,7 +66,8 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
64
66
|
| [**listNamedSnapshots**](BoatApi.md#listnamedsnapshots) | **GET** /named-snapshots | List named snapshots |
|
|
65
67
|
| [**listOrganizations**](BoatApi.md#listorganizations) | **GET** /orgs | List organizations |
|
|
66
68
|
| [**listSandboxSnapshots**](BoatApi.md#listsandboxsnapshots) | **GET** /sandboxes/{sandboxId}/snapshots | List boat snapshots |
|
|
67
|
-
| [**
|
|
69
|
+
| [**listSavedSnapshots**](BoatApi.md#listsavedsnapshots) | **GET** /saved-snapshots | List saved snapshots |
|
|
70
|
+
| [**listSnapshotShares**](BoatApi.md#listsnapshotshares) | **GET** /saved-snapshots/{name}/shares | List share codes of a saved snapshot |
|
|
68
71
|
| [**listSnapshots**](BoatApi.md#listsnapshots) | **GET** /snapshots | List snapshots |
|
|
69
72
|
| [**listWebhooks**](BoatApi.md#listwebhooks) | **GET** /webhooks | List webhooks |
|
|
70
73
|
| [**me**](BoatApi.md#me) | **GET** /me | Get current Boat user |
|
|
@@ -76,11 +79,12 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
76
79
|
| [**repos**](BoatApi.md#repos) | **GET** /repos | List GitHub repositories available to Boat |
|
|
77
80
|
| [**resume**](BoatApi.md#resumeoperation) | **POST** /sandboxes/{sandboxId}/resume | Resume sandbox |
|
|
78
81
|
| [**revokeApiKey**](BoatApi.md#revokeapikey) | **DELETE** /api-keys/{apiKeyId} | Revoke an API key |
|
|
79
|
-
| [**revokeSnapshotShare**](BoatApi.md#revokesnapshotshare) | **DELETE** /
|
|
82
|
+
| [**revokeSnapshotShare**](BoatApi.md#revokesnapshotshare) | **DELETE** /saved-snapshots/{name}/shares/{shareId} | Revoke a share code |
|
|
80
83
|
| [**rotateApiKey**](BoatApi.md#rotateapikey) | **POST** /api-keys/{apiKeyId}/rotate | Rotate an API key |
|
|
81
84
|
| [**rotateWebhookSigningSecret**](BoatApi.md#rotatewebhooksigningsecret) | **POST** /webhooks/{webhookId}/rotate | Rotate webhook signing secret |
|
|
82
85
|
| [**sandboxes**](BoatApi.md#sandboxes) | **GET** /sandboxes | List sandboxes |
|
|
83
86
|
| [**saveNamedSnapshot**](BoatApi.md#savenamedsnapshot) | **POST** /named-snapshots | Save a named snapshot |
|
|
87
|
+
| [**saveSavedSnapshot**](BoatApi.md#savesavedsnapshot) | **POST** /saved-snapshots | Save a saved snapshot |
|
|
84
88
|
| [**secrets**](BoatApi.md#secrets) | **GET** /secrets | Get Boat secrets setup |
|
|
85
89
|
| [**selectRepo**](BoatApi.md#selectrepo) | **POST** /repos | Select repository for sandboxes |
|
|
86
90
|
| [**setActiveOrganization**](BoatApi.md#setactiveorganization) | **PATCH** /orgs/active | Set the active organization |
|
|
@@ -96,11 +100,13 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
96
100
|
| [**stop**](BoatApi.md#stopoperation) | **POST** /sandboxes/{sandboxId}/stop | Stop and archive sandbox |
|
|
97
101
|
| [**stopCommand**](BoatApi.md#stopcommand) | **DELETE** /sandboxes/{sandboxId}/commands/{processId} | Stop a detached command |
|
|
98
102
|
| [**switchCredentialAccount**](BoatApi.md#switchcredentialaccount) | **PUT** /credential-profiles/{profile}/accounts/{credential}/{account}/active | Switch a credential to another account |
|
|
103
|
+
| [**unshare**](BoatApi.md#unshare) | **POST** /sandboxes/{sandboxId}/unshare | Make an organization sandbox private |
|
|
99
104
|
| [**update**](BoatApi.md#update) | **PATCH** /sandboxes/{sandboxId} | Update sandbox |
|
|
100
105
|
| [**updateAiProxy**](BoatApi.md#updateaiproxyoperation) | **PUT** /ai-proxy | Turn the AI credentials proxy on or off |
|
|
101
106
|
| [**updateCredentialProfile**](BoatApi.md#updatecredentialprofileoperation) | **PUT** /credential-profiles/{profile} | Update a credential profile |
|
|
102
107
|
| [**updateDataRetention**](BoatApi.md#updatedataretention) | **PATCH** /account/data-retention | Update account data-retention policy |
|
|
103
108
|
| [**updateEnvironment**](BoatApi.md#updateenvironment) | **PUT** /environments/{environmentId} | Update a sandbox environment |
|
|
109
|
+
| [**updateOrganization**](BoatApi.md#updateorganizationoperation) | **PATCH** /orgs/{org} | Update organization settings |
|
|
104
110
|
| [**updateSecrets**](BoatApi.md#updatesecrets) | **POST** /secrets | Update Boat secrets setup |
|
|
105
111
|
| [**updateWebhook**](BoatApi.md#updatewebhook) | **PATCH** /webhooks/{webhookId} | Update webhook |
|
|
106
112
|
| [**upgradeEnvironment**](BoatApi.md#upgradeenvironment) | **POST** /environments/{environmentId}/upgrade | Upgrade sandboxes to an environment\'s latest version |
|
|
@@ -161,7 +167,7 @@ example().catch(console.error);
|
|
|
161
167
|
| Name | Type | Description | Notes |
|
|
162
168
|
|------------- | ------------- | ------------- | -------------|
|
|
163
169
|
| **profile** | `string` | Profile id or name. | [Defaults to `undefined`] |
|
|
164
|
-
| **credential** | `CredentialId` | | [Defaults to `undefined`] [Enum: anthropic-api-key, openai-api-key, openrouter-api-key, llmgateway-api-key, deepseek-api-key, moonshot-api-key, mistral-api-key, claude-subscription, chatgpt-subscription, kimi-subscription, mistral-vibe-subscription, claude-bedrock, codex-bedrock] |
|
|
170
|
+
| **credential** | `CredentialId` | | [Defaults to `undefined`] [Enum: anthropic-api-key, openai-api-key, openrouter-api-key, llmgateway-api-key, deepseek-api-key, moonshot-api-key, mistral-api-key, xai-api-key, opencode-api-key, claude-subscription, chatgpt-subscription, kimi-subscription, mistral-vibe-subscription, grok-subscription, claude-bedrock, codex-bedrock] |
|
|
165
171
|
| **setCredentialKeyRequest** | [SetCredentialKeyRequest](SetCredentialKeyRequest.md) | | |
|
|
166
172
|
|
|
167
173
|
### Return type
|
|
@@ -1058,6 +1064,7 @@ example().catch(console.error);
|
|
|
1058
1064
|
| **202** | Boat accepted for provisioning. | - |
|
|
1059
1065
|
| **401** | Missing or invalid bearer token. | - |
|
|
1060
1066
|
| **402** | Account cannot currently create or operate sandboxes. The error body may include a dashboard billing URL, but billing actions are not part of the v1 API. | - |
|
|
1067
|
+
| **403** | `environment_forbidden`: the organization limits this environment to other members. Ask an owner or admin to add you. Other `403` codes can also apply. | - |
|
|
1061
1068
|
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
1062
1069
|
| **429** | Machine start or concurrent-sandbox limit reached. Create, fork and resume each count as one machine start against your plan\'s start limits (see the Billing guide; `rate_limited`, naming the window you hit). A sandbox that would exceed your plan\'s concurrent-sandbox cap is refused with `limit_reached`, or `member_limit_reached` when an organization owner has capped you below the plan. | - |
|
|
1063
1070
|
| **503** | No capacity. `no_ready_machine`: a `failFast` create, fork or resume found no ready machine of that type; nothing was started, billed, or counted, and a resumed sandbox stays stopped. `out_of_capacity`: creates and forks are paused until the provisioning queue drains. | - |
|
|
@@ -1374,9 +1381,9 @@ example().catch(console.error);
|
|
|
1374
1381
|
|
|
1375
1382
|
> NamedSnapshotShareCreatedResponse createSnapshotShare(name)
|
|
1376
1383
|
|
|
1377
|
-
Share a
|
|
1384
|
+
Share a saved snapshot
|
|
1378
1385
|
|
|
1379
|
-
Make a secret code that lets any Boat account create a sandbox from this
|
|
1386
|
+
Make a secret code that lets any Boat account create a sandbox from this saved snapshot (`boat snapshot share <name>` in the CLI). The response shows the code once; Boat stores only a hash. Re-saving the name changes what the code deploys. Removing the name removes its codes. Everything on the disk is shared, so do not keep secrets in files on it. Needs `snapshot.write`.
|
|
1380
1387
|
|
|
1381
1388
|
### Example
|
|
1382
1389
|
|
|
@@ -1647,7 +1654,7 @@ example().catch(console.error);
|
|
|
1647
1654
|
| Name | Type | Description | Notes |
|
|
1648
1655
|
|------------- | ------------- | ------------- | -------------|
|
|
1649
1656
|
| **profile** | `string` | Profile id or name. | [Defaults to `undefined`] |
|
|
1650
|
-
| **credential** | `CredentialId` | | [Defaults to `undefined`] [Enum: anthropic-api-key, openai-api-key, openrouter-api-key, llmgateway-api-key, deepseek-api-key, moonshot-api-key, mistral-api-key, claude-subscription, chatgpt-subscription, kimi-subscription, mistral-vibe-subscription, claude-bedrock, codex-bedrock] |
|
|
1657
|
+
| **credential** | `CredentialId` | | [Defaults to `undefined`] [Enum: anthropic-api-key, openai-api-key, openrouter-api-key, llmgateway-api-key, deepseek-api-key, moonshot-api-key, mistral-api-key, xai-api-key, opencode-api-key, claude-subscription, chatgpt-subscription, kimi-subscription, mistral-vibe-subscription, grok-subscription, claude-bedrock, codex-bedrock] |
|
|
1651
1658
|
| **account** | `string` | The account id from the list. | [Defaults to `undefined`] |
|
|
1652
1659
|
|
|
1653
1660
|
### Return type
|
|
@@ -1878,7 +1885,7 @@ example().catch(console.error);
|
|
|
1878
1885
|
| Name | Type | Description | Notes |
|
|
1879
1886
|
|------------- | ------------- | ------------- | -------------|
|
|
1880
1887
|
| **profile** | `string` | Profile id or name. | [Defaults to `undefined`] |
|
|
1881
|
-
| **credential** | `CredentialId` | | [Defaults to `undefined`] [Enum: anthropic-api-key, openai-api-key, openrouter-api-key, llmgateway-api-key, deepseek-api-key, moonshot-api-key, mistral-api-key, claude-subscription, chatgpt-subscription, kimi-subscription, mistral-vibe-subscription, claude-bedrock, codex-bedrock] |
|
|
1888
|
+
| **credential** | `CredentialId` | | [Defaults to `undefined`] [Enum: anthropic-api-key, openai-api-key, openrouter-api-key, llmgateway-api-key, deepseek-api-key, moonshot-api-key, mistral-api-key, xai-api-key, opencode-api-key, claude-subscription, chatgpt-subscription, kimi-subscription, mistral-vibe-subscription, grok-subscription, claude-bedrock, codex-bedrock] |
|
|
1882
1889
|
|
|
1883
1890
|
### Return type
|
|
1884
1891
|
|
|
@@ -2300,7 +2307,7 @@ example().catch(console.error);
|
|
|
2300
2307
|
|
|
2301
2308
|
Permanently delete sandbox data
|
|
2302
2309
|
|
|
2303
|
-
Accept irreversible background deletion of the sandbox machine, snapshots, and content-bearing records. This is not archive: the sandbox cannot be resumed.
|
|
2310
|
+
Accept irreversible background deletion of the sandbox machine, snapshots, and content-bearing records. This is not archive: the sandbox cannot be resumed. Saved snapshots and other shared artifacts remain independent. Poll the returned operation until `completed`.
|
|
2304
2311
|
|
|
2305
2312
|
### Example
|
|
2306
2313
|
|
|
@@ -2378,7 +2385,7 @@ example().catch(console.error);
|
|
|
2378
2385
|
|
|
2379
2386
|
Permanently delete all snapshots of a sandbox
|
|
2380
2387
|
|
|
2381
|
-
Accept irreversible deletion of every unpinned snapshot of this sandbox. The sandbox itself and its
|
|
2388
|
+
Accept irreversible deletion of every unpinned snapshot of this sandbox. The sandbox itself and its saved snapshots stay. Snapshots disappear from lists, restores and forks immediately; their stored data is purged in the background. Set `X-Ascii-Confirm-Delete` to the sandbox id.
|
|
2382
2389
|
|
|
2383
2390
|
### Example
|
|
2384
2391
|
|
|
@@ -2450,6 +2457,80 @@ example().catch(console.error);
|
|
|
2450
2457
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2451
2458
|
|
|
2452
2459
|
|
|
2460
|
+
## deleteSavedSnapshot
|
|
2461
|
+
|
|
2462
|
+
> SavedSnapshotDeletedResponse deleteSavedSnapshot(name)
|
|
2463
|
+
|
|
2464
|
+
Remove a saved snapshot
|
|
2465
|
+
|
|
2466
|
+
Remove a saved snapshot and release its storage (`boat snapshot rm <name>` in the CLI). Sandboxes already deployed from it are unaffected.
|
|
2467
|
+
|
|
2468
|
+
### Example
|
|
2469
|
+
|
|
2470
|
+
```ts
|
|
2471
|
+
import {
|
|
2472
|
+
Configuration,
|
|
2473
|
+
BoatApi,
|
|
2474
|
+
} from '@boatdev/sdk';
|
|
2475
|
+
import type { DeleteSavedSnapshotRequest } from '@boatdev/sdk';
|
|
2476
|
+
|
|
2477
|
+
async function example() {
|
|
2478
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2479
|
+
const config = new Configuration({
|
|
2480
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2481
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2482
|
+
});
|
|
2483
|
+
const api = new BoatApi(config);
|
|
2484
|
+
|
|
2485
|
+
const body = {
|
|
2486
|
+
// string
|
|
2487
|
+
name: name_example,
|
|
2488
|
+
} satisfies DeleteSavedSnapshotRequest;
|
|
2489
|
+
|
|
2490
|
+
try {
|
|
2491
|
+
const data = await api.deleteSavedSnapshot(body);
|
|
2492
|
+
console.log(data);
|
|
2493
|
+
} catch (error) {
|
|
2494
|
+
console.error(error);
|
|
2495
|
+
}
|
|
2496
|
+
}
|
|
2497
|
+
|
|
2498
|
+
// Run the test
|
|
2499
|
+
example().catch(console.error);
|
|
2500
|
+
```
|
|
2501
|
+
|
|
2502
|
+
### Parameters
|
|
2503
|
+
|
|
2504
|
+
|
|
2505
|
+
| Name | Type | Description | Notes |
|
|
2506
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2507
|
+
| **name** | `string` | | [Defaults to `undefined`] |
|
|
2508
|
+
|
|
2509
|
+
### Return type
|
|
2510
|
+
|
|
2511
|
+
[**SavedSnapshotDeletedResponse**](SavedSnapshotDeletedResponse.md)
|
|
2512
|
+
|
|
2513
|
+
### Authorization
|
|
2514
|
+
|
|
2515
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2516
|
+
|
|
2517
|
+
### HTTP request headers
|
|
2518
|
+
|
|
2519
|
+
- **Content-Type**: Not defined
|
|
2520
|
+
- **Accept**: `application/json`
|
|
2521
|
+
|
|
2522
|
+
|
|
2523
|
+
### HTTP response details
|
|
2524
|
+
| Status code | Description | Response headers |
|
|
2525
|
+
|-------------|-------------|------------------|
|
|
2526
|
+
| **200** | Removed. | - |
|
|
2527
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2528
|
+
| **404** | Resource not found. | - |
|
|
2529
|
+
| **409** | `save_in_progress`: a save under this name is still running. Wait for it to settle before removing it. | - |
|
|
2530
|
+
|
|
2531
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2532
|
+
|
|
2533
|
+
|
|
2453
2534
|
## deleteSnapshot
|
|
2454
2535
|
|
|
2455
2536
|
> DeletionOperationResponse deleteSnapshot(snapshotId, xAsciiConfirmDelete)
|
|
@@ -2986,6 +3067,7 @@ example().catch(console.error);
|
|
|
2986
3067
|
| **202** | Fork started. The response `id` is the new forked sandbox id. | - |
|
|
2987
3068
|
| **401** | Missing or invalid bearer token. | - |
|
|
2988
3069
|
| **402** | Account cannot currently create or operate sandboxes. The error body may include a dashboard billing URL, but billing actions are not part of the v1 API. | - |
|
|
3070
|
+
| **403** | `environment_forbidden`: the organization limits this environment to other members. Ask an owner or admin to add you. Other `403` codes can also apply. | - |
|
|
2989
3071
|
| **404** | Resource not found. | - |
|
|
2990
3072
|
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
2991
3073
|
| **429** | Machine start or concurrent-sandbox limit reached. Create, fork and resume each count as one machine start against your plan\'s start limits (see the Billing guide; `rate_limited`, naming the window you hit). A sandbox that would exceed your plan\'s concurrent-sandbox cap is refused with `limit_reached`, or `member_limit_reached` when an organization owner has capped you below the plan. | - |
|
|
@@ -3585,7 +3667,7 @@ example().catch(console.error);
|
|
|
3585
3667
|
|
|
3586
3668
|
Get sandbox AI usage
|
|
3587
3669
|
|
|
3588
|
-
One sandbox\'s proxied AI usage per UTC day, credential and model, and whether it is blocked. Needs an API key with `
|
|
3670
|
+
One sandbox\'s proxied AI usage per UTC day, credential and model, and whether it is blocked. Needs an API key with `sandbox.read` on the sandbox.
|
|
3589
3671
|
|
|
3590
3672
|
### Example
|
|
3591
3673
|
|
|
@@ -3655,6 +3737,77 @@ example().catch(console.error);
|
|
|
3655
3737
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3656
3738
|
|
|
3657
3739
|
|
|
3740
|
+
## getSavedSnapshot
|
|
3741
|
+
|
|
3742
|
+
> SavedSnapshotInfoResponse getSavedSnapshot(name)
|
|
3743
|
+
|
|
3744
|
+
Get a saved snapshot
|
|
3745
|
+
|
|
3746
|
+
### Example
|
|
3747
|
+
|
|
3748
|
+
```ts
|
|
3749
|
+
import {
|
|
3750
|
+
Configuration,
|
|
3751
|
+
BoatApi,
|
|
3752
|
+
} from '@boatdev/sdk';
|
|
3753
|
+
import type { GetSavedSnapshotRequest } from '@boatdev/sdk';
|
|
3754
|
+
|
|
3755
|
+
async function example() {
|
|
3756
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3757
|
+
const config = new Configuration({
|
|
3758
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3759
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3760
|
+
});
|
|
3761
|
+
const api = new BoatApi(config);
|
|
3762
|
+
|
|
3763
|
+
const body = {
|
|
3764
|
+
// string
|
|
3765
|
+
name: name_example,
|
|
3766
|
+
} satisfies GetSavedSnapshotRequest;
|
|
3767
|
+
|
|
3768
|
+
try {
|
|
3769
|
+
const data = await api.getSavedSnapshot(body);
|
|
3770
|
+
console.log(data);
|
|
3771
|
+
} catch (error) {
|
|
3772
|
+
console.error(error);
|
|
3773
|
+
}
|
|
3774
|
+
}
|
|
3775
|
+
|
|
3776
|
+
// Run the test
|
|
3777
|
+
example().catch(console.error);
|
|
3778
|
+
```
|
|
3779
|
+
|
|
3780
|
+
### Parameters
|
|
3781
|
+
|
|
3782
|
+
|
|
3783
|
+
| Name | Type | Description | Notes |
|
|
3784
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3785
|
+
| **name** | `string` | | [Defaults to `undefined`] |
|
|
3786
|
+
|
|
3787
|
+
### Return type
|
|
3788
|
+
|
|
3789
|
+
[**SavedSnapshotInfoResponse**](SavedSnapshotInfoResponse.md)
|
|
3790
|
+
|
|
3791
|
+
### Authorization
|
|
3792
|
+
|
|
3793
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3794
|
+
|
|
3795
|
+
### HTTP request headers
|
|
3796
|
+
|
|
3797
|
+
- **Content-Type**: Not defined
|
|
3798
|
+
- **Accept**: `application/json`
|
|
3799
|
+
|
|
3800
|
+
|
|
3801
|
+
### HTTP response details
|
|
3802
|
+
| Status code | Description | Response headers |
|
|
3803
|
+
|-------------|-------------|------------------|
|
|
3804
|
+
| **200** | The saved snapshot. | - |
|
|
3805
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3806
|
+
| **404** | Resource not found. | - |
|
|
3807
|
+
|
|
3808
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3809
|
+
|
|
3810
|
+
|
|
3658
3811
|
## getSnapshotDownload
|
|
3659
3812
|
|
|
3660
3813
|
> SnapshotDownloadResponse getSnapshotDownload(snapshotId)
|
|
@@ -4375,7 +4528,7 @@ example().catch(console.error);
|
|
|
4375
4528
|
| Name | Type | Description | Notes |
|
|
4376
4529
|
|------------- | ------------- | ------------- | -------------|
|
|
4377
4530
|
| **profile** | `string` | Profile id or name. | [Defaults to `undefined`] |
|
|
4378
|
-
| **credential** | `CredentialId` | | [Defaults to `undefined`] [Enum: anthropic-api-key, openai-api-key, openrouter-api-key, llmgateway-api-key, deepseek-api-key, moonshot-api-key, mistral-api-key, claude-subscription, chatgpt-subscription, kimi-subscription, mistral-vibe-subscription, claude-bedrock, codex-bedrock] |
|
|
4531
|
+
| **credential** | `CredentialId` | | [Defaults to `undefined`] [Enum: anthropic-api-key, openai-api-key, openrouter-api-key, llmgateway-api-key, deepseek-api-key, moonshot-api-key, mistral-api-key, xai-api-key, opencode-api-key, claude-subscription, chatgpt-subscription, kimi-subscription, mistral-vibe-subscription, grok-subscription, claude-bedrock, codex-bedrock] |
|
|
4379
4532
|
|
|
4380
4533
|
### Return type
|
|
4381
4534
|
|
|
@@ -4678,13 +4831,77 @@ example().catch(console.error);
|
|
|
4678
4831
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4679
4832
|
|
|
4680
4833
|
|
|
4834
|
+
## listSavedSnapshots
|
|
4835
|
+
|
|
4836
|
+
> SavedSnapshotListResponse listSavedSnapshots()
|
|
4837
|
+
|
|
4838
|
+
List saved snapshots
|
|
4839
|
+
|
|
4840
|
+
List your saved snapshots, newest first.
|
|
4841
|
+
|
|
4842
|
+
### Example
|
|
4843
|
+
|
|
4844
|
+
```ts
|
|
4845
|
+
import {
|
|
4846
|
+
Configuration,
|
|
4847
|
+
BoatApi,
|
|
4848
|
+
} from '@boatdev/sdk';
|
|
4849
|
+
import type { ListSavedSnapshotsRequest } from '@boatdev/sdk';
|
|
4850
|
+
|
|
4851
|
+
async function example() {
|
|
4852
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4853
|
+
const config = new Configuration({
|
|
4854
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4855
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4856
|
+
});
|
|
4857
|
+
const api = new BoatApi(config);
|
|
4858
|
+
|
|
4859
|
+
try {
|
|
4860
|
+
const data = await api.listSavedSnapshots();
|
|
4861
|
+
console.log(data);
|
|
4862
|
+
} catch (error) {
|
|
4863
|
+
console.error(error);
|
|
4864
|
+
}
|
|
4865
|
+
}
|
|
4866
|
+
|
|
4867
|
+
// Run the test
|
|
4868
|
+
example().catch(console.error);
|
|
4869
|
+
```
|
|
4870
|
+
|
|
4871
|
+
### Parameters
|
|
4872
|
+
|
|
4873
|
+
This endpoint does not need any parameter.
|
|
4874
|
+
|
|
4875
|
+
### Return type
|
|
4876
|
+
|
|
4877
|
+
[**SavedSnapshotListResponse**](SavedSnapshotListResponse.md)
|
|
4878
|
+
|
|
4879
|
+
### Authorization
|
|
4880
|
+
|
|
4881
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4882
|
+
|
|
4883
|
+
### HTTP request headers
|
|
4884
|
+
|
|
4885
|
+
- **Content-Type**: Not defined
|
|
4886
|
+
- **Accept**: `application/json`
|
|
4887
|
+
|
|
4888
|
+
|
|
4889
|
+
### HTTP response details
|
|
4890
|
+
| Status code | Description | Response headers |
|
|
4891
|
+
|-------------|-------------|------------------|
|
|
4892
|
+
| **200** | Saved snapshots owned by the authenticated Boat user. | - |
|
|
4893
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
4894
|
+
|
|
4895
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4896
|
+
|
|
4897
|
+
|
|
4681
4898
|
## listSnapshotShares
|
|
4682
4899
|
|
|
4683
4900
|
> NamedSnapshotShareListResponse listSnapshotShares(name)
|
|
4684
4901
|
|
|
4685
|
-
List share codes of a
|
|
4902
|
+
List share codes of a saved snapshot
|
|
4686
4903
|
|
|
4687
|
-
List the share codes of a
|
|
4904
|
+
List the share codes of a saved snapshot, active and revoked (`boat snapshot shares <name>` in the CLI). The full codes are not returned. Needs `snapshot.read`.
|
|
4688
4905
|
|
|
4689
4906
|
### Example
|
|
4690
4907
|
|
|
@@ -5270,7 +5487,7 @@ example().catch(console.error);
|
|
|
5270
5487
|
|
|
5271
5488
|
Recover a sandbox that stopped responding
|
|
5272
5489
|
|
|
5273
|
-
Power-cycle the machine of a sandbox that stopped answering. The disk is not touched. The sandbox usually answers again within 1-2 minutes and then saves your work by itself; `sandbox.recovered` fires when it does. Refused with `409`: - `sandbox_is_reachable`: the sandbox answers normally. - `too_soon`: a recover started less than 10 minutes ago. - `no_machine`: the sandbox has no machine. Resume it instead. - `recover_unsupported`: its machine cannot be power-cycled. Wait for it to answer, or resume it from its last snapshot. - `reset_failed`: the power-cycle failed. Reply to the incident email.
|
|
5490
|
+
Power-cycle the machine of a sandbox that stopped answering. The disk is not touched. The sandbox usually answers again within 1-2 minutes and then saves your work by itself; `sandbox.recovered` fires when it does. Refused with `409`: - `sandbox_is_reachable`: the sandbox answers normally. - `too_soon`: a recover started less than 10 minutes ago. - `no_machine`: the sandbox has no machine. Resume it instead. - `recover_unsupported`: its machine cannot be power-cycled. Wait for it to answer, or stop it with `{\"force\": true}` and resume it from its last good snapshot. With no snapshot, a forced stop loses everything. - `reset_failed`: the power-cycle failed. Reply to the incident email.
|
|
5274
5491
|
|
|
5275
5492
|
### Example
|
|
5276
5493
|
|
|
@@ -5496,6 +5713,7 @@ example().catch(console.error);
|
|
|
5496
5713
|
| **202** | Resume started. | - |
|
|
5497
5714
|
| **401** | Missing or invalid bearer token. | - |
|
|
5498
5715
|
| **402** | Account cannot currently create or operate sandboxes. The error body may include a dashboard billing URL, but billing actions are not part of the v1 API. | - |
|
|
5716
|
+
| **403** | `environment_forbidden`: the organization limits this environment to other members. Ask an owner or admin to add you. Other `403` codes can also apply. | - |
|
|
5499
5717
|
| **404** | Resource not found. | - |
|
|
5500
5718
|
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
5501
5719
|
| **429** | Machine start or concurrent-sandbox limit reached. Create, fork and resume each count as one machine start against your plan\'s start limits (see the Billing guide; `rate_limited`, naming the window you hit). A sandbox that would exceed your plan\'s concurrent-sandbox cap is refused with `limit_reached`, or `member_limit_reached` when an organization owner has capped you below the plan. | - |
|
|
@@ -5804,7 +6022,7 @@ example().catch(console.error);
|
|
|
5804
6022
|
|
|
5805
6023
|
## sandboxes
|
|
5806
6024
|
|
|
5807
|
-
> SandboxListResponse sandboxes(org, xBoatOrg, limit, cursor, sort, state)
|
|
6025
|
+
> SandboxListResponse sandboxes(org, xBoatOrg, limit, cursor, sort, state, include)
|
|
5808
6026
|
|
|
5809
6027
|
List sandboxes
|
|
5810
6028
|
|
|
@@ -5840,6 +6058,8 @@ async function example() {
|
|
|
5840
6058
|
sort: sort_example,
|
|
5841
6059
|
// string | Comma-separated sandbox state filter, for example `ready,idle,running`. (optional)
|
|
5842
6060
|
state: state_example,
|
|
6061
|
+
// 'cost' | `cost` adds each sandbox\'s `cost` this calendar month (UTC), at list price. (optional)
|
|
6062
|
+
include: include_example,
|
|
5843
6063
|
} satisfies SandboxesRequest;
|
|
5844
6064
|
|
|
5845
6065
|
try {
|
|
@@ -5865,6 +6085,7 @@ example().catch(console.error);
|
|
|
5865
6085
|
| **cursor** | `string` | Opaque pagination cursor returned as `pageInfo.nextCursor`. | [Optional] [Defaults to `undefined`] |
|
|
5866
6086
|
| **sort** | `asc`, `desc` | Sort direction for cursor pagination. | [Optional] [Defaults to `'desc'`] [Enum: asc, desc] |
|
|
5867
6087
|
| **state** | `string` | Comma-separated sandbox state filter, for example `ready,idle,running`. | [Optional] [Defaults to `undefined`] |
|
|
6088
|
+
| **include** | `cost` | `cost` adds each sandbox\'s `cost` this calendar month (UTC), at list price. | [Optional] [Defaults to `undefined`] [Enum: cost] |
|
|
5868
6089
|
|
|
5869
6090
|
### Return type
|
|
5870
6091
|
|
|
@@ -5965,6 +6186,82 @@ example().catch(console.error);
|
|
|
5965
6186
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
5966
6187
|
|
|
5967
6188
|
|
|
6189
|
+
## saveSavedSnapshot
|
|
6190
|
+
|
|
6191
|
+
> SavedSnapshotSavingResponse saveSavedSnapshot(savedSnapshotSaveRequest)
|
|
6192
|
+
|
|
6193
|
+
Save a saved snapshot
|
|
6194
|
+
|
|
6195
|
+
Freeze a sandbox\'s current state under a name (`boat snapshot <id> <name>` in the CLI). Answers `202` immediately with the snapshot in `saving`; a running sandbox takes a fresh capture first, which can run minutes. Poll `GET /saved-snapshots/{name}` until the status settles at `ready` or `failed`. Reusing one of your existing names replaces that snapshot\'s artifact once the new save is ready.
|
|
6196
|
+
|
|
6197
|
+
### Example
|
|
6198
|
+
|
|
6199
|
+
```ts
|
|
6200
|
+
import {
|
|
6201
|
+
Configuration,
|
|
6202
|
+
BoatApi,
|
|
6203
|
+
} from '@boatdev/sdk';
|
|
6204
|
+
import type { SaveSavedSnapshotRequest } from '@boatdev/sdk';
|
|
6205
|
+
|
|
6206
|
+
async function example() {
|
|
6207
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
6208
|
+
const config = new Configuration({
|
|
6209
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
6210
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
6211
|
+
});
|
|
6212
|
+
const api = new BoatApi(config);
|
|
6213
|
+
|
|
6214
|
+
const body = {
|
|
6215
|
+
// SavedSnapshotSaveRequest
|
|
6216
|
+
savedSnapshotSaveRequest: ...,
|
|
6217
|
+
} satisfies SaveSavedSnapshotRequest;
|
|
6218
|
+
|
|
6219
|
+
try {
|
|
6220
|
+
const data = await api.saveSavedSnapshot(body);
|
|
6221
|
+
console.log(data);
|
|
6222
|
+
} catch (error) {
|
|
6223
|
+
console.error(error);
|
|
6224
|
+
}
|
|
6225
|
+
}
|
|
6226
|
+
|
|
6227
|
+
// Run the test
|
|
6228
|
+
example().catch(console.error);
|
|
6229
|
+
```
|
|
6230
|
+
|
|
6231
|
+
### Parameters
|
|
6232
|
+
|
|
6233
|
+
|
|
6234
|
+
| Name | Type | Description | Notes |
|
|
6235
|
+
|------------- | ------------- | ------------- | -------------|
|
|
6236
|
+
| **savedSnapshotSaveRequest** | [SavedSnapshotSaveRequest](SavedSnapshotSaveRequest.md) | | |
|
|
6237
|
+
|
|
6238
|
+
### Return type
|
|
6239
|
+
|
|
6240
|
+
[**SavedSnapshotSavingResponse**](SavedSnapshotSavingResponse.md)
|
|
6241
|
+
|
|
6242
|
+
### Authorization
|
|
6243
|
+
|
|
6244
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
6245
|
+
|
|
6246
|
+
### HTTP request headers
|
|
6247
|
+
|
|
6248
|
+
- **Content-Type**: `application/json`
|
|
6249
|
+
- **Accept**: `application/json`
|
|
6250
|
+
|
|
6251
|
+
|
|
6252
|
+
### HTTP response details
|
|
6253
|
+
| Status code | Description | Response headers |
|
|
6254
|
+
|-------------|-------------|------------------|
|
|
6255
|
+
| **202** | Save accepted and running in the background. | - |
|
|
6256
|
+
| **400** | Invalid request body or parameters. | - |
|
|
6257
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
6258
|
+
| **404** | Resource not found. | - |
|
|
6259
|
+
| **402** | `credit_required`: the wallet already keeps 10 or more saved snapshots and has no credit left. Each saved snapshot above the plan\'s included count costs $1.70 a month, charged daily. Add credit or remove one. | - |
|
|
6260
|
+
| **409** | `save_in_progress` when a save under this name is already running; wait for it to settle rather than retrying immediately. | - |
|
|
6261
|
+
|
|
6262
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
6263
|
+
|
|
6264
|
+
|
|
5968
6265
|
## secrets
|
|
5969
6266
|
|
|
5970
6267
|
> SecretsResponse secrets()
|
|
@@ -6311,7 +6608,7 @@ example().catch(console.error);
|
|
|
6311
6608
|
| Name | Type | Description | Notes |
|
|
6312
6609
|
|------------- | ------------- | ------------- | -------------|
|
|
6313
6610
|
| **profile** | `string` | Profile id or name. | [Defaults to `undefined`] |
|
|
6314
|
-
| **credential** | `CredentialId` | | [Defaults to `undefined`] [Enum: anthropic-api-key, openai-api-key, openrouter-api-key, llmgateway-api-key, deepseek-api-key, moonshot-api-key, mistral-api-key, claude-subscription, chatgpt-subscription, kimi-subscription, mistral-vibe-subscription, claude-bedrock, codex-bedrock] |
|
|
6611
|
+
| **credential** | `CredentialId` | | [Defaults to `undefined`] [Enum: anthropic-api-key, openai-api-key, openrouter-api-key, llmgateway-api-key, deepseek-api-key, moonshot-api-key, mistral-api-key, xai-api-key, opencode-api-key, claude-subscription, chatgpt-subscription, kimi-subscription, mistral-vibe-subscription, grok-subscription, claude-bedrock, codex-bedrock] |
|
|
6315
6612
|
| **setCredentialKeyRequest** | [SetCredentialKeyRequest](SetCredentialKeyRequest.md) | | |
|
|
6316
6613
|
|
|
6317
6614
|
### Return type
|
|
@@ -6660,7 +6957,7 @@ example().catch(console.error);
|
|
|
6660
6957
|
|
|
6661
6958
|
Share sandbox with the organization
|
|
6662
6959
|
|
|
6663
|
-
Let every member of the organization that pays for this sandbox use it.
|
|
6960
|
+
Let every member of the organization that pays for this sandbox use it. A sandbox that holds none of your personal logins is shared at once. A sandbox that holds them: your personal logins (GitHub token, Claude and Codex logins, environment secrets, the sandbox\'s own CLI key) are never pushed to it again and are wiped off its disk at its next start, so a teammate never acts as you. Files you wrote stay. The wipe is one-way: the sandbox stays like a `noEnv` sandbox from then on. A running sandbox stays `view` for the organization until you stop and resume it (`restartRequired`): its running programs hold your logins in memory. Teammates never read history recorded before the share. Only the person who created the sandbox can share it, and only a sandbox billed to an organization. Sharing an already shared sandbox is a no-op. Undo with `POST /sandboxes/{sandboxId}/unshare`.
|
|
6664
6961
|
|
|
6665
6962
|
### Example
|
|
6666
6963
|
|
|
@@ -7096,7 +7393,7 @@ example().catch(console.error);
|
|
|
7096
7393
|
| Name | Type | Description | Notes |
|
|
7097
7394
|
|------------- | ------------- | ------------- | -------------|
|
|
7098
7395
|
| **profile** | `string` | Profile id or name. | [Defaults to `undefined`] |
|
|
7099
|
-
| **credential** | `CredentialId` | | [Defaults to `undefined`] [Enum: anthropic-api-key, openai-api-key, openrouter-api-key, llmgateway-api-key, deepseek-api-key, moonshot-api-key, mistral-api-key, claude-subscription, chatgpt-subscription, kimi-subscription, mistral-vibe-subscription, claude-bedrock, codex-bedrock] |
|
|
7396
|
+
| **credential** | `CredentialId` | | [Defaults to `undefined`] [Enum: anthropic-api-key, openai-api-key, openrouter-api-key, llmgateway-api-key, deepseek-api-key, moonshot-api-key, mistral-api-key, xai-api-key, opencode-api-key, claude-subscription, chatgpt-subscription, kimi-subscription, mistral-vibe-subscription, grok-subscription, claude-bedrock, codex-bedrock] |
|
|
7100
7397
|
| **account** | `string` | The account id from the list. | [Defaults to `undefined`] |
|
|
7101
7398
|
|
|
7102
7399
|
### Return type
|
|
@@ -7125,6 +7422,81 @@ example().catch(console.error);
|
|
|
7125
7422
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
7126
7423
|
|
|
7127
7424
|
|
|
7425
|
+
## unshare
|
|
7426
|
+
|
|
7427
|
+
> Unshare200Response unshare(sandboxId)
|
|
7428
|
+
|
|
7429
|
+
Make an organization sandbox private
|
|
7430
|
+
|
|
7431
|
+
Make a shared organization sandbox private again, at once. Only you can then use it. Teammates still see it in their list and can stop it. Their SSH keys are removed from the running machine. Nothing on the sandbox changes: files, installs and its environment stay. Undo with `POST /sandboxes/{sandboxId}/share`. Only the person who created the sandbox can make it private, and only a sandbox billed to an organization. Making a private sandbox private is a no-op.
|
|
7432
|
+
|
|
7433
|
+
### Example
|
|
7434
|
+
|
|
7435
|
+
```ts
|
|
7436
|
+
import {
|
|
7437
|
+
Configuration,
|
|
7438
|
+
BoatApi,
|
|
7439
|
+
} from '@boatdev/sdk';
|
|
7440
|
+
import type { UnshareRequest } from '@boatdev/sdk';
|
|
7441
|
+
|
|
7442
|
+
async function example() {
|
|
7443
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
7444
|
+
const config = new Configuration({
|
|
7445
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
7446
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
7447
|
+
});
|
|
7448
|
+
const api = new BoatApi(config);
|
|
7449
|
+
|
|
7450
|
+
const body = {
|
|
7451
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
7452
|
+
sandboxId: sandboxId_example,
|
|
7453
|
+
} satisfies UnshareRequest;
|
|
7454
|
+
|
|
7455
|
+
try {
|
|
7456
|
+
const data = await api.unshare(body);
|
|
7457
|
+
console.log(data);
|
|
7458
|
+
} catch (error) {
|
|
7459
|
+
console.error(error);
|
|
7460
|
+
}
|
|
7461
|
+
}
|
|
7462
|
+
|
|
7463
|
+
// Run the test
|
|
7464
|
+
example().catch(console.error);
|
|
7465
|
+
```
|
|
7466
|
+
|
|
7467
|
+
### Parameters
|
|
7468
|
+
|
|
7469
|
+
|
|
7470
|
+
| Name | Type | Description | Notes |
|
|
7471
|
+
|------------- | ------------- | ------------- | -------------|
|
|
7472
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
7473
|
+
|
|
7474
|
+
### Return type
|
|
7475
|
+
|
|
7476
|
+
[**Unshare200Response**](Unshare200Response.md)
|
|
7477
|
+
|
|
7478
|
+
### Authorization
|
|
7479
|
+
|
|
7480
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
7481
|
+
|
|
7482
|
+
### HTTP request headers
|
|
7483
|
+
|
|
7484
|
+
- **Content-Type**: Not defined
|
|
7485
|
+
- **Accept**: `application/json`
|
|
7486
|
+
|
|
7487
|
+
|
|
7488
|
+
### HTTP response details
|
|
7489
|
+
| Status code | Description | Response headers |
|
|
7490
|
+
|-------------|-------------|------------------|
|
|
7491
|
+
| **200** | The sandbox is private. | - |
|
|
7492
|
+
| **400** | Invalid request body or parameters. | - |
|
|
7493
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
7494
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
7495
|
+
| **404** | Resource not found. | - |
|
|
7496
|
+
|
|
7497
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
7498
|
+
|
|
7499
|
+
|
|
7128
7500
|
## update
|
|
7129
7501
|
|
|
7130
7502
|
> SandboxInfoResponse update(sandboxId, updateSandboxRequest)
|
|
@@ -7514,6 +7886,83 @@ example().catch(console.error);
|
|
|
7514
7886
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
7515
7887
|
|
|
7516
7888
|
|
|
7889
|
+
## updateOrganization
|
|
7890
|
+
|
|
7891
|
+
> UpdateOrganization200Response updateOrganization(org, updateOrganizationRequest)
|
|
7892
|
+
|
|
7893
|
+
Update organization settings
|
|
7894
|
+
|
|
7895
|
+
Owners and admins set whether new sandboxes of the organization start private (only their creator can use them) or shared (every member can use those that hold none of their creator\'s logins). The default is shared. Existing sandboxes keep their setting; their creators change it with `POST /sandboxes/{sandboxId}/share` and `POST /sandboxes/{sandboxId}/unshare`. A fork of a private sandbox is private.
|
|
7896
|
+
|
|
7897
|
+
### Example
|
|
7898
|
+
|
|
7899
|
+
```ts
|
|
7900
|
+
import {
|
|
7901
|
+
Configuration,
|
|
7902
|
+
BoatApi,
|
|
7903
|
+
} from '@boatdev/sdk';
|
|
7904
|
+
import type { UpdateOrganizationOperationRequest } from '@boatdev/sdk';
|
|
7905
|
+
|
|
7906
|
+
async function example() {
|
|
7907
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
7908
|
+
const config = new Configuration({
|
|
7909
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
7910
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
7911
|
+
});
|
|
7912
|
+
const api = new BoatApi(config);
|
|
7913
|
+
|
|
7914
|
+
const body = {
|
|
7915
|
+
// string | Organization id or name.
|
|
7916
|
+
org: org_example,
|
|
7917
|
+
// UpdateOrganizationRequest
|
|
7918
|
+
updateOrganizationRequest: {"newSandboxesPrivate":true},
|
|
7919
|
+
} satisfies UpdateOrganizationOperationRequest;
|
|
7920
|
+
|
|
7921
|
+
try {
|
|
7922
|
+
const data = await api.updateOrganization(body);
|
|
7923
|
+
console.log(data);
|
|
7924
|
+
} catch (error) {
|
|
7925
|
+
console.error(error);
|
|
7926
|
+
}
|
|
7927
|
+
}
|
|
7928
|
+
|
|
7929
|
+
// Run the test
|
|
7930
|
+
example().catch(console.error);
|
|
7931
|
+
```
|
|
7932
|
+
|
|
7933
|
+
### Parameters
|
|
7934
|
+
|
|
7935
|
+
|
|
7936
|
+
| Name | Type | Description | Notes |
|
|
7937
|
+
|------------- | ------------- | ------------- | -------------|
|
|
7938
|
+
| **org** | `string` | Organization id or name. | [Defaults to `undefined`] |
|
|
7939
|
+
| **updateOrganizationRequest** | [UpdateOrganizationRequest](UpdateOrganizationRequest.md) | | |
|
|
7940
|
+
|
|
7941
|
+
### Return type
|
|
7942
|
+
|
|
7943
|
+
[**UpdateOrganization200Response**](UpdateOrganization200Response.md)
|
|
7944
|
+
|
|
7945
|
+
### Authorization
|
|
7946
|
+
|
|
7947
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
7948
|
+
|
|
7949
|
+
### HTTP request headers
|
|
7950
|
+
|
|
7951
|
+
- **Content-Type**: `application/json`
|
|
7952
|
+
- **Accept**: `application/json`
|
|
7953
|
+
|
|
7954
|
+
|
|
7955
|
+
### HTTP response details
|
|
7956
|
+
| Status code | Description | Response headers |
|
|
7957
|
+
|-------------|-------------|------------------|
|
|
7958
|
+
| **200** | The setting is saved. | - |
|
|
7959
|
+
| **400** | Invalid request body or parameters. | - |
|
|
7960
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
7961
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
7962
|
+
|
|
7963
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
7964
|
+
|
|
7965
|
+
|
|
7517
7966
|
## updateSecrets
|
|
7518
7967
|
|
|
7519
7968
|
> SecretsResponse updateSecrets(secretsUpdateRequest)
|