@boatdev/sdk 1.11.0 → 1.12.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 +42 -0
- package/dist/apis/BoatApi.d.ts +191 -14
- package/dist/apis/BoatApi.js +466 -14
- package/dist/esm/apis/BoatApi.d.ts +191 -14
- package/dist/esm/apis/BoatApi.js +466 -14
- package/dist/esm/models/CreateSandboxRequest.d.ts +35 -1
- package/dist/esm/models/CreateSandboxRequest.js +17 -0
- package/dist/esm/models/CreateSandboxRequestFilesInner.d.ts +52 -0
- package/dist/esm/models/CreateSandboxRequestFilesInner.js +56 -0
- package/dist/esm/models/CreateSandboxResponse.d.ts +7 -0
- package/dist/esm/models/CreateSandboxResponse.js +3 -0
- package/dist/esm/models/CreateSandboxResponseAllOfHostedPortsInner.d.ts +77 -0
- package/dist/esm/models/CreateSandboxResponseAllOfHostedPortsInner.js +64 -0
- package/dist/esm/models/FileDeleteResponse.d.ts +57 -0
- package/dist/esm/models/FileDeleteResponse.js +59 -0
- package/dist/esm/models/FileEntry.d.ts +68 -0
- package/dist/esm/models/FileEntry.js +67 -0
- package/dist/esm/models/FileFindResponse.d.ts +70 -0
- package/dist/esm/models/FileFindResponse.js +66 -0
- package/dist/esm/models/FileFindResponseAllOfMatches.d.ts +44 -0
- package/dist/esm/models/FileFindResponseAllOfMatches.js +51 -0
- package/dist/esm/models/FileFolderRequest.d.ts +38 -0
- package/dist/esm/models/FileFolderRequest.js +45 -0
- package/dist/esm/models/FileInfoResponse.d.ts +95 -0
- package/dist/esm/models/FileInfoResponse.js +85 -0
- package/dist/esm/models/FileListResponse.d.ts +70 -0
- package/dist/esm/models/FileListResponse.js +68 -0
- package/dist/esm/models/FileMoveRequest.d.ts +44 -0
- package/dist/esm/models/FileMoveRequest.js +49 -0
- package/dist/esm/models/FileMoveResponse.d.ts +63 -0
- package/dist/esm/models/FileMoveResponse.js +63 -0
- package/dist/esm/models/FilePermissionsRequest.d.ts +38 -0
- package/dist/esm/models/FilePermissionsRequest.js +47 -0
- package/dist/esm/models/FileReplaceRequest.d.ts +44 -0
- package/dist/esm/models/FileReplaceRequest.js +51 -0
- package/dist/esm/models/FileReplaceResponse.d.ts +58 -0
- package/dist/esm/models/FileReplaceResponse.js +60 -0
- package/dist/esm/models/FileReplaceResponseAllOfResults.d.ts +50 -0
- package/dist/esm/models/FileReplaceResponseAllOfResults.js +51 -0
- package/dist/esm/models/FileSearchResponse.d.ts +69 -0
- package/dist/esm/models/FileSearchResponse.js +65 -0
- package/dist/esm/models/LimitsFields.d.ts +54 -16
- package/dist/esm/models/LimitsFields.js +16 -2
- package/dist/esm/models/LimitsFieldsOveragePrices.d.ts +51 -0
- package/dist/esm/models/LimitsFieldsOveragePrices.js +48 -0
- package/dist/esm/models/LimitsFieldsOveragePricesStartBracketsInner.d.ts +44 -0
- package/dist/esm/models/LimitsFieldsOveragePricesStartBracketsInner.js +45 -0
- package/dist/esm/models/LimitsFieldsPlanIncluded.d.ts +44 -0
- package/dist/esm/models/LimitsFieldsPlanIncluded.js +45 -0
- package/dist/esm/models/LimitsFieldsStartLimitsWithWallet.d.ts +44 -0
- package/dist/esm/models/LimitsFieldsStartLimitsWithWallet.js +45 -0
- package/dist/esm/models/LimitsFieldsWallet.d.ts +32 -0
- package/dist/esm/models/LimitsFieldsWallet.js +41 -0
- package/dist/esm/models/LimitsResponse.d.ts +54 -16
- package/dist/esm/models/LimitsResponse.js +16 -2
- package/dist/esm/models/NamedSnapshotAllowance.d.ts +9 -3
- package/dist/esm/models/NamedSnapshotAllowance.js +2 -0
- package/dist/esm/models/SavedSnapshotAllowance.d.ts +9 -3
- package/dist/esm/models/SavedSnapshotAllowance.js +2 -0
- package/dist/esm/models/index.d.ts +21 -0
- package/dist/esm/models/index.js +21 -0
- package/dist/models/CreateSandboxRequest.d.ts +35 -1
- package/dist/models/CreateSandboxRequest.js +18 -1
- package/dist/models/CreateSandboxRequestFilesInner.d.ts +52 -0
- package/dist/models/CreateSandboxRequestFilesInner.js +64 -0
- package/dist/models/CreateSandboxResponse.d.ts +7 -0
- package/dist/models/CreateSandboxResponse.js +3 -0
- package/dist/models/CreateSandboxResponseAllOfHostedPortsInner.d.ts +77 -0
- package/dist/models/CreateSandboxResponseAllOfHostedPortsInner.js +72 -0
- package/dist/models/FileDeleteResponse.d.ts +57 -0
- package/dist/models/FileDeleteResponse.js +67 -0
- package/dist/models/FileEntry.d.ts +68 -0
- package/dist/models/FileEntry.js +74 -0
- package/dist/models/FileFindResponse.d.ts +70 -0
- package/dist/models/FileFindResponse.js +74 -0
- package/dist/models/FileFindResponseAllOfMatches.d.ts +44 -0
- package/dist/models/FileFindResponseAllOfMatches.js +58 -0
- package/dist/models/FileFolderRequest.d.ts +38 -0
- package/dist/models/FileFolderRequest.js +52 -0
- package/dist/models/FileInfoResponse.d.ts +95 -0
- package/dist/models/FileInfoResponse.js +93 -0
- package/dist/models/FileListResponse.d.ts +70 -0
- package/dist/models/FileListResponse.js +76 -0
- package/dist/models/FileMoveRequest.d.ts +44 -0
- package/dist/models/FileMoveRequest.js +56 -0
- package/dist/models/FileMoveResponse.d.ts +63 -0
- package/dist/models/FileMoveResponse.js +71 -0
- package/dist/models/FilePermissionsRequest.d.ts +38 -0
- package/dist/models/FilePermissionsRequest.js +54 -0
- package/dist/models/FileReplaceRequest.d.ts +44 -0
- package/dist/models/FileReplaceRequest.js +58 -0
- package/dist/models/FileReplaceResponse.d.ts +58 -0
- package/dist/models/FileReplaceResponse.js +68 -0
- package/dist/models/FileReplaceResponseAllOfResults.d.ts +50 -0
- package/dist/models/FileReplaceResponseAllOfResults.js +58 -0
- package/dist/models/FileSearchResponse.d.ts +69 -0
- package/dist/models/FileSearchResponse.js +73 -0
- package/dist/models/LimitsFields.d.ts +54 -16
- package/dist/models/LimitsFields.js +16 -2
- package/dist/models/LimitsFieldsOveragePrices.d.ts +51 -0
- package/dist/models/LimitsFieldsOveragePrices.js +55 -0
- package/dist/models/LimitsFieldsOveragePricesStartBracketsInner.d.ts +44 -0
- package/dist/models/LimitsFieldsOveragePricesStartBracketsInner.js +52 -0
- package/dist/models/LimitsFieldsPlanIncluded.d.ts +44 -0
- package/dist/models/LimitsFieldsPlanIncluded.js +52 -0
- package/dist/models/LimitsFieldsStartLimitsWithWallet.d.ts +44 -0
- package/dist/models/LimitsFieldsStartLimitsWithWallet.js +52 -0
- package/dist/models/LimitsFieldsWallet.d.ts +32 -0
- package/dist/models/LimitsFieldsWallet.js +48 -0
- package/dist/models/LimitsResponse.d.ts +54 -16
- package/dist/models/LimitsResponse.js +16 -2
- package/dist/models/NamedSnapshotAllowance.d.ts +9 -3
- package/dist/models/NamedSnapshotAllowance.js +2 -0
- package/dist/models/SavedSnapshotAllowance.d.ts +9 -3
- package/dist/models/SavedSnapshotAllowance.js +2 -0
- package/dist/models/index.d.ts +21 -0
- package/dist/models/index.js +21 -0
- package/docs/BoatApi.md +744 -48
- package/docs/CreateSandboxRequest.md +8 -0
- package/docs/CreateSandboxRequestFilesInner.md +36 -0
- package/docs/CreateSandboxResponse.md +2 -0
- package/docs/CreateSandboxResponseAllOfHostedPortsInner.md +44 -0
- package/docs/FileDeleteResponse.md +38 -0
- package/docs/FileEntry.md +44 -0
- package/docs/FileFindResponse.md +42 -0
- package/docs/FileFindResponseAllOfMatches.md +36 -0
- package/docs/FileFolderRequest.md +34 -0
- package/docs/FileInfoResponse.md +50 -0
- package/docs/FileListResponse.md +42 -0
- package/docs/FileMoveRequest.md +36 -0
- package/docs/FileMoveResponse.md +40 -0
- package/docs/FilePermissionsRequest.md +34 -0
- package/docs/FileReplaceRequest.md +36 -0
- package/docs/FileReplaceResponse.md +38 -0
- package/docs/FileReplaceResponseAllOfResults.md +38 -0
- package/docs/FileSearchResponse.md +42 -0
- package/docs/LimitsFields.md +12 -2
- package/docs/LimitsFieldsOveragePrices.md +39 -0
- package/docs/LimitsFieldsOveragePricesStartBracketsInner.md +36 -0
- package/docs/LimitsFieldsPlanIncluded.md +37 -0
- package/docs/LimitsFieldsStartLimitsWithWallet.md +37 -0
- package/docs/LimitsFieldsWallet.md +33 -0
- package/docs/LimitsResponse.md +12 -2
- package/docs/NamedSnapshotAllowance.md +3 -1
- package/docs/SavedSnapshotAllowance.md +3 -1
- package/package.json +1 -1
- package/src/apis/BoatApi.ts +721 -14
- package/src/models/CreateSandboxRequest.ts +57 -1
- package/src/models/CreateSandboxRequestFilesInner.ts +94 -0
- package/src/models/CreateSandboxResponse.ts +15 -0
- package/src/models/CreateSandboxResponseAllOfHostedPortsInner.ts +128 -0
- package/src/models/FileDeleteResponse.ts +102 -0
- package/src/models/FileEntry.ts +120 -0
- package/src/models/FileFindResponse.ts +127 -0
- package/src/models/FileFindResponseAllOfMatches.ts +84 -0
- package/src/models/FileFolderRequest.ts +74 -0
- package/src/models/FileInfoResponse.ts +158 -0
- package/src/models/FileListResponse.ts +128 -0
- package/src/models/FileMoveRequest.ts +83 -0
- package/src/models/FileMoveResponse.ts +111 -0
- package/src/models/FilePermissionsRequest.ts +75 -0
- package/src/models/FileReplaceRequest.ts +84 -0
- package/src/models/FileReplaceResponse.ts +110 -0
- package/src/models/FileReplaceResponseAllOfResults.ts +91 -0
- package/src/models/FileSearchResponse.ts +119 -0
- package/src/models/LimitsFields.ts +90 -16
- package/src/models/LimitsFieldsOveragePrices.ts +97 -0
- package/src/models/LimitsFieldsOveragePricesStartBracketsInner.ts +81 -0
- package/src/models/LimitsFieldsPlanIncluded.ts +81 -0
- package/src/models/LimitsFieldsStartLimitsWithWallet.ts +81 -0
- package/src/models/LimitsFieldsWallet.ts +65 -0
- package/src/models/LimitsResponse.ts +90 -16
- package/src/models/NamedSnapshotAllowance.ts +11 -3
- package/src/models/SavedSnapshotAllowance.ts +11 -3
- package/src/models/index.ts +21 -0
package/docs/BoatApi.md
CHANGED
|
@@ -19,6 +19,7 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
19
19
|
| [**createCredentialProfile**](BoatApi.md#createcredentialprofileoperation) | **POST** /credential-profiles | Create a credential profile |
|
|
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
|
+
| [**createFolder**](BoatApi.md#createfolder) | **POST** /sandboxes/{sandboxId}/files/folder | Create a directory in a sandbox |
|
|
22
23
|
| [**createScopedApiKey**](BoatApi.md#createscopedapikeyoperation) | **POST** /api-keys/scoped | Create a scoped API key |
|
|
23
24
|
| [**createSnapshotShare**](BoatApi.md#createsnapshotshare) | **POST** /saved-snapshots/{name}/shares | Share a saved snapshot |
|
|
24
25
|
| [**createUploadUrl**](BoatApi.md#createuploadurl) | **POST** /sandboxes/{sandboxId}/files/upload-url | Get an upload URL for a sandbox file |
|
|
@@ -31,6 +32,7 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
31
32
|
| [**deleteEnvironmentRepo**](BoatApi.md#deleteenvironmentrepo) | **DELETE** /environments/{environmentId}/repos/{repositoryId} | Remove a repository from an environment |
|
|
32
33
|
| [**deleteEnvironmentSecretFile**](BoatApi.md#deleteenvironmentsecretfile) | **DELETE** /environments/{environmentId}/secret-files | Remove one secret file |
|
|
33
34
|
| [**deleteEnvironmentVar**](BoatApi.md#deleteenvironmentvar) | **DELETE** /environments/{environmentId}/vars/{key} | Remove one environment variable |
|
|
35
|
+
| [**deleteFile**](BoatApi.md#deletefile) | **DELETE** /sandboxes/{sandboxId}/files | Delete a file or directory in a sandbox |
|
|
34
36
|
| [**deleteNamedSnapshot**](BoatApi.md#deletenamedsnapshot) | **DELETE** /named-snapshots/{name} | Remove a named snapshot |
|
|
35
37
|
| [**deleteSandbox**](BoatApi.md#deletesandbox) | **DELETE** /sandboxes/{sandboxId} | Permanently delete sandbox data |
|
|
36
38
|
| [**deleteSandboxSnapshots**](BoatApi.md#deletesandboxsnapshots) | **DELETE** /sandboxes/{sandboxId}/snapshots | Permanently delete all snapshots of a sandbox |
|
|
@@ -41,6 +43,7 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
41
43
|
| [**desktop**](BoatApi.md#desktopoperation) | **POST** /sandboxes/{sandboxId}/desktop | Get desktop streaming URL |
|
|
42
44
|
| [**environments**](BoatApi.md#environments) | **GET** /environments | List Sandbox environments |
|
|
43
45
|
| [**events**](BoatApi.md#events) | **GET** /sandboxes/{sandboxId}/events | List boat events |
|
|
46
|
+
| [**findInFiles**](BoatApi.md#findinfiles) | **GET** /sandboxes/{sandboxId}/files/find | Find text in sandbox files |
|
|
44
47
|
| [**fork**](BoatApi.md#forkoperation) | **POST** /sandboxes/{sandboxId}/fork | Fork sandbox |
|
|
45
48
|
| [**get**](BoatApi.md#get) | **GET** /sandboxes/{sandboxId} | Get sandbox |
|
|
46
49
|
| [**getAiProxy**](BoatApi.md#getaiproxy) | **GET** /ai-proxy | Get AI credentials proxy |
|
|
@@ -48,6 +51,7 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
48
51
|
| [**getCommand**](BoatApi.md#getcommand) | **GET** /sandboxes/{sandboxId}/command-history/{commandId} | Get one command from the history |
|
|
49
52
|
| [**getDataRetention**](BoatApi.md#getdataretention) | **GET** /account/data-retention | Get account data-retention policy |
|
|
50
53
|
| [**getDeletionOperation**](BoatApi.md#getdeletionoperation) | **GET** /deletion-operations/{operationId} | Get deletion operation |
|
|
54
|
+
| [**getFileInfo**](BoatApi.md#getfileinfo) | **GET** /sandboxes/{sandboxId}/files/info | Get file or directory details in a sandbox |
|
|
51
55
|
| [**getLatestSandboxSnapshot**](BoatApi.md#getlatestsandboxsnapshot) | **GET** /sandboxes/{sandboxId}/snapshots/latest | Get latest boat snapshot |
|
|
52
56
|
| [**getNamedSnapshot**](BoatApi.md#getnamedsnapshot) | **GET** /named-snapshots/{name} | Get a named snapshot |
|
|
53
57
|
| [**getSandboxAiUsage**](BoatApi.md#getsandboxaiusage) | **GET** /sandboxes/{sandboxId}/ai-usage | Get sandbox AI usage |
|
|
@@ -63,6 +67,7 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
63
67
|
| [**limits**](BoatApi.md#limits) | **GET** /limits | Get Boat limits |
|
|
64
68
|
| [**listCredentialAccounts**](BoatApi.md#listcredentialaccounts) | **GET** /credential-profiles/{profile}/accounts/{credential} | List the accounts of a credential |
|
|
65
69
|
| [**listCredentialProfiles**](BoatApi.md#listcredentialprofiles) | **GET** /credential-profiles | List credential profiles |
|
|
70
|
+
| [**listFiles**](BoatApi.md#listfiles) | **GET** /sandboxes/{sandboxId}/files/list | List a directory in a sandbox |
|
|
66
71
|
| [**listNamedSnapshots**](BoatApi.md#listnamedsnapshots) | **GET** /named-snapshots | List named snapshots |
|
|
67
72
|
| [**listOrganizations**](BoatApi.md#listorganizations) | **GET** /orgs | List organizations |
|
|
68
73
|
| [**listSandboxSnapshots**](BoatApi.md#listsandboxsnapshots) | **GET** /sandboxes/{sandboxId}/snapshots | List boat snapshots |
|
|
@@ -71,11 +76,13 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
71
76
|
| [**listSnapshots**](BoatApi.md#listsnapshots) | **GET** /snapshots | List snapshots |
|
|
72
77
|
| [**listWebhooks**](BoatApi.md#listwebhooks) | **GET** /webhooks | List webhooks |
|
|
73
78
|
| [**me**](BoatApi.md#me) | **GET** /me | Get current Boat user |
|
|
79
|
+
| [**moveFile**](BoatApi.md#movefile) | **POST** /sandboxes/{sandboxId}/files/move | Move or rename a file or directory in a sandbox |
|
|
74
80
|
| [**processes**](BoatApi.md#processes) | **GET** /sandboxes/{sandboxId}/processes | List the processes in a sandbox |
|
|
75
81
|
| [**prompt**](BoatApi.md#promptoperation) | **POST** /sandboxes/{sandboxId}/prompt | Prompt Sandbox |
|
|
76
82
|
| [**promptRunStatus**](BoatApi.md#promptrunstatus) | **GET** /sandboxes/{sandboxId}/prompts/{promptId} | Get prompt run status |
|
|
77
83
|
| [**readFile**](BoatApi.md#readfile) | **GET** /sandboxes/{sandboxId}/files | Read a file from a sandbox |
|
|
78
84
|
| [**recover**](BoatApi.md#recover) | **POST** /sandboxes/{sandboxId}/recover | Recover a sandbox that stopped responding |
|
|
85
|
+
| [**replaceInFiles**](BoatApi.md#replaceinfiles) | **POST** /sandboxes/{sandboxId}/files/replace | Replace text in sandbox files |
|
|
79
86
|
| [**repos**](BoatApi.md#repos) | **GET** /repos | List GitHub repositories available to Boat |
|
|
80
87
|
| [**resume**](BoatApi.md#resumeoperation) | **POST** /sandboxes/{sandboxId}/resume | Resume sandbox |
|
|
81
88
|
| [**revokeApiKey**](BoatApi.md#revokeapikey) | **DELETE** /api-keys/{apiKeyId} | Revoke an API key |
|
|
@@ -85,6 +92,7 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
85
92
|
| [**sandboxes**](BoatApi.md#sandboxes) | **GET** /sandboxes | List sandboxes |
|
|
86
93
|
| [**saveNamedSnapshot**](BoatApi.md#savenamedsnapshot) | **POST** /named-snapshots | Save a named snapshot |
|
|
87
94
|
| [**saveSavedSnapshot**](BoatApi.md#savesavedsnapshot) | **POST** /saved-snapshots | Save a saved snapshot |
|
|
95
|
+
| [**searchFiles**](BoatApi.md#searchfiles) | **GET** /sandboxes/{sandboxId}/files/search | Search files by name in a sandbox |
|
|
88
96
|
| [**secrets**](BoatApi.md#secrets) | **GET** /secrets | Get Boat secrets setup |
|
|
89
97
|
| [**selectRepo**](BoatApi.md#selectrepo) | **POST** /repos | Select repository for sandboxes |
|
|
90
98
|
| [**setActiveOrganization**](BoatApi.md#setactiveorganization) | **PATCH** /orgs/active | Set the active organization |
|
|
@@ -92,6 +100,7 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
92
100
|
| [**setCredentialProfileKey**](BoatApi.md#setcredentialprofilekey) | **PUT** /credential-profiles/{profile}/keys/{credential} | Set a credential profile API key |
|
|
93
101
|
| [**setEnvironmentSecretFile**](BoatApi.md#setenvironmentsecretfileoperation) | **PUT** /environments/{environmentId}/secret-files | Write one secret file |
|
|
94
102
|
| [**setEnvironmentVar**](BoatApi.md#setenvironmentvaroperation) | **PUT** /environments/{environmentId}/vars/{key} | Set one environment variable |
|
|
103
|
+
| [**setFilePermissions**](BoatApi.md#setfilepermissions) | **POST** /sandboxes/{sandboxId}/files/permissions | Set file permissions in a sandbox |
|
|
95
104
|
| [**setSandboxAiAccess**](BoatApi.md#setsandboxaiaccessoperation) | **PUT** /sandboxes/{sandboxId}/ai-access | Block or unblock sandbox AI access |
|
|
96
105
|
| [**setTelemetry**](BoatApi.md#settelemetry) | **PUT** /telemetry | Set OpenTelemetry export |
|
|
97
106
|
| [**share**](BoatApi.md#share) | **POST** /sandboxes/{sandboxId}/share | Share sandbox with the organization |
|
|
@@ -1066,7 +1075,7 @@ example().catch(console.error);
|
|
|
1066
1075
|
| **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
1076
|
| **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. | - |
|
|
1068
1077
|
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
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
|
|
1078
|
+
| **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 and the `limit` that applied). With money in the wallet after the first payment, starts above a limit are paid, up to `startLimitsWithWallet`; the body carries `startLimitsWithWallet`, null when paid starts are not available. 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. | - |
|
|
1070
1079
|
| **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. | - |
|
|
1071
1080
|
|
|
1072
1081
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
@@ -1302,13 +1311,88 @@ example().catch(console.error);
|
|
|
1302
1311
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1303
1312
|
|
|
1304
1313
|
|
|
1314
|
+
## createFolder
|
|
1315
|
+
|
|
1316
|
+
> FileInfoResponse createFolder(sandboxId, fileFolderRequest)
|
|
1317
|
+
|
|
1318
|
+
Create a directory in a sandbox
|
|
1319
|
+
|
|
1320
|
+
Missing parent directories are created. An existing directory is not an error. Needs `file.write`.
|
|
1321
|
+
|
|
1322
|
+
### Example
|
|
1323
|
+
|
|
1324
|
+
```ts
|
|
1325
|
+
import {
|
|
1326
|
+
Configuration,
|
|
1327
|
+
BoatApi,
|
|
1328
|
+
} from '@boatdev/sdk';
|
|
1329
|
+
import type { CreateFolderRequest } from '@boatdev/sdk';
|
|
1330
|
+
|
|
1331
|
+
async function example() {
|
|
1332
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1333
|
+
const config = new Configuration({
|
|
1334
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1335
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1336
|
+
});
|
|
1337
|
+
const api = new BoatApi(config);
|
|
1338
|
+
|
|
1339
|
+
const body = {
|
|
1340
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
1341
|
+
sandboxId: sandboxId_example,
|
|
1342
|
+
// FileFolderRequest
|
|
1343
|
+
fileFolderRequest: ...,
|
|
1344
|
+
} satisfies CreateFolderRequest;
|
|
1345
|
+
|
|
1346
|
+
try {
|
|
1347
|
+
const data = await api.createFolder(body);
|
|
1348
|
+
console.log(data);
|
|
1349
|
+
} catch (error) {
|
|
1350
|
+
console.error(error);
|
|
1351
|
+
}
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
// Run the test
|
|
1355
|
+
example().catch(console.error);
|
|
1356
|
+
```
|
|
1357
|
+
|
|
1358
|
+
### Parameters
|
|
1359
|
+
|
|
1360
|
+
|
|
1361
|
+
| Name | Type | Description | Notes |
|
|
1362
|
+
|------------- | ------------- | ------------- | -------------|
|
|
1363
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
1364
|
+
| **fileFolderRequest** | [FileFolderRequest](FileFolderRequest.md) | | |
|
|
1365
|
+
|
|
1366
|
+
### Return type
|
|
1367
|
+
|
|
1368
|
+
[**FileInfoResponse**](FileInfoResponse.md)
|
|
1369
|
+
|
|
1370
|
+
### Authorization
|
|
1371
|
+
|
|
1372
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1373
|
+
|
|
1374
|
+
### HTTP request headers
|
|
1375
|
+
|
|
1376
|
+
- **Content-Type**: `application/json`
|
|
1377
|
+
- **Accept**: `application/json`
|
|
1378
|
+
|
|
1379
|
+
|
|
1380
|
+
### HTTP response details
|
|
1381
|
+
| Status code | Description | Response headers |
|
|
1382
|
+
|-------------|-------------|------------------|
|
|
1383
|
+
| **200** | Directory created. | - |
|
|
1384
|
+
| **400** | Invalid request body or parameters. | - |
|
|
1385
|
+
|
|
1386
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1387
|
+
|
|
1388
|
+
|
|
1305
1389
|
## createScopedApiKey
|
|
1306
1390
|
|
|
1307
1391
|
> ApiKeySecretResponse createScopedApiKey(createScopedApiKeyRequest)
|
|
1308
1392
|
|
|
1309
1393
|
Create a scoped API key
|
|
1310
1394
|
|
|
1311
|
-
Creates a scoped, expiring API key. Requires a dashboard/CLI session or an admin-scoped token. The secret is returned once. This dedicated path returns a typed 503 until scoped credential creation is activated.
|
|
1395
|
+
Creates a scoped, expiring API key. Requires a dashboard/CLI session or an admin-scoped token. The secret is returned once. An unknown field is a 400, so a misspelled scope never creates a full-access key. environmentIds takes your own environments and the org environments you can use. This dedicated path returns a typed 503 until scoped credential creation is activated.
|
|
1312
1396
|
|
|
1313
1397
|
### Example
|
|
1314
1398
|
|
|
@@ -2227,6 +2311,84 @@ example().catch(console.error);
|
|
|
2227
2311
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2228
2312
|
|
|
2229
2313
|
|
|
2314
|
+
## deleteFile
|
|
2315
|
+
|
|
2316
|
+
> FileDeleteResponse deleteFile(sandboxId, path, recursive)
|
|
2317
|
+
|
|
2318
|
+
Delete a file or directory in a sandbox
|
|
2319
|
+
|
|
2320
|
+
A directory needs `recursive=true`. A symlink is deleted itself, never its target. /home/user and /tmp themselves cannot be deleted. Needs `file.write`.
|
|
2321
|
+
|
|
2322
|
+
### Example
|
|
2323
|
+
|
|
2324
|
+
```ts
|
|
2325
|
+
import {
|
|
2326
|
+
Configuration,
|
|
2327
|
+
BoatApi,
|
|
2328
|
+
} from '@boatdev/sdk';
|
|
2329
|
+
import type { DeleteFileRequest } from '@boatdev/sdk';
|
|
2330
|
+
|
|
2331
|
+
async function example() {
|
|
2332
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2333
|
+
const config = new Configuration({
|
|
2334
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2335
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2336
|
+
});
|
|
2337
|
+
const api = new BoatApi(config);
|
|
2338
|
+
|
|
2339
|
+
const body = {
|
|
2340
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
2341
|
+
sandboxId: sandboxId_example,
|
|
2342
|
+
// string
|
|
2343
|
+
path: path_example,
|
|
2344
|
+
// boolean (optional)
|
|
2345
|
+
recursive: true,
|
|
2346
|
+
} satisfies DeleteFileRequest;
|
|
2347
|
+
|
|
2348
|
+
try {
|
|
2349
|
+
const data = await api.deleteFile(body);
|
|
2350
|
+
console.log(data);
|
|
2351
|
+
} catch (error) {
|
|
2352
|
+
console.error(error);
|
|
2353
|
+
}
|
|
2354
|
+
}
|
|
2355
|
+
|
|
2356
|
+
// Run the test
|
|
2357
|
+
example().catch(console.error);
|
|
2358
|
+
```
|
|
2359
|
+
|
|
2360
|
+
### Parameters
|
|
2361
|
+
|
|
2362
|
+
|
|
2363
|
+
| Name | Type | Description | Notes |
|
|
2364
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2365
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
2366
|
+
| **path** | `string` | | [Defaults to `undefined`] |
|
|
2367
|
+
| **recursive** | `boolean` | | [Optional] [Defaults to `false`] |
|
|
2368
|
+
|
|
2369
|
+
### Return type
|
|
2370
|
+
|
|
2371
|
+
[**FileDeleteResponse**](FileDeleteResponse.md)
|
|
2372
|
+
|
|
2373
|
+
### Authorization
|
|
2374
|
+
|
|
2375
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2376
|
+
|
|
2377
|
+
### HTTP request headers
|
|
2378
|
+
|
|
2379
|
+
- **Content-Type**: Not defined
|
|
2380
|
+
- **Accept**: `application/json`
|
|
2381
|
+
|
|
2382
|
+
|
|
2383
|
+
### HTTP response details
|
|
2384
|
+
| Status code | Description | Response headers |
|
|
2385
|
+
|-------------|-------------|------------------|
|
|
2386
|
+
| **200** | Deleted. | - |
|
|
2387
|
+
| **400** | Invalid request body or parameters. | - |
|
|
2388
|
+
|
|
2389
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2390
|
+
|
|
2391
|
+
|
|
2230
2392
|
## deleteNamedSnapshot
|
|
2231
2393
|
|
|
2232
2394
|
> NamedSnapshotDeletedResponse deleteNamedSnapshot(name)
|
|
@@ -2992,6 +3154,87 @@ example().catch(console.error);
|
|
|
2992
3154
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2993
3155
|
|
|
2994
3156
|
|
|
3157
|
+
## findInFiles
|
|
3158
|
+
|
|
3159
|
+
> FileFindResponse findInFiles(sandboxId, pattern, path, regex)
|
|
3160
|
+
|
|
3161
|
+
Find text in sandbox files
|
|
3162
|
+
|
|
3163
|
+
Every line under `path` that contains `pattern`. `pattern` is plain text; with `regex=true` it is an extended regular expression. Binary files are skipped and symlinks are not followed. Needs `file.read`.
|
|
3164
|
+
|
|
3165
|
+
### Example
|
|
3166
|
+
|
|
3167
|
+
```ts
|
|
3168
|
+
import {
|
|
3169
|
+
Configuration,
|
|
3170
|
+
BoatApi,
|
|
3171
|
+
} from '@boatdev/sdk';
|
|
3172
|
+
import type { FindInFilesRequest } from '@boatdev/sdk';
|
|
3173
|
+
|
|
3174
|
+
async function example() {
|
|
3175
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3176
|
+
const config = new Configuration({
|
|
3177
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3178
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3179
|
+
});
|
|
3180
|
+
const api = new BoatApi(config);
|
|
3181
|
+
|
|
3182
|
+
const body = {
|
|
3183
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
3184
|
+
sandboxId: sandboxId_example,
|
|
3185
|
+
// string
|
|
3186
|
+
pattern: pattern_example,
|
|
3187
|
+
// string (optional)
|
|
3188
|
+
path: path_example,
|
|
3189
|
+
// boolean (optional)
|
|
3190
|
+
regex: true,
|
|
3191
|
+
} satisfies FindInFilesRequest;
|
|
3192
|
+
|
|
3193
|
+
try {
|
|
3194
|
+
const data = await api.findInFiles(body);
|
|
3195
|
+
console.log(data);
|
|
3196
|
+
} catch (error) {
|
|
3197
|
+
console.error(error);
|
|
3198
|
+
}
|
|
3199
|
+
}
|
|
3200
|
+
|
|
3201
|
+
// Run the test
|
|
3202
|
+
example().catch(console.error);
|
|
3203
|
+
```
|
|
3204
|
+
|
|
3205
|
+
### Parameters
|
|
3206
|
+
|
|
3207
|
+
|
|
3208
|
+
| Name | Type | Description | Notes |
|
|
3209
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3210
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
3211
|
+
| **pattern** | `string` | | [Defaults to `undefined`] |
|
|
3212
|
+
| **path** | `string` | | [Optional] [Defaults to `'/home/user'`] |
|
|
3213
|
+
| **regex** | `boolean` | | [Optional] [Defaults to `false`] |
|
|
3214
|
+
|
|
3215
|
+
### Return type
|
|
3216
|
+
|
|
3217
|
+
[**FileFindResponse**](FileFindResponse.md)
|
|
3218
|
+
|
|
3219
|
+
### Authorization
|
|
3220
|
+
|
|
3221
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3222
|
+
|
|
3223
|
+
### HTTP request headers
|
|
3224
|
+
|
|
3225
|
+
- **Content-Type**: Not defined
|
|
3226
|
+
- **Accept**: `application/json`
|
|
3227
|
+
|
|
3228
|
+
|
|
3229
|
+
### HTTP response details
|
|
3230
|
+
| Status code | Description | Response headers |
|
|
3231
|
+
|-------------|-------------|------------------|
|
|
3232
|
+
| **200** | Matching lines. | - |
|
|
3233
|
+
| **400** | Invalid request body or parameters. | - |
|
|
3234
|
+
|
|
3235
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3236
|
+
|
|
3237
|
+
|
|
2995
3238
|
## fork
|
|
2996
3239
|
|
|
2997
3240
|
> SandboxActionResponse fork(sandboxId, idempotencyKey, forkRequest)
|
|
@@ -3070,7 +3313,7 @@ example().catch(console.error);
|
|
|
3070
3313
|
| **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. | - |
|
|
3071
3314
|
| **404** | Resource not found. | - |
|
|
3072
3315
|
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
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
|
|
3316
|
+
| **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 and the `limit` that applied). With money in the wallet after the first payment, starts above a limit are paid, up to `startLimitsWithWallet`; the body carries `startLimitsWithWallet`, null when paid starts are not available. 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. | - |
|
|
3074
3317
|
| **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. | - |
|
|
3075
3318
|
|
|
3076
3319
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
@@ -3517,13 +3760,13 @@ example().catch(console.error);
|
|
|
3517
3760
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3518
3761
|
|
|
3519
3762
|
|
|
3520
|
-
##
|
|
3763
|
+
## getFileInfo
|
|
3521
3764
|
|
|
3522
|
-
>
|
|
3765
|
+
> FileInfoResponse getFileInfo(sandboxId, path)
|
|
3523
3766
|
|
|
3524
|
-
Get
|
|
3767
|
+
Get file or directory details in a sandbox
|
|
3525
3768
|
|
|
3526
|
-
|
|
3769
|
+
Size, permission bits, type and modification time. Needs `file.read`.
|
|
3527
3770
|
|
|
3528
3771
|
### Example
|
|
3529
3772
|
|
|
@@ -3532,7 +3775,7 @@ import {
|
|
|
3532
3775
|
Configuration,
|
|
3533
3776
|
BoatApi,
|
|
3534
3777
|
} from '@boatdev/sdk';
|
|
3535
|
-
import type {
|
|
3778
|
+
import type { GetFileInfoRequest } from '@boatdev/sdk';
|
|
3536
3779
|
|
|
3537
3780
|
async function example() {
|
|
3538
3781
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -3545,10 +3788,12 @@ async function example() {
|
|
|
3545
3788
|
const body = {
|
|
3546
3789
|
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
3547
3790
|
sandboxId: sandboxId_example,
|
|
3548
|
-
|
|
3791
|
+
// string
|
|
3792
|
+
path: path_example,
|
|
3793
|
+
} satisfies GetFileInfoRequest;
|
|
3549
3794
|
|
|
3550
3795
|
try {
|
|
3551
|
-
const data = await api.
|
|
3796
|
+
const data = await api.getFileInfo(body);
|
|
3552
3797
|
console.log(data);
|
|
3553
3798
|
} catch (error) {
|
|
3554
3799
|
console.error(error);
|
|
@@ -3565,10 +3810,11 @@ example().catch(console.error);
|
|
|
3565
3810
|
| Name | Type | Description | Notes |
|
|
3566
3811
|
|------------- | ------------- | ------------- | -------------|
|
|
3567
3812
|
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
3813
|
+
| **path** | `string` | | [Defaults to `undefined`] |
|
|
3568
3814
|
|
|
3569
3815
|
### Return type
|
|
3570
3816
|
|
|
3571
|
-
[**
|
|
3817
|
+
[**FileInfoResponse**](FileInfoResponse.md)
|
|
3572
3818
|
|
|
3573
3819
|
### Authorization
|
|
3574
3820
|
|
|
@@ -3583,18 +3829,19 @@ example().catch(console.error);
|
|
|
3583
3829
|
### HTTP response details
|
|
3584
3830
|
| Status code | Description | Response headers |
|
|
3585
3831
|
|-------------|-------------|------------------|
|
|
3586
|
-
| **200** |
|
|
3587
|
-
| **
|
|
3588
|
-
| **404** | Resource not found. | - |
|
|
3832
|
+
| **200** | File details. | - |
|
|
3833
|
+
| **400** | Invalid request body or parameters. | - |
|
|
3589
3834
|
|
|
3590
3835
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3591
3836
|
|
|
3592
3837
|
|
|
3593
|
-
##
|
|
3838
|
+
## getLatestSandboxSnapshot
|
|
3594
3839
|
|
|
3595
|
-
>
|
|
3840
|
+
> SnapshotLatestResponse getLatestSandboxSnapshot(sandboxId)
|
|
3596
3841
|
|
|
3597
|
-
Get
|
|
3842
|
+
Get latest boat snapshot
|
|
3843
|
+
|
|
3844
|
+
Return the most recent completed snapshot for this sandbox, or `null` if it has none.
|
|
3598
3845
|
|
|
3599
3846
|
### Example
|
|
3600
3847
|
|
|
@@ -3603,7 +3850,7 @@ import {
|
|
|
3603
3850
|
Configuration,
|
|
3604
3851
|
BoatApi,
|
|
3605
3852
|
} from '@boatdev/sdk';
|
|
3606
|
-
import type {
|
|
3853
|
+
import type { GetLatestSandboxSnapshotRequest } from '@boatdev/sdk';
|
|
3607
3854
|
|
|
3608
3855
|
async function example() {
|
|
3609
3856
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -3614,12 +3861,12 @@ async function example() {
|
|
|
3614
3861
|
const api = new BoatApi(config);
|
|
3615
3862
|
|
|
3616
3863
|
const body = {
|
|
3617
|
-
// string
|
|
3618
|
-
|
|
3619
|
-
} satisfies
|
|
3864
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
3865
|
+
sandboxId: sandboxId_example,
|
|
3866
|
+
} satisfies GetLatestSandboxSnapshotRequest;
|
|
3620
3867
|
|
|
3621
3868
|
try {
|
|
3622
|
-
const data = await api.
|
|
3869
|
+
const data = await api.getLatestSandboxSnapshot(body);
|
|
3623
3870
|
console.log(data);
|
|
3624
3871
|
} catch (error) {
|
|
3625
3872
|
console.error(error);
|
|
@@ -3635,11 +3882,11 @@ example().catch(console.error);
|
|
|
3635
3882
|
|
|
3636
3883
|
| Name | Type | Description | Notes |
|
|
3637
3884
|
|------------- | ------------- | ------------- | -------------|
|
|
3638
|
-
| **
|
|
3885
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
3639
3886
|
|
|
3640
3887
|
### Return type
|
|
3641
3888
|
|
|
3642
|
-
[**
|
|
3889
|
+
[**SnapshotLatestResponse**](SnapshotLatestResponse.md)
|
|
3643
3890
|
|
|
3644
3891
|
### Authorization
|
|
3645
3892
|
|
|
@@ -3654,20 +3901,18 @@ example().catch(console.error);
|
|
|
3654
3901
|
### HTTP response details
|
|
3655
3902
|
| Status code | Description | Response headers |
|
|
3656
3903
|
|-------------|-------------|------------------|
|
|
3657
|
-
| **200** |
|
|
3904
|
+
| **200** | Most recent completed snapshot, or `null`. | - |
|
|
3658
3905
|
| **401** | Missing or invalid bearer token. | - |
|
|
3659
3906
|
| **404** | Resource not found. | - |
|
|
3660
3907
|
|
|
3661
3908
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3662
3909
|
|
|
3663
3910
|
|
|
3664
|
-
##
|
|
3665
|
-
|
|
3666
|
-
> SandboxAiUsageResponse getSandboxAiUsage(sandboxId, days)
|
|
3911
|
+
## getNamedSnapshot
|
|
3667
3912
|
|
|
3668
|
-
|
|
3913
|
+
> NamedSnapshotInfoResponse getNamedSnapshot(name)
|
|
3669
3914
|
|
|
3670
|
-
|
|
3915
|
+
Get a named snapshot
|
|
3671
3916
|
|
|
3672
3917
|
### Example
|
|
3673
3918
|
|
|
@@ -3676,7 +3921,7 @@ import {
|
|
|
3676
3921
|
Configuration,
|
|
3677
3922
|
BoatApi,
|
|
3678
3923
|
} from '@boatdev/sdk';
|
|
3679
|
-
import type {
|
|
3924
|
+
import type { GetNamedSnapshotRequest } from '@boatdev/sdk';
|
|
3680
3925
|
|
|
3681
3926
|
async function example() {
|
|
3682
3927
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -3687,14 +3932,12 @@ async function example() {
|
|
|
3687
3932
|
const api = new BoatApi(config);
|
|
3688
3933
|
|
|
3689
3934
|
const body = {
|
|
3690
|
-
// string
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
days: 56,
|
|
3694
|
-
} satisfies GetSandboxAiUsageRequest;
|
|
3935
|
+
// string
|
|
3936
|
+
name: name_example,
|
|
3937
|
+
} satisfies GetNamedSnapshotRequest;
|
|
3695
3938
|
|
|
3696
3939
|
try {
|
|
3697
|
-
const data = await api.
|
|
3940
|
+
const data = await api.getNamedSnapshot(body);
|
|
3698
3941
|
console.log(data);
|
|
3699
3942
|
} catch (error) {
|
|
3700
3943
|
console.error(error);
|
|
@@ -3710,8 +3953,83 @@ example().catch(console.error);
|
|
|
3710
3953
|
|
|
3711
3954
|
| Name | Type | Description | Notes |
|
|
3712
3955
|
|------------- | ------------- | ------------- | -------------|
|
|
3713
|
-
| **
|
|
3714
|
-
|
|
3956
|
+
| **name** | `string` | | [Defaults to `undefined`] |
|
|
3957
|
+
|
|
3958
|
+
### Return type
|
|
3959
|
+
|
|
3960
|
+
[**NamedSnapshotInfoResponse**](NamedSnapshotInfoResponse.md)
|
|
3961
|
+
|
|
3962
|
+
### Authorization
|
|
3963
|
+
|
|
3964
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3965
|
+
|
|
3966
|
+
### HTTP request headers
|
|
3967
|
+
|
|
3968
|
+
- **Content-Type**: Not defined
|
|
3969
|
+
- **Accept**: `application/json`
|
|
3970
|
+
|
|
3971
|
+
|
|
3972
|
+
### HTTP response details
|
|
3973
|
+
| Status code | Description | Response headers |
|
|
3974
|
+
|-------------|-------------|------------------|
|
|
3975
|
+
| **200** | The named snapshot. | - |
|
|
3976
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3977
|
+
| **404** | Resource not found. | - |
|
|
3978
|
+
|
|
3979
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3980
|
+
|
|
3981
|
+
|
|
3982
|
+
## getSandboxAiUsage
|
|
3983
|
+
|
|
3984
|
+
> SandboxAiUsageResponse getSandboxAiUsage(sandboxId, days)
|
|
3985
|
+
|
|
3986
|
+
Get sandbox AI usage
|
|
3987
|
+
|
|
3988
|
+
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.
|
|
3989
|
+
|
|
3990
|
+
### Example
|
|
3991
|
+
|
|
3992
|
+
```ts
|
|
3993
|
+
import {
|
|
3994
|
+
Configuration,
|
|
3995
|
+
BoatApi,
|
|
3996
|
+
} from '@boatdev/sdk';
|
|
3997
|
+
import type { GetSandboxAiUsageRequest } from '@boatdev/sdk';
|
|
3998
|
+
|
|
3999
|
+
async function example() {
|
|
4000
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4001
|
+
const config = new Configuration({
|
|
4002
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4003
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4004
|
+
});
|
|
4005
|
+
const api = new BoatApi(config);
|
|
4006
|
+
|
|
4007
|
+
const body = {
|
|
4008
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
4009
|
+
sandboxId: sandboxId_example,
|
|
4010
|
+
// number | Days of history, today included. (optional)
|
|
4011
|
+
days: 56,
|
|
4012
|
+
} satisfies GetSandboxAiUsageRequest;
|
|
4013
|
+
|
|
4014
|
+
try {
|
|
4015
|
+
const data = await api.getSandboxAiUsage(body);
|
|
4016
|
+
console.log(data);
|
|
4017
|
+
} catch (error) {
|
|
4018
|
+
console.error(error);
|
|
4019
|
+
}
|
|
4020
|
+
}
|
|
4021
|
+
|
|
4022
|
+
// Run the test
|
|
4023
|
+
example().catch(console.error);
|
|
4024
|
+
```
|
|
4025
|
+
|
|
4026
|
+
### Parameters
|
|
4027
|
+
|
|
4028
|
+
|
|
4029
|
+
| Name | Type | Description | Notes |
|
|
4030
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4031
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
4032
|
+
| **days** | `number` | Days of history, today included. | [Optional] [Defaults to `30`] |
|
|
3715
4033
|
|
|
3716
4034
|
### Return type
|
|
3717
4035
|
|
|
@@ -4406,7 +4724,7 @@ example().catch(console.error);
|
|
|
4406
4724
|
|
|
4407
4725
|
Get Boat limits
|
|
4408
4726
|
|
|
4409
|
-
Check remaining machine starts,
|
|
4727
|
+
Check remaining machine starts, included VM time, the wallet, overage prices, access readiness, and concurrent-sandbox capacity for the wallet a create would bill: the `org` / `X-Boat-Org` you pass (id or name), else the account\'s active wallet, else personal. The response carries `teamId` when an organization wallet was read.
|
|
4410
4728
|
|
|
4411
4729
|
### Example
|
|
4412
4730
|
|
|
@@ -4620,6 +4938,81 @@ This endpoint does not need any parameter.
|
|
|
4620
4938
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4621
4939
|
|
|
4622
4940
|
|
|
4941
|
+
## listFiles
|
|
4942
|
+
|
|
4943
|
+
> FileListResponse listFiles(sandboxId, path)
|
|
4944
|
+
|
|
4945
|
+
List a directory in a sandbox
|
|
4946
|
+
|
|
4947
|
+
One level, sorted by name. A symlink is listed as a symlink, not followed. Defaults to /home/user. Needs `file.read`.
|
|
4948
|
+
|
|
4949
|
+
### Example
|
|
4950
|
+
|
|
4951
|
+
```ts
|
|
4952
|
+
import {
|
|
4953
|
+
Configuration,
|
|
4954
|
+
BoatApi,
|
|
4955
|
+
} from '@boatdev/sdk';
|
|
4956
|
+
import type { ListFilesRequest } from '@boatdev/sdk';
|
|
4957
|
+
|
|
4958
|
+
async function example() {
|
|
4959
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4960
|
+
const config = new Configuration({
|
|
4961
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4962
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4963
|
+
});
|
|
4964
|
+
const api = new BoatApi(config);
|
|
4965
|
+
|
|
4966
|
+
const body = {
|
|
4967
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
4968
|
+
sandboxId: sandboxId_example,
|
|
4969
|
+
// string (optional)
|
|
4970
|
+
path: path_example,
|
|
4971
|
+
} satisfies ListFilesRequest;
|
|
4972
|
+
|
|
4973
|
+
try {
|
|
4974
|
+
const data = await api.listFiles(body);
|
|
4975
|
+
console.log(data);
|
|
4976
|
+
} catch (error) {
|
|
4977
|
+
console.error(error);
|
|
4978
|
+
}
|
|
4979
|
+
}
|
|
4980
|
+
|
|
4981
|
+
// Run the test
|
|
4982
|
+
example().catch(console.error);
|
|
4983
|
+
```
|
|
4984
|
+
|
|
4985
|
+
### Parameters
|
|
4986
|
+
|
|
4987
|
+
|
|
4988
|
+
| Name | Type | Description | Notes |
|
|
4989
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4990
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
4991
|
+
| **path** | `string` | | [Optional] [Defaults to `'/home/user'`] |
|
|
4992
|
+
|
|
4993
|
+
### Return type
|
|
4994
|
+
|
|
4995
|
+
[**FileListResponse**](FileListResponse.md)
|
|
4996
|
+
|
|
4997
|
+
### Authorization
|
|
4998
|
+
|
|
4999
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
5000
|
+
|
|
5001
|
+
### HTTP request headers
|
|
5002
|
+
|
|
5003
|
+
- **Content-Type**: Not defined
|
|
5004
|
+
- **Accept**: `application/json`
|
|
5005
|
+
|
|
5006
|
+
|
|
5007
|
+
### HTTP response details
|
|
5008
|
+
| Status code | Description | Response headers |
|
|
5009
|
+
|-------------|-------------|------------------|
|
|
5010
|
+
| **200** | Directory entries. | - |
|
|
5011
|
+
| **400** | Invalid request body or parameters. | - |
|
|
5012
|
+
|
|
5013
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
5014
|
+
|
|
5015
|
+
|
|
4623
5016
|
## listNamedSnapshots
|
|
4624
5017
|
|
|
4625
5018
|
> NamedSnapshotListResponse listNamedSnapshots()
|
|
@@ -5175,6 +5568,81 @@ This endpoint does not need any parameter.
|
|
|
5175
5568
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
5176
5569
|
|
|
5177
5570
|
|
|
5571
|
+
## moveFile
|
|
5572
|
+
|
|
5573
|
+
> FileMoveResponse moveFile(sandboxId, fileMoveRequest)
|
|
5574
|
+
|
|
5575
|
+
Move or rename a file or directory in a sandbox
|
|
5576
|
+
|
|
5577
|
+
Works across /home/user and /tmp. A symlink is moved itself, never its target. Needs `file.write`.
|
|
5578
|
+
|
|
5579
|
+
### Example
|
|
5580
|
+
|
|
5581
|
+
```ts
|
|
5582
|
+
import {
|
|
5583
|
+
Configuration,
|
|
5584
|
+
BoatApi,
|
|
5585
|
+
} from '@boatdev/sdk';
|
|
5586
|
+
import type { MoveFileRequest } from '@boatdev/sdk';
|
|
5587
|
+
|
|
5588
|
+
async function example() {
|
|
5589
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
5590
|
+
const config = new Configuration({
|
|
5591
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
5592
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
5593
|
+
});
|
|
5594
|
+
const api = new BoatApi(config);
|
|
5595
|
+
|
|
5596
|
+
const body = {
|
|
5597
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
5598
|
+
sandboxId: sandboxId_example,
|
|
5599
|
+
// FileMoveRequest
|
|
5600
|
+
fileMoveRequest: ...,
|
|
5601
|
+
} satisfies MoveFileRequest;
|
|
5602
|
+
|
|
5603
|
+
try {
|
|
5604
|
+
const data = await api.moveFile(body);
|
|
5605
|
+
console.log(data);
|
|
5606
|
+
} catch (error) {
|
|
5607
|
+
console.error(error);
|
|
5608
|
+
}
|
|
5609
|
+
}
|
|
5610
|
+
|
|
5611
|
+
// Run the test
|
|
5612
|
+
example().catch(console.error);
|
|
5613
|
+
```
|
|
5614
|
+
|
|
5615
|
+
### Parameters
|
|
5616
|
+
|
|
5617
|
+
|
|
5618
|
+
| Name | Type | Description | Notes |
|
|
5619
|
+
|------------- | ------------- | ------------- | -------------|
|
|
5620
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
5621
|
+
| **fileMoveRequest** | [FileMoveRequest](FileMoveRequest.md) | | |
|
|
5622
|
+
|
|
5623
|
+
### Return type
|
|
5624
|
+
|
|
5625
|
+
[**FileMoveResponse**](FileMoveResponse.md)
|
|
5626
|
+
|
|
5627
|
+
### Authorization
|
|
5628
|
+
|
|
5629
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
5630
|
+
|
|
5631
|
+
### HTTP request headers
|
|
5632
|
+
|
|
5633
|
+
- **Content-Type**: `application/json`
|
|
5634
|
+
- **Accept**: `application/json`
|
|
5635
|
+
|
|
5636
|
+
|
|
5637
|
+
### HTTP response details
|
|
5638
|
+
| Status code | Description | Response headers |
|
|
5639
|
+
|-------------|-------------|------------------|
|
|
5640
|
+
| **200** | Moved. | - |
|
|
5641
|
+
| **400** | Invalid request body or parameters. | - |
|
|
5642
|
+
|
|
5643
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
5644
|
+
|
|
5645
|
+
|
|
5178
5646
|
## processes
|
|
5179
5647
|
|
|
5180
5648
|
> ProcessListResponse processes(sandboxId)
|
|
@@ -5409,7 +5877,7 @@ example().catch(console.error);
|
|
|
5409
5877
|
|
|
5410
5878
|
Read a file from a sandbox
|
|
5411
5879
|
|
|
5412
|
-
Files up to 5 MiB. For a larger file, use `POST /sandboxes/{sandboxId}/files/download-url`.
|
|
5880
|
+
Files up to 5 MiB. For a larger file, use `POST /sandboxes/{sandboxId}/files/download-url`. On a sandbox that is still starting, the call waits until it is ready (up to 60 s, like a command), so it reads the sandbox\'s own disk and never the machine\'s stock one.
|
|
5413
5881
|
|
|
5414
5882
|
### Example
|
|
5415
5883
|
|
|
@@ -5555,6 +6023,81 @@ example().catch(console.error);
|
|
|
5555
6023
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
5556
6024
|
|
|
5557
6025
|
|
|
6026
|
+
## replaceInFiles
|
|
6027
|
+
|
|
6028
|
+
> FileReplaceResponse replaceInFiles(sandboxId, fileReplaceRequest)
|
|
6029
|
+
|
|
6030
|
+
Replace text in sandbox files
|
|
6031
|
+
|
|
6032
|
+
Replaces every occurrence of `pattern` with `newValue` in each file. Needs `file.write`.
|
|
6033
|
+
|
|
6034
|
+
### Example
|
|
6035
|
+
|
|
6036
|
+
```ts
|
|
6037
|
+
import {
|
|
6038
|
+
Configuration,
|
|
6039
|
+
BoatApi,
|
|
6040
|
+
} from '@boatdev/sdk';
|
|
6041
|
+
import type { ReplaceInFilesRequest } from '@boatdev/sdk';
|
|
6042
|
+
|
|
6043
|
+
async function example() {
|
|
6044
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
6045
|
+
const config = new Configuration({
|
|
6046
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
6047
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
6048
|
+
});
|
|
6049
|
+
const api = new BoatApi(config);
|
|
6050
|
+
|
|
6051
|
+
const body = {
|
|
6052
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
6053
|
+
sandboxId: sandboxId_example,
|
|
6054
|
+
// FileReplaceRequest
|
|
6055
|
+
fileReplaceRequest: ...,
|
|
6056
|
+
} satisfies ReplaceInFilesRequest;
|
|
6057
|
+
|
|
6058
|
+
try {
|
|
6059
|
+
const data = await api.replaceInFiles(body);
|
|
6060
|
+
console.log(data);
|
|
6061
|
+
} catch (error) {
|
|
6062
|
+
console.error(error);
|
|
6063
|
+
}
|
|
6064
|
+
}
|
|
6065
|
+
|
|
6066
|
+
// Run the test
|
|
6067
|
+
example().catch(console.error);
|
|
6068
|
+
```
|
|
6069
|
+
|
|
6070
|
+
### Parameters
|
|
6071
|
+
|
|
6072
|
+
|
|
6073
|
+
| Name | Type | Description | Notes |
|
|
6074
|
+
|------------- | ------------- | ------------- | -------------|
|
|
6075
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
6076
|
+
| **fileReplaceRequest** | [FileReplaceRequest](FileReplaceRequest.md) | | |
|
|
6077
|
+
|
|
6078
|
+
### Return type
|
|
6079
|
+
|
|
6080
|
+
[**FileReplaceResponse**](FileReplaceResponse.md)
|
|
6081
|
+
|
|
6082
|
+
### Authorization
|
|
6083
|
+
|
|
6084
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
6085
|
+
|
|
6086
|
+
### HTTP request headers
|
|
6087
|
+
|
|
6088
|
+
- **Content-Type**: `application/json`
|
|
6089
|
+
- **Accept**: `application/json`
|
|
6090
|
+
|
|
6091
|
+
|
|
6092
|
+
### HTTP response details
|
|
6093
|
+
| Status code | Description | Response headers |
|
|
6094
|
+
|-------------|-------------|------------------|
|
|
6095
|
+
| **200** | Per-file results. | - |
|
|
6096
|
+
| **400** | Invalid request body or parameters. | - |
|
|
6097
|
+
|
|
6098
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
6099
|
+
|
|
6100
|
+
|
|
5558
6101
|
## repos
|
|
5559
6102
|
|
|
5560
6103
|
> ReposResponse repos(sync, limit, cursor, sort, q, selected)
|
|
@@ -5716,7 +6259,7 @@ example().catch(console.error);
|
|
|
5716
6259
|
| **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. | - |
|
|
5717
6260
|
| **404** | Resource not found. | - |
|
|
5718
6261
|
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
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
|
|
6262
|
+
| **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 and the `limit` that applied). With money in the wallet after the first payment, starts above a limit are paid, up to `startLimitsWithWallet`; the body carries `startLimitsWithWallet`, null when paid starts are not available. 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. | - |
|
|
5720
6263
|
| **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. | - |
|
|
5721
6264
|
|
|
5722
6265
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
@@ -5728,7 +6271,7 @@ example().catch(console.error);
|
|
|
5728
6271
|
|
|
5729
6272
|
Revoke an API key
|
|
5730
6273
|
|
|
5731
|
-
Revokes the key immediately. Requires a dashboard or CLI session.
|
|
6274
|
+
Revokes the key immediately. Requires a dashboard or CLI session, or an admin-scoped key. A key revokes itself or a key it could create (same or fewer actions, sandboxes and environments, no later expiry).
|
|
5732
6275
|
|
|
5733
6276
|
### Example
|
|
5734
6277
|
|
|
@@ -5878,7 +6421,7 @@ example().catch(console.error);
|
|
|
5878
6421
|
|
|
5879
6422
|
Rotate an API key
|
|
5880
6423
|
|
|
5881
|
-
Replaces the raw secret without changing expiry or scope. Requires a dashboard or CLI session.
|
|
6424
|
+
Replaces the raw secret without changing expiry or scope. Requires a dashboard or CLI session, or an admin-scoped key. A key rotates itself or a key it could create.
|
|
5882
6425
|
|
|
5883
6426
|
### Example
|
|
5884
6427
|
|
|
@@ -6180,7 +6723,7 @@ example().catch(console.error);
|
|
|
6180
6723
|
| **400** | Invalid request body or parameters. | - |
|
|
6181
6724
|
| **401** | Missing or invalid bearer token. | - |
|
|
6182
6725
|
| **404** | Resource not found. | - |
|
|
6183
|
-
| **402** | `credit_required`: the wallet already keeps
|
|
6726
|
+
| **402** | `credit_required`: the wallet already keeps its included named snapshots and is empty. Each named snapshot above the included count costs $0.056 a day from the wallet. Add money to the wallet or remove one. | - |
|
|
6184
6727
|
| **409** | `save_in_progress` when a save under this name is already running; wait for it to settle rather than retrying immediately. | - |
|
|
6185
6728
|
|
|
6186
6729
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
@@ -6256,12 +6799,90 @@ example().catch(console.error);
|
|
|
6256
6799
|
| **400** | Invalid request body or parameters. | - |
|
|
6257
6800
|
| **401** | Missing or invalid bearer token. | - |
|
|
6258
6801
|
| **404** | Resource not found. | - |
|
|
6259
|
-
| **402** | `credit_required`: the wallet already keeps
|
|
6802
|
+
| **402** | `credit_required`: the wallet already keeps its included saved snapshots and is empty. Each saved snapshot above the plan\'s included count costs $0.056 a day from the wallet. Add money to the wallet or remove one. | - |
|
|
6260
6803
|
| **409** | `save_in_progress` when a save under this name is already running; wait for it to settle rather than retrying immediately. | - |
|
|
6261
6804
|
|
|
6262
6805
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
6263
6806
|
|
|
6264
6807
|
|
|
6808
|
+
## searchFiles
|
|
6809
|
+
|
|
6810
|
+
> FileSearchResponse searchFiles(sandboxId, pattern, path)
|
|
6811
|
+
|
|
6812
|
+
Search files by name in a sandbox
|
|
6813
|
+
|
|
6814
|
+
Every file and directory under `path` whose name matches the glob `pattern` (for example `*.py`). Symlinks are not followed. Needs `file.read`.
|
|
6815
|
+
|
|
6816
|
+
### Example
|
|
6817
|
+
|
|
6818
|
+
```ts
|
|
6819
|
+
import {
|
|
6820
|
+
Configuration,
|
|
6821
|
+
BoatApi,
|
|
6822
|
+
} from '@boatdev/sdk';
|
|
6823
|
+
import type { SearchFilesRequest } from '@boatdev/sdk';
|
|
6824
|
+
|
|
6825
|
+
async function example() {
|
|
6826
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
6827
|
+
const config = new Configuration({
|
|
6828
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
6829
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
6830
|
+
});
|
|
6831
|
+
const api = new BoatApi(config);
|
|
6832
|
+
|
|
6833
|
+
const body = {
|
|
6834
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
6835
|
+
sandboxId: sandboxId_example,
|
|
6836
|
+
// string
|
|
6837
|
+
pattern: pattern_example,
|
|
6838
|
+
// string (optional)
|
|
6839
|
+
path: path_example,
|
|
6840
|
+
} satisfies SearchFilesRequest;
|
|
6841
|
+
|
|
6842
|
+
try {
|
|
6843
|
+
const data = await api.searchFiles(body);
|
|
6844
|
+
console.log(data);
|
|
6845
|
+
} catch (error) {
|
|
6846
|
+
console.error(error);
|
|
6847
|
+
}
|
|
6848
|
+
}
|
|
6849
|
+
|
|
6850
|
+
// Run the test
|
|
6851
|
+
example().catch(console.error);
|
|
6852
|
+
```
|
|
6853
|
+
|
|
6854
|
+
### Parameters
|
|
6855
|
+
|
|
6856
|
+
|
|
6857
|
+
| Name | Type | Description | Notes |
|
|
6858
|
+
|------------- | ------------- | ------------- | -------------|
|
|
6859
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
6860
|
+
| **pattern** | `string` | | [Defaults to `undefined`] |
|
|
6861
|
+
| **path** | `string` | | [Optional] [Defaults to `'/home/user'`] |
|
|
6862
|
+
|
|
6863
|
+
### Return type
|
|
6864
|
+
|
|
6865
|
+
[**FileSearchResponse**](FileSearchResponse.md)
|
|
6866
|
+
|
|
6867
|
+
### Authorization
|
|
6868
|
+
|
|
6869
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
6870
|
+
|
|
6871
|
+
### HTTP request headers
|
|
6872
|
+
|
|
6873
|
+
- **Content-Type**: Not defined
|
|
6874
|
+
- **Accept**: `application/json`
|
|
6875
|
+
|
|
6876
|
+
|
|
6877
|
+
### HTTP response details
|
|
6878
|
+
| Status code | Description | Response headers |
|
|
6879
|
+
|-------------|-------------|------------------|
|
|
6880
|
+
| **200** | Matching paths. | - |
|
|
6881
|
+
| **400** | Invalid request body or parameters. | - |
|
|
6882
|
+
|
|
6883
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
6884
|
+
|
|
6885
|
+
|
|
6265
6886
|
## secrets
|
|
6266
6887
|
|
|
6267
6888
|
> SecretsResponse secrets()
|
|
@@ -6800,6 +7421,81 @@ example().catch(console.error);
|
|
|
6800
7421
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
6801
7422
|
|
|
6802
7423
|
|
|
7424
|
+
## setFilePermissions
|
|
7425
|
+
|
|
7426
|
+
> FileInfoResponse setFilePermissions(sandboxId, filePermissionsRequest)
|
|
7427
|
+
|
|
7428
|
+
Set file permissions in a sandbox
|
|
7429
|
+
|
|
7430
|
+
Sets the permission bits. Files belong to the sandbox user; the owner and group do not change. Needs `file.write`.
|
|
7431
|
+
|
|
7432
|
+
### Example
|
|
7433
|
+
|
|
7434
|
+
```ts
|
|
7435
|
+
import {
|
|
7436
|
+
Configuration,
|
|
7437
|
+
BoatApi,
|
|
7438
|
+
} from '@boatdev/sdk';
|
|
7439
|
+
import type { SetFilePermissionsRequest } from '@boatdev/sdk';
|
|
7440
|
+
|
|
7441
|
+
async function example() {
|
|
7442
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
7443
|
+
const config = new Configuration({
|
|
7444
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
7445
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
7446
|
+
});
|
|
7447
|
+
const api = new BoatApi(config);
|
|
7448
|
+
|
|
7449
|
+
const body = {
|
|
7450
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
7451
|
+
sandboxId: sandboxId_example,
|
|
7452
|
+
// FilePermissionsRequest
|
|
7453
|
+
filePermissionsRequest: ...,
|
|
7454
|
+
} satisfies SetFilePermissionsRequest;
|
|
7455
|
+
|
|
7456
|
+
try {
|
|
7457
|
+
const data = await api.setFilePermissions(body);
|
|
7458
|
+
console.log(data);
|
|
7459
|
+
} catch (error) {
|
|
7460
|
+
console.error(error);
|
|
7461
|
+
}
|
|
7462
|
+
}
|
|
7463
|
+
|
|
7464
|
+
// Run the test
|
|
7465
|
+
example().catch(console.error);
|
|
7466
|
+
```
|
|
7467
|
+
|
|
7468
|
+
### Parameters
|
|
7469
|
+
|
|
7470
|
+
|
|
7471
|
+
| Name | Type | Description | Notes |
|
|
7472
|
+
|------------- | ------------- | ------------- | -------------|
|
|
7473
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
7474
|
+
| **filePermissionsRequest** | [FilePermissionsRequest](FilePermissionsRequest.md) | | |
|
|
7475
|
+
|
|
7476
|
+
### Return type
|
|
7477
|
+
|
|
7478
|
+
[**FileInfoResponse**](FileInfoResponse.md)
|
|
7479
|
+
|
|
7480
|
+
### Authorization
|
|
7481
|
+
|
|
7482
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
7483
|
+
|
|
7484
|
+
### HTTP request headers
|
|
7485
|
+
|
|
7486
|
+
- **Content-Type**: `application/json`
|
|
7487
|
+
- **Accept**: `application/json`
|
|
7488
|
+
|
|
7489
|
+
|
|
7490
|
+
### HTTP response details
|
|
7491
|
+
| Status code | Description | Response headers |
|
|
7492
|
+
|-------------|-------------|------------------|
|
|
7493
|
+
| **200** | Permissions set. | - |
|
|
7494
|
+
| **400** | Invalid request body or parameters. | - |
|
|
7495
|
+
|
|
7496
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
7497
|
+
|
|
7498
|
+
|
|
6803
7499
|
## setSandboxAiAccess
|
|
6804
7500
|
|
|
6805
7501
|
> SandboxAiAccessResponse setSandboxAiAccess(sandboxId, setSandboxAiAccessRequest)
|
|
@@ -7578,7 +8274,7 @@ example().catch(console.error);
|
|
|
7578
8274
|
|
|
7579
8275
|
Turn the AI credentials proxy on or off
|
|
7580
8276
|
|
|
7581
|
-
With the proxy on, sandboxes get placeholder keys and base URLs that point at Boat. Boat swaps in the real key on each request. Real keys never enter the sandbox. Running sandboxes switch at their next start. While on, the account pays $1
|
|
8277
|
+
With the proxy on, sandboxes get placeholder keys and base URLs that point at Boat. Boat swaps in the real key on each request. Real keys never enter the sandbox. Running sandboxes switch at their next start. While on, the wallet of the account pays $1 for each UTC day, plus $1 per 1,000 proxied requests, charged to the wallet each sandbox bills. For an organization, only its owner can change the switch. Needs an API key with `account.admin`.
|
|
7582
8278
|
|
|
7583
8279
|
### Example
|
|
7584
8280
|
|
|
@@ -8276,7 +8972,7 @@ example().catch(console.error);
|
|
|
8276
8972
|
|
|
8277
8973
|
Write a file in a sandbox
|
|
8278
8974
|
|
|
8279
|
-
Files up to 5 MiB after decoding. For a larger file, use `POST /sandboxes/{sandboxId}/files/upload-url`.
|
|
8975
|
+
Files up to 5 MiB after decoding. For a larger file, use `POST /sandboxes/{sandboxId}/files/upload-url`. On a sandbox that is still starting, the call waits until it is ready (up to 60 s, like a command): a sandbox\'s files are in place only once it is ready, so a write any earlier would not stay. A `200` always means the file is on the sandbox\'s disk.
|
|
8280
8976
|
|
|
8281
8977
|
### Example
|
|
8282
8978
|
|