@boatdev/sdk 1.0.0 → 1.1.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 (244) hide show
  1. package/.openapi-generator/FILES +22 -0
  2. package/README.md +8 -26
  3. package/dist/apis/BoatApi.d.ts +132 -79
  4. package/dist/apis/BoatApi.js +188 -29
  5. package/dist/esm/apis/BoatApi.d.ts +132 -79
  6. package/dist/esm/apis/BoatApi.js +188 -29
  7. package/dist/esm/models/ActiveOrgResponse.d.ts +52 -0
  8. package/dist/esm/models/ActiveOrgResponse.js +58 -0
  9. package/dist/esm/models/ActiveOrgResponseAllOfActive.d.ts +52 -0
  10. package/dist/esm/models/ActiveOrgResponseAllOfActive.js +58 -0
  11. package/dist/esm/models/ActiveOrgUpdateRequest.d.ts +32 -0
  12. package/dist/esm/models/ActiveOrgUpdateRequest.js +43 -0
  13. package/dist/esm/models/CommandResponse.d.ts +6 -0
  14. package/dist/esm/models/CommandResponse.js +2 -0
  15. package/dist/esm/models/CommandStatusResponse.d.ts +6 -0
  16. package/dist/esm/models/CommandStatusResponse.js +2 -0
  17. package/dist/esm/models/CreateSandboxRequest.d.ts +2 -3
  18. package/dist/esm/models/CreateSandboxRequest.js +1 -2
  19. package/dist/esm/models/CreateSandboxResponse.d.ts +8 -1
  20. package/dist/esm/models/CreateSandboxResponse.js +4 -1
  21. package/dist/esm/models/DeletionOperation.d.ts +24 -0
  22. package/dist/esm/models/DeletionOperation.js +15 -0
  23. package/dist/esm/models/DeletionOperationListResponse.d.ts +52 -0
  24. package/dist/esm/models/DeletionOperationListResponse.js +58 -0
  25. package/dist/esm/models/ForkRequest.d.ts +1 -2
  26. package/dist/esm/models/ForkRequest.js +1 -2
  27. package/dist/esm/models/LimitsFields.d.ts +80 -0
  28. package/dist/esm/models/LimitsFields.js +28 -0
  29. package/dist/esm/models/LimitsFieldsCurrentLimits.d.ts +6 -0
  30. package/dist/esm/models/LimitsFieldsCurrentLimits.js +2 -0
  31. package/dist/esm/models/LimitsFieldsGiftLimit.d.ts +50 -0
  32. package/dist/esm/models/LimitsFieldsGiftLimit.js +47 -0
  33. package/dist/esm/models/LimitsFieldsSandboxPlanTiersInner.d.ts +80 -0
  34. package/dist/esm/models/LimitsFieldsSandboxPlanTiersInner.js +57 -0
  35. package/dist/esm/models/LimitsResponse.d.ts +80 -0
  36. package/dist/esm/models/LimitsResponse.js +28 -0
  37. package/dist/esm/models/MeResponseAllOfUser.d.ts +109 -0
  38. package/dist/esm/models/MeResponseAllOfUser.js +47 -0
  39. package/dist/esm/models/Org.d.ts +84 -0
  40. package/dist/esm/models/Org.js +79 -0
  41. package/dist/esm/models/OrgListResponse.d.ts +58 -0
  42. package/dist/esm/models/OrgListResponse.js +62 -0
  43. package/dist/esm/models/PromptEventData.d.ts +20 -0
  44. package/dist/esm/models/PromptEventData.js +8 -0
  45. package/dist/esm/models/PromptEventDataAttachmentsInner.d.ts +44 -0
  46. package/dist/esm/models/PromptEventDataAttachmentsInner.js +45 -0
  47. package/dist/esm/models/PromptEventDataCitationsInner.d.ts +50 -0
  48. package/dist/esm/models/PromptEventDataCitationsInner.js +47 -0
  49. package/dist/esm/models/RepoSelectionResponse.d.ts +6 -0
  50. package/dist/esm/models/RepoSelectionResponse.js +2 -0
  51. package/dist/esm/models/ReposResponse.d.ts +6 -0
  52. package/dist/esm/models/ReposResponse.js +2 -0
  53. package/dist/esm/models/Repository.d.ts +18 -0
  54. package/dist/esm/models/Repository.js +6 -0
  55. package/dist/esm/models/ResponseEventData.d.ts +6 -0
  56. package/dist/esm/models/ResponseEventData.js +2 -0
  57. package/dist/esm/models/ResumeRequest.d.ts +1 -2
  58. package/dist/esm/models/ResumeRequest.js +1 -2
  59. package/dist/esm/models/Sandbox.d.ts +43 -4
  60. package/dist/esm/models/Sandbox.js +21 -3
  61. package/dist/esm/models/SandboxActionResponse.d.ts +12 -0
  62. package/dist/esm/models/SandboxActionResponse.js +4 -0
  63. package/dist/esm/models/SandboxEnvironment.d.ts +12 -0
  64. package/dist/esm/models/SandboxEnvironment.js +4 -0
  65. package/dist/esm/models/SandboxEnvironmentListResponse.d.ts +26 -0
  66. package/dist/esm/models/SandboxEnvironmentListResponse.js +16 -0
  67. package/dist/esm/models/SandboxInfoResponse.d.ts +6 -0
  68. package/dist/esm/models/SandboxInfoResponse.js +2 -0
  69. package/dist/esm/models/SandboxTeam.d.ts +38 -0
  70. package/dist/esm/models/SandboxTeam.js +47 -0
  71. package/dist/esm/models/SandboxUsageResponse.d.ts +1 -2
  72. package/dist/esm/models/SandboxUsageResponse.js +1 -2
  73. package/dist/esm/models/SecretsResponse.d.ts +6 -0
  74. package/dist/esm/models/SecretsResponse.js +2 -0
  75. package/dist/esm/models/SelectedRepository.d.ts +18 -0
  76. package/dist/esm/models/SelectedRepository.js +6 -0
  77. package/dist/esm/models/SnapshotChunk.d.ts +2 -2
  78. package/dist/esm/models/SnapshotSummary.d.ts +3 -3
  79. package/dist/esm/models/SshKeyResponse.d.ts +12 -0
  80. package/dist/esm/models/SshKeyResponse.js +4 -0
  81. package/dist/esm/models/UpgradeSandboxEnvironmentResponse.d.ts +18 -0
  82. package/dist/esm/models/UpgradeSandboxEnvironmentResponse.js +6 -0
  83. package/dist/esm/models/index.d.ts +11 -0
  84. package/dist/esm/models/index.js +11 -0
  85. package/dist/esm/runtime.d.ts +8 -0
  86. package/dist/esm/runtime.js +18 -0
  87. package/dist/models/ActiveOrgResponse.d.ts +52 -0
  88. package/dist/models/ActiveOrgResponse.js +66 -0
  89. package/dist/models/ActiveOrgResponseAllOfActive.d.ts +52 -0
  90. package/dist/models/ActiveOrgResponseAllOfActive.js +66 -0
  91. package/dist/models/ActiveOrgUpdateRequest.d.ts +32 -0
  92. package/dist/models/ActiveOrgUpdateRequest.js +50 -0
  93. package/dist/models/CommandResponse.d.ts +6 -0
  94. package/dist/models/CommandResponse.js +2 -0
  95. package/dist/models/CommandStatusResponse.d.ts +6 -0
  96. package/dist/models/CommandStatusResponse.js +2 -0
  97. package/dist/models/CreateSandboxRequest.d.ts +2 -3
  98. package/dist/models/CreateSandboxRequest.js +1 -2
  99. package/dist/models/CreateSandboxResponse.d.ts +8 -1
  100. package/dist/models/CreateSandboxResponse.js +4 -1
  101. package/dist/models/DeletionOperation.d.ts +24 -0
  102. package/dist/models/DeletionOperation.js +16 -1
  103. package/dist/models/DeletionOperationListResponse.d.ts +52 -0
  104. package/dist/models/DeletionOperationListResponse.js +66 -0
  105. package/dist/models/ForkRequest.d.ts +1 -2
  106. package/dist/models/ForkRequest.js +1 -2
  107. package/dist/models/LimitsFields.d.ts +80 -0
  108. package/dist/models/LimitsFields.js +28 -0
  109. package/dist/models/LimitsFieldsCurrentLimits.d.ts +6 -0
  110. package/dist/models/LimitsFieldsCurrentLimits.js +2 -0
  111. package/dist/models/LimitsFieldsGiftLimit.d.ts +50 -0
  112. package/dist/models/LimitsFieldsGiftLimit.js +54 -0
  113. package/dist/models/LimitsFieldsSandboxPlanTiersInner.d.ts +80 -0
  114. package/dist/models/LimitsFieldsSandboxPlanTiersInner.js +64 -0
  115. package/dist/models/LimitsResponse.d.ts +80 -0
  116. package/dist/models/LimitsResponse.js +28 -0
  117. package/dist/models/MeResponseAllOfUser.d.ts +109 -0
  118. package/dist/models/MeResponseAllOfUser.js +48 -0
  119. package/dist/models/Org.d.ts +84 -0
  120. package/dist/models/Org.js +87 -0
  121. package/dist/models/OrgListResponse.d.ts +58 -0
  122. package/dist/models/OrgListResponse.js +70 -0
  123. package/dist/models/PromptEventData.d.ts +20 -0
  124. package/dist/models/PromptEventData.js +8 -0
  125. package/dist/models/PromptEventDataAttachmentsInner.d.ts +44 -0
  126. package/dist/models/PromptEventDataAttachmentsInner.js +52 -0
  127. package/dist/models/PromptEventDataCitationsInner.d.ts +50 -0
  128. package/dist/models/PromptEventDataCitationsInner.js +54 -0
  129. package/dist/models/RepoSelectionResponse.d.ts +6 -0
  130. package/dist/models/RepoSelectionResponse.js +2 -0
  131. package/dist/models/ReposResponse.d.ts +6 -0
  132. package/dist/models/ReposResponse.js +2 -0
  133. package/dist/models/Repository.d.ts +18 -0
  134. package/dist/models/Repository.js +6 -0
  135. package/dist/models/ResponseEventData.d.ts +6 -0
  136. package/dist/models/ResponseEventData.js +2 -0
  137. package/dist/models/ResumeRequest.d.ts +1 -2
  138. package/dist/models/ResumeRequest.js +1 -2
  139. package/dist/models/Sandbox.d.ts +43 -4
  140. package/dist/models/Sandbox.js +22 -4
  141. package/dist/models/SandboxActionResponse.d.ts +12 -0
  142. package/dist/models/SandboxActionResponse.js +4 -0
  143. package/dist/models/SandboxEnvironment.d.ts +12 -0
  144. package/dist/models/SandboxEnvironment.js +4 -0
  145. package/dist/models/SandboxEnvironmentListResponse.d.ts +26 -0
  146. package/dist/models/SandboxEnvironmentListResponse.js +17 -0
  147. package/dist/models/SandboxInfoResponse.d.ts +6 -0
  148. package/dist/models/SandboxInfoResponse.js +2 -0
  149. package/dist/models/SandboxTeam.d.ts +38 -0
  150. package/dist/models/SandboxTeam.js +54 -0
  151. package/dist/models/SandboxUsageResponse.d.ts +1 -2
  152. package/dist/models/SandboxUsageResponse.js +1 -2
  153. package/dist/models/SecretsResponse.d.ts +6 -0
  154. package/dist/models/SecretsResponse.js +2 -0
  155. package/dist/models/SelectedRepository.d.ts +18 -0
  156. package/dist/models/SelectedRepository.js +6 -0
  157. package/dist/models/SnapshotChunk.d.ts +2 -2
  158. package/dist/models/SnapshotSummary.d.ts +3 -3
  159. package/dist/models/SshKeyResponse.d.ts +12 -0
  160. package/dist/models/SshKeyResponse.js +4 -0
  161. package/dist/models/UpgradeSandboxEnvironmentResponse.d.ts +18 -0
  162. package/dist/models/UpgradeSandboxEnvironmentResponse.js +6 -0
  163. package/dist/models/index.d.ts +11 -0
  164. package/dist/models/index.js +11 -0
  165. package/dist/runtime.d.ts +8 -0
  166. package/dist/runtime.js +19 -0
  167. package/docs/ActiveOrgResponse.md +36 -0
  168. package/docs/ActiveOrgResponseAllOfActive.md +36 -0
  169. package/docs/ActiveOrgUpdateRequest.md +32 -0
  170. package/docs/BoatApi.md +228 -8
  171. package/docs/Command200Response.md +2 -0
  172. package/docs/CommandResponse.md +2 -0
  173. package/docs/CommandStatusResponse.md +2 -0
  174. package/docs/CreateSandboxResponse.md +2 -0
  175. package/docs/DeletionOperation.md +4 -0
  176. package/docs/DeletionOperationListResponse.md +36 -0
  177. package/docs/LimitsFields.md +26 -0
  178. package/docs/LimitsFieldsCurrentLimits.md +2 -0
  179. package/docs/LimitsFieldsGiftLimit.md +39 -0
  180. package/docs/LimitsFieldsSandboxPlanTiersInner.md +48 -0
  181. package/docs/LimitsResponse.md +26 -0
  182. package/docs/MeResponseAllOfUser.md +30 -0
  183. package/docs/Org.md +44 -0
  184. package/docs/OrgListResponse.md +38 -0
  185. package/docs/PromptEventData.md +6 -0
  186. package/docs/PromptEventDataAttachmentsInner.md +36 -0
  187. package/docs/PromptEventDataCitationsInner.md +38 -0
  188. package/docs/RepoSelectionResponse.md +2 -0
  189. package/docs/ReposResponse.md +2 -0
  190. package/docs/Repository.md +6 -0
  191. package/docs/ResponseEventData.md +2 -0
  192. package/docs/Sandbox.md +10 -0
  193. package/docs/SandboxActionResponse.md +4 -0
  194. package/docs/SandboxEnvironment.md +4 -0
  195. package/docs/SandboxEnvironmentListResponse.md +4 -0
  196. package/docs/SandboxInfoResponse.md +2 -0
  197. package/docs/SandboxTeam.md +35 -0
  198. package/docs/SecretsResponse.md +2 -0
  199. package/docs/SelectedRepository.md +6 -0
  200. package/docs/SshKeyResponse.md +4 -0
  201. package/docs/UpgradeSandboxEnvironmentResponse.md +6 -0
  202. package/package.json +1 -1
  203. package/src/apis/BoatApi.ts +304 -79
  204. package/src/models/ActiveOrgResponse.ts +102 -0
  205. package/src/models/ActiveOrgResponseAllOfActive.ts +95 -0
  206. package/src/models/ActiveOrgUpdateRequest.ts +66 -0
  207. package/src/models/CommandResponse.ts +8 -0
  208. package/src/models/CommandStatusResponse.ts +8 -0
  209. package/src/models/CreateSandboxRequest.ts +3 -4
  210. package/src/models/CreateSandboxResponse.ts +11 -2
  211. package/src/models/DeletionOperation.ts +29 -0
  212. package/src/models/DeletionOperationListResponse.ts +102 -0
  213. package/src/models/ForkRequest.ts +2 -3
  214. package/src/models/LimitsFields.ts +118 -0
  215. package/src/models/LimitsFieldsCurrentLimits.ts +8 -0
  216. package/src/models/LimitsFieldsGiftLimit.ts +89 -0
  217. package/src/models/LimitsFieldsSandboxPlanTiersInner.ts +129 -0
  218. package/src/models/LimitsResponse.ts +118 -0
  219. package/src/models/MeResponseAllOfUser.ts +143 -0
  220. package/src/models/Org.ts +139 -0
  221. package/src/models/OrgListResponse.ts +111 -0
  222. package/src/models/PromptEventData.ts +39 -0
  223. package/src/models/PromptEventDataAttachmentsInner.ts +81 -0
  224. package/src/models/PromptEventDataCitationsInner.ts +89 -0
  225. package/src/models/RepoSelectionResponse.ts +8 -0
  226. package/src/models/ReposResponse.ts +8 -0
  227. package/src/models/Repository.ts +24 -0
  228. package/src/models/ResponseEventData.ts +8 -0
  229. package/src/models/ResumeRequest.ts +2 -3
  230. package/src/models/Sandbox.ts +63 -6
  231. package/src/models/SandboxActionResponse.ts +16 -0
  232. package/src/models/SandboxEnvironment.ts +16 -0
  233. package/src/models/SandboxEnvironmentListResponse.ts +34 -0
  234. package/src/models/SandboxInfoResponse.ts +8 -0
  235. package/src/models/SandboxTeam.ts +75 -0
  236. package/src/models/SandboxUsageResponse.ts +2 -3
  237. package/src/models/SecretsResponse.ts +8 -0
  238. package/src/models/SelectedRepository.ts +24 -0
  239. package/src/models/SnapshotChunk.ts +2 -2
  240. package/src/models/SnapshotSummary.ts +3 -3
  241. package/src/models/SshKeyResponse.ts +16 -0
  242. package/src/models/UpgradeSandboxEnvironmentResponse.ts +24 -0
  243. package/src/models/index.ts +11 -0
  244. package/src/runtime.ts +23 -0
@@ -13,6 +13,16 @@
13
13
  */
14
14
 
15
15
  import * as runtime from '../runtime';
16
+ import {
17
+ type ActiveOrgResponse,
18
+ ActiveOrgResponseFromJSON,
19
+ ActiveOrgResponseToJSON,
20
+ } from '../models/ActiveOrgResponse';
21
+ import {
22
+ type ActiveOrgUpdateRequest,
23
+ ActiveOrgUpdateRequestFromJSON,
24
+ ActiveOrgUpdateRequestToJSON,
25
+ } from '../models/ActiveOrgUpdateRequest';
16
26
  import {
17
27
  type AddEnvironmentRepoRequest,
18
28
  AddEnvironmentRepoRequestFromJSON,
@@ -93,6 +103,11 @@ import {
93
103
  DataRetentionUpdateRequestFromJSON,
94
104
  DataRetentionUpdateRequestToJSON,
95
105
  } from '../models/DataRetentionUpdateRequest';
106
+ import {
107
+ type DeletionOperationListResponse,
108
+ DeletionOperationListResponseFromJSON,
109
+ DeletionOperationListResponseToJSON,
110
+ } from '../models/DeletionOperationListResponse';
96
111
  import {
97
112
  type DeletionOperationResponse,
98
113
  DeletionOperationResponseFromJSON,
@@ -188,6 +203,11 @@ import {
188
203
  NamedSnapshotSavingResponseFromJSON,
189
204
  NamedSnapshotSavingResponseToJSON,
190
205
  } from '../models/NamedSnapshotSavingResponse';
206
+ import {
207
+ type OrgListResponse,
208
+ OrgListResponseFromJSON,
209
+ OrgListResponseToJSON,
210
+ } from '../models/OrgListResponse';
191
211
  import {
192
212
  type PromptRequest,
193
213
  PromptRequestFromJSON,
@@ -450,6 +470,11 @@ export interface DeleteSandboxRequest {
450
470
  sandboxId: string;
451
471
  }
452
472
 
473
+ export interface DeleteSandboxSnapshotsRequest {
474
+ sandboxId: string;
475
+ xAsciiConfirmDelete: string;
476
+ }
477
+
453
478
  export interface DeleteSnapshotRequest {
454
479
  snapshotId: string;
455
480
  xAsciiConfirmDelete: string;
@@ -600,6 +625,10 @@ export interface SelectRepoRequest {
600
625
  repoSelectionRequest: RepoSelectionRequest;
601
626
  }
602
627
 
628
+ export interface SetActiveOrganizationRequest {
629
+ activeOrgUpdateRequest: ActiveOrgUpdateRequest;
630
+ }
631
+
603
632
  export interface SetEnvironmentSecretFileOperationRequest {
604
633
  environmentId: string;
605
634
  setEnvironmentSecretFileRequest: SetEnvironmentSecretFileRequest;
@@ -674,7 +703,8 @@ export class BoatApi extends runtime.BaseAPI {
674
703
  /**
675
704
  * Creates request options for addEnvironmentRepo without sending the request
676
705
  */
677
- 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'], []);
678
708
  if (requestParameters['environmentId'] == null) {
679
709
  throw new runtime.RequiredError(
680
710
  'environmentId',
@@ -720,7 +750,7 @@ export class BoatApi extends runtime.BaseAPI {
720
750
  * Adds a repository (or updates its base branch) by database id from the repository list. Mints a new immutable version.
721
751
  * Add a repository to an environment
722
752
  */
723
- 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>> {
724
754
  const requestOptions = await this.addEnvironmentRepoRequestOpts(requestParameters);
725
755
  const response = await this.request(requestOptions, initOverrides);
726
756
 
@@ -731,7 +761,7 @@ export class BoatApi extends runtime.BaseAPI {
731
761
  * Adds a repository (or updates its base branch) by database id from the repository list. Mints a new immutable version.
732
762
  * Add a repository to an environment
733
763
  */
734
- 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> {
735
765
  const response = await this.addEnvironmentRepoRaw(requestParameters, initOverrides);
736
766
  return await response.value();
737
767
  }
@@ -905,7 +935,8 @@ export class BoatApi extends runtime.BaseAPI {
905
935
  /**
906
936
  * Creates request options for command without sending the request
907
937
  */
908
- 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'], []);
909
940
  if (requestParameters['sandboxId'] == null) {
910
941
  throw new runtime.RequiredError(
911
942
  'sandboxId',
@@ -951,7 +982,7 @@ export class BoatApi extends runtime.BaseAPI {
951
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.
952
983
  * Execute a command in a sandbox
953
984
  */
954
- 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>> {
955
986
  const requestOptions = await this.commandRequestOpts(requestParameters);
956
987
  const response = await this.request(requestOptions, initOverrides);
957
988
 
@@ -962,7 +993,7 @@ export class BoatApi extends runtime.BaseAPI {
962
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.
963
994
  * Execute a command in a sandbox
964
995
  */
965
- 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> {
966
997
  const response = await this.commandRaw(requestParameters, initOverrides);
967
998
  return await response.value();
968
999
  }
@@ -1090,7 +1121,8 @@ export class BoatApi extends runtime.BaseAPI {
1090
1121
  /**
1091
1122
  * Creates request options for create without sending the request
1092
1123
  */
1093
- 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']);
1094
1126
  const queryParameters: any = {};
1095
1127
 
1096
1128
  if (requestParameters['org'] != null) {
@@ -1133,7 +1165,7 @@ export class BoatApi extends runtime.BaseAPI {
1133
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.
1134
1166
  * Create sandbox
1135
1167
  */
1136
- 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>> {
1137
1169
  const requestOptions = await this.createRequestOpts(requestParameters);
1138
1170
  const response = await this.request(requestOptions, initOverrides);
1139
1171
 
@@ -1144,7 +1176,7 @@ export class BoatApi extends runtime.BaseAPI {
1144
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.
1145
1177
  * Create sandbox
1146
1178
  */
1147
- 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> {
1148
1180
  const response = await this.createRaw(requestParameters, initOverrides);
1149
1181
  return await response.value();
1150
1182
  }
@@ -1152,7 +1184,8 @@ export class BoatApi extends runtime.BaseAPI {
1152
1184
  /**
1153
1185
  * Creates request options for createEnvironment without sending the request
1154
1186
  */
1155
- 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', [], []);
1156
1189
  if (requestParameters['createSandboxEnvironmentRequest'] == null) {
1157
1190
  throw new runtime.RequiredError(
1158
1191
  'createSandboxEnvironmentRequest',
@@ -1190,7 +1223,7 @@ export class BoatApi extends runtime.BaseAPI {
1190
1223
  * Create a new named environment. It starts on version 1 with all fine-grained flags on and `safeForThirdParties` off.
1191
1224
  * Create a sandbox environment
1192
1225
  */
1193
- 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>> {
1194
1227
  const requestOptions = await this.createEnvironmentRequestOpts(requestParameters);
1195
1228
  const response = await this.request(requestOptions, initOverrides);
1196
1229
 
@@ -1201,7 +1234,7 @@ export class BoatApi extends runtime.BaseAPI {
1201
1234
  * Create a new named environment. It starts on version 1 with all fine-grained flags on and `safeForThirdParties` off.
1202
1235
  * Create a sandbox environment
1203
1236
  */
1204
- 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> {
1205
1238
  const response = await this.createEnvironmentRaw(requestParameters, initOverrides);
1206
1239
  return await response.value();
1207
1240
  }
@@ -1209,7 +1242,8 @@ export class BoatApi extends runtime.BaseAPI {
1209
1242
  /**
1210
1243
  * Creates request options for createScopedApiKey without sending the request
1211
1244
  */
1212
- 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', [], []);
1213
1247
  if (requestParameters['createScopedApiKeyRequest'] == null) {
1214
1248
  throw new runtime.RequiredError(
1215
1249
  'createScopedApiKeyRequest',
@@ -1247,7 +1281,7 @@ export class BoatApi extends runtime.BaseAPI {
1247
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.
1248
1282
  * Create a scoped API key
1249
1283
  */
1250
- 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>> {
1251
1285
  const requestOptions = await this.createScopedApiKeyRequestOpts(requestParameters);
1252
1286
  const response = await this.request(requestOptions, initOverrides);
1253
1287
 
@@ -1258,7 +1292,7 @@ export class BoatApi extends runtime.BaseAPI {
1258
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.
1259
1293
  * Create a scoped API key
1260
1294
  */
1261
- 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> {
1262
1296
  const response = await this.createScopedApiKeyRaw(requestParameters, initOverrides);
1263
1297
  return await response.value();
1264
1298
  }
@@ -1266,7 +1300,8 @@ export class BoatApi extends runtime.BaseAPI {
1266
1300
  /**
1267
1301
  * Creates request options for createWebhook without sending the request
1268
1302
  */
1269
- 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', [], []);
1270
1305
  if (requestParameters['webhookCreateRequest'] == null) {
1271
1306
  throw new runtime.RequiredError(
1272
1307
  'webhookCreateRequest',
@@ -1304,7 +1339,7 @@ export class BoatApi extends runtime.BaseAPI {
1304
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.
1305
1340
  * Create webhook
1306
1341
  */
1307
- 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>> {
1308
1343
  const requestOptions = await this.createWebhookRequestOpts(requestParameters);
1309
1344
  const response = await this.request(requestOptions, initOverrides);
1310
1345
 
@@ -1315,7 +1350,7 @@ export class BoatApi extends runtime.BaseAPI {
1315
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.
1316
1351
  * Create webhook
1317
1352
  */
1318
- 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> {
1319
1354
  const response = await this.createWebhookRaw(requestParameters, initOverrides);
1320
1355
  return await response.value();
1321
1356
  }
@@ -1688,6 +1723,72 @@ export class BoatApi extends runtime.BaseAPI {
1688
1723
  return await response.value();
1689
1724
  }
1690
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
+
1691
1792
  /**
1692
1793
  * Creates request options for deleteSnapshot without sending the request
1693
1794
  */
@@ -1735,7 +1836,7 @@ export class BoatApi extends runtime.BaseAPI {
1735
1836
  }
1736
1837
 
1737
1838
  /**
1738
- * 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.
1739
1840
  * Permanently delete snapshot data
1740
1841
  */
1741
1842
  async deleteSnapshotRaw(requestParameters: DeleteSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DeletionOperationResponse>> {
@@ -1746,7 +1847,7 @@ export class BoatApi extends runtime.BaseAPI {
1746
1847
  }
1747
1848
 
1748
1849
  /**
1749
- * 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.
1750
1851
  * Permanently delete snapshot data
1751
1852
  */
1752
1853
  async deleteSnapshot(requestParameters: DeleteSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DeletionOperationResponse> {
@@ -1812,7 +1913,8 @@ export class BoatApi extends runtime.BaseAPI {
1812
1913
  /**
1813
1914
  * Creates request options for desktop without sending the request
1814
1915
  */
1815
- 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'], []);
1816
1918
  if (requestParameters['sandboxId'] == null) {
1817
1919
  throw new runtime.RequiredError(
1818
1920
  'sandboxId',
@@ -1859,7 +1961,7 @@ export class BoatApi extends runtime.BaseAPI {
1859
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.
1860
1962
  * Get desktop streaming URL
1861
1963
  */
1862
- 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>> {
1863
1965
  const requestOptions = await this.desktopRequestOpts(requestParameters);
1864
1966
  const response = await this.request(requestOptions, initOverrides);
1865
1967
 
@@ -1870,7 +1972,7 @@ export class BoatApi extends runtime.BaseAPI {
1870
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.
1871
1973
  * Get desktop streaming URL
1872
1974
  */
1873
- 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> {
1874
1976
  const response = await this.desktopRaw(requestParameters, initOverrides);
1875
1977
  return await response.value();
1876
1978
  }
@@ -2000,7 +2102,8 @@ export class BoatApi extends runtime.BaseAPI {
2000
2102
  /**
2001
2103
  * Creates request options for fork without sending the request
2002
2104
  */
2003
- 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'], []);
2004
2107
  if (requestParameters['sandboxId'] == null) {
2005
2108
  throw new runtime.RequiredError(
2006
2109
  'sandboxId',
@@ -2043,7 +2146,7 @@ export class BoatApi extends runtime.BaseAPI {
2043
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.
2044
2147
  * Fork sandbox
2045
2148
  */
2046
- 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>> {
2047
2150
  const requestOptions = await this.forkRequestOpts(requestParameters);
2048
2151
  const response = await this.request(requestOptions, initOverrides);
2049
2152
 
@@ -2054,7 +2157,7 @@ export class BoatApi extends runtime.BaseAPI {
2054
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.
2055
2158
  * Fork sandbox
2056
2159
  */
2057
- 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> {
2058
2161
  const response = await this.forkRaw(requestParameters, initOverrides);
2059
2162
  return await response.value();
2060
2163
  }
@@ -2551,7 +2654,8 @@ export class BoatApi extends runtime.BaseAPI {
2551
2654
  /**
2552
2655
  * Creates request options for hostPort without sending the request
2553
2656
  */
2554
- 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'], []);
2555
2659
  if (requestParameters['sandboxId'] == null) {
2556
2660
  throw new runtime.RequiredError(
2557
2661
  'sandboxId',
@@ -2597,7 +2701,7 @@ export class BoatApi extends runtime.BaseAPI {
2597
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.
2598
2702
  * Expose a sandbox port on a public HTTPS URL
2599
2703
  */
2600
- 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>> {
2601
2705
  const requestOptions = await this.hostPortRequestOpts(requestParameters);
2602
2706
  const response = await this.request(requestOptions, initOverrides);
2603
2707
 
@@ -2608,7 +2712,7 @@ export class BoatApi extends runtime.BaseAPI {
2608
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.
2609
2713
  * Expose a sandbox port on a public HTTPS URL
2610
2714
  */
2611
- 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> {
2612
2716
  const response = await this.hostPortRaw(requestParameters, initOverrides);
2613
2717
  return await response.value();
2614
2718
  }
@@ -2712,7 +2816,7 @@ export class BoatApi extends runtime.BaseAPI {
2712
2816
  }
2713
2817
 
2714
2818
  /**
2715
- * Check remaining machine starts, compute time, credits, access readiness, and concurrent-sandbox capacity for the authenticated account. Pass `org` / `X-Boat-Org` (or `teamId`) to read a team wallet you belong to.
2819
+ * 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.
2716
2820
  * Get Boat limits
2717
2821
  */
2718
2822
  async limitsRaw(requestParameters: LimitsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<LimitsResponse>> {
@@ -2723,7 +2827,7 @@ export class BoatApi extends runtime.BaseAPI {
2723
2827
  }
2724
2828
 
2725
2829
  /**
2726
- * Check remaining machine starts, compute time, credits, access readiness, and concurrent-sandbox capacity for the authenticated account. Pass `org` / `X-Boat-Org` (or `teamId`) to read a team wallet you belong to.
2830
+ * 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.
2727
2831
  * Get Boat limits
2728
2832
  */
2729
2833
  async limits(requestParameters: LimitsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<LimitsResponse> {
@@ -2778,6 +2882,53 @@ export class BoatApi extends runtime.BaseAPI {
2778
2882
  return await response.value();
2779
2883
  }
2780
2884
 
2885
+ /**
2886
+ * Creates request options for listOrganizations without sending the request
2887
+ */
2888
+ async listOrganizationsRequestOpts(): Promise<runtime.RequestOpts> {
2889
+ const queryParameters: any = {};
2890
+
2891
+ const headerParameters: runtime.HTTPHeaders = {};
2892
+
2893
+ if (this.configuration && this.configuration.accessToken) {
2894
+ const token = this.configuration.accessToken;
2895
+ const tokenString = await token("BoatBearerAuth", []);
2896
+
2897
+ if (tokenString) {
2898
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2899
+ }
2900
+ }
2901
+
2902
+ let urlPath = `/orgs`;
2903
+
2904
+ return {
2905
+ path: urlPath,
2906
+ method: 'GET',
2907
+ headers: headerParameters,
2908
+ query: queryParameters,
2909
+ };
2910
+ }
2911
+
2912
+ /**
2913
+ * The wallets this account can bill: your personal account first, then every organization you belong to, each with its id and name. Either spelling works wherever an org is passed (`org`, `X-Boat-Org`, `teamId`). `active` marks the wallet new sandboxes bill when a request names none; change it with `PATCH /orgs/active`.
2914
+ * List organizations
2915
+ */
2916
+ async listOrganizationsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<OrgListResponse>> {
2917
+ const requestOptions = await this.listOrganizationsRequestOpts();
2918
+ const response = await this.request(requestOptions, initOverrides);
2919
+
2920
+ return new runtime.JSONApiResponse(response, (jsonValue) => OrgListResponseFromJSON(jsonValue));
2921
+ }
2922
+
2923
+ /**
2924
+ * The wallets this account can bill: your personal account first, then every organization you belong to, each with its id and name. Either spelling works wherever an org is passed (`org`, `X-Boat-Org`, `teamId`). `active` marks the wallet new sandboxes bill when a request names none; change it with `PATCH /orgs/active`.
2925
+ * List organizations
2926
+ */
2927
+ async listOrganizations(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<OrgListResponse> {
2928
+ const response = await this.listOrganizationsRaw(initOverrides);
2929
+ return await response.value();
2930
+ }
2931
+
2781
2932
  /**
2782
2933
  * Creates request options for listSandboxSnapshots without sending the request
2783
2934
  */
@@ -3001,7 +3152,8 @@ export class BoatApi extends runtime.BaseAPI {
3001
3152
  /**
3002
3153
  * Creates request options for prompt without sending the request
3003
3154
  */
3004
- 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'], []);
3005
3157
  if (requestParameters['sandboxId'] == null) {
3006
3158
  throw new runtime.RequiredError(
3007
3159
  'sandboxId',
@@ -3047,7 +3199,7 @@ export class BoatApi extends runtime.BaseAPI {
3047
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).
3048
3200
  * Prompt Sandbox
3049
3201
  */
3050
- 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>> {
3051
3203
  const requestOptions = await this.promptRequestOpts(requestParameters);
3052
3204
  const response = await this.request(requestOptions, initOverrides);
3053
3205
 
@@ -3058,7 +3210,7 @@ export class BoatApi extends runtime.BaseAPI {
3058
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).
3059
3211
  * Prompt Sandbox
3060
3212
  */
3061
- 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> {
3062
3214
  const response = await this.promptRaw(requestParameters, initOverrides);
3063
3215
  return await response.value();
3064
3216
  }
@@ -3268,7 +3420,8 @@ export class BoatApi extends runtime.BaseAPI {
3268
3420
  /**
3269
3421
  * Creates request options for resume without sending the request
3270
3422
  */
3271
- 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'], []);
3272
3425
  if (requestParameters['sandboxId'] == null) {
3273
3426
  throw new runtime.RequiredError(
3274
3427
  'sandboxId',
@@ -3306,7 +3459,7 @@ export class BoatApi extends runtime.BaseAPI {
3306
3459
  /**
3307
3460
  * Resume sandbox
3308
3461
  */
3309
- 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>> {
3310
3463
  const requestOptions = await this.resumeRequestOpts(requestParameters);
3311
3464
  const response = await this.request(requestOptions, initOverrides);
3312
3465
 
@@ -3316,7 +3469,7 @@ export class BoatApi extends runtime.BaseAPI {
3316
3469
  /**
3317
3470
  * Resume sandbox
3318
3471
  */
3319
- 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> {
3320
3473
  const response = await this.resumeRaw(requestParameters, initOverrides);
3321
3474
  return await response.value();
3322
3475
  }
@@ -3550,7 +3703,8 @@ export class BoatApi extends runtime.BaseAPI {
3550
3703
  /**
3551
3704
  * Creates request options for saveNamedSnapshot without sending the request
3552
3705
  */
3553
- 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', [], []);
3554
3708
  if (requestParameters['namedSnapshotSaveRequest'] == null) {
3555
3709
  throw new runtime.RequiredError(
3556
3710
  'namedSnapshotSaveRequest',
@@ -3588,7 +3742,7 @@ export class BoatApi extends runtime.BaseAPI {
3588
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.
3589
3743
  * Save a named snapshot
3590
3744
  */
3591
- 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>> {
3592
3746
  const requestOptions = await this.saveNamedSnapshotRequestOpts(requestParameters);
3593
3747
  const response = await this.request(requestOptions, initOverrides);
3594
3748
 
@@ -3599,7 +3753,7 @@ export class BoatApi extends runtime.BaseAPI {
3599
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.
3600
3754
  * Save a named snapshot
3601
3755
  */
3602
- 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> {
3603
3757
  const response = await this.saveNamedSnapshotRaw(requestParameters, initOverrides);
3604
3758
  return await response.value();
3605
3759
  }
@@ -3654,7 +3808,8 @@ export class BoatApi extends runtime.BaseAPI {
3654
3808
  /**
3655
3809
  * Creates request options for selectRepo without sending the request
3656
3810
  */
3657
- 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', [], []);
3658
3813
  if (requestParameters['repoSelectionRequest'] == null) {
3659
3814
  throw new runtime.RequiredError(
3660
3815
  'repoSelectionRequest',
@@ -3692,7 +3847,7 @@ export class BoatApi extends runtime.BaseAPI {
3692
3847
  * Idempotently selects one repository for the sandbox environment. Use `databaseId` from `GET /repos` as `repositoryId`; selecting an already-selected repository updates its `baseBranch`.
3693
3848
  * Select repository for sandboxes
3694
3849
  */
3695
- 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>> {
3696
3851
  const requestOptions = await this.selectRepoRequestOpts(requestParameters);
3697
3852
  const response = await this.request(requestOptions, initOverrides);
3698
3853
 
@@ -3703,15 +3858,74 @@ export class BoatApi extends runtime.BaseAPI {
3703
3858
  * Idempotently selects one repository for the sandbox environment. Use `databaseId` from `GET /repos` as `repositoryId`; selecting an already-selected repository updates its `baseBranch`.
3704
3859
  * Select repository for sandboxes
3705
3860
  */
3706
- 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> {
3707
3862
  const response = await this.selectRepoRaw(requestParameters, initOverrides);
3708
3863
  return await response.value();
3709
3864
  }
3710
3865
 
3866
+ /**
3867
+ * Creates request options for setActiveOrganization without sending the request
3868
+ */
3869
+ async setActiveOrganizationRequestOpts(input: SetActiveOrganizationRequest | runtime.FlatBody<SetActiveOrganizationRequest, 'activeOrgUpdateRequest'>): Promise<runtime.RequestOpts> {
3870
+ const requestParameters = runtime.unflattenBody<SetActiveOrganizationRequest>(input, 'activeOrgUpdateRequest', [], []);
3871
+ if (requestParameters['activeOrgUpdateRequest'] == null) {
3872
+ throw new runtime.RequiredError(
3873
+ 'activeOrgUpdateRequest',
3874
+ 'Required parameter "activeOrgUpdateRequest" was null or undefined when calling setActiveOrganization().'
3875
+ );
3876
+ }
3877
+
3878
+ const queryParameters: any = {};
3879
+
3880
+ const headerParameters: runtime.HTTPHeaders = {};
3881
+
3882
+ headerParameters['Content-Type'] = 'application/json';
3883
+
3884
+ if (this.configuration && this.configuration.accessToken) {
3885
+ const token = this.configuration.accessToken;
3886
+ const tokenString = await token("BoatBearerAuth", []);
3887
+
3888
+ if (tokenString) {
3889
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3890
+ }
3891
+ }
3892
+
3893
+ let urlPath = `/orgs/active`;
3894
+
3895
+ return {
3896
+ path: urlPath,
3897
+ method: 'PATCH',
3898
+ headers: headerParameters,
3899
+ query: queryParameters,
3900
+ body: ActiveOrgUpdateRequestToJSON(requestParameters['activeOrgUpdateRequest']),
3901
+ };
3902
+ }
3903
+
3904
+ /**
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.
3906
+ * Set the active organization
3907
+ */
3908
+ async setActiveOrganizationRaw(requestParameters: SetActiveOrganizationRequest | runtime.FlatBody<SetActiveOrganizationRequest, 'activeOrgUpdateRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ActiveOrgResponse>> {
3909
+ const requestOptions = await this.setActiveOrganizationRequestOpts(requestParameters);
3910
+ const response = await this.request(requestOptions, initOverrides);
3911
+
3912
+ return new runtime.JSONApiResponse(response, (jsonValue) => ActiveOrgResponseFromJSON(jsonValue));
3913
+ }
3914
+
3915
+ /**
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.
3917
+ * Set the active organization
3918
+ */
3919
+ async setActiveOrganization(requestParameters: SetActiveOrganizationRequest | runtime.FlatBody<SetActiveOrganizationRequest, 'activeOrgUpdateRequest'>, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ActiveOrgResponse> {
3920
+ const response = await this.setActiveOrganizationRaw(requestParameters, initOverrides);
3921
+ return await response.value();
3922
+ }
3923
+
3711
3924
  /**
3712
3925
  * Creates request options for setEnvironmentSecretFile without sending the request
3713
3926
  */
3714
- 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'], []);
3715
3929
  if (requestParameters['environmentId'] == null) {
3716
3930
  throw new runtime.RequiredError(
3717
3931
  'environmentId',
@@ -3757,7 +3971,7 @@ export class BoatApi extends runtime.BaseAPI {
3757
3971
  * Adds or replaces a single secret file by path. Mints a new immutable version.
3758
3972
  * Write one secret file
3759
3973
  */
3760
- 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>> {
3761
3975
  const requestOptions = await this.setEnvironmentSecretFileRequestOpts(requestParameters);
3762
3976
  const response = await this.request(requestOptions, initOverrides);
3763
3977
 
@@ -3768,7 +3982,7 @@ export class BoatApi extends runtime.BaseAPI {
3768
3982
  * Adds or replaces a single secret file by path. Mints a new immutable version.
3769
3983
  * Write one secret file
3770
3984
  */
3771
- 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> {
3772
3986
  const response = await this.setEnvironmentSecretFileRaw(requestParameters, initOverrides);
3773
3987
  return await response.value();
3774
3988
  }
@@ -3776,7 +3990,8 @@ export class BoatApi extends runtime.BaseAPI {
3776
3990
  /**
3777
3991
  * Creates request options for setEnvironmentVar without sending the request
3778
3992
  */
3779
- 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'], []);
3780
3995
  if (requestParameters['environmentId'] == null) {
3781
3996
  throw new runtime.RequiredError(
3782
3997
  'environmentId',
@@ -3830,7 +4045,7 @@ export class BoatApi extends runtime.BaseAPI {
3830
4045
  * Sets or replaces a single variable without reading or rewriting the rest. Mints a new immutable version.
3831
4046
  * Set one environment variable
3832
4047
  */
3833
- 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>> {
3834
4049
  const requestOptions = await this.setEnvironmentVarRequestOpts(requestParameters);
3835
4050
  const response = await this.request(requestOptions, initOverrides);
3836
4051
 
@@ -3841,7 +4056,7 @@ export class BoatApi extends runtime.BaseAPI {
3841
4056
  * Sets or replaces a single variable without reading or rewriting the rest. Mints a new immutable version.
3842
4057
  * Set one environment variable
3843
4058
  */
3844
- 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> {
3845
4060
  const response = await this.setEnvironmentVarRaw(requestParameters, initOverrides);
3846
4061
  return await response.value();
3847
4062
  }
@@ -3849,7 +4064,8 @@ export class BoatApi extends runtime.BaseAPI {
3849
4064
  /**
3850
4065
  * Creates request options for sshKey without sending the request
3851
4066
  */
3852
- 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'], []);
3853
4069
  if (requestParameters['sandboxId'] == null) {
3854
4070
  throw new runtime.RequiredError(
3855
4071
  'sandboxId',
@@ -3895,7 +4111,7 @@ export class BoatApi extends runtime.BaseAPI {
3895
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.
3896
4112
  * Configure sandbox SSH key
3897
4113
  */
3898
- 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>> {
3899
4115
  const requestOptions = await this.sshKeyRequestOpts(requestParameters);
3900
4116
  const response = await this.request(requestOptions, initOverrides);
3901
4117
 
@@ -3906,7 +4122,7 @@ export class BoatApi extends runtime.BaseAPI {
3906
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.
3907
4123
  * Configure sandbox SSH key
3908
4124
  */
3909
- 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> {
3910
4126
  const response = await this.sshKeyRaw(requestParameters, initOverrides);
3911
4127
  return await response.value();
3912
4128
  }
@@ -3914,7 +4130,8 @@ export class BoatApi extends runtime.BaseAPI {
3914
4130
  /**
3915
4131
  * Creates request options for steer without sending the request
3916
4132
  */
3917
- 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']);
3918
4135
  if (requestParameters['sandboxId'] == null) {
3919
4136
  throw new runtime.RequiredError(
3920
4137
  'sandboxId',
@@ -3964,7 +4181,7 @@ export class BoatApi extends runtime.BaseAPI {
3964
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).
3965
4182
  * Steer a running turn
3966
4183
  */
3967
- 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>> {
3968
4185
  const requestOptions = await this.steerRequestOpts(requestParameters);
3969
4186
  const response = await this.request(requestOptions, initOverrides);
3970
4187
 
@@ -3975,7 +4192,7 @@ export class BoatApi extends runtime.BaseAPI {
3975
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).
3976
4193
  * Steer a running turn
3977
4194
  */
3978
- 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> {
3979
4196
  const response = await this.steerRaw(requestParameters, initOverrides);
3980
4197
  return await response.value();
3981
4198
  }
@@ -3983,7 +4200,8 @@ export class BoatApi extends runtime.BaseAPI {
3983
4200
  /**
3984
4201
  * Creates request options for stop without sending the request
3985
4202
  */
3986
- 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'], []);
3987
4205
  if (requestParameters['sandboxId'] == null) {
3988
4206
  throw new runtime.RequiredError(
3989
4207
  'sandboxId',
@@ -4022,7 +4240,7 @@ export class BoatApi extends runtime.BaseAPI {
4022
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.
4023
4241
  * Stop and archive sandbox
4024
4242
  */
4025
- 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>> {
4026
4244
  const requestOptions = await this.stopRequestOpts(requestParameters);
4027
4245
  const response = await this.request(requestOptions, initOverrides);
4028
4246
 
@@ -4033,7 +4251,7 @@ export class BoatApi extends runtime.BaseAPI {
4033
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.
4034
4252
  * Stop and archive sandbox
4035
4253
  */
4036
- 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> {
4037
4255
  const response = await this.stopRaw(requestParameters, initOverrides);
4038
4256
  return await response.value();
4039
4257
  }
@@ -4041,7 +4259,8 @@ export class BoatApi extends runtime.BaseAPI {
4041
4259
  /**
4042
4260
  * Creates request options for update without sending the request
4043
4261
  */
4044
- 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'], []);
4045
4264
  if (requestParameters['sandboxId'] == null) {
4046
4265
  throw new runtime.RequiredError(
4047
4266
  'sandboxId',
@@ -4086,7 +4305,7 @@ export class BoatApi extends runtime.BaseAPI {
4086
4305
  /**
4087
4306
  * Update sandbox
4088
4307
  */
4089
- 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>> {
4090
4309
  const requestOptions = await this.updateRequestOpts(requestParameters);
4091
4310
  const response = await this.request(requestOptions, initOverrides);
4092
4311
 
@@ -4096,7 +4315,7 @@ export class BoatApi extends runtime.BaseAPI {
4096
4315
  /**
4097
4316
  * Update sandbox
4098
4317
  */
4099
- 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> {
4100
4319
  const response = await this.updateRaw(requestParameters, initOverrides);
4101
4320
  return await response.value();
4102
4321
  }
@@ -4104,7 +4323,8 @@ export class BoatApi extends runtime.BaseAPI {
4104
4323
  /**
4105
4324
  * Creates request options for updateDataRetention without sending the request
4106
4325
  */
4107
- 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', [], []);
4108
4328
  if (requestParameters['dataRetentionUpdateRequest'] == null) {
4109
4329
  throw new runtime.RequiredError(
4110
4330
  'dataRetentionUpdateRequest',
@@ -4142,7 +4362,7 @@ export class BoatApi extends runtime.BaseAPI {
4142
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.
4143
4363
  * Update account data-retention policy
4144
4364
  */
4145
- 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>> {
4146
4366
  const requestOptions = await this.updateDataRetentionRequestOpts(requestParameters);
4147
4367
  const response = await this.request(requestOptions, initOverrides);
4148
4368
 
@@ -4153,7 +4373,7 @@ export class BoatApi extends runtime.BaseAPI {
4153
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.
4154
4374
  * Update account data-retention policy
4155
4375
  */
4156
- 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> {
4157
4377
  const response = await this.updateDataRetentionRaw(requestParameters, initOverrides);
4158
4378
  return await response.value();
4159
4379
  }
@@ -4161,7 +4381,8 @@ export class BoatApi extends runtime.BaseAPI {
4161
4381
  /**
4162
4382
  * Creates request options for updateEnvironment without sending the request
4163
4383
  */
4164
- 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'], []);
4165
4386
  if (requestParameters['environmentId'] == null) {
4166
4387
  throw new runtime.RequiredError(
4167
4388
  'environmentId',
@@ -4207,7 +4428,7 @@ export class BoatApi extends runtime.BaseAPI {
4207
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.
4208
4429
  * Update a sandbox environment
4209
4430
  */
4210
- 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>> {
4211
4432
  const requestOptions = await this.updateEnvironmentRequestOpts(requestParameters);
4212
4433
  const response = await this.request(requestOptions, initOverrides);
4213
4434
 
@@ -4218,7 +4439,7 @@ export class BoatApi extends runtime.BaseAPI {
4218
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.
4219
4440
  * Update a sandbox environment
4220
4441
  */
4221
- 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> {
4222
4443
  const response = await this.updateEnvironmentRaw(requestParameters, initOverrides);
4223
4444
  return await response.value();
4224
4445
  }
@@ -4226,7 +4447,8 @@ export class BoatApi extends runtime.BaseAPI {
4226
4447
  /**
4227
4448
  * Creates request options for updateSecrets without sending the request
4228
4449
  */
4229
- 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', [], []);
4230
4452
  if (requestParameters['secretsUpdateRequest'] == null) {
4231
4453
  throw new runtime.RequiredError(
4232
4454
  'secretsUpdateRequest',
@@ -4263,7 +4485,7 @@ export class BoatApi extends runtime.BaseAPI {
4263
4485
  /**
4264
4486
  * Update Boat secrets setup
4265
4487
  */
4266
- 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>> {
4267
4489
  const requestOptions = await this.updateSecretsRequestOpts(requestParameters);
4268
4490
  const response = await this.request(requestOptions, initOverrides);
4269
4491
 
@@ -4273,7 +4495,7 @@ export class BoatApi extends runtime.BaseAPI {
4273
4495
  /**
4274
4496
  * Update Boat secrets setup
4275
4497
  */
4276
- 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> {
4277
4499
  const response = await this.updateSecretsRaw(requestParameters, initOverrides);
4278
4500
  return await response.value();
4279
4501
  }
@@ -4281,7 +4503,8 @@ export class BoatApi extends runtime.BaseAPI {
4281
4503
  /**
4282
4504
  * Creates request options for updateWebhook without sending the request
4283
4505
  */
4284
- 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'], []);
4285
4508
  if (requestParameters['webhookId'] == null) {
4286
4509
  throw new runtime.RequiredError(
4287
4510
  'webhookId',
@@ -4327,7 +4550,7 @@ export class BoatApi extends runtime.BaseAPI {
4327
4550
  * Updates the name, endpoint URL, or subscribed events without changing the signing secret.
4328
4551
  * Update webhook
4329
4552
  */
4330
- 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>> {
4331
4554
  const requestOptions = await this.updateWebhookRequestOpts(requestParameters);
4332
4555
  const response = await this.request(requestOptions, initOverrides);
4333
4556
 
@@ -4338,7 +4561,7 @@ export class BoatApi extends runtime.BaseAPI {
4338
4561
  * Updates the name, endpoint URL, or subscribed events without changing the signing secret.
4339
4562
  * Update webhook
4340
4563
  */
4341
- 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> {
4342
4565
  const response = await this.updateWebhookRaw(requestParameters, initOverrides);
4343
4566
  return await response.value();
4344
4567
  }
@@ -4346,7 +4569,8 @@ export class BoatApi extends runtime.BaseAPI {
4346
4569
  /**
4347
4570
  * Creates request options for upgradeEnvironment without sending the request
4348
4571
  */
4349
- 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'], []);
4350
4574
  if (requestParameters['environmentId'] == null) {
4351
4575
  throw new runtime.RequiredError(
4352
4576
  'environmentId',
@@ -4385,7 +4609,7 @@ export class BoatApi extends runtime.BaseAPI {
4385
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.
4386
4610
  * Upgrade sandboxes to an environment\'s latest version
4387
4611
  */
4388
- 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>> {
4389
4613
  const requestOptions = await this.upgradeEnvironmentRequestOpts(requestParameters);
4390
4614
  const response = await this.request(requestOptions, initOverrides);
4391
4615
 
@@ -4396,7 +4620,7 @@ export class BoatApi extends runtime.BaseAPI {
4396
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.
4397
4621
  * Upgrade sandboxes to an environment\'s latest version
4398
4622
  */
4399
- 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> {
4400
4624
  const response = await this.upgradeEnvironmentRaw(requestParameters, initOverrides);
4401
4625
  return await response.value();
4402
4626
  }
@@ -4467,7 +4691,8 @@ export class BoatApi extends runtime.BaseAPI {
4467
4691
  /**
4468
4692
  * Creates request options for writeFile without sending the request
4469
4693
  */
4470
- 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'], []);
4471
4696
  if (requestParameters['sandboxId'] == null) {
4472
4697
  throw new runtime.RequiredError(
4473
4698
  'sandboxId',
@@ -4512,7 +4737,7 @@ export class BoatApi extends runtime.BaseAPI {
4512
4737
  /**
4513
4738
  * Write a file in a sandbox
4514
4739
  */
4515
- 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>> {
4516
4741
  const requestOptions = await this.writeFileRequestOpts(requestParameters);
4517
4742
  const response = await this.request(requestOptions, initOverrides);
4518
4743
 
@@ -4522,7 +4747,7 @@ export class BoatApi extends runtime.BaseAPI {
4522
4747
  /**
4523
4748
  * Write a file in a sandbox
4524
4749
  */
4525
- 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> {
4526
4751
  const response = await this.writeFileRaw(requestParameters, initOverrides);
4527
4752
  return await response.value();
4528
4753
  }