@boatdev/sdk 1.0.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/.openapi-generator/FILES +2 -0
  2. package/README.md +8 -26
  3. package/dist/apis/BoatApi.d.ts +99 -80
  4. package/dist/apis/BoatApi.js +103 -28
  5. package/dist/esm/apis/BoatApi.d.ts +99 -80
  6. package/dist/esm/apis/BoatApi.js +103 -28
  7. package/dist/esm/models/CreateSandboxRequest.d.ts +6 -0
  8. package/dist/esm/models/CreateSandboxRequest.js +2 -0
  9. package/dist/esm/models/DataRetentionPolicyResponse.d.ts +12 -0
  10. package/dist/esm/models/DataRetentionPolicyResponse.js +4 -0
  11. package/dist/esm/models/DataRetentionUpdateRequest.d.ts +8 -2
  12. package/dist/esm/models/DataRetentionUpdateRequest.js +3 -3
  13. package/dist/esm/models/DeletionOperation.d.ts +24 -0
  14. package/dist/esm/models/DeletionOperation.js +15 -0
  15. package/dist/esm/models/DeletionOperationListResponse.d.ts +52 -0
  16. package/dist/esm/models/DeletionOperationListResponse.js +58 -0
  17. package/dist/esm/models/Sandbox.d.ts +6 -0
  18. package/dist/esm/models/Sandbox.js +2 -0
  19. package/dist/esm/models/index.d.ts +1 -0
  20. package/dist/esm/models/index.js +1 -0
  21. package/dist/esm/runtime.d.ts +8 -0
  22. package/dist/esm/runtime.js +18 -0
  23. package/dist/models/CreateSandboxRequest.d.ts +6 -0
  24. package/dist/models/CreateSandboxRequest.js +2 -0
  25. package/dist/models/DataRetentionPolicyResponse.d.ts +12 -0
  26. package/dist/models/DataRetentionPolicyResponse.js +4 -0
  27. package/dist/models/DataRetentionUpdateRequest.d.ts +8 -2
  28. package/dist/models/DataRetentionUpdateRequest.js +3 -3
  29. package/dist/models/DeletionOperation.d.ts +24 -0
  30. package/dist/models/DeletionOperation.js +16 -1
  31. package/dist/models/DeletionOperationListResponse.d.ts +52 -0
  32. package/dist/models/DeletionOperationListResponse.js +66 -0
  33. package/dist/models/Sandbox.d.ts +6 -0
  34. package/dist/models/Sandbox.js +2 -0
  35. package/dist/models/index.d.ts +1 -0
  36. package/dist/models/index.js +1 -0
  37. package/dist/runtime.d.ts +8 -0
  38. package/dist/runtime.js +19 -0
  39. package/docs/BoatApi.md +80 -1
  40. package/docs/CreateSandboxRequest.md +2 -0
  41. package/docs/DataRetentionPolicyResponse.md +4 -0
  42. package/docs/DataRetentionUpdateRequest.md +3 -0
  43. package/docs/DeletionOperation.md +4 -0
  44. package/docs/DeletionOperationListResponse.md +36 -0
  45. package/docs/Sandbox.md +2 -0
  46. package/package.json +1 -1
  47. package/src/apis/BoatApi.ts +182 -80
  48. package/src/models/CreateSandboxRequest.ts +8 -0
  49. package/src/models/DataRetentionPolicyResponse.ts +16 -0
  50. package/src/models/DataRetentionUpdateRequest.ts +11 -4
  51. package/src/models/DeletionOperation.ts +29 -0
  52. package/src/models/DeletionOperationListResponse.ts +102 -0
  53. package/src/models/Sandbox.ts +8 -0
  54. package/src/models/index.ts +1 -0
  55. package/src/runtime.ts +23 -0
@@ -103,6 +103,11 @@ import {
103
103
  DataRetentionUpdateRequestFromJSON,
104
104
  DataRetentionUpdateRequestToJSON,
105
105
  } from '../models/DataRetentionUpdateRequest';
106
+ import {
107
+ type DeletionOperationListResponse,
108
+ DeletionOperationListResponseFromJSON,
109
+ DeletionOperationListResponseToJSON,
110
+ } from '../models/DeletionOperationListResponse';
106
111
  import {
107
112
  type DeletionOperationResponse,
108
113
  DeletionOperationResponseFromJSON,
@@ -465,6 +470,11 @@ export interface DeleteSandboxRequest {
465
470
  sandboxId: string;
466
471
  }
467
472
 
473
+ export interface DeleteSandboxSnapshotsRequest {
474
+ sandboxId: string;
475
+ xAsciiConfirmDelete: string;
476
+ }
477
+
468
478
  export interface DeleteSnapshotRequest {
469
479
  snapshotId: string;
470
480
  xAsciiConfirmDelete: string;
@@ -693,7 +703,8 @@ export class BoatApi extends runtime.BaseAPI {
693
703
  /**
694
704
  * Creates request options for addEnvironmentRepo without sending the request
695
705
  */
696
- async addEnvironmentRepoRequestOpts(requestParameters: AddEnvironmentRepoOperationRequest): Promise<runtime.RequestOpts> {
706
+ async addEnvironmentRepoRequestOpts(input: AddEnvironmentRepoOperationRequest | runtime.FlatBody<AddEnvironmentRepoOperationRequest, 'addEnvironmentRepoRequest'>): Promise<runtime.RequestOpts> {
707
+ const requestParameters = runtime.unflattenBody<AddEnvironmentRepoOperationRequest>(input, 'addEnvironmentRepoRequest', ['environmentId'], []);
697
708
  if (requestParameters['environmentId'] == null) {
698
709
  throw new runtime.RequiredError(
699
710
  'environmentId',
@@ -739,7 +750,7 @@ export class BoatApi extends runtime.BaseAPI {
739
750
  * Adds a repository (or updates its base branch) by database id from the repository list. Mints a new immutable version.
740
751
  * Add a repository to an environment
741
752
  */
742
- async addEnvironmentRepoRaw(requestParameters: AddEnvironmentRepoOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EnvironmentItemChangeResponse>> {
753
+ async addEnvironmentRepoRaw(requestParameters: AddEnvironmentRepoOperationRequest | runtime.FlatBody<AddEnvironmentRepoOperationRequest, 'addEnvironmentRepoRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EnvironmentItemChangeResponse>> {
743
754
  const requestOptions = await this.addEnvironmentRepoRequestOpts(requestParameters);
744
755
  const response = await this.request(requestOptions, initOverrides);
745
756
 
@@ -750,7 +761,7 @@ export class BoatApi extends runtime.BaseAPI {
750
761
  * Adds a repository (or updates its base branch) by database id from the repository list. Mints a new immutable version.
751
762
  * Add a repository to an environment
752
763
  */
753
- async addEnvironmentRepo(requestParameters: AddEnvironmentRepoOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentItemChangeResponse> {
764
+ async addEnvironmentRepo(requestParameters: AddEnvironmentRepoOperationRequest | runtime.FlatBody<AddEnvironmentRepoOperationRequest, 'addEnvironmentRepoRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentItemChangeResponse> {
754
765
  const response = await this.addEnvironmentRepoRaw(requestParameters, initOverrides);
755
766
  return await response.value();
756
767
  }
@@ -924,7 +935,8 @@ export class BoatApi extends runtime.BaseAPI {
924
935
  /**
925
936
  * Creates request options for command without sending the request
926
937
  */
927
- async commandRequestOpts(requestParameters: CommandOperationRequest): Promise<runtime.RequestOpts> {
938
+ async commandRequestOpts(input: CommandOperationRequest | runtime.FlatBody<CommandOperationRequest, 'commandRequest'>): Promise<runtime.RequestOpts> {
939
+ const requestParameters = runtime.unflattenBody<CommandOperationRequest>(input, 'commandRequest', ['sandboxId'], []);
928
940
  if (requestParameters['sandboxId'] == null) {
929
941
  throw new runtime.RequiredError(
930
942
  'sandboxId',
@@ -970,7 +982,7 @@ export class BoatApi extends runtime.BaseAPI {
970
982
  * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. Returns 409 boat_starting (retryable) while the sandbox is still provisioning -- wait until the sandbox state is ready before running commands. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
971
983
  * Execute a command in a sandbox
972
984
  */
973
- async commandRaw(requestParameters: CommandOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Command200Response>> {
985
+ async commandRaw(requestParameters: CommandOperationRequest | runtime.FlatBody<CommandOperationRequest, 'commandRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Command200Response>> {
974
986
  const requestOptions = await this.commandRequestOpts(requestParameters);
975
987
  const response = await this.request(requestOptions, initOverrides);
976
988
 
@@ -981,7 +993,7 @@ export class BoatApi extends runtime.BaseAPI {
981
993
  * Runs the command synchronously by default (timeout configurable via `timeoutSeconds`, 600s cap). With `detached: true` the command starts in the background and a process id is returned immediately; poll `/sandboxes/{sandboxId}/commands/{processId}` for status and logs. Returns 400 invalid_timeout when `timeoutSeconds` is not an integer in 1-600. Returns 409 boat_starting (retryable) while the sandbox is still provisioning -- wait until the sandbox state is ready before running commands. Command execution is never retried automatically: a 502 boat_direct_failed means the command may already be running on the sandbox.
982
994
  * Execute a command in a sandbox
983
995
  */
984
- async command(requestParameters: CommandOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Command200Response> {
996
+ async command(requestParameters: CommandOperationRequest | runtime.FlatBody<CommandOperationRequest, 'commandRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Command200Response> {
985
997
  const response = await this.commandRaw(requestParameters, initOverrides);
986
998
  return await response.value();
987
999
  }
@@ -1109,7 +1121,8 @@ export class BoatApi extends runtime.BaseAPI {
1109
1121
  /**
1110
1122
  * Creates request options for create without sending the request
1111
1123
  */
1112
- async createRequestOpts(requestParameters: CreateRequest): Promise<runtime.RequestOpts> {
1124
+ async createRequestOpts(input: CreateRequest | runtime.FlatBody<CreateRequest, 'createSandboxRequest'>): Promise<runtime.RequestOpts> {
1125
+ const requestParameters = runtime.unflattenBody<CreateRequest>(input, 'createSandboxRequest', ['idempotencyKey', 'org', 'xBoatOrg'], ['org']);
1113
1126
  const queryParameters: any = {};
1114
1127
 
1115
1128
  if (requestParameters['org'] != null) {
@@ -1152,7 +1165,7 @@ export class BoatApi extends runtime.BaseAPI {
1152
1165
  * Provision a new cloud computer. Store the returned `sandbox.id` with your product job/session record. Send an `Idempotency-Key` header to make this call safe to retry after a lost response without creating a second billable sandbox.
1153
1166
  * Create sandbox
1154
1167
  */
1155
- async createRaw(requestParameters: CreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CreateSandboxResponse>> {
1168
+ async createRaw(requestParameters: CreateRequest | runtime.FlatBody<CreateRequest, 'createSandboxRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CreateSandboxResponse>> {
1156
1169
  const requestOptions = await this.createRequestOpts(requestParameters);
1157
1170
  const response = await this.request(requestOptions, initOverrides);
1158
1171
 
@@ -1163,7 +1176,7 @@ export class BoatApi extends runtime.BaseAPI {
1163
1176
  * Provision a new cloud computer. Store the returned `sandbox.id` with your product job/session record. Send an `Idempotency-Key` header to make this call safe to retry after a lost response without creating a second billable sandbox.
1164
1177
  * Create sandbox
1165
1178
  */
1166
- async create(requestParameters: CreateRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateSandboxResponse> {
1179
+ async create(requestParameters: CreateRequest | runtime.FlatBody<CreateRequest, 'createSandboxRequest'> = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateSandboxResponse> {
1167
1180
  const response = await this.createRaw(requestParameters, initOverrides);
1168
1181
  return await response.value();
1169
1182
  }
@@ -1171,7 +1184,8 @@ export class BoatApi extends runtime.BaseAPI {
1171
1184
  /**
1172
1185
  * Creates request options for createEnvironment without sending the request
1173
1186
  */
1174
- async createEnvironmentRequestOpts(requestParameters: CreateEnvironmentRequest): Promise<runtime.RequestOpts> {
1187
+ async createEnvironmentRequestOpts(input: CreateEnvironmentRequest | runtime.FlatBody<CreateEnvironmentRequest, 'createSandboxEnvironmentRequest'>): Promise<runtime.RequestOpts> {
1188
+ const requestParameters = runtime.unflattenBody<CreateEnvironmentRequest>(input, 'createSandboxEnvironmentRequest', [], []);
1175
1189
  if (requestParameters['createSandboxEnvironmentRequest'] == null) {
1176
1190
  throw new runtime.RequiredError(
1177
1191
  'createSandboxEnvironmentRequest',
@@ -1209,7 +1223,7 @@ export class BoatApi extends runtime.BaseAPI {
1209
1223
  * Create a new named environment. It starts on version 1 with all fine-grained flags on and `safeForThirdParties` off.
1210
1224
  * Create a sandbox environment
1211
1225
  */
1212
- async createEnvironmentRaw(requestParameters: CreateEnvironmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxEnvironmentListResponse>> {
1226
+ async createEnvironmentRaw(requestParameters: CreateEnvironmentRequest | runtime.FlatBody<CreateEnvironmentRequest, 'createSandboxEnvironmentRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxEnvironmentListResponse>> {
1213
1227
  const requestOptions = await this.createEnvironmentRequestOpts(requestParameters);
1214
1228
  const response = await this.request(requestOptions, initOverrides);
1215
1229
 
@@ -1220,7 +1234,7 @@ export class BoatApi extends runtime.BaseAPI {
1220
1234
  * Create a new named environment. It starts on version 1 with all fine-grained flags on and `safeForThirdParties` off.
1221
1235
  * Create a sandbox environment
1222
1236
  */
1223
- async createEnvironment(requestParameters: CreateEnvironmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxEnvironmentListResponse> {
1237
+ async createEnvironment(requestParameters: CreateEnvironmentRequest | runtime.FlatBody<CreateEnvironmentRequest, 'createSandboxEnvironmentRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxEnvironmentListResponse> {
1224
1238
  const response = await this.createEnvironmentRaw(requestParameters, initOverrides);
1225
1239
  return await response.value();
1226
1240
  }
@@ -1228,7 +1242,8 @@ export class BoatApi extends runtime.BaseAPI {
1228
1242
  /**
1229
1243
  * Creates request options for createScopedApiKey without sending the request
1230
1244
  */
1231
- async createScopedApiKeyRequestOpts(requestParameters: CreateScopedApiKeyOperationRequest): Promise<runtime.RequestOpts> {
1245
+ async createScopedApiKeyRequestOpts(input: CreateScopedApiKeyOperationRequest | runtime.FlatBody<CreateScopedApiKeyOperationRequest, 'createScopedApiKeyRequest'>): Promise<runtime.RequestOpts> {
1246
+ const requestParameters = runtime.unflattenBody<CreateScopedApiKeyOperationRequest>(input, 'createScopedApiKeyRequest', [], []);
1232
1247
  if (requestParameters['createScopedApiKeyRequest'] == null) {
1233
1248
  throw new runtime.RequiredError(
1234
1249
  'createScopedApiKeyRequest',
@@ -1266,7 +1281,7 @@ export class BoatApi extends runtime.BaseAPI {
1266
1281
  * Creates a scoped, expiring API key. Requires a dashboard/CLI session or an admin-scoped token. The secret is returned once. This dedicated path returns a typed 503 until scoped credential creation is activated.
1267
1282
  * Create a scoped API key
1268
1283
  */
1269
- async createScopedApiKeyRaw(requestParameters: CreateScopedApiKeyOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ApiKeySecretResponse>> {
1284
+ async createScopedApiKeyRaw(requestParameters: CreateScopedApiKeyOperationRequest | runtime.FlatBody<CreateScopedApiKeyOperationRequest, 'createScopedApiKeyRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ApiKeySecretResponse>> {
1270
1285
  const requestOptions = await this.createScopedApiKeyRequestOpts(requestParameters);
1271
1286
  const response = await this.request(requestOptions, initOverrides);
1272
1287
 
@@ -1277,7 +1292,7 @@ export class BoatApi extends runtime.BaseAPI {
1277
1292
  * Creates a scoped, expiring API key. Requires a dashboard/CLI session or an admin-scoped token. The secret is returned once. This dedicated path returns a typed 503 until scoped credential creation is activated.
1278
1293
  * Create a scoped API key
1279
1294
  */
1280
- async createScopedApiKey(requestParameters: CreateScopedApiKeyOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ApiKeySecretResponse> {
1295
+ async createScopedApiKey(requestParameters: CreateScopedApiKeyOperationRequest | runtime.FlatBody<CreateScopedApiKeyOperationRequest, 'createScopedApiKeyRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ApiKeySecretResponse> {
1281
1296
  const response = await this.createScopedApiKeyRaw(requestParameters, initOverrides);
1282
1297
  return await response.value();
1283
1298
  }
@@ -1285,7 +1300,8 @@ export class BoatApi extends runtime.BaseAPI {
1285
1300
  /**
1286
1301
  * Creates request options for createWebhook without sending the request
1287
1302
  */
1288
- async createWebhookRequestOpts(requestParameters: CreateWebhookRequest): Promise<runtime.RequestOpts> {
1303
+ async createWebhookRequestOpts(input: CreateWebhookRequest | runtime.FlatBody<CreateWebhookRequest, 'webhookCreateRequest'>): Promise<runtime.RequestOpts> {
1304
+ const requestParameters = runtime.unflattenBody<CreateWebhookRequest>(input, 'webhookCreateRequest', [], []);
1289
1305
  if (requestParameters['webhookCreateRequest'] == null) {
1290
1306
  throw new runtime.RequiredError(
1291
1307
  'webhookCreateRequest',
@@ -1323,7 +1339,7 @@ export class BoatApi extends runtime.BaseAPI {
1323
1339
  * Registers an account-wide endpoint for sandbox lifecycle events. The endpoint must use HTTPS on port 443 and resolve only to public addresses. Redirects are not followed during delivery. The signing secret is returned only in this response. An account can register at most 10 unique endpoint URLs.
1324
1340
  * Create webhook
1325
1341
  */
1326
- async createWebhookRaw(requestParameters: CreateWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WebhookSecretResponse>> {
1342
+ async createWebhookRaw(requestParameters: CreateWebhookRequest | runtime.FlatBody<CreateWebhookRequest, 'webhookCreateRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WebhookSecretResponse>> {
1327
1343
  const requestOptions = await this.createWebhookRequestOpts(requestParameters);
1328
1344
  const response = await this.request(requestOptions, initOverrides);
1329
1345
 
@@ -1334,7 +1350,7 @@ export class BoatApi extends runtime.BaseAPI {
1334
1350
  * Registers an account-wide endpoint for sandbox lifecycle events. The endpoint must use HTTPS on port 443 and resolve only to public addresses. Redirects are not followed during delivery. The signing secret is returned only in this response. An account can register at most 10 unique endpoint URLs.
1335
1351
  * Create webhook
1336
1352
  */
1337
- async createWebhook(requestParameters: CreateWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WebhookSecretResponse> {
1353
+ async createWebhook(requestParameters: CreateWebhookRequest | runtime.FlatBody<CreateWebhookRequest, 'webhookCreateRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WebhookSecretResponse> {
1338
1354
  const response = await this.createWebhookRaw(requestParameters, initOverrides);
1339
1355
  return await response.value();
1340
1356
  }
@@ -1707,6 +1723,72 @@ export class BoatApi extends runtime.BaseAPI {
1707
1723
  return await response.value();
1708
1724
  }
1709
1725
 
1726
+ /**
1727
+ * Creates request options for deleteSandboxSnapshots without sending the request
1728
+ */
1729
+ async deleteSandboxSnapshotsRequestOpts(requestParameters: DeleteSandboxSnapshotsRequest): Promise<runtime.RequestOpts> {
1730
+ if (requestParameters['sandboxId'] == null) {
1731
+ throw new runtime.RequiredError(
1732
+ 'sandboxId',
1733
+ 'Required parameter "sandboxId" was null or undefined when calling deleteSandboxSnapshots().'
1734
+ );
1735
+ }
1736
+
1737
+ if (requestParameters['xAsciiConfirmDelete'] == null) {
1738
+ throw new runtime.RequiredError(
1739
+ 'xAsciiConfirmDelete',
1740
+ 'Required parameter "xAsciiConfirmDelete" was null or undefined when calling deleteSandboxSnapshots().'
1741
+ );
1742
+ }
1743
+
1744
+ const queryParameters: any = {};
1745
+
1746
+ const headerParameters: runtime.HTTPHeaders = {};
1747
+
1748
+ if (requestParameters['xAsciiConfirmDelete'] != null) {
1749
+ headerParameters['X-Ascii-Confirm-Delete'] = String(requestParameters['xAsciiConfirmDelete']);
1750
+ }
1751
+
1752
+ if (this.configuration && this.configuration.accessToken) {
1753
+ const token = this.configuration.accessToken;
1754
+ const tokenString = await token("BoatBearerAuth", []);
1755
+
1756
+ if (tokenString) {
1757
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1758
+ }
1759
+ }
1760
+
1761
+ let urlPath = `/sandboxes/{sandboxId}/snapshots`;
1762
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
1763
+
1764
+ return {
1765
+ path: urlPath,
1766
+ method: 'DELETE',
1767
+ headers: headerParameters,
1768
+ query: queryParameters,
1769
+ };
1770
+ }
1771
+
1772
+ /**
1773
+ * 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.
1774
+ * Permanently delete all snapshots of a sandbox
1775
+ */
1776
+ async deleteSandboxSnapshotsRaw(requestParameters: DeleteSandboxSnapshotsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DeletionOperationListResponse>> {
1777
+ const requestOptions = await this.deleteSandboxSnapshotsRequestOpts(requestParameters);
1778
+ const response = await this.request(requestOptions, initOverrides);
1779
+
1780
+ return new runtime.JSONApiResponse(response, (jsonValue) => DeletionOperationListResponseFromJSON(jsonValue));
1781
+ }
1782
+
1783
+ /**
1784
+ * 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.
1785
+ * Permanently delete all snapshots of a sandbox
1786
+ */
1787
+ async deleteSandboxSnapshots(requestParameters: DeleteSandboxSnapshotsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DeletionOperationListResponse> {
1788
+ const response = await this.deleteSandboxSnapshotsRaw(requestParameters, initOverrides);
1789
+ return await response.value();
1790
+ }
1791
+
1710
1792
  /**
1711
1793
  * Creates request options for deleteSnapshot without sending the request
1712
1794
  */
@@ -1754,7 +1836,7 @@ export class BoatApi extends runtime.BaseAPI {
1754
1836
  }
1755
1837
 
1756
1838
  /**
1757
- * Accept irreversible background deletion of an unpinned snapshot owned by the authenticated account. Snapshots required by another incremental snapshot or active restore return `409`. Poll the returned operation until `completed`.
1839
+ * 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.
1758
1840
  * Permanently delete snapshot data
1759
1841
  */
1760
1842
  async deleteSnapshotRaw(requestParameters: DeleteSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DeletionOperationResponse>> {
@@ -1765,7 +1847,7 @@ export class BoatApi extends runtime.BaseAPI {
1765
1847
  }
1766
1848
 
1767
1849
  /**
1768
- * Accept irreversible background deletion of an unpinned snapshot owned by the authenticated account. Snapshots required by another incremental snapshot or active restore return `409`. Poll the returned operation until `completed`.
1850
+ * 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.
1769
1851
  * Permanently delete snapshot data
1770
1852
  */
1771
1853
  async deleteSnapshot(requestParameters: DeleteSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DeletionOperationResponse> {
@@ -1831,7 +1913,8 @@ export class BoatApi extends runtime.BaseAPI {
1831
1913
  /**
1832
1914
  * Creates request options for desktop without sending the request
1833
1915
  */
1834
- async desktopRequestOpts(requestParameters: DesktopOperationRequest): Promise<runtime.RequestOpts> {
1916
+ async desktopRequestOpts(input: DesktopOperationRequest | runtime.FlatBody<DesktopOperationRequest, 'desktopRequest'>): Promise<runtime.RequestOpts> {
1917
+ const requestParameters = runtime.unflattenBody<DesktopOperationRequest>(input, 'desktopRequest', ['sandboxId', 'vnc', 'theme'], []);
1835
1918
  if (requestParameters['sandboxId'] == null) {
1836
1919
  throw new runtime.RequiredError(
1837
1920
  'sandboxId',
@@ -1878,7 +1961,7 @@ export class BoatApi extends runtime.BaseAPI {
1878
1961
  * Create or fetch a secret-bearing desktop/noVNC URL for live computer-use visibility. Use `?vnc=1` for noVNC; a `provisioning: true` response means poll again.
1879
1962
  * Get desktop streaming URL
1880
1963
  */
1881
- async desktopRaw(requestParameters: DesktopOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DesktopResponse>> {
1964
+ async desktopRaw(requestParameters: DesktopOperationRequest | runtime.FlatBody<DesktopOperationRequest, 'desktopRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DesktopResponse>> {
1882
1965
  const requestOptions = await this.desktopRequestOpts(requestParameters);
1883
1966
  const response = await this.request(requestOptions, initOverrides);
1884
1967
 
@@ -1889,7 +1972,7 @@ export class BoatApi extends runtime.BaseAPI {
1889
1972
  * Create or fetch a secret-bearing desktop/noVNC URL for live computer-use visibility. Use `?vnc=1` for noVNC; a `provisioning: true` response means poll again.
1890
1973
  * Get desktop streaming URL
1891
1974
  */
1892
- async desktop(requestParameters: DesktopOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DesktopResponse> {
1975
+ async desktop(requestParameters: DesktopOperationRequest | runtime.FlatBody<DesktopOperationRequest, 'desktopRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DesktopResponse> {
1893
1976
  const response = await this.desktopRaw(requestParameters, initOverrides);
1894
1977
  return await response.value();
1895
1978
  }
@@ -2019,7 +2102,8 @@ export class BoatApi extends runtime.BaseAPI {
2019
2102
  /**
2020
2103
  * Creates request options for fork without sending the request
2021
2104
  */
2022
- async forkRequestOpts(requestParameters: ForkOperationRequest): Promise<runtime.RequestOpts> {
2105
+ async forkRequestOpts(input: ForkOperationRequest | runtime.FlatBody<ForkOperationRequest, 'forkRequest'>): Promise<runtime.RequestOpts> {
2106
+ const requestParameters = runtime.unflattenBody<ForkOperationRequest>(input, 'forkRequest', ['sandboxId', 'idempotencyKey'], []);
2023
2107
  if (requestParameters['sandboxId'] == null) {
2024
2108
  throw new runtime.RequiredError(
2025
2109
  'sandboxId',
@@ -2062,7 +2146,7 @@ export class BoatApi extends runtime.BaseAPI {
2062
2146
  * Provision a new sandbox from an existing one. Send an `Idempotency-Key` header to make this call safe to retry after a lost response without creating a second billable fork.
2063
2147
  * Fork sandbox
2064
2148
  */
2065
- async forkRaw(requestParameters: ForkOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxActionResponse>> {
2149
+ async forkRaw(requestParameters: ForkOperationRequest | runtime.FlatBody<ForkOperationRequest, 'forkRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxActionResponse>> {
2066
2150
  const requestOptions = await this.forkRequestOpts(requestParameters);
2067
2151
  const response = await this.request(requestOptions, initOverrides);
2068
2152
 
@@ -2073,7 +2157,7 @@ export class BoatApi extends runtime.BaseAPI {
2073
2157
  * Provision a new sandbox from an existing one. Send an `Idempotency-Key` header to make this call safe to retry after a lost response without creating a second billable fork.
2074
2158
  * Fork sandbox
2075
2159
  */
2076
- async fork(requestParameters: ForkOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxActionResponse> {
2160
+ async fork(requestParameters: ForkOperationRequest | runtime.FlatBody<ForkOperationRequest, 'forkRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxActionResponse> {
2077
2161
  const response = await this.forkRaw(requestParameters, initOverrides);
2078
2162
  return await response.value();
2079
2163
  }
@@ -2570,7 +2654,8 @@ export class BoatApi extends runtime.BaseAPI {
2570
2654
  /**
2571
2655
  * Creates request options for hostPort without sending the request
2572
2656
  */
2573
- async hostPortRequestOpts(requestParameters: HostPortOperationRequest): Promise<runtime.RequestOpts> {
2657
+ async hostPortRequestOpts(input: HostPortOperationRequest | runtime.FlatBody<HostPortOperationRequest, 'hostPortRequest'>): Promise<runtime.RequestOpts> {
2658
+ const requestParameters = runtime.unflattenBody<HostPortOperationRequest>(input, 'hostPortRequest', ['sandboxId'], []);
2574
2659
  if (requestParameters['sandboxId'] == null) {
2575
2660
  throw new runtime.RequiredError(
2576
2661
  'sandboxId',
@@ -2616,7 +2701,7 @@ export class BoatApi extends runtime.BaseAPI {
2616
2701
  * Registers a stable `https://<sandbox-subdomain>-<port>.on.boat.dev` route for a port inside the sandbox and opens the sandbox firewall for it. Idempotent: calling it again for the same sandbox and port returns the same URL and token.
2617
2702
  * Expose a sandbox port on a public HTTPS URL
2618
2703
  */
2619
- async hostPortRaw(requestParameters: HostPortOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<HostPortResponse>> {
2704
+ async hostPortRaw(requestParameters: HostPortOperationRequest | runtime.FlatBody<HostPortOperationRequest, 'hostPortRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<HostPortResponse>> {
2620
2705
  const requestOptions = await this.hostPortRequestOpts(requestParameters);
2621
2706
  const response = await this.request(requestOptions, initOverrides);
2622
2707
 
@@ -2627,7 +2712,7 @@ export class BoatApi extends runtime.BaseAPI {
2627
2712
  * Registers a stable `https://<sandbox-subdomain>-<port>.on.boat.dev` route for a port inside the sandbox and opens the sandbox firewall for it. Idempotent: calling it again for the same sandbox and port returns the same URL and token.
2628
2713
  * Expose a sandbox port on a public HTTPS URL
2629
2714
  */
2630
- async hostPort(requestParameters: HostPortOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<HostPortResponse> {
2715
+ async hostPort(requestParameters: HostPortOperationRequest | runtime.FlatBody<HostPortOperationRequest, 'hostPortRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<HostPortResponse> {
2631
2716
  const response = await this.hostPortRaw(requestParameters, initOverrides);
2632
2717
  return await response.value();
2633
2718
  }
@@ -3067,7 +3152,8 @@ export class BoatApi extends runtime.BaseAPI {
3067
3152
  /**
3068
3153
  * Creates request options for prompt without sending the request
3069
3154
  */
3070
- async promptRequestOpts(requestParameters: PromptOperationRequest): Promise<runtime.RequestOpts> {
3155
+ async promptRequestOpts(input: PromptOperationRequest | runtime.FlatBody<PromptOperationRequest, 'promptRequest'>): Promise<runtime.RequestOpts> {
3156
+ const requestParameters = runtime.unflattenBody<PromptOperationRequest>(input, 'promptRequest', ['sandboxId'], []);
3071
3157
  if (requestParameters['sandboxId'] == null) {
3072
3158
  throw new runtime.RequiredError(
3073
3159
  'sandboxId',
@@ -3113,7 +3199,7 @@ export class BoatApi extends runtime.BaseAPI {
3113
3199
  * Queue a natural-language work item for an agent harness (Codex, Claude Code, pi, OpenCode, or Prime Agent) inside the sandbox. Observe progress with `GET /sandboxes/{sandboxId}/events`. A Sandbox runs many conversations in parallel. Set `new: true` to start a fresh one, `conversationId` to continue a specific one, or omit both to continue the most-recently-active conversation; the response returns the `conversationId`. See [Integrated agents](/integrated-agents).
3114
3200
  * Prompt Sandbox
3115
3201
  */
3116
- async promptRaw(requestParameters: PromptOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PromptResponse>> {
3202
+ async promptRaw(requestParameters: PromptOperationRequest | runtime.FlatBody<PromptOperationRequest, 'promptRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PromptResponse>> {
3117
3203
  const requestOptions = await this.promptRequestOpts(requestParameters);
3118
3204
  const response = await this.request(requestOptions, initOverrides);
3119
3205
 
@@ -3124,7 +3210,7 @@ export class BoatApi extends runtime.BaseAPI {
3124
3210
  * Queue a natural-language work item for an agent harness (Codex, Claude Code, pi, OpenCode, or Prime Agent) inside the sandbox. Observe progress with `GET /sandboxes/{sandboxId}/events`. A Sandbox runs many conversations in parallel. Set `new: true` to start a fresh one, `conversationId` to continue a specific one, or omit both to continue the most-recently-active conversation; the response returns the `conversationId`. See [Integrated agents](/integrated-agents).
3125
3211
  * Prompt Sandbox
3126
3212
  */
3127
- async prompt(requestParameters: PromptOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PromptResponse> {
3213
+ async prompt(requestParameters: PromptOperationRequest | runtime.FlatBody<PromptOperationRequest, 'promptRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PromptResponse> {
3128
3214
  const response = await this.promptRaw(requestParameters, initOverrides);
3129
3215
  return await response.value();
3130
3216
  }
@@ -3334,7 +3420,8 @@ export class BoatApi extends runtime.BaseAPI {
3334
3420
  /**
3335
3421
  * Creates request options for resume without sending the request
3336
3422
  */
3337
- async resumeRequestOpts(requestParameters: ResumeOperationRequest): Promise<runtime.RequestOpts> {
3423
+ async resumeRequestOpts(input: ResumeOperationRequest | runtime.FlatBody<ResumeOperationRequest, 'resumeRequest'>): Promise<runtime.RequestOpts> {
3424
+ const requestParameters = runtime.unflattenBody<ResumeOperationRequest>(input, 'resumeRequest', ['sandboxId'], []);
3338
3425
  if (requestParameters['sandboxId'] == null) {
3339
3426
  throw new runtime.RequiredError(
3340
3427
  'sandboxId',
@@ -3372,7 +3459,7 @@ export class BoatApi extends runtime.BaseAPI {
3372
3459
  /**
3373
3460
  * Resume sandbox
3374
3461
  */
3375
- async resumeRaw(requestParameters: ResumeOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxActionResponse>> {
3462
+ async resumeRaw(requestParameters: ResumeOperationRequest | runtime.FlatBody<ResumeOperationRequest, 'resumeRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxActionResponse>> {
3376
3463
  const requestOptions = await this.resumeRequestOpts(requestParameters);
3377
3464
  const response = await this.request(requestOptions, initOverrides);
3378
3465
 
@@ -3382,7 +3469,7 @@ export class BoatApi extends runtime.BaseAPI {
3382
3469
  /**
3383
3470
  * Resume sandbox
3384
3471
  */
3385
- async resume(requestParameters: ResumeOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxActionResponse> {
3472
+ async resume(requestParameters: ResumeOperationRequest | runtime.FlatBody<ResumeOperationRequest, 'resumeRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxActionResponse> {
3386
3473
  const response = await this.resumeRaw(requestParameters, initOverrides);
3387
3474
  return await response.value();
3388
3475
  }
@@ -3616,7 +3703,8 @@ export class BoatApi extends runtime.BaseAPI {
3616
3703
  /**
3617
3704
  * Creates request options for saveNamedSnapshot without sending the request
3618
3705
  */
3619
- async saveNamedSnapshotRequestOpts(requestParameters: SaveNamedSnapshotRequest): Promise<runtime.RequestOpts> {
3706
+ async saveNamedSnapshotRequestOpts(input: SaveNamedSnapshotRequest | runtime.FlatBody<SaveNamedSnapshotRequest, 'namedSnapshotSaveRequest'>): Promise<runtime.RequestOpts> {
3707
+ const requestParameters = runtime.unflattenBody<SaveNamedSnapshotRequest>(input, 'namedSnapshotSaveRequest', [], []);
3620
3708
  if (requestParameters['namedSnapshotSaveRequest'] == null) {
3621
3709
  throw new runtime.RequiredError(
3622
3710
  'namedSnapshotSaveRequest',
@@ -3654,7 +3742,7 @@ export class BoatApi extends runtime.BaseAPI {
3654
3742
  * Freeze a sandbox\'s current state under a name (`boat snapshot <id> <name>` in the CLI). Answers `202` immediately with the snapshot in `saving`; a running sandbox takes a fresh capture first, which can run minutes. Poll `GET /named-snapshots/{name}` until the status settles at `ready` or `failed`. Reusing one of your existing names replaces that snapshot\'s artifact once the new save is ready.
3655
3743
  * Save a named snapshot
3656
3744
  */
3657
- async saveNamedSnapshotRaw(requestParameters: SaveNamedSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<NamedSnapshotSavingResponse>> {
3745
+ async saveNamedSnapshotRaw(requestParameters: SaveNamedSnapshotRequest | runtime.FlatBody<SaveNamedSnapshotRequest, 'namedSnapshotSaveRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<NamedSnapshotSavingResponse>> {
3658
3746
  const requestOptions = await this.saveNamedSnapshotRequestOpts(requestParameters);
3659
3747
  const response = await this.request(requestOptions, initOverrides);
3660
3748
 
@@ -3665,7 +3753,7 @@ export class BoatApi extends runtime.BaseAPI {
3665
3753
  * Freeze a sandbox\'s current state under a name (`boat snapshot <id> <name>` in the CLI). Answers `202` immediately with the snapshot in `saving`; a running sandbox takes a fresh capture first, which can run minutes. Poll `GET /named-snapshots/{name}` until the status settles at `ready` or `failed`. Reusing one of your existing names replaces that snapshot\'s artifact once the new save is ready.
3666
3754
  * Save a named snapshot
3667
3755
  */
3668
- async saveNamedSnapshot(requestParameters: SaveNamedSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<NamedSnapshotSavingResponse> {
3756
+ async saveNamedSnapshot(requestParameters: SaveNamedSnapshotRequest | runtime.FlatBody<SaveNamedSnapshotRequest, 'namedSnapshotSaveRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<NamedSnapshotSavingResponse> {
3669
3757
  const response = await this.saveNamedSnapshotRaw(requestParameters, initOverrides);
3670
3758
  return await response.value();
3671
3759
  }
@@ -3720,7 +3808,8 @@ export class BoatApi extends runtime.BaseAPI {
3720
3808
  /**
3721
3809
  * Creates request options for selectRepo without sending the request
3722
3810
  */
3723
- async selectRepoRequestOpts(requestParameters: SelectRepoRequest): Promise<runtime.RequestOpts> {
3811
+ async selectRepoRequestOpts(input: SelectRepoRequest | runtime.FlatBody<SelectRepoRequest, 'repoSelectionRequest'>): Promise<runtime.RequestOpts> {
3812
+ const requestParameters = runtime.unflattenBody<SelectRepoRequest>(input, 'repoSelectionRequest', [], []);
3724
3813
  if (requestParameters['repoSelectionRequest'] == null) {
3725
3814
  throw new runtime.RequiredError(
3726
3815
  'repoSelectionRequest',
@@ -3758,7 +3847,7 @@ export class BoatApi extends runtime.BaseAPI {
3758
3847
  * Idempotently selects one repository for the sandbox environment. Use `databaseId` from `GET /repos` as `repositoryId`; selecting an already-selected repository updates its `baseBranch`.
3759
3848
  * Select repository for sandboxes
3760
3849
  */
3761
- async selectRepoRaw(requestParameters: SelectRepoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RepoSelectionResponse>> {
3850
+ async selectRepoRaw(requestParameters: SelectRepoRequest | runtime.FlatBody<SelectRepoRequest, 'repoSelectionRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RepoSelectionResponse>> {
3762
3851
  const requestOptions = await this.selectRepoRequestOpts(requestParameters);
3763
3852
  const response = await this.request(requestOptions, initOverrides);
3764
3853
 
@@ -3769,7 +3858,7 @@ export class BoatApi extends runtime.BaseAPI {
3769
3858
  * Idempotently selects one repository for the sandbox environment. Use `databaseId` from `GET /repos` as `repositoryId`; selecting an already-selected repository updates its `baseBranch`.
3770
3859
  * Select repository for sandboxes
3771
3860
  */
3772
- async selectRepo(requestParameters: SelectRepoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RepoSelectionResponse> {
3861
+ async selectRepo(requestParameters: SelectRepoRequest | runtime.FlatBody<SelectRepoRequest, 'repoSelectionRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RepoSelectionResponse> {
3773
3862
  const response = await this.selectRepoRaw(requestParameters, initOverrides);
3774
3863
  return await response.value();
3775
3864
  }
@@ -3777,7 +3866,8 @@ export class BoatApi extends runtime.BaseAPI {
3777
3866
  /**
3778
3867
  * Creates request options for setActiveOrganization without sending the request
3779
3868
  */
3780
- async setActiveOrganizationRequestOpts(requestParameters: SetActiveOrganizationRequest): Promise<runtime.RequestOpts> {
3869
+ async setActiveOrganizationRequestOpts(input: SetActiveOrganizationRequest | runtime.FlatBody<SetActiveOrganizationRequest, 'activeOrgUpdateRequest'>): Promise<runtime.RequestOpts> {
3870
+ const requestParameters = runtime.unflattenBody<SetActiveOrganizationRequest>(input, 'activeOrgUpdateRequest', [], []);
3781
3871
  if (requestParameters['activeOrgUpdateRequest'] == null) {
3782
3872
  throw new runtime.RequiredError(
3783
3873
  'activeOrgUpdateRequest',
@@ -3815,7 +3905,7 @@ export class BoatApi extends runtime.BaseAPI {
3815
3905
  * 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.
3816
3906
  * Set the active organization
3817
3907
  */
3818
- async setActiveOrganizationRaw(requestParameters: SetActiveOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ActiveOrgResponse>> {
3908
+ async setActiveOrganizationRaw(requestParameters: SetActiveOrganizationRequest | runtime.FlatBody<SetActiveOrganizationRequest, 'activeOrgUpdateRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ActiveOrgResponse>> {
3819
3909
  const requestOptions = await this.setActiveOrganizationRequestOpts(requestParameters);
3820
3910
  const response = await this.request(requestOptions, initOverrides);
3821
3911
 
@@ -3826,7 +3916,7 @@ export class BoatApi extends runtime.BaseAPI {
3826
3916
  * 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.
3827
3917
  * Set the active organization
3828
3918
  */
3829
- async setActiveOrganization(requestParameters: SetActiveOrganizationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ActiveOrgResponse> {
3919
+ async setActiveOrganization(requestParameters: SetActiveOrganizationRequest | runtime.FlatBody<SetActiveOrganizationRequest, 'activeOrgUpdateRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ActiveOrgResponse> {
3830
3920
  const response = await this.setActiveOrganizationRaw(requestParameters, initOverrides);
3831
3921
  return await response.value();
3832
3922
  }
@@ -3834,7 +3924,8 @@ export class BoatApi extends runtime.BaseAPI {
3834
3924
  /**
3835
3925
  * Creates request options for setEnvironmentSecretFile without sending the request
3836
3926
  */
3837
- async setEnvironmentSecretFileRequestOpts(requestParameters: SetEnvironmentSecretFileOperationRequest): Promise<runtime.RequestOpts> {
3927
+ async setEnvironmentSecretFileRequestOpts(input: SetEnvironmentSecretFileOperationRequest | runtime.FlatBody<SetEnvironmentSecretFileOperationRequest, 'setEnvironmentSecretFileRequest'>): Promise<runtime.RequestOpts> {
3928
+ const requestParameters = runtime.unflattenBody<SetEnvironmentSecretFileOperationRequest>(input, 'setEnvironmentSecretFileRequest', ['environmentId'], []);
3838
3929
  if (requestParameters['environmentId'] == null) {
3839
3930
  throw new runtime.RequiredError(
3840
3931
  'environmentId',
@@ -3880,7 +3971,7 @@ export class BoatApi extends runtime.BaseAPI {
3880
3971
  * Adds or replaces a single secret file by path. Mints a new immutable version.
3881
3972
  * Write one secret file
3882
3973
  */
3883
- async setEnvironmentSecretFileRaw(requestParameters: SetEnvironmentSecretFileOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EnvironmentItemChangeResponse>> {
3974
+ async setEnvironmentSecretFileRaw(requestParameters: SetEnvironmentSecretFileOperationRequest | runtime.FlatBody<SetEnvironmentSecretFileOperationRequest, 'setEnvironmentSecretFileRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EnvironmentItemChangeResponse>> {
3884
3975
  const requestOptions = await this.setEnvironmentSecretFileRequestOpts(requestParameters);
3885
3976
  const response = await this.request(requestOptions, initOverrides);
3886
3977
 
@@ -3891,7 +3982,7 @@ export class BoatApi extends runtime.BaseAPI {
3891
3982
  * Adds or replaces a single secret file by path. Mints a new immutable version.
3892
3983
  * Write one secret file
3893
3984
  */
3894
- async setEnvironmentSecretFile(requestParameters: SetEnvironmentSecretFileOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentItemChangeResponse> {
3985
+ async setEnvironmentSecretFile(requestParameters: SetEnvironmentSecretFileOperationRequest | runtime.FlatBody<SetEnvironmentSecretFileOperationRequest, 'setEnvironmentSecretFileRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentItemChangeResponse> {
3895
3986
  const response = await this.setEnvironmentSecretFileRaw(requestParameters, initOverrides);
3896
3987
  return await response.value();
3897
3988
  }
@@ -3899,7 +3990,8 @@ export class BoatApi extends runtime.BaseAPI {
3899
3990
  /**
3900
3991
  * Creates request options for setEnvironmentVar without sending the request
3901
3992
  */
3902
- async setEnvironmentVarRequestOpts(requestParameters: SetEnvironmentVarOperationRequest): Promise<runtime.RequestOpts> {
3993
+ async setEnvironmentVarRequestOpts(input: SetEnvironmentVarOperationRequest | runtime.FlatBody<SetEnvironmentVarOperationRequest, 'setEnvironmentVarRequest'>): Promise<runtime.RequestOpts> {
3994
+ const requestParameters = runtime.unflattenBody<SetEnvironmentVarOperationRequest>(input, 'setEnvironmentVarRequest', ['environmentId', 'key'], []);
3903
3995
  if (requestParameters['environmentId'] == null) {
3904
3996
  throw new runtime.RequiredError(
3905
3997
  'environmentId',
@@ -3953,7 +4045,7 @@ export class BoatApi extends runtime.BaseAPI {
3953
4045
  * Sets or replaces a single variable without reading or rewriting the rest. Mints a new immutable version.
3954
4046
  * Set one environment variable
3955
4047
  */
3956
- async setEnvironmentVarRaw(requestParameters: SetEnvironmentVarOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EnvironmentItemChangeResponse>> {
4048
+ async setEnvironmentVarRaw(requestParameters: SetEnvironmentVarOperationRequest | runtime.FlatBody<SetEnvironmentVarOperationRequest, 'setEnvironmentVarRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EnvironmentItemChangeResponse>> {
3957
4049
  const requestOptions = await this.setEnvironmentVarRequestOpts(requestParameters);
3958
4050
  const response = await this.request(requestOptions, initOverrides);
3959
4051
 
@@ -3964,7 +4056,7 @@ export class BoatApi extends runtime.BaseAPI {
3964
4056
  * Sets or replaces a single variable without reading or rewriting the rest. Mints a new immutable version.
3965
4057
  * Set one environment variable
3966
4058
  */
3967
- async setEnvironmentVar(requestParameters: SetEnvironmentVarOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentItemChangeResponse> {
4059
+ async setEnvironmentVar(requestParameters: SetEnvironmentVarOperationRequest | runtime.FlatBody<SetEnvironmentVarOperationRequest, 'setEnvironmentVarRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentItemChangeResponse> {
3968
4060
  const response = await this.setEnvironmentVarRaw(requestParameters, initOverrides);
3969
4061
  return await response.value();
3970
4062
  }
@@ -3972,7 +4064,8 @@ export class BoatApi extends runtime.BaseAPI {
3972
4064
  /**
3973
4065
  * Creates request options for sshKey without sending the request
3974
4066
  */
3975
- async sshKeyRequestOpts(requestParameters: SshKeyOperationRequest): Promise<runtime.RequestOpts> {
4067
+ async sshKeyRequestOpts(input: SshKeyOperationRequest | runtime.FlatBody<SshKeyOperationRequest, 'sshKeyRequest'>): Promise<runtime.RequestOpts> {
4068
+ const requestParameters = runtime.unflattenBody<SshKeyOperationRequest>(input, 'sshKeyRequest', ['sandboxId'], []);
3976
4069
  if (requestParameters['sandboxId'] == null) {
3977
4070
  throw new runtime.RequiredError(
3978
4071
  'sandboxId',
@@ -4018,7 +4111,7 @@ export class BoatApi extends runtime.BaseAPI {
4018
4111
  * Adds an OpenSSH public key to the running sandbox so the caller can SSH as user `user`. The response carries `machineIp`, which is the host to connect to on port 22. This is also how you reach your own machine from inside a sandbox without the CLI: authorize the key, then open a reverse tunnel with stock OpenSSH, and a port on your machine answers at `127.0.0.1:<port>` inside the sandbox for as long as the ssh process runs. ```bash ssh -o ExitOnForwardFailure=yes -i ~/.ssh/id_ed25519 -N -R 7777:127.0.0.1:7777 user@<machineIp> ``` `boat forward <id> --reverse --local 7777` is the same tunnel with the key handling and redial done for you.
4019
4112
  * Configure sandbox SSH key
4020
4113
  */
4021
- async sshKeyRaw(requestParameters: SshKeyOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SshKeyResponse>> {
4114
+ async sshKeyRaw(requestParameters: SshKeyOperationRequest | runtime.FlatBody<SshKeyOperationRequest, 'sshKeyRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SshKeyResponse>> {
4022
4115
  const requestOptions = await this.sshKeyRequestOpts(requestParameters);
4023
4116
  const response = await this.request(requestOptions, initOverrides);
4024
4117
 
@@ -4029,7 +4122,7 @@ export class BoatApi extends runtime.BaseAPI {
4029
4122
  * Adds an OpenSSH public key to the running sandbox so the caller can SSH as user `user`. The response carries `machineIp`, which is the host to connect to on port 22. This is also how you reach your own machine from inside a sandbox without the CLI: authorize the key, then open a reverse tunnel with stock OpenSSH, and a port on your machine answers at `127.0.0.1:<port>` inside the sandbox for as long as the ssh process runs. ```bash ssh -o ExitOnForwardFailure=yes -i ~/.ssh/id_ed25519 -N -R 7777:127.0.0.1:7777 user@<machineIp> ``` `boat forward <id> --reverse --local 7777` is the same tunnel with the key handling and redial done for you.
4030
4123
  * Configure sandbox SSH key
4031
4124
  */
4032
- async sshKey(requestParameters: SshKeyOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SshKeyResponse> {
4125
+ async sshKey(requestParameters: SshKeyOperationRequest | runtime.FlatBody<SshKeyOperationRequest, 'sshKeyRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SshKeyResponse> {
4033
4126
  const response = await this.sshKeyRaw(requestParameters, initOverrides);
4034
4127
  return await response.value();
4035
4128
  }
@@ -4037,7 +4130,8 @@ export class BoatApi extends runtime.BaseAPI {
4037
4130
  /**
4038
4131
  * Creates request options for steer without sending the request
4039
4132
  */
4040
- async steerRequestOpts(requestParameters: SteerOperationRequest): Promise<runtime.RequestOpts> {
4133
+ async steerRequestOpts(input: SteerOperationRequest | runtime.FlatBody<SteerOperationRequest, 'steerRequest'>): Promise<runtime.RequestOpts> {
4134
+ const requestParameters = runtime.unflattenBody<SteerOperationRequest>(input, 'steerRequest', ['sandboxId', 'conversation'], ['conversation']);
4041
4135
  if (requestParameters['sandboxId'] == null) {
4042
4136
  throw new runtime.RequiredError(
4043
4137
  'sandboxId',
@@ -4087,7 +4181,7 @@ export class BoatApi extends runtime.BaseAPI {
4087
4181
  * Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
4088
4182
  * Steer a running turn
4089
4183
  */
4090
- async steerRaw(requestParameters: SteerOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SteerResponse>> {
4184
+ async steerRaw(requestParameters: SteerOperationRequest | runtime.FlatBody<SteerOperationRequest, 'steerRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SteerResponse>> {
4091
4185
  const requestOptions = await this.steerRequestOpts(requestParameters);
4092
4186
  const response = await this.request(requestOptions, initOverrides);
4093
4187
 
@@ -4098,7 +4192,7 @@ export class BoatApi extends runtime.BaseAPI {
4098
4192
  * Send a new message to a turn that is already running, without losing what the agent is doing. This is what typing into a coding agent while it works does: the instruction is taken into account and the work continues. Where the harness has a native mid-turn primitive (Claude Code, Codex, pi, Prime Agent) nothing is interrupted and the response has `native: true`. Where it does not (OpenCode), Boat interrupts that turn and immediately continues the SAME conversation with the instruction, keeping the session and its memory, and the response has `native: false`. Refused with **409 `no_running_turn`** when the conversation has nothing in flight; queue work with `POST /prompt` instead. The steer shows up in `GET /events` as a `steer` event. See [Integrated agents](/integrated-agents).
4099
4193
  * Steer a running turn
4100
4194
  */
4101
- async steer(requestParameters: SteerOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SteerResponse> {
4195
+ async steer(requestParameters: SteerOperationRequest | runtime.FlatBody<SteerOperationRequest, 'steerRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SteerResponse> {
4102
4196
  const response = await this.steerRaw(requestParameters, initOverrides);
4103
4197
  return await response.value();
4104
4198
  }
@@ -4106,7 +4200,8 @@ export class BoatApi extends runtime.BaseAPI {
4106
4200
  /**
4107
4201
  * Creates request options for stop without sending the request
4108
4202
  */
4109
- async stopRequestOpts(requestParameters: StopOperationRequest): Promise<runtime.RequestOpts> {
4203
+ async stopRequestOpts(input: StopOperationRequest | runtime.FlatBody<StopOperationRequest, 'stopRequest'>): Promise<runtime.RequestOpts> {
4204
+ const requestParameters = runtime.unflattenBody<StopOperationRequest>(input, 'stopRequest', ['sandboxId'], []);
4110
4205
  if (requestParameters['sandboxId'] == null) {
4111
4206
  throw new runtime.RequiredError(
4112
4207
  'sandboxId',
@@ -4145,7 +4240,7 @@ export class BoatApi extends runtime.BaseAPI {
4145
4240
  * Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. Set `force: true` to stop anyway, accepting the loss of everything written since the last successful snapshot. This is irreversible; only reach for it after a stop has already failed.
4146
4241
  * Stop and archive sandbox
4147
4242
  */
4148
- async stopRaw(requestParameters: StopOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxActionResponse>> {
4243
+ async stopRaw(requestParameters: StopOperationRequest | runtime.FlatBody<StopOperationRequest, 'stopRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxActionResponse>> {
4149
4244
  const requestOptions = await this.stopRequestOpts(requestParameters);
4150
4245
  const response = await this.request(requestOptions, initOverrides);
4151
4246
 
@@ -4156,7 +4251,7 @@ export class BoatApi extends runtime.BaseAPI {
4156
4251
  * Stop active work and archive/snapshot the sandbox for later resume or fork. A stop always saves the sandbox\'s disk first. If that save is failing, the stop is refused and the sandbox keeps running so your work is not discarded, we retry automatically and email you. You are not billed for time spent in that state. Set `force: true` to stop anyway, accepting the loss of everything written since the last successful snapshot. This is irreversible; only reach for it after a stop has already failed.
4157
4252
  * Stop and archive sandbox
4158
4253
  */
4159
- async stop(requestParameters: StopOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxActionResponse> {
4254
+ async stop(requestParameters: StopOperationRequest | runtime.FlatBody<StopOperationRequest, 'stopRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxActionResponse> {
4160
4255
  const response = await this.stopRaw(requestParameters, initOverrides);
4161
4256
  return await response.value();
4162
4257
  }
@@ -4164,7 +4259,8 @@ export class BoatApi extends runtime.BaseAPI {
4164
4259
  /**
4165
4260
  * Creates request options for update without sending the request
4166
4261
  */
4167
- async updateRequestOpts(requestParameters: UpdateRequest): Promise<runtime.RequestOpts> {
4262
+ async updateRequestOpts(input: UpdateRequest | runtime.FlatBody<UpdateRequest, 'updateSandboxRequest'>): Promise<runtime.RequestOpts> {
4263
+ const requestParameters = runtime.unflattenBody<UpdateRequest>(input, 'updateSandboxRequest', ['sandboxId'], []);
4168
4264
  if (requestParameters['sandboxId'] == null) {
4169
4265
  throw new runtime.RequiredError(
4170
4266
  'sandboxId',
@@ -4209,7 +4305,7 @@ export class BoatApi extends runtime.BaseAPI {
4209
4305
  /**
4210
4306
  * Update sandbox
4211
4307
  */
4212
- async updateRaw(requestParameters: UpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxInfoResponse>> {
4308
+ async updateRaw(requestParameters: UpdateRequest | runtime.FlatBody<UpdateRequest, 'updateSandboxRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxInfoResponse>> {
4213
4309
  const requestOptions = await this.updateRequestOpts(requestParameters);
4214
4310
  const response = await this.request(requestOptions, initOverrides);
4215
4311
 
@@ -4219,7 +4315,7 @@ export class BoatApi extends runtime.BaseAPI {
4219
4315
  /**
4220
4316
  * Update sandbox
4221
4317
  */
4222
- async update(requestParameters: UpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxInfoResponse> {
4318
+ async update(requestParameters: UpdateRequest | runtime.FlatBody<UpdateRequest, 'updateSandboxRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxInfoResponse> {
4223
4319
  const response = await this.updateRaw(requestParameters, initOverrides);
4224
4320
  return await response.value();
4225
4321
  }
@@ -4227,7 +4323,8 @@ export class BoatApi extends runtime.BaseAPI {
4227
4323
  /**
4228
4324
  * Creates request options for updateDataRetention without sending the request
4229
4325
  */
4230
- async updateDataRetentionRequestOpts(requestParameters: UpdateDataRetentionRequest): Promise<runtime.RequestOpts> {
4326
+ async updateDataRetentionRequestOpts(input: UpdateDataRetentionRequest | runtime.FlatBody<UpdateDataRetentionRequest, 'dataRetentionUpdateRequest'>): Promise<runtime.RequestOpts> {
4327
+ const requestParameters = runtime.unflattenBody<UpdateDataRetentionRequest>(input, 'dataRetentionUpdateRequest', [], []);
4231
4328
  if (requestParameters['dataRetentionUpdateRequest'] == null) {
4232
4329
  throw new runtime.RequiredError(
4233
4330
  'dataRetentionUpdateRequest',
@@ -4265,7 +4362,7 @@ export class BoatApi extends runtime.BaseAPI {
4265
4362
  * Requires an interactive sandbox session; API keys and legacy permanent tokens are refused. Enabling requires the exact confirmation phrase `delete archived sandbox data`. Disabling affects future archives only and cannot cancel deletion operations already accepted.
4266
4363
  * Update account data-retention policy
4267
4364
  */
4268
- async updateDataRetentionRaw(requestParameters: UpdateDataRetentionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DataRetentionPolicyResponse>> {
4365
+ async updateDataRetentionRaw(requestParameters: UpdateDataRetentionRequest | runtime.FlatBody<UpdateDataRetentionRequest, 'dataRetentionUpdateRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DataRetentionPolicyResponse>> {
4269
4366
  const requestOptions = await this.updateDataRetentionRequestOpts(requestParameters);
4270
4367
  const response = await this.request(requestOptions, initOverrides);
4271
4368
 
@@ -4276,7 +4373,7 @@ export class BoatApi extends runtime.BaseAPI {
4276
4373
  * Requires an interactive sandbox session; API keys and legacy permanent tokens are refused. Enabling requires the exact confirmation phrase `delete archived sandbox data`. Disabling affects future archives only and cannot cancel deletion operations already accepted.
4277
4374
  * Update account data-retention policy
4278
4375
  */
4279
- async updateDataRetention(requestParameters: UpdateDataRetentionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DataRetentionPolicyResponse> {
4376
+ async updateDataRetention(requestParameters: UpdateDataRetentionRequest | runtime.FlatBody<UpdateDataRetentionRequest, 'dataRetentionUpdateRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DataRetentionPolicyResponse> {
4280
4377
  const response = await this.updateDataRetentionRaw(requestParameters, initOverrides);
4281
4378
  return await response.value();
4282
4379
  }
@@ -4284,7 +4381,8 @@ export class BoatApi extends runtime.BaseAPI {
4284
4381
  /**
4285
4382
  * Creates request options for updateEnvironment without sending the request
4286
4383
  */
4287
- async updateEnvironmentRequestOpts(requestParameters: UpdateEnvironmentRequest): Promise<runtime.RequestOpts> {
4384
+ async updateEnvironmentRequestOpts(input: UpdateEnvironmentRequest | runtime.FlatBody<UpdateEnvironmentRequest, 'updateSandboxEnvironmentRequest'>): Promise<runtime.RequestOpts> {
4385
+ const requestParameters = runtime.unflattenBody<UpdateEnvironmentRequest>(input, 'updateSandboxEnvironmentRequest', ['environmentId'], []);
4288
4386
  if (requestParameters['environmentId'] == null) {
4289
4387
  throw new runtime.RequiredError(
4290
4388
  'environmentId',
@@ -4330,7 +4428,7 @@ export class BoatApi extends runtime.BaseAPI {
4330
4428
  * Rename, set as default, and/or edit flags and contents. Any flag or content change mints a new immutable version; existing sandboxes stay on their pinned version until you call upgrade.
4331
4429
  * Update a sandbox environment
4332
4430
  */
4333
- async updateEnvironmentRaw(requestParameters: UpdateEnvironmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxEnvironmentResponse>> {
4431
+ async updateEnvironmentRaw(requestParameters: UpdateEnvironmentRequest | runtime.FlatBody<UpdateEnvironmentRequest, 'updateSandboxEnvironmentRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxEnvironmentResponse>> {
4334
4432
  const requestOptions = await this.updateEnvironmentRequestOpts(requestParameters);
4335
4433
  const response = await this.request(requestOptions, initOverrides);
4336
4434
 
@@ -4341,7 +4439,7 @@ export class BoatApi extends runtime.BaseAPI {
4341
4439
  * Rename, set as default, and/or edit flags and contents. Any flag or content change mints a new immutable version; existing sandboxes stay on their pinned version until you call upgrade.
4342
4440
  * Update a sandbox environment
4343
4441
  */
4344
- async updateEnvironment(requestParameters: UpdateEnvironmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxEnvironmentResponse> {
4442
+ async updateEnvironment(requestParameters: UpdateEnvironmentRequest | runtime.FlatBody<UpdateEnvironmentRequest, 'updateSandboxEnvironmentRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxEnvironmentResponse> {
4345
4443
  const response = await this.updateEnvironmentRaw(requestParameters, initOverrides);
4346
4444
  return await response.value();
4347
4445
  }
@@ -4349,7 +4447,8 @@ export class BoatApi extends runtime.BaseAPI {
4349
4447
  /**
4350
4448
  * Creates request options for updateSecrets without sending the request
4351
4449
  */
4352
- async updateSecretsRequestOpts(requestParameters: UpdateSecretsRequest): Promise<runtime.RequestOpts> {
4450
+ async updateSecretsRequestOpts(input: UpdateSecretsRequest | runtime.FlatBody<UpdateSecretsRequest, 'secretsUpdateRequest'>): Promise<runtime.RequestOpts> {
4451
+ const requestParameters = runtime.unflattenBody<UpdateSecretsRequest>(input, 'secretsUpdateRequest', [], []);
4353
4452
  if (requestParameters['secretsUpdateRequest'] == null) {
4354
4453
  throw new runtime.RequiredError(
4355
4454
  'secretsUpdateRequest',
@@ -4386,7 +4485,7 @@ export class BoatApi extends runtime.BaseAPI {
4386
4485
  /**
4387
4486
  * Update Boat secrets setup
4388
4487
  */
4389
- async updateSecretsRaw(requestParameters: UpdateSecretsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SecretsResponse>> {
4488
+ async updateSecretsRaw(requestParameters: UpdateSecretsRequest | runtime.FlatBody<UpdateSecretsRequest, 'secretsUpdateRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SecretsResponse>> {
4390
4489
  const requestOptions = await this.updateSecretsRequestOpts(requestParameters);
4391
4490
  const response = await this.request(requestOptions, initOverrides);
4392
4491
 
@@ -4396,7 +4495,7 @@ export class BoatApi extends runtime.BaseAPI {
4396
4495
  /**
4397
4496
  * Update Boat secrets setup
4398
4497
  */
4399
- async updateSecrets(requestParameters: UpdateSecretsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SecretsResponse> {
4498
+ async updateSecrets(requestParameters: UpdateSecretsRequest | runtime.FlatBody<UpdateSecretsRequest, 'secretsUpdateRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SecretsResponse> {
4400
4499
  const response = await this.updateSecretsRaw(requestParameters, initOverrides);
4401
4500
  return await response.value();
4402
4501
  }
@@ -4404,7 +4503,8 @@ export class BoatApi extends runtime.BaseAPI {
4404
4503
  /**
4405
4504
  * Creates request options for updateWebhook without sending the request
4406
4505
  */
4407
- async updateWebhookRequestOpts(requestParameters: UpdateWebhookRequest): Promise<runtime.RequestOpts> {
4506
+ async updateWebhookRequestOpts(input: UpdateWebhookRequest | runtime.FlatBody<UpdateWebhookRequest, 'webhookUpdateRequest'>): Promise<runtime.RequestOpts> {
4507
+ const requestParameters = runtime.unflattenBody<UpdateWebhookRequest>(input, 'webhookUpdateRequest', ['webhookId'], []);
4408
4508
  if (requestParameters['webhookId'] == null) {
4409
4509
  throw new runtime.RequiredError(
4410
4510
  'webhookId',
@@ -4450,7 +4550,7 @@ export class BoatApi extends runtime.BaseAPI {
4450
4550
  * Updates the name, endpoint URL, or subscribed events without changing the signing secret.
4451
4551
  * Update webhook
4452
4552
  */
4453
- async updateWebhookRaw(requestParameters: UpdateWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WebhookResponse>> {
4553
+ async updateWebhookRaw(requestParameters: UpdateWebhookRequest | runtime.FlatBody<UpdateWebhookRequest, 'webhookUpdateRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WebhookResponse>> {
4454
4554
  const requestOptions = await this.updateWebhookRequestOpts(requestParameters);
4455
4555
  const response = await this.request(requestOptions, initOverrides);
4456
4556
 
@@ -4461,7 +4561,7 @@ export class BoatApi extends runtime.BaseAPI {
4461
4561
  * Updates the name, endpoint URL, or subscribed events without changing the signing secret.
4462
4562
  * Update webhook
4463
4563
  */
4464
- async updateWebhook(requestParameters: UpdateWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WebhookResponse> {
4564
+ async updateWebhook(requestParameters: UpdateWebhookRequest | runtime.FlatBody<UpdateWebhookRequest, 'webhookUpdateRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WebhookResponse> {
4465
4565
  const response = await this.updateWebhookRaw(requestParameters, initOverrides);
4466
4566
  return await response.value();
4467
4567
  }
@@ -4469,7 +4569,8 @@ export class BoatApi extends runtime.BaseAPI {
4469
4569
  /**
4470
4570
  * Creates request options for upgradeEnvironment without sending the request
4471
4571
  */
4472
- async upgradeEnvironmentRequestOpts(requestParameters: UpgradeEnvironmentRequest): Promise<runtime.RequestOpts> {
4572
+ async upgradeEnvironmentRequestOpts(input: UpgradeEnvironmentRequest | runtime.FlatBody<UpgradeEnvironmentRequest, 'upgradeSandboxEnvironmentRequest'>): Promise<runtime.RequestOpts> {
4573
+ const requestParameters = runtime.unflattenBody<UpgradeEnvironmentRequest>(input, 'upgradeSandboxEnvironmentRequest', ['environmentId'], []);
4473
4574
  if (requestParameters['environmentId'] == null) {
4474
4575
  throw new runtime.RequiredError(
4475
4576
  'environmentId',
@@ -4508,7 +4609,7 @@ export class BoatApi extends runtime.BaseAPI {
4508
4609
  * Repoints the caller\'s active sandboxes from an older version of this environment to its latest version, scrubbing any owner secrets the new version drops and hot-pushing the new config.
4509
4610
  * Upgrade sandboxes to an environment\'s latest version
4510
4611
  */
4511
- async upgradeEnvironmentRaw(requestParameters: UpgradeEnvironmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UpgradeSandboxEnvironmentResponse>> {
4612
+ async upgradeEnvironmentRaw(requestParameters: UpgradeEnvironmentRequest | runtime.FlatBody<UpgradeEnvironmentRequest, 'upgradeSandboxEnvironmentRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UpgradeSandboxEnvironmentResponse>> {
4512
4613
  const requestOptions = await this.upgradeEnvironmentRequestOpts(requestParameters);
4513
4614
  const response = await this.request(requestOptions, initOverrides);
4514
4615
 
@@ -4519,7 +4620,7 @@ export class BoatApi extends runtime.BaseAPI {
4519
4620
  * Repoints the caller\'s active sandboxes from an older version of this environment to its latest version, scrubbing any owner secrets the new version drops and hot-pushing the new config.
4520
4621
  * Upgrade sandboxes to an environment\'s latest version
4521
4622
  */
4522
- async upgradeEnvironment(requestParameters: UpgradeEnvironmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UpgradeSandboxEnvironmentResponse> {
4623
+ async upgradeEnvironment(requestParameters: UpgradeEnvironmentRequest | runtime.FlatBody<UpgradeEnvironmentRequest, 'upgradeSandboxEnvironmentRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UpgradeSandboxEnvironmentResponse> {
4523
4624
  const response = await this.upgradeEnvironmentRaw(requestParameters, initOverrides);
4524
4625
  return await response.value();
4525
4626
  }
@@ -4590,7 +4691,8 @@ export class BoatApi extends runtime.BaseAPI {
4590
4691
  /**
4591
4692
  * Creates request options for writeFile without sending the request
4592
4693
  */
4593
- async writeFileRequestOpts(requestParameters: WriteFileRequest): Promise<runtime.RequestOpts> {
4694
+ async writeFileRequestOpts(input: WriteFileRequest | runtime.FlatBody<WriteFileRequest, 'fileWriteRequest'>): Promise<runtime.RequestOpts> {
4695
+ const requestParameters = runtime.unflattenBody<WriteFileRequest>(input, 'fileWriteRequest', ['sandboxId'], []);
4594
4696
  if (requestParameters['sandboxId'] == null) {
4595
4697
  throw new runtime.RequiredError(
4596
4698
  'sandboxId',
@@ -4635,7 +4737,7 @@ export class BoatApi extends runtime.BaseAPI {
4635
4737
  /**
4636
4738
  * Write a file in a sandbox
4637
4739
  */
4638
- async writeFileRaw(requestParameters: WriteFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FileWriteResponse>> {
4740
+ async writeFileRaw(requestParameters: WriteFileRequest | runtime.FlatBody<WriteFileRequest, 'fileWriteRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FileWriteResponse>> {
4639
4741
  const requestOptions = await this.writeFileRequestOpts(requestParameters);
4640
4742
  const response = await this.request(requestOptions, initOverrides);
4641
4743
 
@@ -4645,7 +4747,7 @@ export class BoatApi extends runtime.BaseAPI {
4645
4747
  /**
4646
4748
  * Write a file in a sandbox
4647
4749
  */
4648
- async writeFile(requestParameters: WriteFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FileWriteResponse> {
4750
+ async writeFile(requestParameters: WriteFileRequest | runtime.FlatBody<WriteFileRequest, 'fileWriteRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FileWriteResponse> {
4649
4751
  const response = await this.writeFileRaw(requestParameters, initOverrides);
4650
4752
  return await response.value();
4651
4753
  }