@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.
Files changed (179) hide show
  1. package/.openapi-generator/FILES +30 -0
  2. package/dist/apis/BoatApi.d.ts +144 -18
  3. package/dist/apis/BoatApi.js +305 -22
  4. package/dist/esm/apis/BoatApi.d.ts +144 -18
  5. package/dist/esm/apis/BoatApi.js +304 -21
  6. package/dist/esm/models/CreateSandboxRequest.d.ts +9 -3
  7. package/dist/esm/models/CreateSandboxRequest.js +2 -0
  8. package/dist/esm/models/CreateSandboxResponse.d.ts +6 -0
  9. package/dist/esm/models/CreateSandboxResponse.js +2 -0
  10. package/dist/esm/models/CreateScopedApiKeyRequest.d.ts +1 -1
  11. package/dist/esm/models/CredentialId.d.ts +3 -0
  12. package/dist/esm/models/CredentialId.js +3 -0
  13. package/dist/esm/models/CredentialProfile.d.ts +7 -0
  14. package/dist/esm/models/CredentialProfile.js +3 -0
  15. package/dist/esm/models/DeletionOperation.d.ts +1 -1
  16. package/dist/esm/models/LimitsFields.d.ts +1 -1
  17. package/dist/esm/models/LimitsResponse.d.ts +1 -1
  18. package/dist/esm/models/MeResponseAllOfUser.d.ts +1 -0
  19. package/dist/esm/models/MeResponseAllOfUser.js +1 -0
  20. package/dist/esm/models/ResourceAccess.d.ts +38 -0
  21. package/dist/esm/models/ResourceAccess.js +47 -0
  22. package/dist/esm/models/ResourceAccessUpdate.d.ts +38 -0
  23. package/dist/esm/models/ResourceAccessUpdate.js +45 -0
  24. package/dist/esm/models/ResumeRequest.d.ts +1 -1
  25. package/dist/esm/models/Sandbox.d.ts +35 -1
  26. package/dist/esm/models/Sandbox.js +17 -0
  27. package/dist/esm/models/SandboxCost.d.ts +44 -0
  28. package/dist/esm/models/SandboxCost.js +51 -0
  29. package/dist/esm/models/SandboxEnvironment.d.ts +7 -0
  30. package/dist/esm/models/SandboxEnvironment.js +3 -0
  31. package/dist/esm/models/SandboxLastReboot.d.ts +47 -0
  32. package/dist/esm/models/SandboxLastReboot.js +51 -0
  33. package/dist/esm/models/SandboxListResponse.d.ts +7 -0
  34. package/dist/esm/models/SandboxListResponse.js +3 -0
  35. package/dist/esm/models/SandboxListResponseAllOfDeletedCost.d.ts +44 -0
  36. package/dist/esm/models/SandboxListResponseAllOfDeletedCost.js +51 -0
  37. package/dist/esm/models/SavedSnapshot.d.ts +83 -0
  38. package/dist/esm/models/SavedSnapshot.js +71 -0
  39. package/dist/esm/models/SavedSnapshotAllowance.d.ts +81 -0
  40. package/dist/esm/models/SavedSnapshotAllowance.js +57 -0
  41. package/dist/esm/models/SavedSnapshotDeletedResponse.d.ts +64 -0
  42. package/dist/esm/models/SavedSnapshotDeletedResponse.js +67 -0
  43. package/dist/esm/models/SavedSnapshotInfoResponse.d.ts +52 -0
  44. package/dist/esm/models/SavedSnapshotInfoResponse.js +58 -0
  45. package/dist/esm/models/SavedSnapshotListResponse.d.ts +59 -0
  46. package/dist/esm/models/SavedSnapshotListResponse.js +61 -0
  47. package/dist/esm/models/SavedSnapshotSaveRequest.d.ts +38 -0
  48. package/dist/esm/models/SavedSnapshotSaveRequest.js +47 -0
  49. package/dist/esm/models/SavedSnapshotSavingResponse.d.ts +65 -0
  50. package/dist/esm/models/SavedSnapshotSavingResponse.js +68 -0
  51. package/dist/esm/models/SnapshotSummary.d.ts +1 -1
  52. package/dist/esm/models/Unshare200Response.d.ts +39 -0
  53. package/dist/esm/models/Unshare200Response.js +44 -0
  54. package/dist/esm/models/UpdateCredentialProfileRequest.d.ts +7 -0
  55. package/dist/esm/models/UpdateCredentialProfileRequest.js +3 -0
  56. package/dist/esm/models/UpdateOrganization200Response.d.ts +50 -0
  57. package/dist/esm/models/UpdateOrganization200Response.js +47 -0
  58. package/dist/esm/models/UpdateOrganizationRequest.d.ts +32 -0
  59. package/dist/esm/models/UpdateOrganizationRequest.js +43 -0
  60. package/dist/esm/models/UpdateSandboxEnvironmentRequest.d.ts +7 -0
  61. package/dist/esm/models/UpdateSandboxEnvironmentRequest.js +3 -0
  62. package/dist/esm/models/index.d.ts +15 -0
  63. package/dist/esm/models/index.js +15 -0
  64. package/dist/models/CreateSandboxRequest.d.ts +9 -3
  65. package/dist/models/CreateSandboxRequest.js +2 -0
  66. package/dist/models/CreateSandboxResponse.d.ts +6 -0
  67. package/dist/models/CreateSandboxResponse.js +2 -0
  68. package/dist/models/CreateScopedApiKeyRequest.d.ts +1 -1
  69. package/dist/models/CredentialId.d.ts +3 -0
  70. package/dist/models/CredentialId.js +3 -0
  71. package/dist/models/CredentialProfile.d.ts +7 -0
  72. package/dist/models/CredentialProfile.js +3 -0
  73. package/dist/models/DeletionOperation.d.ts +1 -1
  74. package/dist/models/LimitsFields.d.ts +1 -1
  75. package/dist/models/LimitsResponse.d.ts +1 -1
  76. package/dist/models/MeResponseAllOfUser.d.ts +1 -0
  77. package/dist/models/MeResponseAllOfUser.js +1 -0
  78. package/dist/models/ResourceAccess.d.ts +38 -0
  79. package/dist/models/ResourceAccess.js +54 -0
  80. package/dist/models/ResourceAccessUpdate.d.ts +38 -0
  81. package/dist/models/ResourceAccessUpdate.js +52 -0
  82. package/dist/models/ResumeRequest.d.ts +1 -1
  83. package/dist/models/Sandbox.d.ts +35 -1
  84. package/dist/models/Sandbox.js +18 -1
  85. package/dist/models/SandboxCost.d.ts +44 -0
  86. package/dist/models/SandboxCost.js +58 -0
  87. package/dist/models/SandboxEnvironment.d.ts +7 -0
  88. package/dist/models/SandboxEnvironment.js +3 -0
  89. package/dist/models/SandboxLastReboot.d.ts +47 -0
  90. package/dist/models/SandboxLastReboot.js +59 -0
  91. package/dist/models/SandboxListResponse.d.ts +7 -0
  92. package/dist/models/SandboxListResponse.js +3 -0
  93. package/dist/models/SandboxListResponseAllOfDeletedCost.d.ts +44 -0
  94. package/dist/models/SandboxListResponseAllOfDeletedCost.js +58 -0
  95. package/dist/models/SavedSnapshot.d.ts +83 -0
  96. package/dist/models/SavedSnapshot.js +79 -0
  97. package/dist/models/SavedSnapshotAllowance.d.ts +81 -0
  98. package/dist/models/SavedSnapshotAllowance.js +64 -0
  99. package/dist/models/SavedSnapshotDeletedResponse.d.ts +64 -0
  100. package/dist/models/SavedSnapshotDeletedResponse.js +75 -0
  101. package/dist/models/SavedSnapshotInfoResponse.d.ts +52 -0
  102. package/dist/models/SavedSnapshotInfoResponse.js +66 -0
  103. package/dist/models/SavedSnapshotListResponse.d.ts +59 -0
  104. package/dist/models/SavedSnapshotListResponse.js +69 -0
  105. package/dist/models/SavedSnapshotSaveRequest.d.ts +38 -0
  106. package/dist/models/SavedSnapshotSaveRequest.js +54 -0
  107. package/dist/models/SavedSnapshotSavingResponse.d.ts +65 -0
  108. package/dist/models/SavedSnapshotSavingResponse.js +76 -0
  109. package/dist/models/SnapshotSummary.d.ts +1 -1
  110. package/dist/models/Unshare200Response.d.ts +39 -0
  111. package/dist/models/Unshare200Response.js +51 -0
  112. package/dist/models/UpdateCredentialProfileRequest.d.ts +7 -0
  113. package/dist/models/UpdateCredentialProfileRequest.js +3 -0
  114. package/dist/models/UpdateOrganization200Response.d.ts +50 -0
  115. package/dist/models/UpdateOrganization200Response.js +54 -0
  116. package/dist/models/UpdateOrganizationRequest.d.ts +32 -0
  117. package/dist/models/UpdateOrganizationRequest.js +50 -0
  118. package/dist/models/UpdateSandboxEnvironmentRequest.d.ts +7 -0
  119. package/dist/models/UpdateSandboxEnvironmentRequest.js +3 -0
  120. package/dist/models/index.d.ts +15 -0
  121. package/dist/models/index.js +15 -0
  122. package/docs/BoatApi.md +468 -19
  123. package/docs/CreateSandboxRequest.md +2 -0
  124. package/docs/CreateSandboxResponse.md +2 -0
  125. package/docs/CredentialProfile.md +2 -0
  126. package/docs/ResourceAccess.md +35 -0
  127. package/docs/ResourceAccessUpdate.md +35 -0
  128. package/docs/Sandbox.md +8 -0
  129. package/docs/SandboxCost.md +37 -0
  130. package/docs/SandboxEnvironment.md +2 -0
  131. package/docs/SandboxLastReboot.md +35 -0
  132. package/docs/SandboxListResponse.md +2 -0
  133. package/docs/SandboxListResponseAllOfDeletedCost.md +37 -0
  134. package/docs/SavedSnapshot.md +47 -0
  135. package/docs/SavedSnapshotAllowance.md +49 -0
  136. package/docs/SavedSnapshotDeletedResponse.md +38 -0
  137. package/docs/SavedSnapshotInfoResponse.md +36 -0
  138. package/docs/SavedSnapshotListResponse.md +38 -0
  139. package/docs/SavedSnapshotSaveRequest.md +34 -0
  140. package/docs/SavedSnapshotSavingResponse.md +38 -0
  141. package/docs/Unshare200Response.md +34 -0
  142. package/docs/UpdateCredentialProfileRequest.md +2 -0
  143. package/docs/UpdateOrganization200Response.md +38 -0
  144. package/docs/UpdateOrganizationRequest.md +32 -0
  145. package/docs/UpdateSandboxEnvironmentRequest.md +2 -0
  146. package/package.json +1 -1
  147. package/src/apis/BoatApi.ts +440 -21
  148. package/src/models/CreateSandboxRequest.ts +11 -3
  149. package/src/models/CreateSandboxResponse.ts +8 -0
  150. package/src/models/CreateScopedApiKeyRequest.ts +1 -1
  151. package/src/models/CredentialId.ts +3 -0
  152. package/src/models/CredentialProfile.ts +15 -0
  153. package/src/models/DeletionOperation.ts +1 -1
  154. package/src/models/LimitsFields.ts +1 -1
  155. package/src/models/LimitsResponse.ts +1 -1
  156. package/src/models/MeResponseAllOfUser.ts +1 -0
  157. package/src/models/ResourceAccess.ts +75 -0
  158. package/src/models/ResourceAccessUpdate.ts +74 -0
  159. package/src/models/ResumeRequest.ts +1 -1
  160. package/src/models/Sandbox.ts +56 -1
  161. package/src/models/SandboxCost.ts +84 -0
  162. package/src/models/SandboxEnvironment.ts +15 -0
  163. package/src/models/SandboxLastReboot.ts +85 -0
  164. package/src/models/SandboxListResponse.ts +15 -0
  165. package/src/models/SandboxListResponseAllOfDeletedCost.ts +84 -0
  166. package/src/models/SavedSnapshot.ts +137 -0
  167. package/src/models/SavedSnapshotAllowance.ts +130 -0
  168. package/src/models/SavedSnapshotDeletedResponse.ts +111 -0
  169. package/src/models/SavedSnapshotInfoResponse.ts +102 -0
  170. package/src/models/SavedSnapshotListResponse.ts +117 -0
  171. package/src/models/SavedSnapshotSaveRequest.ts +75 -0
  172. package/src/models/SavedSnapshotSavingResponse.ts +119 -0
  173. package/src/models/SnapshotSummary.ts +1 -1
  174. package/src/models/Unshare200Response.ts +81 -0
  175. package/src/models/UpdateCredentialProfileRequest.ts +16 -0
  176. package/src/models/UpdateOrganization200Response.ts +89 -0
  177. package/src/models/UpdateOrganizationRequest.ts +66 -0
  178. package/src/models/UpdateSandboxEnvironmentRequest.ts +15 -0
  179. 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** /named-snapshots/{name}/shares | Share a named snapshot |
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
- | [**listSnapshotShares**](BoatApi.md#listsnapshotshares) | **GET** /named-snapshots/{name}/shares | List share codes of a named snapshot |
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** /named-snapshots/{name}/shares/{shareId} | Revoke a share code |
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 named snapshot
1384
+ Share a saved snapshot
1378
1385
 
1379
- Make a secret code that lets any Boat account create a sandbox from this named 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`.
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. Named snapshots and other shared artifacts remain independent. Poll the returned operation until `completed`.
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 named 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.
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 `box.read` on the sandbox.
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 named snapshot
4902
+ List share codes of a saved snapshot
4686
4903
 
4687
- List the share codes of a named snapshot, active and revoked (`boat snapshot shares <name>` in the CLI). The full codes are not returned. Needs `snapshot.read`.
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. 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. 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`). 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.
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)