@boatdev/sdk 1.9.5 → 1.9.6
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 +40 -0
- package/dist/apis/BoatApi.d.ts +263 -3
- package/dist/apis/BoatApi.js +662 -11
- package/dist/esm/apis/BoatApi.d.ts +263 -3
- package/dist/esm/apis/BoatApi.js +662 -11
- package/dist/esm/models/AccountAiUsageResponse.d.ts +83 -0
- package/dist/esm/models/AccountAiUsageResponse.js +78 -0
- package/dist/esm/models/AiProxySettings.d.ts +81 -0
- package/dist/esm/models/AiProxySettings.js +76 -0
- package/dist/esm/models/AiProxySettingsAllOfPricing.d.ts +38 -0
- package/dist/esm/models/AiProxySettingsAllOfPricing.js +47 -0
- package/dist/esm/models/AiUsageRow.d.ts +80 -0
- package/dist/esm/models/AiUsageRow.js +75 -0
- package/dist/esm/models/AiUsageTotals.d.ts +62 -0
- package/dist/esm/models/AiUsageTotals.js +63 -0
- package/dist/esm/models/CreateCredentialProfileRequest.d.ts +44 -0
- package/dist/esm/models/CreateCredentialProfileRequest.js +47 -0
- package/dist/esm/models/CredentialId.d.ts +36 -0
- package/dist/esm/models/CredentialId.js +54 -0
- package/dist/esm/models/CredentialProfile.d.ts +82 -0
- package/dist/esm/models/CredentialProfile.js +77 -0
- package/dist/esm/models/CredentialProfileDeletedResponse.d.ts +44 -0
- package/dist/esm/models/CredentialProfileDeletedResponse.js +51 -0
- package/dist/esm/models/CredentialProfileListResponse.d.ts +45 -0
- package/dist/esm/models/CredentialProfileListResponse.js +52 -0
- package/dist/esm/models/CredentialProfileOwner.d.ts +58 -0
- package/dist/esm/models/CredentialProfileOwner.js +62 -0
- package/dist/esm/models/CredentialProfileResponse.d.ts +51 -0
- package/dist/esm/models/CredentialProfileResponse.js +56 -0
- package/dist/esm/models/ProcessListResponse.d.ts +1 -1
- package/dist/esm/models/SandboxAiAccessResponse.d.ts +56 -0
- package/dist/esm/models/SandboxAiAccessResponse.js +59 -0
- package/dist/esm/models/SandboxAiUsage.d.ts +64 -0
- package/dist/esm/models/SandboxAiUsage.js +65 -0
- package/dist/esm/models/SandboxAiUsageResponse.d.ts +88 -0
- package/dist/esm/models/SandboxAiUsageResponse.js +81 -0
- package/dist/esm/models/SandboxEnvironment.d.ts +13 -1
- package/dist/esm/models/SandboxEnvironment.js +4 -0
- package/dist/esm/models/SetCredentialKeyRequest.d.ts +32 -0
- package/dist/esm/models/SetCredentialKeyRequest.js +43 -0
- package/dist/esm/models/SetCustomApiRequest.d.ts +38 -0
- package/dist/esm/models/SetCustomApiRequest.js +47 -0
- package/dist/esm/models/SetSandboxAiAccessRequest.d.ts +32 -0
- package/dist/esm/models/SetSandboxAiAccessRequest.js +43 -0
- package/dist/esm/models/UpdateAiProxyRequest.d.ts +32 -0
- package/dist/esm/models/UpdateAiProxyRequest.js +43 -0
- package/dist/esm/models/UpdateCredentialProfileRequest.d.ts +38 -0
- package/dist/esm/models/UpdateCredentialProfileRequest.js +43 -0
- package/dist/esm/models/UpdateSandboxEnvironmentRequest.d.ts +12 -0
- package/dist/esm/models/UpdateSandboxEnvironmentRequest.js +4 -0
- package/dist/esm/models/index.d.ts +20 -0
- package/dist/esm/models/index.js +20 -0
- package/dist/models/AccountAiUsageResponse.d.ts +83 -0
- package/dist/models/AccountAiUsageResponse.js +85 -0
- package/dist/models/AiProxySettings.d.ts +81 -0
- package/dist/models/AiProxySettings.js +83 -0
- package/dist/models/AiProxySettingsAllOfPricing.d.ts +38 -0
- package/dist/models/AiProxySettingsAllOfPricing.js +54 -0
- package/dist/models/AiUsageRow.d.ts +80 -0
- package/dist/models/AiUsageRow.js +82 -0
- package/dist/models/AiUsageTotals.d.ts +62 -0
- package/dist/models/AiUsageTotals.js +70 -0
- package/dist/models/CreateCredentialProfileRequest.d.ts +44 -0
- package/dist/models/CreateCredentialProfileRequest.js +54 -0
- package/dist/models/CredentialId.d.ts +36 -0
- package/dist/models/CredentialId.js +62 -0
- package/dist/models/CredentialProfile.d.ts +82 -0
- package/dist/models/CredentialProfile.js +84 -0
- package/dist/models/CredentialProfileDeletedResponse.d.ts +44 -0
- package/dist/models/CredentialProfileDeletedResponse.js +58 -0
- package/dist/models/CredentialProfileListResponse.d.ts +45 -0
- package/dist/models/CredentialProfileListResponse.js +59 -0
- package/dist/models/CredentialProfileOwner.d.ts +58 -0
- package/dist/models/CredentialProfileOwner.js +70 -0
- package/dist/models/CredentialProfileResponse.d.ts +51 -0
- package/dist/models/CredentialProfileResponse.js +63 -0
- package/dist/models/ProcessListResponse.d.ts +1 -1
- package/dist/models/SandboxAiAccessResponse.d.ts +56 -0
- package/dist/models/SandboxAiAccessResponse.js +66 -0
- package/dist/models/SandboxAiUsage.d.ts +64 -0
- package/dist/models/SandboxAiUsage.js +72 -0
- package/dist/models/SandboxAiUsageResponse.d.ts +88 -0
- package/dist/models/SandboxAiUsageResponse.js +88 -0
- package/dist/models/SandboxEnvironment.d.ts +13 -1
- package/dist/models/SandboxEnvironment.js +4 -0
- package/dist/models/SetCredentialKeyRequest.d.ts +32 -0
- package/dist/models/SetCredentialKeyRequest.js +50 -0
- package/dist/models/SetCustomApiRequest.d.ts +38 -0
- package/dist/models/SetCustomApiRequest.js +54 -0
- package/dist/models/SetSandboxAiAccessRequest.d.ts +32 -0
- package/dist/models/SetSandboxAiAccessRequest.js +50 -0
- package/dist/models/UpdateAiProxyRequest.d.ts +32 -0
- package/dist/models/UpdateAiProxyRequest.js +50 -0
- package/dist/models/UpdateCredentialProfileRequest.d.ts +38 -0
- package/dist/models/UpdateCredentialProfileRequest.js +50 -0
- package/dist/models/UpdateSandboxEnvironmentRequest.d.ts +12 -0
- package/dist/models/UpdateSandboxEnvironmentRequest.js +4 -0
- package/dist/models/index.d.ts +20 -0
- package/dist/models/index.js +20 -0
- package/docs/AccountAiUsageResponse.md +48 -0
- package/docs/AiProxySettings.md +48 -0
- package/docs/AiProxySettingsAllOfPricing.md +34 -0
- package/docs/AiUsageRow.md +48 -0
- package/docs/AiUsageTotals.md +43 -0
- package/docs/BoatApi.md +1285 -234
- package/docs/CreateCredentialProfileRequest.md +36 -0
- package/docs/CredentialId.md +31 -0
- package/docs/CredentialProfile.md +49 -0
- package/docs/CredentialProfileDeletedResponse.md +36 -0
- package/docs/CredentialProfileListResponse.md +36 -0
- package/docs/CredentialProfileOwner.md +38 -0
- package/docs/CredentialProfileResponse.md +38 -0
- package/docs/SandboxAiAccessResponse.md +40 -0
- package/docs/SandboxAiUsage.md +42 -0
- package/docs/SandboxAiUsageResponse.md +50 -0
- package/docs/SandboxEnvironment.md +4 -0
- package/docs/SetCredentialKeyRequest.md +32 -0
- package/docs/SetCustomApiRequest.md +34 -0
- package/docs/SetSandboxAiAccessRequest.md +32 -0
- package/docs/UpdateAiProxyRequest.md +32 -0
- package/docs/UpdateCredentialProfileRequest.md +34 -0
- package/docs/UpdateSandboxEnvironmentRequest.md +4 -0
- package/package.json +1 -1
- package/src/apis/BoatApi.ts +1013 -13
- package/src/models/AccountAiUsageResponse.ts +160 -0
- package/src/models/AiProxySettings.ts +146 -0
- package/src/models/AiProxySettingsAllOfPricing.ts +75 -0
- package/src/models/AiUsageRow.ts +138 -0
- package/src/models/AiUsageTotals.ts +111 -0
- package/src/models/CreateCredentialProfileRequest.ts +82 -0
- package/src/models/CredentialId.ts +64 -0
- package/src/models/CredentialProfile.ts +153 -0
- package/src/models/CredentialProfileDeletedResponse.ts +84 -0
- package/src/models/CredentialProfileListResponse.ts +92 -0
- package/src/models/CredentialProfileOwner.ts +104 -0
- package/src/models/CredentialProfileResponse.ts +101 -0
- package/src/models/ProcessListResponse.ts +1 -1
- package/src/models/SandboxAiAccessResponse.ts +102 -0
- package/src/models/SandboxAiUsage.ts +126 -0
- package/src/models/SandboxAiUsageResponse.ts +162 -0
- package/src/models/SandboxEnvironment.ts +17 -1
- package/src/models/SetCredentialKeyRequest.ts +66 -0
- package/src/models/SetCustomApiRequest.ts +75 -0
- package/src/models/SetSandboxAiAccessRequest.ts +66 -0
- package/src/models/UpdateAiProxyRequest.ts +66 -0
- package/src/models/UpdateCredentialProfileRequest.ts +73 -0
- package/src/models/UpdateSandboxEnvironmentRequest.ts +16 -0
- package/src/models/index.ts +20 -0
package/docs/BoatApi.md
CHANGED
|
@@ -15,12 +15,16 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
15
15
|
| [**commandStatus**](BoatApi.md#commandstatus) | **GET** /sandboxes/{sandboxId}/commands/{processId} | Get detached command status and logs |
|
|
16
16
|
| [**conversations**](BoatApi.md#conversations) | **GET** /sandboxes/{sandboxId}/conversations | List boat conversations |
|
|
17
17
|
| [**create**](BoatApi.md#create) | **POST** /sandboxes | Create sandbox |
|
|
18
|
+
| [**createCredentialProfile**](BoatApi.md#createcredentialprofileoperation) | **POST** /credential-profiles | Create a credential profile |
|
|
18
19
|
| [**createDownloadUrl**](BoatApi.md#createdownloadurl) | **POST** /sandboxes/{sandboxId}/files/download-url | Get a download URL for a sandbox file |
|
|
19
20
|
| [**createEnvironment**](BoatApi.md#createenvironment) | **POST** /environments | Create a sandbox environment |
|
|
20
21
|
| [**createScopedApiKey**](BoatApi.md#createscopedapikeyoperation) | **POST** /api-keys/scoped | Create a scoped API key |
|
|
21
22
|
| [**createSnapshotShare**](BoatApi.md#createsnapshotshare) | **POST** /named-snapshots/{name}/shares | Share a named snapshot |
|
|
22
23
|
| [**createUploadUrl**](BoatApi.md#createuploadurl) | **POST** /sandboxes/{sandboxId}/files/upload-url | Get an upload URL for a sandbox file |
|
|
23
24
|
| [**createWebhook**](BoatApi.md#createwebhook) | **POST** /webhooks | Create webhook |
|
|
25
|
+
| [**deleteCredentialProfile**](BoatApi.md#deletecredentialprofile) | **DELETE** /credential-profiles/{profile} | Delete a credential profile |
|
|
26
|
+
| [**deleteCredentialProfileCustomApi**](BoatApi.md#deletecredentialprofilecustomapi) | **DELETE** /credential-profiles/{profile}/custom-apis/{name} | Remove a custom API |
|
|
27
|
+
| [**deleteCredentialProfileKey**](BoatApi.md#deletecredentialprofilekey) | **DELETE** /credential-profiles/{profile}/keys/{credential} | Remove a credential profile credential |
|
|
24
28
|
| [**deleteEnvironment**](BoatApi.md#deleteenvironment) | **DELETE** /environments/{environmentId} | Delete a sandbox environment |
|
|
25
29
|
| [**deleteEnvironmentRepo**](BoatApi.md#deleteenvironmentrepo) | **DELETE** /environments/{environmentId}/repos/{repositoryId} | Remove a repository from an environment |
|
|
26
30
|
| [**deleteEnvironmentSecretFile**](BoatApi.md#deleteenvironmentsecretfile) | **DELETE** /environments/{environmentId}/secret-files | Remove one secret file |
|
|
@@ -36,11 +40,14 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
36
40
|
| [**events**](BoatApi.md#events) | **GET** /sandboxes/{sandboxId}/events | List boat events |
|
|
37
41
|
| [**fork**](BoatApi.md#forkoperation) | **POST** /sandboxes/{sandboxId}/fork | Fork sandbox |
|
|
38
42
|
| [**get**](BoatApi.md#get) | **GET** /sandboxes/{sandboxId} | Get sandbox |
|
|
43
|
+
| [**getAiProxy**](BoatApi.md#getaiproxy) | **GET** /ai-proxy | Get AI credentials proxy |
|
|
44
|
+
| [**getAiUsage**](BoatApi.md#getaiusage) | **GET** /ai-usage | Get AI usage |
|
|
39
45
|
| [**getCommand**](BoatApi.md#getcommand) | **GET** /sandboxes/{sandboxId}/command-history/{commandId} | Get one command from the history |
|
|
40
46
|
| [**getDataRetention**](BoatApi.md#getdataretention) | **GET** /account/data-retention | Get account data-retention policy |
|
|
41
47
|
| [**getDeletionOperation**](BoatApi.md#getdeletionoperation) | **GET** /deletion-operations/{operationId} | Get deletion operation |
|
|
42
48
|
| [**getLatestSandboxSnapshot**](BoatApi.md#getlatestsandboxsnapshot) | **GET** /sandboxes/{sandboxId}/snapshots/latest | Get latest boat snapshot |
|
|
43
49
|
| [**getNamedSnapshot**](BoatApi.md#getnamedsnapshot) | **GET** /named-snapshots/{name} | Get a named snapshot |
|
|
50
|
+
| [**getSandboxAiUsage**](BoatApi.md#getsandboxaiusage) | **GET** /sandboxes/{sandboxId}/ai-usage | Get sandbox AI usage |
|
|
44
51
|
| [**getSnapshotDownload**](BoatApi.md#getsnapshotdownload) | **GET** /snapshots/{snapshotId}/download | Get snapshot download |
|
|
45
52
|
| [**getSnapshotFile**](BoatApi.md#getsnapshotfile) | **GET** /snapshots/{snapshotId}/files | Download a file or folder from a snapshot |
|
|
46
53
|
| [**getSnapshotTree**](BoatApi.md#getsnapshottree) | **GET** /snapshots/{snapshotId}/tree | Get snapshot file tree |
|
|
@@ -50,6 +57,7 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
50
57
|
| [**hostPort**](BoatApi.md#hostportoperation) | **POST** /sandboxes/{sandboxId}/host | Expose a sandbox port on a public HTTPS URL |
|
|
51
58
|
| [**interrupt**](BoatApi.md#interrupt) | **POST** /sandboxes/{sandboxId}/interrupt | Interrupt running work |
|
|
52
59
|
| [**limits**](BoatApi.md#limits) | **GET** /limits | Get Boat limits |
|
|
60
|
+
| [**listCredentialProfiles**](BoatApi.md#listcredentialprofiles) | **GET** /credential-profiles | List credential profiles |
|
|
53
61
|
| [**listNamedSnapshots**](BoatApi.md#listnamedsnapshots) | **GET** /named-snapshots | List named snapshots |
|
|
54
62
|
| [**listOrganizations**](BoatApi.md#listorganizations) | **GET** /orgs | List organizations |
|
|
55
63
|
| [**listSandboxSnapshots**](BoatApi.md#listsandboxsnapshots) | **GET** /sandboxes/{sandboxId}/snapshots | List boat snapshots |
|
|
@@ -73,8 +81,11 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
73
81
|
| [**secrets**](BoatApi.md#secrets) | **GET** /secrets | Get Boat secrets setup |
|
|
74
82
|
| [**selectRepo**](BoatApi.md#selectrepo) | **POST** /repos | Select repository for sandboxes |
|
|
75
83
|
| [**setActiveOrganization**](BoatApi.md#setactiveorganization) | **PATCH** /orgs/active | Set the active organization |
|
|
84
|
+
| [**setCredentialProfileCustomApi**](BoatApi.md#setcredentialprofilecustomapi) | **PUT** /credential-profiles/{profile}/custom-apis/{name} | Set a custom API |
|
|
85
|
+
| [**setCredentialProfileKey**](BoatApi.md#setcredentialprofilekey) | **PUT** /credential-profiles/{profile}/keys/{credential} | Set a credential profile API key |
|
|
76
86
|
| [**setEnvironmentSecretFile**](BoatApi.md#setenvironmentsecretfileoperation) | **PUT** /environments/{environmentId}/secret-files | Write one secret file |
|
|
77
87
|
| [**setEnvironmentVar**](BoatApi.md#setenvironmentvaroperation) | **PUT** /environments/{environmentId}/vars/{key} | Set one environment variable |
|
|
88
|
+
| [**setSandboxAiAccess**](BoatApi.md#setsandboxaiaccessoperation) | **PUT** /sandboxes/{sandboxId}/ai-access | Block or unblock sandbox AI access |
|
|
78
89
|
| [**setTelemetry**](BoatApi.md#settelemetry) | **PUT** /telemetry | Set OpenTelemetry export |
|
|
79
90
|
| [**share**](BoatApi.md#share) | **POST** /sandboxes/{sandboxId}/share | Share sandbox with the organization |
|
|
80
91
|
| [**sshKey**](BoatApi.md#sshkeyoperation) | **POST** /sandboxes/{sandboxId}/sshkey | Configure sandbox SSH key |
|
|
@@ -82,6 +93,8 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
82
93
|
| [**stop**](BoatApi.md#stopoperation) | **POST** /sandboxes/{sandboxId}/stop | Stop and archive sandbox |
|
|
83
94
|
| [**stopCommand**](BoatApi.md#stopcommand) | **DELETE** /sandboxes/{sandboxId}/commands/{processId} | Stop a detached command |
|
|
84
95
|
| [**update**](BoatApi.md#update) | **PATCH** /sandboxes/{sandboxId} | Update sandbox |
|
|
96
|
+
| [**updateAiProxy**](BoatApi.md#updateaiproxyoperation) | **PUT** /ai-proxy | Turn the AI credentials proxy on or off |
|
|
97
|
+
| [**updateCredentialProfile**](BoatApi.md#updatecredentialprofileoperation) | **PUT** /credential-profiles/{profile} | Update a credential profile |
|
|
85
98
|
| [**updateDataRetention**](BoatApi.md#updatedataretention) | **PATCH** /account/data-retention | Update account data-retention policy |
|
|
86
99
|
| [**updateEnvironment**](BoatApi.md#updateenvironment) | **PUT** /environments/{environmentId} | Update a sandbox environment |
|
|
87
100
|
| [**updateSecrets**](BoatApi.md#updatesecrets) | **POST** /secrets | Update Boat secrets setup |
|
|
@@ -94,7 +107,7 @@ All URIs are relative to *https://boat.dev/api/v1*
|
|
|
94
107
|
|
|
95
108
|
## addEnvironmentRepo
|
|
96
109
|
|
|
97
|
-
> EnvironmentItemChangeResponse addEnvironmentRepo(environmentId, addEnvironmentRepoRequest)
|
|
110
|
+
> EnvironmentItemChangeResponse addEnvironmentRepo(environmentId, addEnvironmentRepoRequest, org)
|
|
98
111
|
|
|
99
112
|
Add a repository to an environment
|
|
100
113
|
|
|
@@ -122,6 +135,8 @@ async function example() {
|
|
|
122
135
|
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
123
136
|
// AddEnvironmentRepoRequest
|
|
124
137
|
addEnvironmentRepoRequest: ...,
|
|
138
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
139
|
+
org: org_example,
|
|
125
140
|
} satisfies AddEnvironmentRepoOperationRequest;
|
|
126
141
|
|
|
127
142
|
try {
|
|
@@ -143,6 +158,7 @@ example().catch(console.error);
|
|
|
143
158
|
|------------- | ------------- | ------------- | -------------|
|
|
144
159
|
| **environmentId** | `string` | | [Defaults to `undefined`] |
|
|
145
160
|
| **addEnvironmentRepoRequest** | [AddEnvironmentRepoRequest](AddEnvironmentRepoRequest.md) | | |
|
|
161
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
146
162
|
|
|
147
163
|
### Return type
|
|
148
164
|
|
|
@@ -907,7 +923,7 @@ async function example() {
|
|
|
907
923
|
const body = {
|
|
908
924
|
// string | Optional exactly-once key for creating a sandbox. Send your own opaque, account-unique value (a UUID) to make `POST /sandboxes` safe to retry when the response is lost (network timeout, 5xx): the first request creates the sandbox and binds it to the key; every later request with the **same account, key, and request body** returns that same sandbox instead of creating a second, billable one. Behavior: keys are retained for **24 hours**; a concurrent or early retry while the first sandbox is still being minted returns `409` `idempotency_in_progress` (retry shortly, same key); reusing a key with a **different body** returns `409` `idempotency_key_reused`; timeouts and 5xx are safe to retry with the same key; a create that fails before the sandbox exists releases the key within ~2 minutes so a retry can create the sandbox. Omit the header to keep the default (non-idempotent) behavior. (optional)
|
|
909
925
|
idempotencyKey: idempotencyKey_example,
|
|
910
|
-
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes
|
|
926
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
911
927
|
org: org_example,
|
|
912
928
|
// string | Same as the `org` query parameter. Query wins when both are set. (optional)
|
|
913
929
|
xBoatOrg: xBoatOrg_example,
|
|
@@ -933,7 +949,7 @@ example().catch(console.error);
|
|
|
933
949
|
| Name | Type | Description | Notes |
|
|
934
950
|
|------------- | ------------- | ------------- | -------------|
|
|
935
951
|
| **idempotencyKey** | `string` | Optional exactly-once key for creating a sandbox. Send your own opaque, account-unique value (a UUID) to make `POST /sandboxes` safe to retry when the response is lost (network timeout, 5xx): the first request creates the sandbox and binds it to the key; every later request with the **same account, key, and request body** returns that same sandbox instead of creating a second, billable one. Behavior: keys are retained for **24 hours**; a concurrent or early retry while the first sandbox is still being minted returns `409` `idempotency_in_progress` (retry shortly, same key); reusing a key with a **different body** returns `409` `idempotency_key_reused`; timeouts and 5xx are safe to retry with the same key; a create that fails before the sandbox exists releases the key within ~2 minutes so a retry can create the sandbox. Omit the header to keep the default (non-idempotent) behavior. | [Optional] [Defaults to `undefined`] |
|
|
936
|
-
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes
|
|
952
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
937
953
|
| **xBoatOrg** | `string` | Same as the `org` query parameter. Query wins when both are set. | [Optional] [Defaults to `undefined`] |
|
|
938
954
|
| **createSandboxRequest** | [CreateSandboxRequest](CreateSandboxRequest.md) | | [Optional] |
|
|
939
955
|
|
|
@@ -964,6 +980,81 @@ example().catch(console.error);
|
|
|
964
980
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
965
981
|
|
|
966
982
|
|
|
983
|
+
## createCredentialProfile
|
|
984
|
+
|
|
985
|
+
> CredentialProfileResponse createCredentialProfile(createCredentialProfileRequest)
|
|
986
|
+
|
|
987
|
+
Create a credential profile
|
|
988
|
+
|
|
989
|
+
Creates an empty profile, or a copy of `copyFrom`. With `org`, the profile belongs to that organization and only its owners can create it. Needs an API key with `account.admin`.
|
|
990
|
+
|
|
991
|
+
### Example
|
|
992
|
+
|
|
993
|
+
```ts
|
|
994
|
+
import {
|
|
995
|
+
Configuration,
|
|
996
|
+
BoatApi,
|
|
997
|
+
} from '@boatdev/sdk';
|
|
998
|
+
import type { CreateCredentialProfileOperationRequest } from '@boatdev/sdk';
|
|
999
|
+
|
|
1000
|
+
async function example() {
|
|
1001
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
1002
|
+
const config = new Configuration({
|
|
1003
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
1004
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
1005
|
+
});
|
|
1006
|
+
const api = new BoatApi(config);
|
|
1007
|
+
|
|
1008
|
+
const body = {
|
|
1009
|
+
// CreateCredentialProfileRequest
|
|
1010
|
+
createCredentialProfileRequest: {"name":"work","copyFrom":"default"},
|
|
1011
|
+
} satisfies CreateCredentialProfileOperationRequest;
|
|
1012
|
+
|
|
1013
|
+
try {
|
|
1014
|
+
const data = await api.createCredentialProfile(body);
|
|
1015
|
+
console.log(data);
|
|
1016
|
+
} catch (error) {
|
|
1017
|
+
console.error(error);
|
|
1018
|
+
}
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
// Run the test
|
|
1022
|
+
example().catch(console.error);
|
|
1023
|
+
```
|
|
1024
|
+
|
|
1025
|
+
### Parameters
|
|
1026
|
+
|
|
1027
|
+
|
|
1028
|
+
| Name | Type | Description | Notes |
|
|
1029
|
+
|------------- | ------------- | ------------- | -------------|
|
|
1030
|
+
| **createCredentialProfileRequest** | [CreateCredentialProfileRequest](CreateCredentialProfileRequest.md) | | |
|
|
1031
|
+
|
|
1032
|
+
### Return type
|
|
1033
|
+
|
|
1034
|
+
[**CredentialProfileResponse**](CredentialProfileResponse.md)
|
|
1035
|
+
|
|
1036
|
+
### Authorization
|
|
1037
|
+
|
|
1038
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
1039
|
+
|
|
1040
|
+
### HTTP request headers
|
|
1041
|
+
|
|
1042
|
+
- **Content-Type**: `application/json`
|
|
1043
|
+
- **Accept**: `application/json`
|
|
1044
|
+
|
|
1045
|
+
|
|
1046
|
+
### HTTP response details
|
|
1047
|
+
| Status code | Description | Response headers |
|
|
1048
|
+
|-------------|-------------|------------------|
|
|
1049
|
+
| **201** | Profile created. | - |
|
|
1050
|
+
| **400** | Invalid request body or parameters. | - |
|
|
1051
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
1052
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
1053
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
1054
|
+
|
|
1055
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1056
|
+
|
|
1057
|
+
|
|
967
1058
|
## createDownloadUrl
|
|
968
1059
|
|
|
969
1060
|
> FileUrlResponse createDownloadUrl(sandboxId, fileUrlRequest)
|
|
@@ -1044,7 +1135,7 @@ example().catch(console.error);
|
|
|
1044
1135
|
|
|
1045
1136
|
## createEnvironment
|
|
1046
1137
|
|
|
1047
|
-
> SandboxEnvironmentListResponse createEnvironment(createSandboxEnvironmentRequest)
|
|
1138
|
+
> SandboxEnvironmentListResponse createEnvironment(createSandboxEnvironmentRequest, org)
|
|
1048
1139
|
|
|
1049
1140
|
Create a sandbox environment
|
|
1050
1141
|
|
|
@@ -1070,6 +1161,8 @@ async function example() {
|
|
|
1070
1161
|
const body = {
|
|
1071
1162
|
// CreateSandboxEnvironmentRequest
|
|
1072
1163
|
createSandboxEnvironmentRequest: ...,
|
|
1164
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
1165
|
+
org: org_example,
|
|
1073
1166
|
} satisfies CreateEnvironmentRequest;
|
|
1074
1167
|
|
|
1075
1168
|
try {
|
|
@@ -1090,6 +1183,7 @@ example().catch(console.error);
|
|
|
1090
1183
|
| Name | Type | Description | Notes |
|
|
1091
1184
|
|------------- | ------------- | ------------- | -------------|
|
|
1092
1185
|
| **createSandboxEnvironmentRequest** | [CreateSandboxEnvironmentRequest](CreateSandboxEnvironmentRequest.md) | | |
|
|
1186
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
1093
1187
|
|
|
1094
1188
|
### Return type
|
|
1095
1189
|
|
|
@@ -1416,13 +1510,13 @@ example().catch(console.error);
|
|
|
1416
1510
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1417
1511
|
|
|
1418
1512
|
|
|
1419
|
-
##
|
|
1513
|
+
## deleteCredentialProfile
|
|
1420
1514
|
|
|
1421
|
-
>
|
|
1515
|
+
> CredentialProfileDeletedResponse deleteCredentialProfile(profile)
|
|
1422
1516
|
|
|
1423
|
-
Delete a
|
|
1517
|
+
Delete a credential profile
|
|
1424
1518
|
|
|
1425
|
-
|
|
1519
|
+
Deletes the profile. A default profile returns `409 is_default`. A profile that an environment names returns `409 in_use`. Needs an API key with `account.admin`.
|
|
1426
1520
|
|
|
1427
1521
|
### Example
|
|
1428
1522
|
|
|
@@ -1431,7 +1525,7 @@ import {
|
|
|
1431
1525
|
Configuration,
|
|
1432
1526
|
BoatApi,
|
|
1433
1527
|
} from '@boatdev/sdk';
|
|
1434
|
-
import type {
|
|
1528
|
+
import type { DeleteCredentialProfileRequest } from '@boatdev/sdk';
|
|
1435
1529
|
|
|
1436
1530
|
async function example() {
|
|
1437
1531
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -1442,12 +1536,12 @@ async function example() {
|
|
|
1442
1536
|
const api = new BoatApi(config);
|
|
1443
1537
|
|
|
1444
1538
|
const body = {
|
|
1445
|
-
// string |
|
|
1446
|
-
|
|
1447
|
-
} satisfies
|
|
1539
|
+
// string | Profile id or name.
|
|
1540
|
+
profile: profile_example,
|
|
1541
|
+
} satisfies DeleteCredentialProfileRequest;
|
|
1448
1542
|
|
|
1449
1543
|
try {
|
|
1450
|
-
const data = await api.
|
|
1544
|
+
const data = await api.deleteCredentialProfile(body);
|
|
1451
1545
|
console.log(data);
|
|
1452
1546
|
} catch (error) {
|
|
1453
1547
|
console.error(error);
|
|
@@ -1463,11 +1557,11 @@ example().catch(console.error);
|
|
|
1463
1557
|
|
|
1464
1558
|
| Name | Type | Description | Notes |
|
|
1465
1559
|
|------------- | ------------- | ------------- | -------------|
|
|
1466
|
-
| **
|
|
1560
|
+
| **profile** | `string` | Profile id or name. | [Defaults to `undefined`] |
|
|
1467
1561
|
|
|
1468
1562
|
### Return type
|
|
1469
1563
|
|
|
1470
|
-
[**
|
|
1564
|
+
[**CredentialProfileDeletedResponse**](CredentialProfileDeletedResponse.md)
|
|
1471
1565
|
|
|
1472
1566
|
### Authorization
|
|
1473
1567
|
|
|
@@ -1482,21 +1576,22 @@ example().catch(console.error);
|
|
|
1482
1576
|
### HTTP response details
|
|
1483
1577
|
| Status code | Description | Response headers |
|
|
1484
1578
|
|-------------|-------------|------------------|
|
|
1485
|
-
| **200** |
|
|
1579
|
+
| **200** | Profile deleted. | - |
|
|
1486
1580
|
| **401** | Missing or invalid bearer token. | - |
|
|
1581
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
1487
1582
|
| **404** | Resource not found. | - |
|
|
1488
1583
|
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
1489
1584
|
|
|
1490
1585
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1491
1586
|
|
|
1492
1587
|
|
|
1493
|
-
##
|
|
1588
|
+
## deleteCredentialProfileCustomApi
|
|
1494
1589
|
|
|
1495
|
-
>
|
|
1590
|
+
> CredentialProfileResponse deleteCredentialProfileCustomApi(profile, name)
|
|
1496
1591
|
|
|
1497
|
-
Remove a
|
|
1592
|
+
Remove a custom API
|
|
1498
1593
|
|
|
1499
|
-
Removes one
|
|
1594
|
+
Removes one custom API from the profile. Needs an API key with `account.admin`.
|
|
1500
1595
|
|
|
1501
1596
|
### Example
|
|
1502
1597
|
|
|
@@ -1505,7 +1600,7 @@ import {
|
|
|
1505
1600
|
Configuration,
|
|
1506
1601
|
BoatApi,
|
|
1507
1602
|
} from '@boatdev/sdk';
|
|
1508
|
-
import type {
|
|
1603
|
+
import type { DeleteCredentialProfileCustomApiRequest } from '@boatdev/sdk';
|
|
1509
1604
|
|
|
1510
1605
|
async function example() {
|
|
1511
1606
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -1516,14 +1611,14 @@ async function example() {
|
|
|
1516
1611
|
const api = new BoatApi(config);
|
|
1517
1612
|
|
|
1518
1613
|
const body = {
|
|
1519
|
-
// string
|
|
1520
|
-
|
|
1521
|
-
// string |
|
|
1522
|
-
|
|
1523
|
-
} satisfies
|
|
1614
|
+
// string | Profile id or name.
|
|
1615
|
+
profile: profile_example,
|
|
1616
|
+
// string | Environment variable name of the custom API, for example `STRIPE_KEY`. Provider names (`ANTHROPIC_*`, `OPENAI_*`, and so on) and names that end in `_BASE_URL` are reserved.
|
|
1617
|
+
name: name_example,
|
|
1618
|
+
} satisfies DeleteCredentialProfileCustomApiRequest;
|
|
1524
1619
|
|
|
1525
1620
|
try {
|
|
1526
|
-
const data = await api.
|
|
1621
|
+
const data = await api.deleteCredentialProfileCustomApi(body);
|
|
1527
1622
|
console.log(data);
|
|
1528
1623
|
} catch (error) {
|
|
1529
1624
|
console.error(error);
|
|
@@ -1539,12 +1634,12 @@ example().catch(console.error);
|
|
|
1539
1634
|
|
|
1540
1635
|
| Name | Type | Description | Notes |
|
|
1541
1636
|
|------------- | ------------- | ------------- | -------------|
|
|
1542
|
-
| **
|
|
1543
|
-
| **
|
|
1637
|
+
| **profile** | `string` | Profile id or name. | [Defaults to `undefined`] |
|
|
1638
|
+
| **name** | `string` | Environment variable name of the custom API, for example `STRIPE_KEY`. Provider names (`ANTHROPIC_*`, `OPENAI_*`, and so on) and names that end in `_BASE_URL` are reserved. | [Defaults to `undefined`] |
|
|
1544
1639
|
|
|
1545
1640
|
### Return type
|
|
1546
1641
|
|
|
1547
|
-
[**
|
|
1642
|
+
[**CredentialProfileResponse**](CredentialProfileResponse.md)
|
|
1548
1643
|
|
|
1549
1644
|
### Authorization
|
|
1550
1645
|
|
|
@@ -1559,20 +1654,21 @@ example().catch(console.error);
|
|
|
1559
1654
|
### HTTP response details
|
|
1560
1655
|
| Status code | Description | Response headers |
|
|
1561
1656
|
|-------------|-------------|------------------|
|
|
1562
|
-
| **200** |
|
|
1657
|
+
| **200** | The updated profile. | - |
|
|
1563
1658
|
| **401** | Missing or invalid bearer token. | - |
|
|
1659
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
1564
1660
|
| **404** | Resource not found. | - |
|
|
1565
1661
|
|
|
1566
1662
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1567
1663
|
|
|
1568
1664
|
|
|
1569
|
-
##
|
|
1665
|
+
## deleteCredentialProfileKey
|
|
1570
1666
|
|
|
1571
|
-
>
|
|
1667
|
+
> CredentialProfileResponse deleteCredentialProfileKey(profile, credential)
|
|
1572
1668
|
|
|
1573
|
-
Remove
|
|
1669
|
+
Remove a credential profile credential
|
|
1574
1670
|
|
|
1575
|
-
Removes
|
|
1671
|
+
Removes one credential, an API key or a sign-in. Needs an API key with `account.admin`.
|
|
1576
1672
|
|
|
1577
1673
|
### Example
|
|
1578
1674
|
|
|
@@ -1581,7 +1677,7 @@ import {
|
|
|
1581
1677
|
Configuration,
|
|
1582
1678
|
BoatApi,
|
|
1583
1679
|
} from '@boatdev/sdk';
|
|
1584
|
-
import type {
|
|
1680
|
+
import type { DeleteCredentialProfileKeyRequest } from '@boatdev/sdk';
|
|
1585
1681
|
|
|
1586
1682
|
async function example() {
|
|
1587
1683
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -1592,14 +1688,14 @@ async function example() {
|
|
|
1592
1688
|
const api = new BoatApi(config);
|
|
1593
1689
|
|
|
1594
1690
|
const body = {
|
|
1595
|
-
// string
|
|
1596
|
-
|
|
1597
|
-
//
|
|
1598
|
-
|
|
1599
|
-
} satisfies
|
|
1691
|
+
// string | Profile id or name.
|
|
1692
|
+
profile: profile_example,
|
|
1693
|
+
// CredentialId
|
|
1694
|
+
credential: ...,
|
|
1695
|
+
} satisfies DeleteCredentialProfileKeyRequest;
|
|
1600
1696
|
|
|
1601
1697
|
try {
|
|
1602
|
-
const data = await api.
|
|
1698
|
+
const data = await api.deleteCredentialProfileKey(body);
|
|
1603
1699
|
console.log(data);
|
|
1604
1700
|
} catch (error) {
|
|
1605
1701
|
console.error(error);
|
|
@@ -1615,12 +1711,12 @@ example().catch(console.error);
|
|
|
1615
1711
|
|
|
1616
1712
|
| Name | Type | Description | Notes |
|
|
1617
1713
|
|------------- | ------------- | ------------- | -------------|
|
|
1618
|
-
| **
|
|
1619
|
-
| **
|
|
1714
|
+
| **profile** | `string` | Profile id or name. | [Defaults to `undefined`] |
|
|
1715
|
+
| **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] |
|
|
1620
1716
|
|
|
1621
1717
|
### Return type
|
|
1622
1718
|
|
|
1623
|
-
[**
|
|
1719
|
+
[**CredentialProfileResponse**](CredentialProfileResponse.md)
|
|
1624
1720
|
|
|
1625
1721
|
### Authorization
|
|
1626
1722
|
|
|
@@ -1635,20 +1731,22 @@ example().catch(console.error);
|
|
|
1635
1731
|
### HTTP response details
|
|
1636
1732
|
| Status code | Description | Response headers |
|
|
1637
1733
|
|-------------|-------------|------------------|
|
|
1638
|
-
| **200** |
|
|
1734
|
+
| **200** | The updated profile. | - |
|
|
1735
|
+
| **400** | Invalid request body or parameters. | - |
|
|
1639
1736
|
| **401** | Missing or invalid bearer token. | - |
|
|
1737
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
1640
1738
|
| **404** | Resource not found. | - |
|
|
1641
1739
|
|
|
1642
1740
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1643
1741
|
|
|
1644
1742
|
|
|
1645
|
-
##
|
|
1743
|
+
## deleteEnvironment
|
|
1646
1744
|
|
|
1647
|
-
>
|
|
1745
|
+
> SandboxEnvironmentResponse deleteEnvironment(environmentId, org)
|
|
1648
1746
|
|
|
1649
|
-
|
|
1747
|
+
Delete a sandbox environment
|
|
1650
1748
|
|
|
1651
|
-
|
|
1749
|
+
Soft-deletes an environment. The default environment cannot be deleted, and at least one environment is always kept.
|
|
1652
1750
|
|
|
1653
1751
|
### Example
|
|
1654
1752
|
|
|
@@ -1657,7 +1755,7 @@ import {
|
|
|
1657
1755
|
Configuration,
|
|
1658
1756
|
BoatApi,
|
|
1659
1757
|
} from '@boatdev/sdk';
|
|
1660
|
-
import type {
|
|
1758
|
+
import type { DeleteEnvironmentRequest } from '@boatdev/sdk';
|
|
1661
1759
|
|
|
1662
1760
|
async function example() {
|
|
1663
1761
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -1668,14 +1766,14 @@ async function example() {
|
|
|
1668
1766
|
const api = new BoatApi(config);
|
|
1669
1767
|
|
|
1670
1768
|
const body = {
|
|
1671
|
-
// string
|
|
1769
|
+
// string | Environment id returned by `GET /environments`.
|
|
1672
1770
|
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
1673
|
-
// string |
|
|
1674
|
-
|
|
1675
|
-
} satisfies
|
|
1771
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
1772
|
+
org: org_example,
|
|
1773
|
+
} satisfies DeleteEnvironmentRequest;
|
|
1676
1774
|
|
|
1677
1775
|
try {
|
|
1678
|
-
const data = await api.
|
|
1776
|
+
const data = await api.deleteEnvironment(body);
|
|
1679
1777
|
console.log(data);
|
|
1680
1778
|
} catch (error) {
|
|
1681
1779
|
console.error(error);
|
|
@@ -1691,12 +1789,12 @@ example().catch(console.error);
|
|
|
1691
1789
|
|
|
1692
1790
|
| Name | Type | Description | Notes |
|
|
1693
1791
|
|------------- | ------------- | ------------- | -------------|
|
|
1694
|
-
| **environmentId** | `string` |
|
|
1695
|
-
| **
|
|
1792
|
+
| **environmentId** | `string` | Environment id returned by `GET /environments`. | [Defaults to `undefined`] |
|
|
1793
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
1696
1794
|
|
|
1697
1795
|
### Return type
|
|
1698
1796
|
|
|
1699
|
-
[**
|
|
1797
|
+
[**SandboxEnvironmentResponse**](SandboxEnvironmentResponse.md)
|
|
1700
1798
|
|
|
1701
1799
|
### Authorization
|
|
1702
1800
|
|
|
@@ -1711,20 +1809,21 @@ example().catch(console.error);
|
|
|
1711
1809
|
### HTTP response details
|
|
1712
1810
|
| Status code | Description | Response headers |
|
|
1713
1811
|
|-------------|-------------|------------------|
|
|
1714
|
-
| **200** |
|
|
1812
|
+
| **200** | Environment soft-deleted. | - |
|
|
1715
1813
|
| **401** | Missing or invalid bearer token. | - |
|
|
1716
1814
|
| **404** | Resource not found. | - |
|
|
1815
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
1717
1816
|
|
|
1718
1817
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1719
1818
|
|
|
1720
1819
|
|
|
1721
|
-
##
|
|
1820
|
+
## deleteEnvironmentRepo
|
|
1722
1821
|
|
|
1723
|
-
>
|
|
1822
|
+
> EnvironmentItemChangeResponse deleteEnvironmentRepo(environmentId, repositoryId, org)
|
|
1724
1823
|
|
|
1725
|
-
Remove a
|
|
1824
|
+
Remove a repository from an environment
|
|
1726
1825
|
|
|
1727
|
-
|
|
1826
|
+
Removes one repository from the environment\'s selection. Mints a new immutable version.
|
|
1728
1827
|
|
|
1729
1828
|
### Example
|
|
1730
1829
|
|
|
@@ -1733,7 +1832,7 @@ import {
|
|
|
1733
1832
|
Configuration,
|
|
1734
1833
|
BoatApi,
|
|
1735
1834
|
} from '@boatdev/sdk';
|
|
1736
|
-
import type {
|
|
1835
|
+
import type { DeleteEnvironmentRepoRequest } from '@boatdev/sdk';
|
|
1737
1836
|
|
|
1738
1837
|
async function example() {
|
|
1739
1838
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -1745,11 +1844,15 @@ async function example() {
|
|
|
1745
1844
|
|
|
1746
1845
|
const body = {
|
|
1747
1846
|
// string
|
|
1748
|
-
|
|
1749
|
-
|
|
1847
|
+
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
1848
|
+
// string | The repository `databaseId`.
|
|
1849
|
+
repositoryId: repositoryId_example,
|
|
1850
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
1851
|
+
org: org_example,
|
|
1852
|
+
} satisfies DeleteEnvironmentRepoRequest;
|
|
1750
1853
|
|
|
1751
1854
|
try {
|
|
1752
|
-
const data = await api.
|
|
1855
|
+
const data = await api.deleteEnvironmentRepo(body);
|
|
1753
1856
|
console.log(data);
|
|
1754
1857
|
} catch (error) {
|
|
1755
1858
|
console.error(error);
|
|
@@ -1765,11 +1868,13 @@ example().catch(console.error);
|
|
|
1765
1868
|
|
|
1766
1869
|
| Name | Type | Description | Notes |
|
|
1767
1870
|
|------------- | ------------- | ------------- | -------------|
|
|
1768
|
-
| **
|
|
1871
|
+
| **environmentId** | `string` | | [Defaults to `undefined`] |
|
|
1872
|
+
| **repositoryId** | `string` | The repository `databaseId`. | [Defaults to `undefined`] |
|
|
1873
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
1769
1874
|
|
|
1770
1875
|
### Return type
|
|
1771
1876
|
|
|
1772
|
-
[**
|
|
1877
|
+
[**EnvironmentItemChangeResponse**](EnvironmentItemChangeResponse.md)
|
|
1773
1878
|
|
|
1774
1879
|
### Authorization
|
|
1775
1880
|
|
|
@@ -1784,21 +1889,20 @@ example().catch(console.error);
|
|
|
1784
1889
|
### HTTP response details
|
|
1785
1890
|
| Status code | Description | Response headers |
|
|
1786
1891
|
|-------------|-------------|------------------|
|
|
1787
|
-
| **200** |
|
|
1892
|
+
| **200** | New version minted. | - |
|
|
1788
1893
|
| **401** | Missing or invalid bearer token. | - |
|
|
1789
1894
|
| **404** | Resource not found. | - |
|
|
1790
|
-
| **409** | `save_in_progress`: a save under this name is still running. Wait for it to settle before removing it. | - |
|
|
1791
1895
|
|
|
1792
1896
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1793
1897
|
|
|
1794
1898
|
|
|
1795
|
-
##
|
|
1899
|
+
## deleteEnvironmentSecretFile
|
|
1796
1900
|
|
|
1797
|
-
>
|
|
1901
|
+
> EnvironmentItemChangeResponse deleteEnvironmentSecretFile(path, environmentId, org)
|
|
1798
1902
|
|
|
1799
|
-
|
|
1903
|
+
Remove one secret file
|
|
1800
1904
|
|
|
1801
|
-
|
|
1905
|
+
Removes the secret file at `path`. Mints a new immutable version.
|
|
1802
1906
|
|
|
1803
1907
|
### Example
|
|
1804
1908
|
|
|
@@ -1807,7 +1911,7 @@ import {
|
|
|
1807
1911
|
Configuration,
|
|
1808
1912
|
BoatApi,
|
|
1809
1913
|
} from '@boatdev/sdk';
|
|
1810
|
-
import type {
|
|
1914
|
+
import type { DeleteEnvironmentSecretFileRequest } from '@boatdev/sdk';
|
|
1811
1915
|
|
|
1812
1916
|
async function example() {
|
|
1813
1917
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -1818,14 +1922,16 @@ async function example() {
|
|
|
1818
1922
|
const api = new BoatApi(config);
|
|
1819
1923
|
|
|
1820
1924
|
const body = {
|
|
1821
|
-
// string
|
|
1822
|
-
|
|
1823
|
-
// string
|
|
1824
|
-
|
|
1825
|
-
|
|
1925
|
+
// string
|
|
1926
|
+
path: path_example,
|
|
1927
|
+
// string
|
|
1928
|
+
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
1929
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
1930
|
+
org: org_example,
|
|
1931
|
+
} satisfies DeleteEnvironmentSecretFileRequest;
|
|
1826
1932
|
|
|
1827
1933
|
try {
|
|
1828
|
-
const data = await api.
|
|
1934
|
+
const data = await api.deleteEnvironmentSecretFile(body);
|
|
1829
1935
|
console.log(data);
|
|
1830
1936
|
} catch (error) {
|
|
1831
1937
|
console.error(error);
|
|
@@ -1841,12 +1947,13 @@ example().catch(console.error);
|
|
|
1841
1947
|
|
|
1842
1948
|
| Name | Type | Description | Notes |
|
|
1843
1949
|
|------------- | ------------- | ------------- | -------------|
|
|
1844
|
-
| **
|
|
1845
|
-
| **
|
|
1950
|
+
| **path** | `string` | | [Defaults to `undefined`] |
|
|
1951
|
+
| **environmentId** | `string` | | [Defaults to `undefined`] |
|
|
1952
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
1846
1953
|
|
|
1847
1954
|
### Return type
|
|
1848
1955
|
|
|
1849
|
-
[**
|
|
1956
|
+
[**EnvironmentItemChangeResponse**](EnvironmentItemChangeResponse.md)
|
|
1850
1957
|
|
|
1851
1958
|
### Authorization
|
|
1852
1959
|
|
|
@@ -1861,22 +1968,20 @@ example().catch(console.error);
|
|
|
1861
1968
|
### HTTP response details
|
|
1862
1969
|
| Status code | Description | Response headers |
|
|
1863
1970
|
|-------------|-------------|------------------|
|
|
1864
|
-
| **
|
|
1971
|
+
| **200** | New version minted. | - |
|
|
1865
1972
|
| **401** | Missing or invalid bearer token. | - |
|
|
1866
|
-
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
1867
1973
|
| **404** | Resource not found. | - |
|
|
1868
|
-
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
1869
1974
|
|
|
1870
1975
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1871
1976
|
|
|
1872
1977
|
|
|
1873
|
-
##
|
|
1978
|
+
## deleteEnvironmentVar
|
|
1874
1979
|
|
|
1875
|
-
>
|
|
1980
|
+
> EnvironmentItemChangeResponse deleteEnvironmentVar(environmentId, key, org)
|
|
1876
1981
|
|
|
1877
|
-
|
|
1982
|
+
Remove one environment variable
|
|
1878
1983
|
|
|
1879
|
-
|
|
1984
|
+
Removes a single variable. Mints a new immutable version.
|
|
1880
1985
|
|
|
1881
1986
|
### Example
|
|
1882
1987
|
|
|
@@ -1885,7 +1990,7 @@ import {
|
|
|
1885
1990
|
Configuration,
|
|
1886
1991
|
BoatApi,
|
|
1887
1992
|
} from '@boatdev/sdk';
|
|
1888
|
-
import type {
|
|
1993
|
+
import type { DeleteEnvironmentVarRequest } from '@boatdev/sdk';
|
|
1889
1994
|
|
|
1890
1995
|
async function example() {
|
|
1891
1996
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -1896,14 +2001,16 @@ async function example() {
|
|
|
1896
2001
|
const api = new BoatApi(config);
|
|
1897
2002
|
|
|
1898
2003
|
const body = {
|
|
1899
|
-
// string
|
|
1900
|
-
|
|
1901
|
-
// string |
|
|
1902
|
-
|
|
1903
|
-
|
|
2004
|
+
// string
|
|
2005
|
+
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
2006
|
+
// string | Environment variable name.
|
|
2007
|
+
key: key_example,
|
|
2008
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
2009
|
+
org: org_example,
|
|
2010
|
+
} satisfies DeleteEnvironmentVarRequest;
|
|
1904
2011
|
|
|
1905
2012
|
try {
|
|
1906
|
-
const data = await api.
|
|
2013
|
+
const data = await api.deleteEnvironmentVar(body);
|
|
1907
2014
|
console.log(data);
|
|
1908
2015
|
} catch (error) {
|
|
1909
2016
|
console.error(error);
|
|
@@ -1919,12 +2026,13 @@ example().catch(console.error);
|
|
|
1919
2026
|
|
|
1920
2027
|
| Name | Type | Description | Notes |
|
|
1921
2028
|
|------------- | ------------- | ------------- | -------------|
|
|
1922
|
-
| **
|
|
1923
|
-
| **
|
|
2029
|
+
| **environmentId** | `string` | | [Defaults to `undefined`] |
|
|
2030
|
+
| **key** | `string` | Environment variable name. | [Defaults to `undefined`] |
|
|
2031
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
1924
2032
|
|
|
1925
2033
|
### Return type
|
|
1926
2034
|
|
|
1927
|
-
[**
|
|
2035
|
+
[**EnvironmentItemChangeResponse**](EnvironmentItemChangeResponse.md)
|
|
1928
2036
|
|
|
1929
2037
|
### Authorization
|
|
1930
2038
|
|
|
@@ -1939,22 +2047,20 @@ example().catch(console.error);
|
|
|
1939
2047
|
### HTTP response details
|
|
1940
2048
|
| Status code | Description | Response headers |
|
|
1941
2049
|
|-------------|-------------|------------------|
|
|
1942
|
-
| **
|
|
2050
|
+
| **200** | New version minted. | - |
|
|
1943
2051
|
| **401** | Missing or invalid bearer token. | - |
|
|
1944
|
-
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
1945
2052
|
| **404** | Resource not found. | - |
|
|
1946
|
-
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
1947
2053
|
|
|
1948
2054
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
1949
2055
|
|
|
1950
2056
|
|
|
1951
|
-
##
|
|
2057
|
+
## deleteNamedSnapshot
|
|
1952
2058
|
|
|
1953
|
-
>
|
|
2059
|
+
> NamedSnapshotDeletedResponse deleteNamedSnapshot(name)
|
|
1954
2060
|
|
|
1955
|
-
|
|
2061
|
+
Remove a named snapshot
|
|
1956
2062
|
|
|
1957
|
-
|
|
2063
|
+
Remove a named snapshot and release its storage (`boat snapshot rm <name>` in the CLI). Sandboxes already deployed from it are unaffected.
|
|
1958
2064
|
|
|
1959
2065
|
### Example
|
|
1960
2066
|
|
|
@@ -1963,7 +2069,7 @@ import {
|
|
|
1963
2069
|
Configuration,
|
|
1964
2070
|
BoatApi,
|
|
1965
2071
|
} from '@boatdev/sdk';
|
|
1966
|
-
import type {
|
|
2072
|
+
import type { DeleteNamedSnapshotRequest } from '@boatdev/sdk';
|
|
1967
2073
|
|
|
1968
2074
|
async function example() {
|
|
1969
2075
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -1974,14 +2080,12 @@ async function example() {
|
|
|
1974
2080
|
const api = new BoatApi(config);
|
|
1975
2081
|
|
|
1976
2082
|
const body = {
|
|
1977
|
-
// string
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
xAsciiConfirmDelete: xAsciiConfirmDelete_example,
|
|
1981
|
-
} satisfies DeleteSnapshotRequest;
|
|
2083
|
+
// string
|
|
2084
|
+
name: name_example,
|
|
2085
|
+
} satisfies DeleteNamedSnapshotRequest;
|
|
1982
2086
|
|
|
1983
2087
|
try {
|
|
1984
|
-
const data = await api.
|
|
2088
|
+
const data = await api.deleteNamedSnapshot(body);
|
|
1985
2089
|
console.log(data);
|
|
1986
2090
|
} catch (error) {
|
|
1987
2091
|
console.error(error);
|
|
@@ -1997,12 +2101,11 @@ example().catch(console.error);
|
|
|
1997
2101
|
|
|
1998
2102
|
| Name | Type | Description | Notes |
|
|
1999
2103
|
|------------- | ------------- | ------------- | -------------|
|
|
2000
|
-
| **
|
|
2001
|
-
| **xAsciiConfirmDelete** | `string` | Must exactly equal the target `sandboxId` or `snapshotId`. A missing or mismatched value returns `409` without accepting deletion. | [Defaults to `undefined`] |
|
|
2104
|
+
| **name** | `string` | | [Defaults to `undefined`] |
|
|
2002
2105
|
|
|
2003
2106
|
### Return type
|
|
2004
2107
|
|
|
2005
|
-
[**
|
|
2108
|
+
[**NamedSnapshotDeletedResponse**](NamedSnapshotDeletedResponse.md)
|
|
2006
2109
|
|
|
2007
2110
|
### Authorization
|
|
2008
2111
|
|
|
@@ -2017,16 +2120,249 @@ example().catch(console.error);
|
|
|
2017
2120
|
### HTTP response details
|
|
2018
2121
|
| Status code | Description | Response headers |
|
|
2019
2122
|
|-------------|-------------|------------------|
|
|
2020
|
-
| **
|
|
2123
|
+
| **200** | Removed. | - |
|
|
2021
2124
|
| **401** | Missing or invalid bearer token. | - |
|
|
2022
|
-
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
2023
2125
|
| **404** | Resource not found. | - |
|
|
2024
|
-
| **409** |
|
|
2126
|
+
| **409** | `save_in_progress`: a save under this name is still running. Wait for it to settle before removing it. | - |
|
|
2025
2127
|
|
|
2026
2128
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2027
2129
|
|
|
2028
2130
|
|
|
2029
|
-
##
|
|
2131
|
+
## deleteSandbox
|
|
2132
|
+
|
|
2133
|
+
> DeletionOperationResponse deleteSandbox(xAsciiConfirmDelete, sandboxId)
|
|
2134
|
+
|
|
2135
|
+
Permanently delete sandbox data
|
|
2136
|
+
|
|
2137
|
+
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`.
|
|
2138
|
+
|
|
2139
|
+
### Example
|
|
2140
|
+
|
|
2141
|
+
```ts
|
|
2142
|
+
import {
|
|
2143
|
+
Configuration,
|
|
2144
|
+
BoatApi,
|
|
2145
|
+
} from '@boatdev/sdk';
|
|
2146
|
+
import type { DeleteSandboxRequest } from '@boatdev/sdk';
|
|
2147
|
+
|
|
2148
|
+
async function example() {
|
|
2149
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2150
|
+
const config = new Configuration({
|
|
2151
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2152
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2153
|
+
});
|
|
2154
|
+
const api = new BoatApi(config);
|
|
2155
|
+
|
|
2156
|
+
const body = {
|
|
2157
|
+
// string | Must exactly equal the target `sandboxId` or `snapshotId`. A missing or mismatched value returns `409` without accepting deletion.
|
|
2158
|
+
xAsciiConfirmDelete: xAsciiConfirmDelete_example,
|
|
2159
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
2160
|
+
sandboxId: sandboxId_example,
|
|
2161
|
+
} satisfies DeleteSandboxRequest;
|
|
2162
|
+
|
|
2163
|
+
try {
|
|
2164
|
+
const data = await api.deleteSandbox(body);
|
|
2165
|
+
console.log(data);
|
|
2166
|
+
} catch (error) {
|
|
2167
|
+
console.error(error);
|
|
2168
|
+
}
|
|
2169
|
+
}
|
|
2170
|
+
|
|
2171
|
+
// Run the test
|
|
2172
|
+
example().catch(console.error);
|
|
2173
|
+
```
|
|
2174
|
+
|
|
2175
|
+
### Parameters
|
|
2176
|
+
|
|
2177
|
+
|
|
2178
|
+
| Name | Type | Description | Notes |
|
|
2179
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2180
|
+
| **xAsciiConfirmDelete** | `string` | Must exactly equal the target `sandboxId` or `snapshotId`. A missing or mismatched value returns `409` without accepting deletion. | [Defaults to `undefined`] |
|
|
2181
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
2182
|
+
|
|
2183
|
+
### Return type
|
|
2184
|
+
|
|
2185
|
+
[**DeletionOperationResponse**](DeletionOperationResponse.md)
|
|
2186
|
+
|
|
2187
|
+
### Authorization
|
|
2188
|
+
|
|
2189
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2190
|
+
|
|
2191
|
+
### HTTP request headers
|
|
2192
|
+
|
|
2193
|
+
- **Content-Type**: Not defined
|
|
2194
|
+
- **Accept**: `application/json`
|
|
2195
|
+
|
|
2196
|
+
|
|
2197
|
+
### HTTP response details
|
|
2198
|
+
| Status code | Description | Response headers |
|
|
2199
|
+
|-------------|-------------|------------------|
|
|
2200
|
+
| **202** | Deletion confirmed and accepted for background processing. | - |
|
|
2201
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2202
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
2203
|
+
| **404** | Resource not found. | - |
|
|
2204
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
2205
|
+
|
|
2206
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2207
|
+
|
|
2208
|
+
|
|
2209
|
+
## deleteSandboxSnapshots
|
|
2210
|
+
|
|
2211
|
+
> DeletionOperationListResponse deleteSandboxSnapshots(sandboxId, xAsciiConfirmDelete)
|
|
2212
|
+
|
|
2213
|
+
Permanently delete all snapshots of a sandbox
|
|
2214
|
+
|
|
2215
|
+
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.
|
|
2216
|
+
|
|
2217
|
+
### Example
|
|
2218
|
+
|
|
2219
|
+
```ts
|
|
2220
|
+
import {
|
|
2221
|
+
Configuration,
|
|
2222
|
+
BoatApi,
|
|
2223
|
+
} from '@boatdev/sdk';
|
|
2224
|
+
import type { DeleteSandboxSnapshotsRequest } from '@boatdev/sdk';
|
|
2225
|
+
|
|
2226
|
+
async function example() {
|
|
2227
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2228
|
+
const config = new Configuration({
|
|
2229
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2230
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2231
|
+
});
|
|
2232
|
+
const api = new BoatApi(config);
|
|
2233
|
+
|
|
2234
|
+
const body = {
|
|
2235
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
2236
|
+
sandboxId: sandboxId_example,
|
|
2237
|
+
// string | Must exactly equal the target `sandboxId` or `snapshotId`. A missing or mismatched value returns `409` without accepting deletion.
|
|
2238
|
+
xAsciiConfirmDelete: xAsciiConfirmDelete_example,
|
|
2239
|
+
} satisfies DeleteSandboxSnapshotsRequest;
|
|
2240
|
+
|
|
2241
|
+
try {
|
|
2242
|
+
const data = await api.deleteSandboxSnapshots(body);
|
|
2243
|
+
console.log(data);
|
|
2244
|
+
} catch (error) {
|
|
2245
|
+
console.error(error);
|
|
2246
|
+
}
|
|
2247
|
+
}
|
|
2248
|
+
|
|
2249
|
+
// Run the test
|
|
2250
|
+
example().catch(console.error);
|
|
2251
|
+
```
|
|
2252
|
+
|
|
2253
|
+
### Parameters
|
|
2254
|
+
|
|
2255
|
+
|
|
2256
|
+
| Name | Type | Description | Notes |
|
|
2257
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2258
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
2259
|
+
| **xAsciiConfirmDelete** | `string` | Must exactly equal the target `sandboxId` or `snapshotId`. A missing or mismatched value returns `409` without accepting deletion. | [Defaults to `undefined`] |
|
|
2260
|
+
|
|
2261
|
+
### Return type
|
|
2262
|
+
|
|
2263
|
+
[**DeletionOperationListResponse**](DeletionOperationListResponse.md)
|
|
2264
|
+
|
|
2265
|
+
### Authorization
|
|
2266
|
+
|
|
2267
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2268
|
+
|
|
2269
|
+
### HTTP request headers
|
|
2270
|
+
|
|
2271
|
+
- **Content-Type**: Not defined
|
|
2272
|
+
- **Accept**: `application/json`
|
|
2273
|
+
|
|
2274
|
+
|
|
2275
|
+
### HTTP response details
|
|
2276
|
+
| Status code | Description | Response headers |
|
|
2277
|
+
|-------------|-------------|------------------|
|
|
2278
|
+
| **202** | One accepted deletion operation per snapshot. | - |
|
|
2279
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2280
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
2281
|
+
| **404** | Resource not found. | - |
|
|
2282
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
2283
|
+
|
|
2284
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2285
|
+
|
|
2286
|
+
|
|
2287
|
+
## deleteSnapshot
|
|
2288
|
+
|
|
2289
|
+
> DeletionOperationResponse deleteSnapshot(snapshotId, xAsciiConfirmDelete)
|
|
2290
|
+
|
|
2291
|
+
Permanently delete snapshot data
|
|
2292
|
+
|
|
2293
|
+
Accept irreversible deletion of an unpinned snapshot owned by the authenticated account. Any such snapshot is accepted: it disappears from lists, restores and forks immediately, and its stored data is purged in the background once nothing still reads it (see the operation\'s `stage`). `409` only means `X-Ascii-Confirm-Delete` is missing or wrong.
|
|
2294
|
+
|
|
2295
|
+
### Example
|
|
2296
|
+
|
|
2297
|
+
```ts
|
|
2298
|
+
import {
|
|
2299
|
+
Configuration,
|
|
2300
|
+
BoatApi,
|
|
2301
|
+
} from '@boatdev/sdk';
|
|
2302
|
+
import type { DeleteSnapshotRequest } from '@boatdev/sdk';
|
|
2303
|
+
|
|
2304
|
+
async function example() {
|
|
2305
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2306
|
+
const config = new Configuration({
|
|
2307
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2308
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2309
|
+
});
|
|
2310
|
+
const api = new BoatApi(config);
|
|
2311
|
+
|
|
2312
|
+
const body = {
|
|
2313
|
+
// string | Snapshot id returned by the snapshot list/latest calls.
|
|
2314
|
+
snapshotId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
2315
|
+
// string | Must exactly equal the target `sandboxId` or `snapshotId`. A missing or mismatched value returns `409` without accepting deletion.
|
|
2316
|
+
xAsciiConfirmDelete: xAsciiConfirmDelete_example,
|
|
2317
|
+
} satisfies DeleteSnapshotRequest;
|
|
2318
|
+
|
|
2319
|
+
try {
|
|
2320
|
+
const data = await api.deleteSnapshot(body);
|
|
2321
|
+
console.log(data);
|
|
2322
|
+
} catch (error) {
|
|
2323
|
+
console.error(error);
|
|
2324
|
+
}
|
|
2325
|
+
}
|
|
2326
|
+
|
|
2327
|
+
// Run the test
|
|
2328
|
+
example().catch(console.error);
|
|
2329
|
+
```
|
|
2330
|
+
|
|
2331
|
+
### Parameters
|
|
2332
|
+
|
|
2333
|
+
|
|
2334
|
+
| Name | Type | Description | Notes |
|
|
2335
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2336
|
+
| **snapshotId** | `string` | Snapshot id returned by the snapshot list/latest calls. | [Defaults to `undefined`] |
|
|
2337
|
+
| **xAsciiConfirmDelete** | `string` | Must exactly equal the target `sandboxId` or `snapshotId`. A missing or mismatched value returns `409` without accepting deletion. | [Defaults to `undefined`] |
|
|
2338
|
+
|
|
2339
|
+
### Return type
|
|
2340
|
+
|
|
2341
|
+
[**DeletionOperationResponse**](DeletionOperationResponse.md)
|
|
2342
|
+
|
|
2343
|
+
### Authorization
|
|
2344
|
+
|
|
2345
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2346
|
+
|
|
2347
|
+
### HTTP request headers
|
|
2348
|
+
|
|
2349
|
+
- **Content-Type**: Not defined
|
|
2350
|
+
- **Accept**: `application/json`
|
|
2351
|
+
|
|
2352
|
+
|
|
2353
|
+
### HTTP response details
|
|
2354
|
+
| Status code | Description | Response headers |
|
|
2355
|
+
|-------------|-------------|------------------|
|
|
2356
|
+
| **202** | Deletion confirmed and accepted for background processing. | - |
|
|
2357
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2358
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
2359
|
+
| **404** | Resource not found. | - |
|
|
2360
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
2361
|
+
|
|
2362
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2363
|
+
|
|
2364
|
+
|
|
2365
|
+
## deleteTelemetry
|
|
2030
2366
|
|
|
2031
2367
|
> TelemetryResponse deleteTelemetry()
|
|
2032
2368
|
|
|
@@ -2250,7 +2586,7 @@ example().catch(console.error);
|
|
|
2250
2586
|
|
|
2251
2587
|
## environments
|
|
2252
2588
|
|
|
2253
|
-
> SandboxEnvironmentListResponse environments()
|
|
2589
|
+
> SandboxEnvironmentListResponse environments(org)
|
|
2254
2590
|
|
|
2255
2591
|
List Sandbox environments
|
|
2256
2592
|
|
|
@@ -2273,8 +2609,13 @@ async function example() {
|
|
|
2273
2609
|
});
|
|
2274
2610
|
const api = new BoatApi(config);
|
|
2275
2611
|
|
|
2612
|
+
const body = {
|
|
2613
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
2614
|
+
org: org_example,
|
|
2615
|
+
} satisfies EnvironmentsRequest;
|
|
2616
|
+
|
|
2276
2617
|
try {
|
|
2277
|
-
const data = await api.environments();
|
|
2618
|
+
const data = await api.environments(body);
|
|
2278
2619
|
console.log(data);
|
|
2279
2620
|
} catch (error) {
|
|
2280
2621
|
console.error(error);
|
|
@@ -2287,7 +2628,10 @@ example().catch(console.error);
|
|
|
2287
2628
|
|
|
2288
2629
|
### Parameters
|
|
2289
2630
|
|
|
2290
|
-
|
|
2631
|
+
|
|
2632
|
+
| Name | Type | Description | Notes |
|
|
2633
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2634
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
2291
2635
|
|
|
2292
2636
|
### Return type
|
|
2293
2637
|
|
|
@@ -2557,6 +2901,162 @@ example().catch(console.error);
|
|
|
2557
2901
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2558
2902
|
|
|
2559
2903
|
|
|
2904
|
+
## getAiProxy
|
|
2905
|
+
|
|
2906
|
+
> AiProxySettings getAiProxy(org, xBoatOrg)
|
|
2907
|
+
|
|
2908
|
+
Get AI credentials proxy
|
|
2909
|
+
|
|
2910
|
+
Returns the AI credentials proxy switch of the account in scope, a person or an organization, with its price. Needs an API key with `account.admin`.
|
|
2911
|
+
|
|
2912
|
+
### Example
|
|
2913
|
+
|
|
2914
|
+
```ts
|
|
2915
|
+
import {
|
|
2916
|
+
Configuration,
|
|
2917
|
+
BoatApi,
|
|
2918
|
+
} from '@boatdev/sdk';
|
|
2919
|
+
import type { GetAiProxyRequest } from '@boatdev/sdk';
|
|
2920
|
+
|
|
2921
|
+
async function example() {
|
|
2922
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2923
|
+
const config = new Configuration({
|
|
2924
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
2925
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
2926
|
+
});
|
|
2927
|
+
const api = new BoatApi(config);
|
|
2928
|
+
|
|
2929
|
+
const body = {
|
|
2930
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
2931
|
+
org: org_example,
|
|
2932
|
+
// string | Same as the `org` query parameter. Query wins when both are set. (optional)
|
|
2933
|
+
xBoatOrg: xBoatOrg_example,
|
|
2934
|
+
} satisfies GetAiProxyRequest;
|
|
2935
|
+
|
|
2936
|
+
try {
|
|
2937
|
+
const data = await api.getAiProxy(body);
|
|
2938
|
+
console.log(data);
|
|
2939
|
+
} catch (error) {
|
|
2940
|
+
console.error(error);
|
|
2941
|
+
}
|
|
2942
|
+
}
|
|
2943
|
+
|
|
2944
|
+
// Run the test
|
|
2945
|
+
example().catch(console.error);
|
|
2946
|
+
```
|
|
2947
|
+
|
|
2948
|
+
### Parameters
|
|
2949
|
+
|
|
2950
|
+
|
|
2951
|
+
| Name | Type | Description | Notes |
|
|
2952
|
+
|------------- | ------------- | ------------- | -------------|
|
|
2953
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
2954
|
+
| **xBoatOrg** | `string` | Same as the `org` query parameter. Query wins when both are set. | [Optional] [Defaults to `undefined`] |
|
|
2955
|
+
|
|
2956
|
+
### Return type
|
|
2957
|
+
|
|
2958
|
+
[**AiProxySettings**](AiProxySettings.md)
|
|
2959
|
+
|
|
2960
|
+
### Authorization
|
|
2961
|
+
|
|
2962
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
2963
|
+
|
|
2964
|
+
### HTTP request headers
|
|
2965
|
+
|
|
2966
|
+
- **Content-Type**: Not defined
|
|
2967
|
+
- **Accept**: `application/json`
|
|
2968
|
+
|
|
2969
|
+
|
|
2970
|
+
### HTTP response details
|
|
2971
|
+
| Status code | Description | Response headers |
|
|
2972
|
+
|-------------|-------------|------------------|
|
|
2973
|
+
| **200** | The switch and its price. | - |
|
|
2974
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
2975
|
+
|
|
2976
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2977
|
+
|
|
2978
|
+
|
|
2979
|
+
## getAiUsage
|
|
2980
|
+
|
|
2981
|
+
> AccountAiUsageResponse getAiUsage(days, profile, org, xBoatOrg)
|
|
2982
|
+
|
|
2983
|
+
Get AI usage
|
|
2984
|
+
|
|
2985
|
+
Proxied AI usage, per sandbox and in total, per UTC day, credential and model. Without `profile`, the usage charged to the wallet in scope. With `profile`, the requests made with that profile\'s credentials, whoever pays; only its managers can read it. Needs an API key with `account.read`.
|
|
2986
|
+
|
|
2987
|
+
### Example
|
|
2988
|
+
|
|
2989
|
+
```ts
|
|
2990
|
+
import {
|
|
2991
|
+
Configuration,
|
|
2992
|
+
BoatApi,
|
|
2993
|
+
} from '@boatdev/sdk';
|
|
2994
|
+
import type { GetAiUsageRequest } from '@boatdev/sdk';
|
|
2995
|
+
|
|
2996
|
+
async function example() {
|
|
2997
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
2998
|
+
const config = new Configuration({
|
|
2999
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3000
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3001
|
+
});
|
|
3002
|
+
const api = new BoatApi(config);
|
|
3003
|
+
|
|
3004
|
+
const body = {
|
|
3005
|
+
// number | Days of history, today included. (optional)
|
|
3006
|
+
days: 56,
|
|
3007
|
+
// string | A credential profile id. Counts that profile\'s requests instead of a wallet\'s. (optional)
|
|
3008
|
+
profile: profile_example,
|
|
3009
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
3010
|
+
org: org_example,
|
|
3011
|
+
// string | Same as the `org` query parameter. Query wins when both are set. (optional)
|
|
3012
|
+
xBoatOrg: xBoatOrg_example,
|
|
3013
|
+
} satisfies GetAiUsageRequest;
|
|
3014
|
+
|
|
3015
|
+
try {
|
|
3016
|
+
const data = await api.getAiUsage(body);
|
|
3017
|
+
console.log(data);
|
|
3018
|
+
} catch (error) {
|
|
3019
|
+
console.error(error);
|
|
3020
|
+
}
|
|
3021
|
+
}
|
|
3022
|
+
|
|
3023
|
+
// Run the test
|
|
3024
|
+
example().catch(console.error);
|
|
3025
|
+
```
|
|
3026
|
+
|
|
3027
|
+
### Parameters
|
|
3028
|
+
|
|
3029
|
+
|
|
3030
|
+
| Name | Type | Description | Notes |
|
|
3031
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3032
|
+
| **days** | `number` | Days of history, today included. | [Optional] [Defaults to `30`] |
|
|
3033
|
+
| **profile** | `string` | A credential profile id. Counts that profile\'s requests instead of a wallet\'s. | [Optional] [Defaults to `undefined`] |
|
|
3034
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
3035
|
+
| **xBoatOrg** | `string` | Same as the `org` query parameter. Query wins when both are set. | [Optional] [Defaults to `undefined`] |
|
|
3036
|
+
|
|
3037
|
+
### Return type
|
|
3038
|
+
|
|
3039
|
+
[**AccountAiUsageResponse**](AccountAiUsageResponse.md)
|
|
3040
|
+
|
|
3041
|
+
### Authorization
|
|
3042
|
+
|
|
3043
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3044
|
+
|
|
3045
|
+
### HTTP request headers
|
|
3046
|
+
|
|
3047
|
+
- **Content-Type**: Not defined
|
|
3048
|
+
- **Accept**: `application/json`
|
|
3049
|
+
|
|
3050
|
+
|
|
3051
|
+
### HTTP response details
|
|
3052
|
+
| Status code | Description | Response headers |
|
|
3053
|
+
|-------------|-------------|------------------|
|
|
3054
|
+
| **200** | The usage. | - |
|
|
3055
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3056
|
+
|
|
3057
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3058
|
+
|
|
3059
|
+
|
|
2560
3060
|
## getCommand
|
|
2561
3061
|
|
|
2562
3062
|
> CommandInfoResponse getCommand(sandboxId, commandId)
|
|
@@ -2913,6 +3413,82 @@ example().catch(console.error);
|
|
|
2913
3413
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
2914
3414
|
|
|
2915
3415
|
|
|
3416
|
+
## getSandboxAiUsage
|
|
3417
|
+
|
|
3418
|
+
> SandboxAiUsageResponse getSandboxAiUsage(sandboxId, days)
|
|
3419
|
+
|
|
3420
|
+
Get sandbox AI usage
|
|
3421
|
+
|
|
3422
|
+
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.
|
|
3423
|
+
|
|
3424
|
+
### Example
|
|
3425
|
+
|
|
3426
|
+
```ts
|
|
3427
|
+
import {
|
|
3428
|
+
Configuration,
|
|
3429
|
+
BoatApi,
|
|
3430
|
+
} from '@boatdev/sdk';
|
|
3431
|
+
import type { GetSandboxAiUsageRequest } from '@boatdev/sdk';
|
|
3432
|
+
|
|
3433
|
+
async function example() {
|
|
3434
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
3435
|
+
const config = new Configuration({
|
|
3436
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
3437
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
3438
|
+
});
|
|
3439
|
+
const api = new BoatApi(config);
|
|
3440
|
+
|
|
3441
|
+
const body = {
|
|
3442
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
3443
|
+
sandboxId: sandboxId_example,
|
|
3444
|
+
// number | Days of history, today included. (optional)
|
|
3445
|
+
days: 56,
|
|
3446
|
+
} satisfies GetSandboxAiUsageRequest;
|
|
3447
|
+
|
|
3448
|
+
try {
|
|
3449
|
+
const data = await api.getSandboxAiUsage(body);
|
|
3450
|
+
console.log(data);
|
|
3451
|
+
} catch (error) {
|
|
3452
|
+
console.error(error);
|
|
3453
|
+
}
|
|
3454
|
+
}
|
|
3455
|
+
|
|
3456
|
+
// Run the test
|
|
3457
|
+
example().catch(console.error);
|
|
3458
|
+
```
|
|
3459
|
+
|
|
3460
|
+
### Parameters
|
|
3461
|
+
|
|
3462
|
+
|
|
3463
|
+
| Name | Type | Description | Notes |
|
|
3464
|
+
|------------- | ------------- | ------------- | -------------|
|
|
3465
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
3466
|
+
| **days** | `number` | Days of history, today included. | [Optional] [Defaults to `30`] |
|
|
3467
|
+
|
|
3468
|
+
### Return type
|
|
3469
|
+
|
|
3470
|
+
[**SandboxAiUsageResponse**](SandboxAiUsageResponse.md)
|
|
3471
|
+
|
|
3472
|
+
### Authorization
|
|
3473
|
+
|
|
3474
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
3475
|
+
|
|
3476
|
+
### HTTP request headers
|
|
3477
|
+
|
|
3478
|
+
- **Content-Type**: Not defined
|
|
3479
|
+
- **Accept**: `application/json`
|
|
3480
|
+
|
|
3481
|
+
|
|
3482
|
+
### HTTP response details
|
|
3483
|
+
| Status code | Description | Response headers |
|
|
3484
|
+
|-------------|-------------|------------------|
|
|
3485
|
+
| **200** | The usage. | - |
|
|
3486
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
3487
|
+
| **404** | Resource not found. | - |
|
|
3488
|
+
|
|
3489
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3490
|
+
|
|
3491
|
+
|
|
2916
3492
|
## getSnapshotDownload
|
|
2917
3493
|
|
|
2918
3494
|
> SnapshotDownloadResponse getSnapshotDownload(snapshotId)
|
|
@@ -3460,7 +4036,87 @@ async function example() {
|
|
|
3460
4036
|
} satisfies InterruptRequest;
|
|
3461
4037
|
|
|
3462
4038
|
try {
|
|
3463
|
-
const data = await api.interrupt(body);
|
|
4039
|
+
const data = await api.interrupt(body);
|
|
4040
|
+
console.log(data);
|
|
4041
|
+
} catch (error) {
|
|
4042
|
+
console.error(error);
|
|
4043
|
+
}
|
|
4044
|
+
}
|
|
4045
|
+
|
|
4046
|
+
// Run the test
|
|
4047
|
+
example().catch(console.error);
|
|
4048
|
+
```
|
|
4049
|
+
|
|
4050
|
+
### Parameters
|
|
4051
|
+
|
|
4052
|
+
|
|
4053
|
+
| Name | Type | Description | Notes |
|
|
4054
|
+
|------------- | ------------- | ------------- | -------------|
|
|
4055
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
4056
|
+
| **conversation** | `string` | Interrupt only this conversation id. Omit to interrupt the whole sandbox. | [Optional] [Defaults to `undefined`] |
|
|
4057
|
+
|
|
4058
|
+
### Return type
|
|
4059
|
+
|
|
4060
|
+
[**SandboxActionResponse**](SandboxActionResponse.md)
|
|
4061
|
+
|
|
4062
|
+
### Authorization
|
|
4063
|
+
|
|
4064
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
4065
|
+
|
|
4066
|
+
### HTTP request headers
|
|
4067
|
+
|
|
4068
|
+
- **Content-Type**: Not defined
|
|
4069
|
+
- **Accept**: `application/json`
|
|
4070
|
+
|
|
4071
|
+
|
|
4072
|
+
### HTTP response details
|
|
4073
|
+
| Status code | Description | Response headers |
|
|
4074
|
+
|-------------|-------------|------------------|
|
|
4075
|
+
| **200** | Interrupt requested. | - |
|
|
4076
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
4077
|
+
| **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. | - |
|
|
4078
|
+
| **404** | Resource not found. | - |
|
|
4079
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
4080
|
+
|
|
4081
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
4082
|
+
|
|
4083
|
+
|
|
4084
|
+
## limits
|
|
4085
|
+
|
|
4086
|
+
> LimitsResponse limits(org, xBoatOrg, teamId)
|
|
4087
|
+
|
|
4088
|
+
Get Boat limits
|
|
4089
|
+
|
|
4090
|
+
Check remaining machine starts, compute time, credits, 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.
|
|
4091
|
+
|
|
4092
|
+
### Example
|
|
4093
|
+
|
|
4094
|
+
```ts
|
|
4095
|
+
import {
|
|
4096
|
+
Configuration,
|
|
4097
|
+
BoatApi,
|
|
4098
|
+
} from '@boatdev/sdk';
|
|
4099
|
+
import type { LimitsRequest } from '@boatdev/sdk';
|
|
4100
|
+
|
|
4101
|
+
async function example() {
|
|
4102
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
4103
|
+
const config = new Configuration({
|
|
4104
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
4105
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
4106
|
+
});
|
|
4107
|
+
const api = new BoatApi(config);
|
|
4108
|
+
|
|
4109
|
+
const body = {
|
|
4110
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
4111
|
+
org: org_example,
|
|
4112
|
+
// string | Same as the `org` query parameter. Query wins when both are set. (optional)
|
|
4113
|
+
xBoatOrg: xBoatOrg_example,
|
|
4114
|
+
// string | Legacy alias for `org`. Takes precedence over `org` / `X-Boat-Org` when set. (optional)
|
|
4115
|
+
teamId: teamId_example,
|
|
4116
|
+
} satisfies LimitsRequest;
|
|
4117
|
+
|
|
4118
|
+
try {
|
|
4119
|
+
const data = await api.limits(body);
|
|
3464
4120
|
console.log(data);
|
|
3465
4121
|
} catch (error) {
|
|
3466
4122
|
console.error(error);
|
|
@@ -3476,12 +4132,13 @@ example().catch(console.error);
|
|
|
3476
4132
|
|
|
3477
4133
|
| Name | Type | Description | Notes |
|
|
3478
4134
|
|------------- | ------------- | ------------- | -------------|
|
|
3479
|
-
| **
|
|
3480
|
-
| **
|
|
4135
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
4136
|
+
| **xBoatOrg** | `string` | Same as the `org` query parameter. Query wins when both are set. | [Optional] [Defaults to `undefined`] |
|
|
4137
|
+
| **teamId** | `string` | Legacy alias for `org`. Takes precedence over `org` / `X-Boat-Org` when set. | [Optional] [Defaults to `undefined`] |
|
|
3481
4138
|
|
|
3482
4139
|
### Return type
|
|
3483
4140
|
|
|
3484
|
-
[**
|
|
4141
|
+
[**LimitsResponse**](LimitsResponse.md)
|
|
3485
4142
|
|
|
3486
4143
|
### Authorization
|
|
3487
4144
|
|
|
@@ -3496,22 +4153,19 @@ example().catch(console.error);
|
|
|
3496
4153
|
### HTTP response details
|
|
3497
4154
|
| Status code | Description | Response headers |
|
|
3498
4155
|
|-------------|-------------|------------------|
|
|
3499
|
-
| **200** |
|
|
4156
|
+
| **200** | Current creation and concurrent-boat limits. | - |
|
|
3500
4157
|
| **401** | Missing or invalid bearer token. | - |
|
|
3501
|
-
| **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. | - |
|
|
3502
|
-
| **404** | Resource not found. | - |
|
|
3503
|
-
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
3504
4158
|
|
|
3505
4159
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
3506
4160
|
|
|
3507
4161
|
|
|
3508
|
-
##
|
|
4162
|
+
## listCredentialProfiles
|
|
3509
4163
|
|
|
3510
|
-
>
|
|
4164
|
+
> CredentialProfileListResponse listCredentialProfiles()
|
|
3511
4165
|
|
|
3512
|
-
|
|
4166
|
+
List credential profiles
|
|
3513
4167
|
|
|
3514
|
-
|
|
4168
|
+
Returns every AI credential profile you can use, yours and your organizations\'. Secret values are never returned. Needs an API key with `account.admin`.
|
|
3515
4169
|
|
|
3516
4170
|
### Example
|
|
3517
4171
|
|
|
@@ -3520,7 +4174,7 @@ import {
|
|
|
3520
4174
|
Configuration,
|
|
3521
4175
|
BoatApi,
|
|
3522
4176
|
} from '@boatdev/sdk';
|
|
3523
|
-
import type {
|
|
4177
|
+
import type { ListCredentialProfilesRequest } from '@boatdev/sdk';
|
|
3524
4178
|
|
|
3525
4179
|
async function example() {
|
|
3526
4180
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -3530,17 +4184,8 @@ async function example() {
|
|
|
3530
4184
|
});
|
|
3531
4185
|
const api = new BoatApi(config);
|
|
3532
4186
|
|
|
3533
|
-
const body = {
|
|
3534
|
-
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes, snapshots, and environments stay creator-private. (optional)
|
|
3535
|
-
org: org_example,
|
|
3536
|
-
// string | Same as the `org` query parameter. Query wins when both are set. (optional)
|
|
3537
|
-
xBoatOrg: xBoatOrg_example,
|
|
3538
|
-
// string | Legacy alias for `org`. Takes precedence over `org` / `X-Boat-Org` when set. (optional)
|
|
3539
|
-
teamId: teamId_example,
|
|
3540
|
-
} satisfies LimitsRequest;
|
|
3541
|
-
|
|
3542
4187
|
try {
|
|
3543
|
-
const data = await api.
|
|
4188
|
+
const data = await api.listCredentialProfiles();
|
|
3544
4189
|
console.log(data);
|
|
3545
4190
|
} catch (error) {
|
|
3546
4191
|
console.error(error);
|
|
@@ -3553,16 +4198,11 @@ example().catch(console.error);
|
|
|
3553
4198
|
|
|
3554
4199
|
### Parameters
|
|
3555
4200
|
|
|
3556
|
-
|
|
3557
|
-
| Name | Type | Description | Notes |
|
|
3558
|
-
|------------- | ------------- | ------------- | -------------|
|
|
3559
|
-
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes, snapshots, and environments stay creator-private. | [Optional] [Defaults to `undefined`] |
|
|
3560
|
-
| **xBoatOrg** | `string` | Same as the `org` query parameter. Query wins when both are set. | [Optional] [Defaults to `undefined`] |
|
|
3561
|
-
| **teamId** | `string` | Legacy alias for `org`. Takes precedence over `org` / `X-Boat-Org` when set. | [Optional] [Defaults to `undefined`] |
|
|
4201
|
+
This endpoint does not need any parameter.
|
|
3562
4202
|
|
|
3563
4203
|
### Return type
|
|
3564
4204
|
|
|
3565
|
-
[**
|
|
4205
|
+
[**CredentialProfileListResponse**](CredentialProfileListResponse.md)
|
|
3566
4206
|
|
|
3567
4207
|
### Authorization
|
|
3568
4208
|
|
|
@@ -3577,7 +4217,7 @@ example().catch(console.error);
|
|
|
3577
4217
|
### HTTP response details
|
|
3578
4218
|
| Status code | Description | Response headers |
|
|
3579
4219
|
|-------------|-------------|------------------|
|
|
3580
|
-
| **200** |
|
|
4220
|
+
| **200** | The profiles. | - |
|
|
3581
4221
|
| **401** | Missing or invalid bearer token. | - |
|
|
3582
4222
|
|
|
3583
4223
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
@@ -4944,7 +5584,7 @@ async function example() {
|
|
|
4944
5584
|
const api = new BoatApi(config);
|
|
4945
5585
|
|
|
4946
5586
|
const body = {
|
|
4947
|
-
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes
|
|
5587
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
4948
5588
|
org: org_example,
|
|
4949
5589
|
// string | Same as the `org` query parameter. Query wins when both are set. (optional)
|
|
4950
5590
|
xBoatOrg: xBoatOrg_example,
|
|
@@ -4975,7 +5615,7 @@ example().catch(console.error);
|
|
|
4975
5615
|
|
|
4976
5616
|
| Name | Type | Description | Notes |
|
|
4977
5617
|
|------------- | ------------- | ------------- | -------------|
|
|
4978
|
-
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes
|
|
5618
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
4979
5619
|
| **xBoatOrg** | `string` | Same as the `org` query parameter. Query wins when both are set. | [Optional] [Defaults to `undefined`] |
|
|
4980
5620
|
| **limit** | `number` | Maximum items to return. | [Optional] [Defaults to `100`] |
|
|
4981
5621
|
| **cursor** | `string` | Opaque pagination cursor returned as `pageInfo.nextCursor`. | [Optional] [Defaults to `undefined`] |
|
|
@@ -5036,7 +5676,221 @@ async function example() {
|
|
|
5036
5676
|
} satisfies SaveNamedSnapshotRequest;
|
|
5037
5677
|
|
|
5038
5678
|
try {
|
|
5039
|
-
const data = await api.saveNamedSnapshot(body);
|
|
5679
|
+
const data = await api.saveNamedSnapshot(body);
|
|
5680
|
+
console.log(data);
|
|
5681
|
+
} catch (error) {
|
|
5682
|
+
console.error(error);
|
|
5683
|
+
}
|
|
5684
|
+
}
|
|
5685
|
+
|
|
5686
|
+
// Run the test
|
|
5687
|
+
example().catch(console.error);
|
|
5688
|
+
```
|
|
5689
|
+
|
|
5690
|
+
### Parameters
|
|
5691
|
+
|
|
5692
|
+
|
|
5693
|
+
| Name | Type | Description | Notes |
|
|
5694
|
+
|------------- | ------------- | ------------- | -------------|
|
|
5695
|
+
| **namedSnapshotSaveRequest** | [NamedSnapshotSaveRequest](NamedSnapshotSaveRequest.md) | | |
|
|
5696
|
+
|
|
5697
|
+
### Return type
|
|
5698
|
+
|
|
5699
|
+
[**NamedSnapshotSavingResponse**](NamedSnapshotSavingResponse.md)
|
|
5700
|
+
|
|
5701
|
+
### Authorization
|
|
5702
|
+
|
|
5703
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
5704
|
+
|
|
5705
|
+
### HTTP request headers
|
|
5706
|
+
|
|
5707
|
+
- **Content-Type**: `application/json`
|
|
5708
|
+
- **Accept**: `application/json`
|
|
5709
|
+
|
|
5710
|
+
|
|
5711
|
+
### HTTP response details
|
|
5712
|
+
| Status code | Description | Response headers |
|
|
5713
|
+
|-------------|-------------|------------------|
|
|
5714
|
+
| **202** | Save accepted and running in the background. | - |
|
|
5715
|
+
| **400** | Invalid request body or parameters. | - |
|
|
5716
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
5717
|
+
| **404** | Resource not found. | - |
|
|
5718
|
+
| **402** | `credit_required`: the wallet already keeps 10 or more named snapshots and has no credit left. Each named snapshot above the free 10 costs $1.70 a month, charged daily. Add credit or remove one. | - |
|
|
5719
|
+
| **409** | `save_in_progress` when a save under this name is already running; wait for it to settle rather than retrying immediately. | - |
|
|
5720
|
+
|
|
5721
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
5722
|
+
|
|
5723
|
+
|
|
5724
|
+
## secrets
|
|
5725
|
+
|
|
5726
|
+
> SecretsResponse secrets()
|
|
5727
|
+
|
|
5728
|
+
Get Boat secrets setup
|
|
5729
|
+
|
|
5730
|
+
Returns the environment variables and secret files configured for sandboxes.
|
|
5731
|
+
|
|
5732
|
+
### Example
|
|
5733
|
+
|
|
5734
|
+
```ts
|
|
5735
|
+
import {
|
|
5736
|
+
Configuration,
|
|
5737
|
+
BoatApi,
|
|
5738
|
+
} from '@boatdev/sdk';
|
|
5739
|
+
import type { SecretsRequest } from '@boatdev/sdk';
|
|
5740
|
+
|
|
5741
|
+
async function example() {
|
|
5742
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
5743
|
+
const config = new Configuration({
|
|
5744
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
5745
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
5746
|
+
});
|
|
5747
|
+
const api = new BoatApi(config);
|
|
5748
|
+
|
|
5749
|
+
try {
|
|
5750
|
+
const data = await api.secrets();
|
|
5751
|
+
console.log(data);
|
|
5752
|
+
} catch (error) {
|
|
5753
|
+
console.error(error);
|
|
5754
|
+
}
|
|
5755
|
+
}
|
|
5756
|
+
|
|
5757
|
+
// Run the test
|
|
5758
|
+
example().catch(console.error);
|
|
5759
|
+
```
|
|
5760
|
+
|
|
5761
|
+
### Parameters
|
|
5762
|
+
|
|
5763
|
+
This endpoint does not need any parameter.
|
|
5764
|
+
|
|
5765
|
+
### Return type
|
|
5766
|
+
|
|
5767
|
+
[**SecretsResponse**](SecretsResponse.md)
|
|
5768
|
+
|
|
5769
|
+
### Authorization
|
|
5770
|
+
|
|
5771
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
5772
|
+
|
|
5773
|
+
### HTTP request headers
|
|
5774
|
+
|
|
5775
|
+
- **Content-Type**: Not defined
|
|
5776
|
+
- **Accept**: `application/json`
|
|
5777
|
+
|
|
5778
|
+
|
|
5779
|
+
### HTTP response details
|
|
5780
|
+
| Status code | Description | Response headers |
|
|
5781
|
+
|-------------|-------------|------------------|
|
|
5782
|
+
| **200** | Current secret setup metadata. | - |
|
|
5783
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
5784
|
+
|
|
5785
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
5786
|
+
|
|
5787
|
+
|
|
5788
|
+
## selectRepo
|
|
5789
|
+
|
|
5790
|
+
> RepoSelectionResponse selectRepo(repoSelectionRequest)
|
|
5791
|
+
|
|
5792
|
+
Select repository for sandboxes
|
|
5793
|
+
|
|
5794
|
+
Idempotently selects one repository for the sandbox environment. Use `databaseId` from `GET /repos` as `repositoryId`; selecting an already-selected repository updates its `baseBranch`.
|
|
5795
|
+
|
|
5796
|
+
### Example
|
|
5797
|
+
|
|
5798
|
+
```ts
|
|
5799
|
+
import {
|
|
5800
|
+
Configuration,
|
|
5801
|
+
BoatApi,
|
|
5802
|
+
} from '@boatdev/sdk';
|
|
5803
|
+
import type { SelectRepoRequest } from '@boatdev/sdk';
|
|
5804
|
+
|
|
5805
|
+
async function example() {
|
|
5806
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
5807
|
+
const config = new Configuration({
|
|
5808
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
5809
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
5810
|
+
});
|
|
5811
|
+
const api = new BoatApi(config);
|
|
5812
|
+
|
|
5813
|
+
const body = {
|
|
5814
|
+
// RepoSelectionRequest
|
|
5815
|
+
repoSelectionRequest: ...,
|
|
5816
|
+
} satisfies SelectRepoRequest;
|
|
5817
|
+
|
|
5818
|
+
try {
|
|
5819
|
+
const data = await api.selectRepo(body);
|
|
5820
|
+
console.log(data);
|
|
5821
|
+
} catch (error) {
|
|
5822
|
+
console.error(error);
|
|
5823
|
+
}
|
|
5824
|
+
}
|
|
5825
|
+
|
|
5826
|
+
// Run the test
|
|
5827
|
+
example().catch(console.error);
|
|
5828
|
+
```
|
|
5829
|
+
|
|
5830
|
+
### Parameters
|
|
5831
|
+
|
|
5832
|
+
|
|
5833
|
+
| Name | Type | Description | Notes |
|
|
5834
|
+
|------------- | ------------- | ------------- | -------------|
|
|
5835
|
+
| **repoSelectionRequest** | [RepoSelectionRequest](RepoSelectionRequest.md) | | |
|
|
5836
|
+
|
|
5837
|
+
### Return type
|
|
5838
|
+
|
|
5839
|
+
[**RepoSelectionResponse**](RepoSelectionResponse.md)
|
|
5840
|
+
|
|
5841
|
+
### Authorization
|
|
5842
|
+
|
|
5843
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
5844
|
+
|
|
5845
|
+
### HTTP request headers
|
|
5846
|
+
|
|
5847
|
+
- **Content-Type**: `application/json`
|
|
5848
|
+
- **Accept**: `application/json`
|
|
5849
|
+
|
|
5850
|
+
|
|
5851
|
+
### HTTP response details
|
|
5852
|
+
| Status code | Description | Response headers |
|
|
5853
|
+
|-------------|-------------|------------------|
|
|
5854
|
+
| **200** | Updated repository selection. | - |
|
|
5855
|
+
| **400** | Invalid request body or parameters. | - |
|
|
5856
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
5857
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
5858
|
+
|
|
5859
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
5860
|
+
|
|
5861
|
+
|
|
5862
|
+
## setActiveOrganization
|
|
5863
|
+
|
|
5864
|
+
> ActiveOrgResponse setActiveOrganization(activeOrgUpdateRequest)
|
|
5865
|
+
|
|
5866
|
+
Set the active organization
|
|
5867
|
+
|
|
5868
|
+
Set the wallet new sandboxes bill when a request names none, for this account on every client: the API, the CLI (`boat org switch` sets the same value) and the dashboard. Pass an organization id or name you belong to, or `personal` (or `null`) for your own account. `GET /limits` follows it. Sandboxes already running keep the wallet they were created with; leaving or deleting the organization resets the account to personal.
|
|
5869
|
+
|
|
5870
|
+
### Example
|
|
5871
|
+
|
|
5872
|
+
```ts
|
|
5873
|
+
import {
|
|
5874
|
+
Configuration,
|
|
5875
|
+
BoatApi,
|
|
5876
|
+
} from '@boatdev/sdk';
|
|
5877
|
+
import type { SetActiveOrganizationRequest } from '@boatdev/sdk';
|
|
5878
|
+
|
|
5879
|
+
async function example() {
|
|
5880
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
5881
|
+
const config = new Configuration({
|
|
5882
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
5883
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
5884
|
+
});
|
|
5885
|
+
const api = new BoatApi(config);
|
|
5886
|
+
|
|
5887
|
+
const body = {
|
|
5888
|
+
// ActiveOrgUpdateRequest
|
|
5889
|
+
activeOrgUpdateRequest: {"org":"acme"},
|
|
5890
|
+
} satisfies SetActiveOrganizationRequest;
|
|
5891
|
+
|
|
5892
|
+
try {
|
|
5893
|
+
const data = await api.setActiveOrganization(body);
|
|
5040
5894
|
console.log(data);
|
|
5041
5895
|
} catch (error) {
|
|
5042
5896
|
console.error(error);
|
|
@@ -5052,11 +5906,11 @@ example().catch(console.error);
|
|
|
5052
5906
|
|
|
5053
5907
|
| Name | Type | Description | Notes |
|
|
5054
5908
|
|------------- | ------------- | ------------- | -------------|
|
|
5055
|
-
| **
|
|
5909
|
+
| **activeOrgUpdateRequest** | [ActiveOrgUpdateRequest](ActiveOrgUpdateRequest.md) | | |
|
|
5056
5910
|
|
|
5057
5911
|
### Return type
|
|
5058
5912
|
|
|
5059
|
-
[**
|
|
5913
|
+
[**ActiveOrgResponse**](ActiveOrgResponse.md)
|
|
5060
5914
|
|
|
5061
5915
|
### Authorization
|
|
5062
5916
|
|
|
@@ -5071,23 +5925,22 @@ example().catch(console.error);
|
|
|
5071
5925
|
### HTTP response details
|
|
5072
5926
|
| Status code | Description | Response headers |
|
|
5073
5927
|
|-------------|-------------|------------------|
|
|
5074
|
-
| **
|
|
5928
|
+
| **200** | The wallet now active. | - |
|
|
5075
5929
|
| **400** | Invalid request body or parameters. | - |
|
|
5076
5930
|
| **401** | Missing or invalid bearer token. | - |
|
|
5077
|
-
| **
|
|
5078
|
-
| **
|
|
5079
|
-
| **409** | `save_in_progress` when a save under this name is already running; wait for it to settle rather than retrying immediately. | - |
|
|
5931
|
+
| **403** | `not_org_member`: no organization with that id or name that you belong to. | - |
|
|
5932
|
+
| **409** | `ambiguous_org`: several of your organizations share that name; pass the id. | - |
|
|
5080
5933
|
|
|
5081
5934
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
5082
5935
|
|
|
5083
5936
|
|
|
5084
|
-
##
|
|
5937
|
+
## setCredentialProfileCustomApi
|
|
5085
5938
|
|
|
5086
|
-
>
|
|
5939
|
+
> CredentialProfileResponse setCredentialProfileCustomApi(profile, name, setCustomApiRequest)
|
|
5087
5940
|
|
|
5088
|
-
|
|
5941
|
+
Set a custom API
|
|
5089
5942
|
|
|
5090
|
-
|
|
5943
|
+
Adds or replaces one custom API. The sandbox gets `<NAME>` and `<NAME>_BASE_URL`. Needs an API key with `account.admin`.
|
|
5091
5944
|
|
|
5092
5945
|
### Example
|
|
5093
5946
|
|
|
@@ -5096,7 +5949,7 @@ import {
|
|
|
5096
5949
|
Configuration,
|
|
5097
5950
|
BoatApi,
|
|
5098
5951
|
} from '@boatdev/sdk';
|
|
5099
|
-
import type {
|
|
5952
|
+
import type { SetCredentialProfileCustomApiRequest } from '@boatdev/sdk';
|
|
5100
5953
|
|
|
5101
5954
|
async function example() {
|
|
5102
5955
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -5106,8 +5959,17 @@ async function example() {
|
|
|
5106
5959
|
});
|
|
5107
5960
|
const api = new BoatApi(config);
|
|
5108
5961
|
|
|
5962
|
+
const body = {
|
|
5963
|
+
// string | Profile id or name.
|
|
5964
|
+
profile: profile_example,
|
|
5965
|
+
// string | Environment variable name of the custom API, for example `STRIPE_KEY`. Provider names (`ANTHROPIC_*`, `OPENAI_*`, and so on) and names that end in `_BASE_URL` are reserved.
|
|
5966
|
+
name: name_example,
|
|
5967
|
+
// SetCustomApiRequest
|
|
5968
|
+
setCustomApiRequest: {"value":"sk_live_123","baseUrl":"https://api.stripe.com/v1"},
|
|
5969
|
+
} satisfies SetCredentialProfileCustomApiRequest;
|
|
5970
|
+
|
|
5109
5971
|
try {
|
|
5110
|
-
const data = await api.
|
|
5972
|
+
const data = await api.setCredentialProfileCustomApi(body);
|
|
5111
5973
|
console.log(data);
|
|
5112
5974
|
} catch (error) {
|
|
5113
5975
|
console.error(error);
|
|
@@ -5120,11 +5982,16 @@ example().catch(console.error);
|
|
|
5120
5982
|
|
|
5121
5983
|
### Parameters
|
|
5122
5984
|
|
|
5123
|
-
|
|
5985
|
+
|
|
5986
|
+
| Name | Type | Description | Notes |
|
|
5987
|
+
|------------- | ------------- | ------------- | -------------|
|
|
5988
|
+
| **profile** | `string` | Profile id or name. | [Defaults to `undefined`] |
|
|
5989
|
+
| **name** | `string` | Environment variable name of the custom API, for example `STRIPE_KEY`. Provider names (`ANTHROPIC_*`, `OPENAI_*`, and so on) and names that end in `_BASE_URL` are reserved. | [Defaults to `undefined`] |
|
|
5990
|
+
| **setCustomApiRequest** | [SetCustomApiRequest](SetCustomApiRequest.md) | | |
|
|
5124
5991
|
|
|
5125
5992
|
### Return type
|
|
5126
5993
|
|
|
5127
|
-
[**
|
|
5994
|
+
[**CredentialProfileResponse**](CredentialProfileResponse.md)
|
|
5128
5995
|
|
|
5129
5996
|
### Authorization
|
|
5130
5997
|
|
|
@@ -5132,26 +5999,29 @@ This endpoint does not need any parameter.
|
|
|
5132
5999
|
|
|
5133
6000
|
### HTTP request headers
|
|
5134
6001
|
|
|
5135
|
-
- **Content-Type**:
|
|
6002
|
+
- **Content-Type**: `application/json`
|
|
5136
6003
|
- **Accept**: `application/json`
|
|
5137
6004
|
|
|
5138
6005
|
|
|
5139
6006
|
### HTTP response details
|
|
5140
6007
|
| Status code | Description | Response headers |
|
|
5141
6008
|
|-------------|-------------|------------------|
|
|
5142
|
-
| **200** |
|
|
6009
|
+
| **200** | The updated profile. | - |
|
|
6010
|
+
| **400** | Invalid request body or parameters. | - |
|
|
5143
6011
|
| **401** | Missing or invalid bearer token. | - |
|
|
6012
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
6013
|
+
| **404** | Resource not found. | - |
|
|
5144
6014
|
|
|
5145
6015
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
5146
6016
|
|
|
5147
6017
|
|
|
5148
|
-
##
|
|
6018
|
+
## setCredentialProfileKey
|
|
5149
6019
|
|
|
5150
|
-
>
|
|
6020
|
+
> CredentialProfileResponse setCredentialProfileKey(profile, credential, setCredentialKeyRequest)
|
|
5151
6021
|
|
|
5152
|
-
|
|
6022
|
+
Set a credential profile API key
|
|
5153
6023
|
|
|
5154
|
-
|
|
6024
|
+
Sets one API key. A sign-in id returns `400 not_an_api_key`; connect sign-ins on the dashboard Agents page. Running sandboxes that use the profile get the new key. Needs an API key with `account.admin`.
|
|
5155
6025
|
|
|
5156
6026
|
### Example
|
|
5157
6027
|
|
|
@@ -5160,7 +6030,7 @@ import {
|
|
|
5160
6030
|
Configuration,
|
|
5161
6031
|
BoatApi,
|
|
5162
6032
|
} from '@boatdev/sdk';
|
|
5163
|
-
import type {
|
|
6033
|
+
import type { SetCredentialProfileKeyRequest } from '@boatdev/sdk';
|
|
5164
6034
|
|
|
5165
6035
|
async function example() {
|
|
5166
6036
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -5171,12 +6041,16 @@ async function example() {
|
|
|
5171
6041
|
const api = new BoatApi(config);
|
|
5172
6042
|
|
|
5173
6043
|
const body = {
|
|
5174
|
-
//
|
|
5175
|
-
|
|
5176
|
-
|
|
6044
|
+
// string | Profile id or name.
|
|
6045
|
+
profile: profile_example,
|
|
6046
|
+
// CredentialId
|
|
6047
|
+
credential: ...,
|
|
6048
|
+
// SetCredentialKeyRequest
|
|
6049
|
+
setCredentialKeyRequest: ...,
|
|
6050
|
+
} satisfies SetCredentialProfileKeyRequest;
|
|
5177
6051
|
|
|
5178
6052
|
try {
|
|
5179
|
-
const data = await api.
|
|
6053
|
+
const data = await api.setCredentialProfileKey(body);
|
|
5180
6054
|
console.log(data);
|
|
5181
6055
|
} catch (error) {
|
|
5182
6056
|
console.error(error);
|
|
@@ -5192,11 +6066,13 @@ example().catch(console.error);
|
|
|
5192
6066
|
|
|
5193
6067
|
| Name | Type | Description | Notes |
|
|
5194
6068
|
|------------- | ------------- | ------------- | -------------|
|
|
5195
|
-
| **
|
|
6069
|
+
| **profile** | `string` | Profile id or name. | [Defaults to `undefined`] |
|
|
6070
|
+
| **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] |
|
|
6071
|
+
| **setCredentialKeyRequest** | [SetCredentialKeyRequest](SetCredentialKeyRequest.md) | | |
|
|
5196
6072
|
|
|
5197
6073
|
### Return type
|
|
5198
6074
|
|
|
5199
|
-
[**
|
|
6075
|
+
[**CredentialProfileResponse**](CredentialProfileResponse.md)
|
|
5200
6076
|
|
|
5201
6077
|
### Authorization
|
|
5202
6078
|
|
|
@@ -5211,21 +6087,22 @@ example().catch(console.error);
|
|
|
5211
6087
|
### HTTP response details
|
|
5212
6088
|
| Status code | Description | Response headers |
|
|
5213
6089
|
|-------------|-------------|------------------|
|
|
5214
|
-
| **200** |
|
|
6090
|
+
| **200** | The updated profile. | - |
|
|
5215
6091
|
| **400** | Invalid request body or parameters. | - |
|
|
5216
6092
|
| **401** | Missing or invalid bearer token. | - |
|
|
5217
|
-
| **
|
|
6093
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
6094
|
+
| **404** | Resource not found. | - |
|
|
5218
6095
|
|
|
5219
6096
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
5220
6097
|
|
|
5221
6098
|
|
|
5222
|
-
##
|
|
6099
|
+
## setEnvironmentSecretFile
|
|
5223
6100
|
|
|
5224
|
-
>
|
|
6101
|
+
> EnvironmentItemChangeResponse setEnvironmentSecretFile(environmentId, setEnvironmentSecretFileRequest, org)
|
|
5225
6102
|
|
|
5226
|
-
|
|
6103
|
+
Write one secret file
|
|
5227
6104
|
|
|
5228
|
-
|
|
6105
|
+
Adds or replaces a single secret file by path. Mints a new immutable version.
|
|
5229
6106
|
|
|
5230
6107
|
### Example
|
|
5231
6108
|
|
|
@@ -5234,7 +6111,7 @@ import {
|
|
|
5234
6111
|
Configuration,
|
|
5235
6112
|
BoatApi,
|
|
5236
6113
|
} from '@boatdev/sdk';
|
|
5237
|
-
import type {
|
|
6114
|
+
import type { SetEnvironmentSecretFileOperationRequest } from '@boatdev/sdk';
|
|
5238
6115
|
|
|
5239
6116
|
async function example() {
|
|
5240
6117
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -5245,12 +6122,16 @@ async function example() {
|
|
|
5245
6122
|
const api = new BoatApi(config);
|
|
5246
6123
|
|
|
5247
6124
|
const body = {
|
|
5248
|
-
//
|
|
5249
|
-
|
|
5250
|
-
|
|
6125
|
+
// string
|
|
6126
|
+
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
6127
|
+
// SetEnvironmentSecretFileRequest
|
|
6128
|
+
setEnvironmentSecretFileRequest: ...,
|
|
6129
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
6130
|
+
org: org_example,
|
|
6131
|
+
} satisfies SetEnvironmentSecretFileOperationRequest;
|
|
5251
6132
|
|
|
5252
6133
|
try {
|
|
5253
|
-
const data = await api.
|
|
6134
|
+
const data = await api.setEnvironmentSecretFile(body);
|
|
5254
6135
|
console.log(data);
|
|
5255
6136
|
} catch (error) {
|
|
5256
6137
|
console.error(error);
|
|
@@ -5266,11 +6147,13 @@ example().catch(console.error);
|
|
|
5266
6147
|
|
|
5267
6148
|
| Name | Type | Description | Notes |
|
|
5268
6149
|
|------------- | ------------- | ------------- | -------------|
|
|
5269
|
-
| **
|
|
6150
|
+
| **environmentId** | `string` | | [Defaults to `undefined`] |
|
|
6151
|
+
| **setEnvironmentSecretFileRequest** | [SetEnvironmentSecretFileRequest](SetEnvironmentSecretFileRequest.md) | | |
|
|
6152
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
5270
6153
|
|
|
5271
6154
|
### Return type
|
|
5272
6155
|
|
|
5273
|
-
[**
|
|
6156
|
+
[**EnvironmentItemChangeResponse**](EnvironmentItemChangeResponse.md)
|
|
5274
6157
|
|
|
5275
6158
|
### Authorization
|
|
5276
6159
|
|
|
@@ -5285,22 +6168,21 @@ example().catch(console.error);
|
|
|
5285
6168
|
### HTTP response details
|
|
5286
6169
|
| Status code | Description | Response headers |
|
|
5287
6170
|
|-------------|-------------|------------------|
|
|
5288
|
-
| **200** |
|
|
6171
|
+
| **200** | New version minted. | - |
|
|
5289
6172
|
| **400** | Invalid request body or parameters. | - |
|
|
5290
6173
|
| **401** | Missing or invalid bearer token. | - |
|
|
5291
|
-
| **
|
|
5292
|
-
| **409** | `ambiguous_org`: several of your organizations share that name; pass the id. | - |
|
|
6174
|
+
| **404** | Resource not found. | - |
|
|
5293
6175
|
|
|
5294
6176
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
5295
6177
|
|
|
5296
6178
|
|
|
5297
|
-
##
|
|
6179
|
+
## setEnvironmentVar
|
|
5298
6180
|
|
|
5299
|
-
> EnvironmentItemChangeResponse
|
|
6181
|
+
> EnvironmentItemChangeResponse setEnvironmentVar(environmentId, key, setEnvironmentVarRequest, org)
|
|
5300
6182
|
|
|
5301
|
-
|
|
6183
|
+
Set one environment variable
|
|
5302
6184
|
|
|
5303
|
-
|
|
6185
|
+
Sets or replaces a single variable without reading or rewriting the rest. Mints a new immutable version.
|
|
5304
6186
|
|
|
5305
6187
|
### Example
|
|
5306
6188
|
|
|
@@ -5309,7 +6191,7 @@ import {
|
|
|
5309
6191
|
Configuration,
|
|
5310
6192
|
BoatApi,
|
|
5311
6193
|
} from '@boatdev/sdk';
|
|
5312
|
-
import type {
|
|
6194
|
+
import type { SetEnvironmentVarOperationRequest } from '@boatdev/sdk';
|
|
5313
6195
|
|
|
5314
6196
|
async function example() {
|
|
5315
6197
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -5322,12 +6204,16 @@ async function example() {
|
|
|
5322
6204
|
const body = {
|
|
5323
6205
|
// string
|
|
5324
6206
|
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
5325
|
-
//
|
|
5326
|
-
|
|
5327
|
-
|
|
6207
|
+
// string | Environment variable name.
|
|
6208
|
+
key: key_example,
|
|
6209
|
+
// SetEnvironmentVarRequest
|
|
6210
|
+
setEnvironmentVarRequest: ...,
|
|
6211
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
6212
|
+
org: org_example,
|
|
6213
|
+
} satisfies SetEnvironmentVarOperationRequest;
|
|
5328
6214
|
|
|
5329
6215
|
try {
|
|
5330
|
-
const data = await api.
|
|
6216
|
+
const data = await api.setEnvironmentVar(body);
|
|
5331
6217
|
console.log(data);
|
|
5332
6218
|
} catch (error) {
|
|
5333
6219
|
console.error(error);
|
|
@@ -5344,7 +6230,9 @@ example().catch(console.error);
|
|
|
5344
6230
|
| Name | Type | Description | Notes |
|
|
5345
6231
|
|------------- | ------------- | ------------- | -------------|
|
|
5346
6232
|
| **environmentId** | `string` | | [Defaults to `undefined`] |
|
|
5347
|
-
| **
|
|
6233
|
+
| **key** | `string` | Environment variable name. | [Defaults to `undefined`] |
|
|
6234
|
+
| **setEnvironmentVarRequest** | [SetEnvironmentVarRequest](SetEnvironmentVarRequest.md) | | |
|
|
6235
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
5348
6236
|
|
|
5349
6237
|
### Return type
|
|
5350
6238
|
|
|
@@ -5371,13 +6259,13 @@ example().catch(console.error);
|
|
|
5371
6259
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
5372
6260
|
|
|
5373
6261
|
|
|
5374
|
-
##
|
|
6262
|
+
## setSandboxAiAccess
|
|
5375
6263
|
|
|
5376
|
-
>
|
|
6264
|
+
> SandboxAiAccessResponse setSandboxAiAccess(sandboxId, setSandboxAiAccessRequest)
|
|
5377
6265
|
|
|
5378
|
-
|
|
6266
|
+
Block or unblock sandbox AI access
|
|
5379
6267
|
|
|
5380
|
-
|
|
6268
|
+
Blocks or unblocks the sandbox\'s AI placeholders, running or stopped. The proxy refuses a blocked sandbox\'s requests with `403`. It has no effect on a sandbox that holds real keys. The sandbox creator, or a manager of its credential profile, can call it. Needs an API key with `account.admin`.
|
|
5381
6269
|
|
|
5382
6270
|
### Example
|
|
5383
6271
|
|
|
@@ -5386,7 +6274,7 @@ import {
|
|
|
5386
6274
|
Configuration,
|
|
5387
6275
|
BoatApi,
|
|
5388
6276
|
} from '@boatdev/sdk';
|
|
5389
|
-
import type {
|
|
6277
|
+
import type { SetSandboxAiAccessOperationRequest } from '@boatdev/sdk';
|
|
5390
6278
|
|
|
5391
6279
|
async function example() {
|
|
5392
6280
|
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
@@ -5397,16 +6285,14 @@ async function example() {
|
|
|
5397
6285
|
const api = new BoatApi(config);
|
|
5398
6286
|
|
|
5399
6287
|
const body = {
|
|
5400
|
-
// string
|
|
5401
|
-
|
|
5402
|
-
//
|
|
5403
|
-
|
|
5404
|
-
|
|
5405
|
-
setEnvironmentVarRequest: ...,
|
|
5406
|
-
} satisfies SetEnvironmentVarOperationRequest;
|
|
6288
|
+
// string | Public Sandbox id returned by create/list/get sandbox calls.
|
|
6289
|
+
sandboxId: sandboxId_example,
|
|
6290
|
+
// SetSandboxAiAccessRequest
|
|
6291
|
+
setSandboxAiAccessRequest: ...,
|
|
6292
|
+
} satisfies SetSandboxAiAccessOperationRequest;
|
|
5407
6293
|
|
|
5408
6294
|
try {
|
|
5409
|
-
const data = await api.
|
|
6295
|
+
const data = await api.setSandboxAiAccess(body);
|
|
5410
6296
|
console.log(data);
|
|
5411
6297
|
} catch (error) {
|
|
5412
6298
|
console.error(error);
|
|
@@ -5422,13 +6308,12 @@ example().catch(console.error);
|
|
|
5422
6308
|
|
|
5423
6309
|
| Name | Type | Description | Notes |
|
|
5424
6310
|
|------------- | ------------- | ------------- | -------------|
|
|
5425
|
-
| **
|
|
5426
|
-
| **
|
|
5427
|
-
| **setEnvironmentVarRequest** | [SetEnvironmentVarRequest](SetEnvironmentVarRequest.md) | | |
|
|
6311
|
+
| **sandboxId** | `string` | Public Sandbox id returned by create/list/get sandbox calls. | [Defaults to `undefined`] |
|
|
6312
|
+
| **setSandboxAiAccessRequest** | [SetSandboxAiAccessRequest](SetSandboxAiAccessRequest.md) | | |
|
|
5428
6313
|
|
|
5429
6314
|
### Return type
|
|
5430
6315
|
|
|
5431
|
-
[**
|
|
6316
|
+
[**SandboxAiAccessResponse**](SandboxAiAccessResponse.md)
|
|
5432
6317
|
|
|
5433
6318
|
### Authorization
|
|
5434
6319
|
|
|
@@ -5443,9 +6328,10 @@ example().catch(console.error);
|
|
|
5443
6328
|
### HTTP response details
|
|
5444
6329
|
| Status code | Description | Response headers |
|
|
5445
6330
|
|-------------|-------------|------------------|
|
|
5446
|
-
| **200** |
|
|
6331
|
+
| **200** | The new state. | - |
|
|
5447
6332
|
| **400** | Invalid request body or parameters. | - |
|
|
5448
6333
|
| **401** | Missing or invalid bearer token. | - |
|
|
6334
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
5449
6335
|
| **404** | Resource not found. | - |
|
|
5450
6336
|
|
|
5451
6337
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
@@ -5989,6 +6875,165 @@ example().catch(console.error);
|
|
|
5989
6875
|
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
5990
6876
|
|
|
5991
6877
|
|
|
6878
|
+
## updateAiProxy
|
|
6879
|
+
|
|
6880
|
+
> AiProxySettings updateAiProxy(updateAiProxyRequest, org, xBoatOrg)
|
|
6881
|
+
|
|
6882
|
+
Turn the AI credentials proxy on or off
|
|
6883
|
+
|
|
6884
|
+
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 of Boat time 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`.
|
|
6885
|
+
|
|
6886
|
+
### Example
|
|
6887
|
+
|
|
6888
|
+
```ts
|
|
6889
|
+
import {
|
|
6890
|
+
Configuration,
|
|
6891
|
+
BoatApi,
|
|
6892
|
+
} from '@boatdev/sdk';
|
|
6893
|
+
import type { UpdateAiProxyOperationRequest } from '@boatdev/sdk';
|
|
6894
|
+
|
|
6895
|
+
async function example() {
|
|
6896
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
6897
|
+
const config = new Configuration({
|
|
6898
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
6899
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
6900
|
+
});
|
|
6901
|
+
const api = new BoatApi(config);
|
|
6902
|
+
|
|
6903
|
+
const body = {
|
|
6904
|
+
// UpdateAiProxyRequest
|
|
6905
|
+
updateAiProxyRequest: ...,
|
|
6906
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
6907
|
+
org: org_example,
|
|
6908
|
+
// string | Same as the `org` query parameter. Query wins when both are set. (optional)
|
|
6909
|
+
xBoatOrg: xBoatOrg_example,
|
|
6910
|
+
} satisfies UpdateAiProxyOperationRequest;
|
|
6911
|
+
|
|
6912
|
+
try {
|
|
6913
|
+
const data = await api.updateAiProxy(body);
|
|
6914
|
+
console.log(data);
|
|
6915
|
+
} catch (error) {
|
|
6916
|
+
console.error(error);
|
|
6917
|
+
}
|
|
6918
|
+
}
|
|
6919
|
+
|
|
6920
|
+
// Run the test
|
|
6921
|
+
example().catch(console.error);
|
|
6922
|
+
```
|
|
6923
|
+
|
|
6924
|
+
### Parameters
|
|
6925
|
+
|
|
6926
|
+
|
|
6927
|
+
| Name | Type | Description | Notes |
|
|
6928
|
+
|------------- | ------------- | ------------- | -------------|
|
|
6929
|
+
| **updateAiProxyRequest** | [UpdateAiProxyRequest](UpdateAiProxyRequest.md) | | |
|
|
6930
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
6931
|
+
| **xBoatOrg** | `string` | Same as the `org` query parameter. Query wins when both are set. | [Optional] [Defaults to `undefined`] |
|
|
6932
|
+
|
|
6933
|
+
### Return type
|
|
6934
|
+
|
|
6935
|
+
[**AiProxySettings**](AiProxySettings.md)
|
|
6936
|
+
|
|
6937
|
+
### Authorization
|
|
6938
|
+
|
|
6939
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
6940
|
+
|
|
6941
|
+
### HTTP request headers
|
|
6942
|
+
|
|
6943
|
+
- **Content-Type**: `application/json`
|
|
6944
|
+
- **Accept**: `application/json`
|
|
6945
|
+
|
|
6946
|
+
|
|
6947
|
+
### HTTP response details
|
|
6948
|
+
| Status code | Description | Response headers |
|
|
6949
|
+
|-------------|-------------|------------------|
|
|
6950
|
+
| **200** | The new state. | - |
|
|
6951
|
+
| **400** | Invalid request body or parameters. | - |
|
|
6952
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
6953
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
6954
|
+
|
|
6955
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
6956
|
+
|
|
6957
|
+
|
|
6958
|
+
## updateCredentialProfile
|
|
6959
|
+
|
|
6960
|
+
> CredentialProfileResponse updateCredentialProfile(profile, updateCredentialProfileRequest)
|
|
6961
|
+
|
|
6962
|
+
Update a credential profile
|
|
6963
|
+
|
|
6964
|
+
Renames the profile, or makes it its owner\'s default. Sandboxes that use the owner\'s default switch to the new default at their next start. Needs an API key with `account.admin`.
|
|
6965
|
+
|
|
6966
|
+
### Example
|
|
6967
|
+
|
|
6968
|
+
```ts
|
|
6969
|
+
import {
|
|
6970
|
+
Configuration,
|
|
6971
|
+
BoatApi,
|
|
6972
|
+
} from '@boatdev/sdk';
|
|
6973
|
+
import type { UpdateCredentialProfileOperationRequest } from '@boatdev/sdk';
|
|
6974
|
+
|
|
6975
|
+
async function example() {
|
|
6976
|
+
console.log("🚀 Testing @boatdev/sdk SDK...");
|
|
6977
|
+
const config = new Configuration({
|
|
6978
|
+
// Configure HTTP bearer authorization: BoatBearerAuth
|
|
6979
|
+
accessToken: "YOUR BEARER TOKEN",
|
|
6980
|
+
});
|
|
6981
|
+
const api = new BoatApi(config);
|
|
6982
|
+
|
|
6983
|
+
const body = {
|
|
6984
|
+
// string | Profile id or name.
|
|
6985
|
+
profile: profile_example,
|
|
6986
|
+
// UpdateCredentialProfileRequest
|
|
6987
|
+
updateCredentialProfileRequest: {"isDefault":true},
|
|
6988
|
+
} satisfies UpdateCredentialProfileOperationRequest;
|
|
6989
|
+
|
|
6990
|
+
try {
|
|
6991
|
+
const data = await api.updateCredentialProfile(body);
|
|
6992
|
+
console.log(data);
|
|
6993
|
+
} catch (error) {
|
|
6994
|
+
console.error(error);
|
|
6995
|
+
}
|
|
6996
|
+
}
|
|
6997
|
+
|
|
6998
|
+
// Run the test
|
|
6999
|
+
example().catch(console.error);
|
|
7000
|
+
```
|
|
7001
|
+
|
|
7002
|
+
### Parameters
|
|
7003
|
+
|
|
7004
|
+
|
|
7005
|
+
| Name | Type | Description | Notes |
|
|
7006
|
+
|------------- | ------------- | ------------- | -------------|
|
|
7007
|
+
| **profile** | `string` | Profile id or name. | [Defaults to `undefined`] |
|
|
7008
|
+
| **updateCredentialProfileRequest** | [UpdateCredentialProfileRequest](UpdateCredentialProfileRequest.md) | | |
|
|
7009
|
+
|
|
7010
|
+
### Return type
|
|
7011
|
+
|
|
7012
|
+
[**CredentialProfileResponse**](CredentialProfileResponse.md)
|
|
7013
|
+
|
|
7014
|
+
### Authorization
|
|
7015
|
+
|
|
7016
|
+
[BoatBearerAuth](../README.md#BoatBearerAuth)
|
|
7017
|
+
|
|
7018
|
+
### HTTP request headers
|
|
7019
|
+
|
|
7020
|
+
- **Content-Type**: `application/json`
|
|
7021
|
+
- **Accept**: `application/json`
|
|
7022
|
+
|
|
7023
|
+
|
|
7024
|
+
### HTTP response details
|
|
7025
|
+
| Status code | Description | Response headers |
|
|
7026
|
+
|-------------|-------------|------------------|
|
|
7027
|
+
| **200** | The updated profile. | - |
|
|
7028
|
+
| **400** | Invalid request body or parameters. | - |
|
|
7029
|
+
| **401** | Missing or invalid bearer token. | - |
|
|
7030
|
+
| **403** | Authenticated token is not allowed to perform this action. | - |
|
|
7031
|
+
| **404** | Resource not found. | - |
|
|
7032
|
+
| **409** | Request conflicts with current account or sandbox state. | - |
|
|
7033
|
+
|
|
7034
|
+
[[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
|
|
7035
|
+
|
|
7036
|
+
|
|
5992
7037
|
## updateDataRetention
|
|
5993
7038
|
|
|
5994
7039
|
> DataRetentionPolicyResponse updateDataRetention(dataRetentionUpdateRequest)
|
|
@@ -6066,7 +7111,7 @@ example().catch(console.error);
|
|
|
6066
7111
|
|
|
6067
7112
|
## updateEnvironment
|
|
6068
7113
|
|
|
6069
|
-
> SandboxEnvironmentResponse updateEnvironment(environmentId, updateSandboxEnvironmentRequest)
|
|
7114
|
+
> SandboxEnvironmentResponse updateEnvironment(environmentId, updateSandboxEnvironmentRequest, org)
|
|
6070
7115
|
|
|
6071
7116
|
Update a sandbox environment
|
|
6072
7117
|
|
|
@@ -6094,6 +7139,8 @@ async function example() {
|
|
|
6094
7139
|
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
6095
7140
|
// UpdateSandboxEnvironmentRequest
|
|
6096
7141
|
updateSandboxEnvironmentRequest: ...,
|
|
7142
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
7143
|
+
org: org_example,
|
|
6097
7144
|
} satisfies UpdateEnvironmentRequest;
|
|
6098
7145
|
|
|
6099
7146
|
try {
|
|
@@ -6115,6 +7162,7 @@ example().catch(console.error);
|
|
|
6115
7162
|
|------------- | ------------- | ------------- | -------------|
|
|
6116
7163
|
| **environmentId** | `string` | Environment id returned by `GET /environments`. | [Defaults to `undefined`] |
|
|
6117
7164
|
| **updateSandboxEnvironmentRequest** | [UpdateSandboxEnvironmentRequest](UpdateSandboxEnvironmentRequest.md) | | |
|
|
7165
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
6118
7166
|
|
|
6119
7167
|
### Return type
|
|
6120
7168
|
|
|
@@ -6291,7 +7339,7 @@ example().catch(console.error);
|
|
|
6291
7339
|
|
|
6292
7340
|
## upgradeEnvironment
|
|
6293
7341
|
|
|
6294
|
-
> UpgradeSandboxEnvironmentResponse upgradeEnvironment(environmentId, upgradeSandboxEnvironmentRequest)
|
|
7342
|
+
> UpgradeSandboxEnvironmentResponse upgradeEnvironment(environmentId, org, upgradeSandboxEnvironmentRequest)
|
|
6295
7343
|
|
|
6296
7344
|
Upgrade sandboxes to an environment\'s latest version
|
|
6297
7345
|
|
|
@@ -6317,6 +7365,8 @@ async function example() {
|
|
|
6317
7365
|
const body = {
|
|
6318
7366
|
// string
|
|
6319
7367
|
environmentId: 38400000-8cf0-11bd-b23e-10b96e4ef00d,
|
|
7368
|
+
// string | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. (optional)
|
|
7369
|
+
org: org_example,
|
|
6320
7370
|
// UpgradeSandboxEnvironmentRequest (optional)
|
|
6321
7371
|
upgradeSandboxEnvironmentRequest: ...,
|
|
6322
7372
|
} satisfies UpgradeEnvironmentRequest;
|
|
@@ -6339,6 +7389,7 @@ example().catch(console.error);
|
|
|
6339
7389
|
| Name | Type | Description | Notes |
|
|
6340
7390
|
|------------- | ------------- | ------------- | -------------|
|
|
6341
7391
|
| **environmentId** | `string` | | [Defaults to `undefined`] |
|
|
7392
|
+
| **org** | `string` | Billing wallet for this request: an organization you belong to, by id (`team_…`) or by name as `GET /orgs` lists it (case-insensitive), or `personal`. Omitted, the account\'s active wallet applies (`PATCH /orgs/active`; personal until set). Two organizations sharing the name answer `409 ambiguous_org` and need the id. Sandboxes and snapshots stay creator-private. On `/environments` routes, only this query parameter selects the organization\'s shared environments; the `X-Boat-Org` header and the active wallet do not apply there. Members read them, owners and admins change them. | [Optional] [Defaults to `undefined`] |
|
|
6342
7393
|
| **upgradeSandboxEnvironmentRequest** | [UpgradeSandboxEnvironmentRequest](UpgradeSandboxEnvironmentRequest.md) | | [Optional] |
|
|
6343
7394
|
|
|
6344
7395
|
### Return type
|