@boatdev/sdk 1.0.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 (777) hide show
  1. package/.openapi-generator/FILES +259 -0
  2. package/.openapi-generator/VERSION +1 -0
  3. package/.openapi-generator-ignore +23 -0
  4. package/LICENSE +21 -0
  5. package/README.md +151 -0
  6. package/dist/apis/BoatApi.d.ts +1275 -0
  7. package/dist/apis/BoatApi.js +3084 -0
  8. package/dist/apis/index.d.ts +1 -0
  9. package/dist/apis/index.js +19 -0
  10. package/dist/boat-helpers.d.ts +56 -0
  11. package/dist/boat-helpers.js +176 -0
  12. package/dist/esm/apis/BoatApi.d.ts +1275 -0
  13. package/dist/esm/apis/BoatApi.js +3047 -0
  14. package/dist/esm/apis/index.d.ts +1 -0
  15. package/dist/esm/apis/index.js +3 -0
  16. package/dist/esm/boat-helpers.d.ts +56 -0
  17. package/dist/esm/boat-helpers.js +163 -0
  18. package/dist/esm/index.d.ts +4 -0
  19. package/dist/esm/index.js +6 -0
  20. package/dist/esm/models/AddEnvironmentRepoRequest.d.ts +38 -0
  21. package/dist/esm/models/AddEnvironmentRepoRequest.js +45 -0
  22. package/dist/esm/models/ApiKey.d.ts +121 -0
  23. package/dist/esm/models/ApiKey.js +97 -0
  24. package/dist/esm/models/ApiKeyCatalog.d.ts +65 -0
  25. package/dist/esm/models/ApiKeyCatalog.js +62 -0
  26. package/dist/esm/models/ApiKeyCatalogScopeResources.d.ts +39 -0
  27. package/dist/esm/models/ApiKeyCatalogScopeResources.js +48 -0
  28. package/dist/esm/models/ApiKeyCreatedResource.d.ts +64 -0
  29. package/dist/esm/models/ApiKeyCreatedResource.js +66 -0
  30. package/dist/esm/models/ApiKeyRequestUsage.d.ts +45 -0
  31. package/dist/esm/models/ApiKeyRequestUsage.js +53 -0
  32. package/dist/esm/models/ApiKeyResourceTotals.d.ts +44 -0
  33. package/dist/esm/models/ApiKeyResourceTotals.js +51 -0
  34. package/dist/esm/models/ApiKeyRevokeResponse.d.ts +45 -0
  35. package/dist/esm/models/ApiKeyRevokeResponse.js +52 -0
  36. package/dist/esm/models/ApiKeyScope.d.ts +57 -0
  37. package/dist/esm/models/ApiKeyScope.js +50 -0
  38. package/dist/esm/models/ApiKeyScopeResource.d.ts +50 -0
  39. package/dist/esm/models/ApiKeyScopeResource.js +55 -0
  40. package/dist/esm/models/ApiKeyScopeSandboxes.d.ts +21 -0
  41. package/dist/esm/models/ApiKeyScopeSandboxes.js +47 -0
  42. package/dist/esm/models/ApiKeySecretResponse.d.ts +57 -0
  43. package/dist/esm/models/ApiKeySecretResponse.js +60 -0
  44. package/dist/esm/models/ApiKeyUsageResponse.d.ts +140 -0
  45. package/dist/esm/models/ApiKeyUsageResponse.js +110 -0
  46. package/dist/esm/models/ApiKeysResponse.d.ts +52 -0
  47. package/dist/esm/models/ApiKeysResponse.js +57 -0
  48. package/dist/esm/models/Command200Response.d.ts +23 -0
  49. package/dist/esm/models/Command200Response.js +51 -0
  50. package/dist/esm/models/CommandRequest.d.ts +50 -0
  51. package/dist/esm/models/CommandRequest.js +49 -0
  52. package/dist/esm/models/CommandResponse.d.ts +111 -0
  53. package/dist/esm/models/CommandResponse.js +85 -0
  54. package/dist/esm/models/CommandStartedResponse.d.ts +93 -0
  55. package/dist/esm/models/CommandStartedResponse.js +79 -0
  56. package/dist/esm/models/CommandStatusResponse.d.ts +162 -0
  57. package/dist/esm/models/CommandStatusResponse.js +111 -0
  58. package/dist/esm/models/CompletionEvent.d.ts +65 -0
  59. package/dist/esm/models/CompletionEvent.js +63 -0
  60. package/dist/esm/models/Conversation.d.ts +80 -0
  61. package/dist/esm/models/Conversation.js +75 -0
  62. package/dist/esm/models/ConversationsResponse.d.ts +58 -0
  63. package/dist/esm/models/ConversationsResponse.js +62 -0
  64. package/dist/esm/models/CreateSandboxEnvironmentRequest.d.ts +32 -0
  65. package/dist/esm/models/CreateSandboxEnvironmentRequest.js +43 -0
  66. package/dist/esm/models/CreateSandboxRequest.d.ts +92 -0
  67. package/dist/esm/models/CreateSandboxRequest.js +66 -0
  68. package/dist/esm/models/CreateSandboxResponse.d.ts +71 -0
  69. package/dist/esm/models/CreateSandboxResponse.js +72 -0
  70. package/dist/esm/models/CreateScopedApiKey503Response.d.ts +58 -0
  71. package/dist/esm/models/CreateScopedApiKey503Response.js +63 -0
  72. package/dist/esm/models/CreateScopedApiKeyRequest.d.ts +72 -0
  73. package/dist/esm/models/CreateScopedApiKeyRequest.js +60 -0
  74. package/dist/esm/models/DataRetentionPolicyResponse.d.ts +70 -0
  75. package/dist/esm/models/DataRetentionPolicyResponse.js +66 -0
  76. package/dist/esm/models/DataRetentionUpdateRequest.d.ts +45 -0
  77. package/dist/esm/models/DataRetentionUpdateRequest.js +51 -0
  78. package/dist/esm/models/DeletionOperation.d.ts +101 -0
  79. package/dist/esm/models/DeletionOperation.js +95 -0
  80. package/dist/esm/models/DeletionOperationResponse.d.ts +54 -0
  81. package/dist/esm/models/DeletionOperationResponse.js +60 -0
  82. package/dist/esm/models/DesktopRequest.d.ts +33 -0
  83. package/dist/esm/models/DesktopRequest.js +43 -0
  84. package/dist/esm/models/DesktopResponse.d.ts +74 -0
  85. package/dist/esm/models/DesktopResponse.js +59 -0
  86. package/dist/esm/models/EnvironmentItemChangeResponse.d.ts +44 -0
  87. package/dist/esm/models/EnvironmentItemChangeResponse.js +47 -0
  88. package/dist/esm/models/ErrorEnvelope.d.ts +69 -0
  89. package/dist/esm/models/ErrorEnvelope.js +68 -0
  90. package/dist/esm/models/ErrorEnvelopeError.d.ts +52 -0
  91. package/dist/esm/models/ErrorEnvelopeError.js +53 -0
  92. package/dist/esm/models/ErrorEvent.d.ts +65 -0
  93. package/dist/esm/models/ErrorEvent.js +63 -0
  94. package/dist/esm/models/EventsResponse.d.ts +65 -0
  95. package/dist/esm/models/EventsResponse.js +65 -0
  96. package/dist/esm/models/FileReadResponse.d.ts +83 -0
  97. package/dist/esm/models/FileReadResponse.js +80 -0
  98. package/dist/esm/models/FileWriteRequest.d.ts +52 -0
  99. package/dist/esm/models/FileWriteRequest.js +56 -0
  100. package/dist/esm/models/FileWriteResponse.d.ts +77 -0
  101. package/dist/esm/models/FileWriteResponse.js +76 -0
  102. package/dist/esm/models/ForkRequest.d.ts +68 -0
  103. package/dist/esm/models/ForkRequest.js +58 -0
  104. package/dist/esm/models/HostPortRequest.d.ts +44 -0
  105. package/dist/esm/models/HostPortRequest.js +47 -0
  106. package/dist/esm/models/HostPortResponse.d.ts +76 -0
  107. package/dist/esm/models/HostPortResponse.js +64 -0
  108. package/dist/esm/models/LimitsFields.d.ts +262 -0
  109. package/dist/esm/models/LimitsFields.js +128 -0
  110. package/dist/esm/models/LimitsFieldsCurrentLimits.d.ts +45 -0
  111. package/dist/esm/models/LimitsFieldsCurrentLimits.js +47 -0
  112. package/dist/esm/models/LimitsFieldsStartLimits.d.ts +44 -0
  113. package/dist/esm/models/LimitsFieldsStartLimits.js +45 -0
  114. package/dist/esm/models/LimitsFieldsStarts.d.ts +51 -0
  115. package/dist/esm/models/LimitsFieldsStarts.js +48 -0
  116. package/dist/esm/models/LimitsResponse.d.ts +273 -0
  117. package/dist/esm/models/LimitsResponse.js +134 -0
  118. package/dist/esm/models/MeResponse.d.ts +52 -0
  119. package/dist/esm/models/MeResponse.js +58 -0
  120. package/dist/esm/models/MeResponseAllOfUser.d.ts +50 -0
  121. package/dist/esm/models/MeResponseAllOfUser.js +47 -0
  122. package/dist/esm/models/NamedSnapshot.d.ts +83 -0
  123. package/dist/esm/models/NamedSnapshot.js +71 -0
  124. package/dist/esm/models/NamedSnapshotDeletedResponse.d.ts +64 -0
  125. package/dist/esm/models/NamedSnapshotDeletedResponse.js +67 -0
  126. package/dist/esm/models/NamedSnapshotInfoResponse.d.ts +52 -0
  127. package/dist/esm/models/NamedSnapshotInfoResponse.js +58 -0
  128. package/dist/esm/models/NamedSnapshotListResponse.d.ts +52 -0
  129. package/dist/esm/models/NamedSnapshotListResponse.js +58 -0
  130. package/dist/esm/models/NamedSnapshotSaveRequest.d.ts +38 -0
  131. package/dist/esm/models/NamedSnapshotSaveRequest.js +47 -0
  132. package/dist/esm/models/NamedSnapshotSavingResponse.d.ts +65 -0
  133. package/dist/esm/models/NamedSnapshotSavingResponse.js +68 -0
  134. package/dist/esm/models/PageInfo.d.ts +44 -0
  135. package/dist/esm/models/PageInfo.js +51 -0
  136. package/dist/esm/models/PromptEvent.d.ts +70 -0
  137. package/dist/esm/models/PromptEvent.js +66 -0
  138. package/dist/esm/models/PromptEventData.d.ts +56 -0
  139. package/dist/esm/models/PromptEventData.js +60 -0
  140. package/dist/esm/models/PromptRequest.d.ts +84 -0
  141. package/dist/esm/models/PromptRequest.js +69 -0
  142. package/dist/esm/models/PromptResponse.d.ts +101 -0
  143. package/dist/esm/models/PromptResponse.js +86 -0
  144. package/dist/esm/models/PromptRun.d.ts +92 -0
  145. package/dist/esm/models/PromptRun.js +78 -0
  146. package/dist/esm/models/PromptRunResponse.d.ts +58 -0
  147. package/dist/esm/models/PromptRunResponse.js +62 -0
  148. package/dist/esm/models/RepoSelectionRequest.d.ts +38 -0
  149. package/dist/esm/models/RepoSelectionRequest.js +45 -0
  150. package/dist/esm/models/RepoSelectionResponse.d.ts +57 -0
  151. package/dist/esm/models/RepoSelectionResponse.js +60 -0
  152. package/dist/esm/models/ReposResponse.d.ts +65 -0
  153. package/dist/esm/models/ReposResponse.js +64 -0
  154. package/dist/esm/models/Repository.d.ts +69 -0
  155. package/dist/esm/models/Repository.js +55 -0
  156. package/dist/esm/models/RepositoryInstallation.d.ts +51 -0
  157. package/dist/esm/models/RepositoryInstallation.js +48 -0
  158. package/dist/esm/models/ResponseEvent.d.ts +70 -0
  159. package/dist/esm/models/ResponseEvent.js +66 -0
  160. package/dist/esm/models/ResponseEventData.d.ts +52 -0
  161. package/dist/esm/models/ResponseEventData.js +49 -0
  162. package/dist/esm/models/ResumeRequest.d.ts +68 -0
  163. package/dist/esm/models/ResumeRequest.js +58 -0
  164. package/dist/esm/models/RotateApiKey409Response.d.ts +45 -0
  165. package/dist/esm/models/RotateApiKey409Response.js +53 -0
  166. package/dist/esm/models/Sandbox.d.ts +211 -0
  167. package/dist/esm/models/Sandbox.js +138 -0
  168. package/dist/esm/models/SandboxActionResponse.d.ts +57 -0
  169. package/dist/esm/models/SandboxActionResponse.js +58 -0
  170. package/dist/esm/models/SandboxEnvironment.d.ts +107 -0
  171. package/dist/esm/models/SandboxEnvironment.js +92 -0
  172. package/dist/esm/models/SandboxEnvironmentListResponse.d.ts +33 -0
  173. package/dist/esm/models/SandboxEnvironmentListResponse.js +44 -0
  174. package/dist/esm/models/SandboxEnvironmentResponse.d.ts +39 -0
  175. package/dist/esm/models/SandboxEnvironmentResponse.js +46 -0
  176. package/dist/esm/models/SandboxEnvironmentVersionSummary.d.ts +50 -0
  177. package/dist/esm/models/SandboxEnvironmentVersionSummary.js +55 -0
  178. package/dist/esm/models/SandboxEvent.d.ts +65 -0
  179. package/dist/esm/models/SandboxEvent.js +55 -0
  180. package/dist/esm/models/SandboxInfoResponse.d.ts +45 -0
  181. package/dist/esm/models/SandboxInfoResponse.js +52 -0
  182. package/dist/esm/models/SandboxListResponse.d.ts +59 -0
  183. package/dist/esm/models/SandboxListResponse.js +61 -0
  184. package/dist/esm/models/SandboxUsageResponse.d.ts +102 -0
  185. package/dist/esm/models/SandboxUsageResponse.js +92 -0
  186. package/dist/esm/models/SecretFile.d.ts +38 -0
  187. package/dist/esm/models/SecretFile.js +47 -0
  188. package/dist/esm/models/SecretsResponse.d.ts +71 -0
  189. package/dist/esm/models/SecretsResponse.js +64 -0
  190. package/dist/esm/models/SecretsUpdateRequest.d.ts +39 -0
  191. package/dist/esm/models/SecretsUpdateRequest.js +44 -0
  192. package/dist/esm/models/SelectedRepository.d.ts +92 -0
  193. package/dist/esm/models/SelectedRepository.js +61 -0
  194. package/dist/esm/models/SetEnvironmentSecretFileRequest.d.ts +38 -0
  195. package/dist/esm/models/SetEnvironmentSecretFileRequest.js +47 -0
  196. package/dist/esm/models/SetEnvironmentVarRequest.d.ts +32 -0
  197. package/dist/esm/models/SetEnvironmentVarRequest.js +43 -0
  198. package/dist/esm/models/SnapshotChunk.d.ts +68 -0
  199. package/dist/esm/models/SnapshotChunk.js +67 -0
  200. package/dist/esm/models/SnapshotDownloadResponse.d.ts +104 -0
  201. package/dist/esm/models/SnapshotDownloadResponse.js +93 -0
  202. package/dist/esm/models/SnapshotDownloadResponseAllOfInventory.d.ts +38 -0
  203. package/dist/esm/models/SnapshotDownloadResponseAllOfInventory.js +47 -0
  204. package/dist/esm/models/SnapshotLatestResponse.d.ts +52 -0
  205. package/dist/esm/models/SnapshotLatestResponse.js +58 -0
  206. package/dist/esm/models/SnapshotListResponse.d.ts +59 -0
  207. package/dist/esm/models/SnapshotListResponse.js +61 -0
  208. package/dist/esm/models/SnapshotSummary.d.ts +113 -0
  209. package/dist/esm/models/SnapshotSummary.js +90 -0
  210. package/dist/esm/models/SnapshotTreeEntry.d.ts +53 -0
  211. package/dist/esm/models/SnapshotTreeEntry.js +57 -0
  212. package/dist/esm/models/SnapshotTreeResponse.d.ts +100 -0
  213. package/dist/esm/models/SnapshotTreeResponse.js +88 -0
  214. package/dist/esm/models/SshKeyRequest.d.ts +32 -0
  215. package/dist/esm/models/SshKeyRequest.js +43 -0
  216. package/dist/esm/models/SshKeyResponse.d.ts +56 -0
  217. package/dist/esm/models/SshKeyResponse.js +53 -0
  218. package/dist/esm/models/StartWindowUsage.d.ts +44 -0
  219. package/dist/esm/models/StartWindowUsage.js +45 -0
  220. package/dist/esm/models/SteerEvent.d.ts +70 -0
  221. package/dist/esm/models/SteerEvent.js +66 -0
  222. package/dist/esm/models/SteerEventData.d.ts +54 -0
  223. package/dist/esm/models/SteerEventData.js +60 -0
  224. package/dist/esm/models/SteerRequest.d.ts +43 -0
  225. package/dist/esm/models/SteerRequest.js +45 -0
  226. package/dist/esm/models/SteerResponse.d.ts +97 -0
  227. package/dist/esm/models/SteerResponse.js +89 -0
  228. package/dist/esm/models/StopRequest.d.ts +32 -0
  229. package/dist/esm/models/StopRequest.js +41 -0
  230. package/dist/esm/models/SuccessBase.d.ts +38 -0
  231. package/dist/esm/models/SuccessBase.js +47 -0
  232. package/dist/esm/models/UnknownEvent.d.ts +33 -0
  233. package/dist/esm/models/UnknownEvent.js +45 -0
  234. package/dist/esm/models/UpdateSandboxEnvironmentRequest.d.ts +88 -0
  235. package/dist/esm/models/UpdateSandboxEnvironmentRequest.js +61 -0
  236. package/dist/esm/models/UpdateSandboxEnvironmentRequestRepositoriesInner.d.ts +50 -0
  237. package/dist/esm/models/UpdateSandboxEnvironmentRequestRepositoriesInner.js +49 -0
  238. package/dist/esm/models/UpdateSandboxRequest.d.ts +44 -0
  239. package/dist/esm/models/UpdateSandboxRequest.js +45 -0
  240. package/dist/esm/models/UpgradeSandboxEnvironmentRequest.d.ts +32 -0
  241. package/dist/esm/models/UpgradeSandboxEnvironmentRequest.js +41 -0
  242. package/dist/esm/models/UpgradeSandboxEnvironmentResponse.d.ts +44 -0
  243. package/dist/esm/models/UpgradeSandboxEnvironmentResponse.js +51 -0
  244. package/dist/esm/models/Webhook.d.ts +63 -0
  245. package/dist/esm/models/Webhook.js +64 -0
  246. package/dist/esm/models/WebhookCreateRequest.d.ts +45 -0
  247. package/dist/esm/models/WebhookCreateRequest.js +50 -0
  248. package/dist/esm/models/WebhookDeleteResponse.d.ts +44 -0
  249. package/dist/esm/models/WebhookDeleteResponse.js +51 -0
  250. package/dist/esm/models/WebhookEvent.d.ts +52 -0
  251. package/dist/esm/models/WebhookEvent.js +57 -0
  252. package/dist/esm/models/WebhookEventData.d.ts +45 -0
  253. package/dist/esm/models/WebhookEventData.js +52 -0
  254. package/dist/esm/models/WebhookEventDataSandbox.d.ts +38 -0
  255. package/dist/esm/models/WebhookEventDataSandbox.js +47 -0
  256. package/dist/esm/models/WebhookEventType.d.ts +27 -0
  257. package/dist/esm/models/WebhookEventType.js +45 -0
  258. package/dist/esm/models/WebhookListResponse.d.ts +45 -0
  259. package/dist/esm/models/WebhookListResponse.js +52 -0
  260. package/dist/esm/models/WebhookResponse.d.ts +45 -0
  261. package/dist/esm/models/WebhookResponse.js +52 -0
  262. package/dist/esm/models/WebhookSecretResponse.d.ts +51 -0
  263. package/dist/esm/models/WebhookSecretResponse.js +56 -0
  264. package/dist/esm/models/WebhookUpdateRequest.d.ts +45 -0
  265. package/dist/esm/models/WebhookUpdateRequest.js +46 -0
  266. package/dist/esm/models/index.d.ts +123 -0
  267. package/dist/esm/models/index.js +125 -0
  268. package/dist/esm/runtime.d.ts +184 -0
  269. package/dist/esm/runtime.js +337 -0
  270. package/dist/index.d.ts +4 -0
  271. package/dist/index.js +22 -0
  272. package/dist/models/AddEnvironmentRepoRequest.d.ts +38 -0
  273. package/dist/models/AddEnvironmentRepoRequest.js +52 -0
  274. package/dist/models/ApiKey.d.ts +121 -0
  275. package/dist/models/ApiKey.js +105 -0
  276. package/dist/models/ApiKeyCatalog.d.ts +65 -0
  277. package/dist/models/ApiKeyCatalog.js +69 -0
  278. package/dist/models/ApiKeyCatalogScopeResources.d.ts +39 -0
  279. package/dist/models/ApiKeyCatalogScopeResources.js +55 -0
  280. package/dist/models/ApiKeyCreatedResource.d.ts +64 -0
  281. package/dist/models/ApiKeyCreatedResource.js +74 -0
  282. package/dist/models/ApiKeyRequestUsage.d.ts +45 -0
  283. package/dist/models/ApiKeyRequestUsage.js +61 -0
  284. package/dist/models/ApiKeyResourceTotals.d.ts +44 -0
  285. package/dist/models/ApiKeyResourceTotals.js +58 -0
  286. package/dist/models/ApiKeyRevokeResponse.d.ts +45 -0
  287. package/dist/models/ApiKeyRevokeResponse.js +59 -0
  288. package/dist/models/ApiKeyScope.d.ts +57 -0
  289. package/dist/models/ApiKeyScope.js +57 -0
  290. package/dist/models/ApiKeyScopeResource.d.ts +50 -0
  291. package/dist/models/ApiKeyScopeResource.js +62 -0
  292. package/dist/models/ApiKeyScopeSandboxes.d.ts +21 -0
  293. package/dist/models/ApiKeyScopeSandboxes.js +53 -0
  294. package/dist/models/ApiKeySecretResponse.d.ts +57 -0
  295. package/dist/models/ApiKeySecretResponse.js +67 -0
  296. package/dist/models/ApiKeyUsageResponse.d.ts +140 -0
  297. package/dist/models/ApiKeyUsageResponse.js +118 -0
  298. package/dist/models/ApiKeysResponse.d.ts +52 -0
  299. package/dist/models/ApiKeysResponse.js +64 -0
  300. package/dist/models/Command200Response.d.ts +23 -0
  301. package/dist/models/Command200Response.js +57 -0
  302. package/dist/models/CommandRequest.d.ts +50 -0
  303. package/dist/models/CommandRequest.js +56 -0
  304. package/dist/models/CommandResponse.d.ts +111 -0
  305. package/dist/models/CommandResponse.js +93 -0
  306. package/dist/models/CommandStartedResponse.d.ts +93 -0
  307. package/dist/models/CommandStartedResponse.js +87 -0
  308. package/dist/models/CommandStatusResponse.d.ts +162 -0
  309. package/dist/models/CommandStatusResponse.js +119 -0
  310. package/dist/models/CompletionEvent.d.ts +65 -0
  311. package/dist/models/CompletionEvent.js +71 -0
  312. package/dist/models/Conversation.d.ts +80 -0
  313. package/dist/models/Conversation.js +82 -0
  314. package/dist/models/ConversationsResponse.d.ts +58 -0
  315. package/dist/models/ConversationsResponse.js +70 -0
  316. package/dist/models/CreateSandboxEnvironmentRequest.d.ts +32 -0
  317. package/dist/models/CreateSandboxEnvironmentRequest.js +50 -0
  318. package/dist/models/CreateSandboxRequest.d.ts +92 -0
  319. package/dist/models/CreateSandboxRequest.js +74 -0
  320. package/dist/models/CreateSandboxResponse.d.ts +71 -0
  321. package/dist/models/CreateSandboxResponse.js +80 -0
  322. package/dist/models/CreateScopedApiKey503Response.d.ts +58 -0
  323. package/dist/models/CreateScopedApiKey503Response.js +71 -0
  324. package/dist/models/CreateScopedApiKeyRequest.d.ts +72 -0
  325. package/dist/models/CreateScopedApiKeyRequest.js +68 -0
  326. package/dist/models/DataRetentionPolicyResponse.d.ts +70 -0
  327. package/dist/models/DataRetentionPolicyResponse.js +74 -0
  328. package/dist/models/DataRetentionUpdateRequest.d.ts +45 -0
  329. package/dist/models/DataRetentionUpdateRequest.js +59 -0
  330. package/dist/models/DeletionOperation.d.ts +101 -0
  331. package/dist/models/DeletionOperation.js +103 -0
  332. package/dist/models/DeletionOperationResponse.d.ts +54 -0
  333. package/dist/models/DeletionOperationResponse.js +68 -0
  334. package/dist/models/DesktopRequest.d.ts +33 -0
  335. package/dist/models/DesktopRequest.js +50 -0
  336. package/dist/models/DesktopResponse.d.ts +74 -0
  337. package/dist/models/DesktopResponse.js +66 -0
  338. package/dist/models/EnvironmentItemChangeResponse.d.ts +44 -0
  339. package/dist/models/EnvironmentItemChangeResponse.js +54 -0
  340. package/dist/models/ErrorEnvelope.d.ts +69 -0
  341. package/dist/models/ErrorEnvelope.js +75 -0
  342. package/dist/models/ErrorEnvelopeError.d.ts +52 -0
  343. package/dist/models/ErrorEnvelopeError.js +60 -0
  344. package/dist/models/ErrorEvent.d.ts +65 -0
  345. package/dist/models/ErrorEvent.js +71 -0
  346. package/dist/models/EventsResponse.d.ts +65 -0
  347. package/dist/models/EventsResponse.js +73 -0
  348. package/dist/models/FileReadResponse.d.ts +83 -0
  349. package/dist/models/FileReadResponse.js +88 -0
  350. package/dist/models/FileWriteRequest.d.ts +52 -0
  351. package/dist/models/FileWriteRequest.js +64 -0
  352. package/dist/models/FileWriteResponse.d.ts +77 -0
  353. package/dist/models/FileWriteResponse.js +84 -0
  354. package/dist/models/ForkRequest.d.ts +68 -0
  355. package/dist/models/ForkRequest.js +66 -0
  356. package/dist/models/HostPortRequest.d.ts +44 -0
  357. package/dist/models/HostPortRequest.js +54 -0
  358. package/dist/models/HostPortResponse.d.ts +76 -0
  359. package/dist/models/HostPortResponse.js +72 -0
  360. package/dist/models/LimitsFields.d.ts +262 -0
  361. package/dist/models/LimitsFields.js +135 -0
  362. package/dist/models/LimitsFieldsCurrentLimits.d.ts +45 -0
  363. package/dist/models/LimitsFieldsCurrentLimits.js +54 -0
  364. package/dist/models/LimitsFieldsStartLimits.d.ts +44 -0
  365. package/dist/models/LimitsFieldsStartLimits.js +52 -0
  366. package/dist/models/LimitsFieldsStarts.d.ts +51 -0
  367. package/dist/models/LimitsFieldsStarts.js +55 -0
  368. package/dist/models/LimitsResponse.d.ts +273 -0
  369. package/dist/models/LimitsResponse.js +141 -0
  370. package/dist/models/MeResponse.d.ts +52 -0
  371. package/dist/models/MeResponse.js +66 -0
  372. package/dist/models/MeResponseAllOfUser.d.ts +50 -0
  373. package/dist/models/MeResponseAllOfUser.js +54 -0
  374. package/dist/models/NamedSnapshot.d.ts +83 -0
  375. package/dist/models/NamedSnapshot.js +79 -0
  376. package/dist/models/NamedSnapshotDeletedResponse.d.ts +64 -0
  377. package/dist/models/NamedSnapshotDeletedResponse.js +75 -0
  378. package/dist/models/NamedSnapshotInfoResponse.d.ts +52 -0
  379. package/dist/models/NamedSnapshotInfoResponse.js +66 -0
  380. package/dist/models/NamedSnapshotListResponse.d.ts +52 -0
  381. package/dist/models/NamedSnapshotListResponse.js +66 -0
  382. package/dist/models/NamedSnapshotSaveRequest.d.ts +38 -0
  383. package/dist/models/NamedSnapshotSaveRequest.js +54 -0
  384. package/dist/models/NamedSnapshotSavingResponse.d.ts +65 -0
  385. package/dist/models/NamedSnapshotSavingResponse.js +76 -0
  386. package/dist/models/PageInfo.d.ts +44 -0
  387. package/dist/models/PageInfo.js +58 -0
  388. package/dist/models/PromptEvent.d.ts +70 -0
  389. package/dist/models/PromptEvent.js +74 -0
  390. package/dist/models/PromptEventData.d.ts +56 -0
  391. package/dist/models/PromptEventData.js +68 -0
  392. package/dist/models/PromptRequest.d.ts +84 -0
  393. package/dist/models/PromptRequest.js +77 -0
  394. package/dist/models/PromptResponse.d.ts +101 -0
  395. package/dist/models/PromptResponse.js +94 -0
  396. package/dist/models/PromptRun.d.ts +92 -0
  397. package/dist/models/PromptRun.js +86 -0
  398. package/dist/models/PromptRunResponse.d.ts +58 -0
  399. package/dist/models/PromptRunResponse.js +70 -0
  400. package/dist/models/RepoSelectionRequest.d.ts +38 -0
  401. package/dist/models/RepoSelectionRequest.js +52 -0
  402. package/dist/models/RepoSelectionResponse.d.ts +57 -0
  403. package/dist/models/RepoSelectionResponse.js +67 -0
  404. package/dist/models/ReposResponse.d.ts +65 -0
  405. package/dist/models/ReposResponse.js +71 -0
  406. package/dist/models/Repository.d.ts +69 -0
  407. package/dist/models/Repository.js +62 -0
  408. package/dist/models/RepositoryInstallation.d.ts +51 -0
  409. package/dist/models/RepositoryInstallation.js +55 -0
  410. package/dist/models/ResponseEvent.d.ts +70 -0
  411. package/dist/models/ResponseEvent.js +74 -0
  412. package/dist/models/ResponseEventData.d.ts +52 -0
  413. package/dist/models/ResponseEventData.js +56 -0
  414. package/dist/models/ResumeRequest.d.ts +68 -0
  415. package/dist/models/ResumeRequest.js +66 -0
  416. package/dist/models/RotateApiKey409Response.d.ts +45 -0
  417. package/dist/models/RotateApiKey409Response.js +61 -0
  418. package/dist/models/Sandbox.d.ts +211 -0
  419. package/dist/models/Sandbox.js +146 -0
  420. package/dist/models/SandboxActionResponse.d.ts +57 -0
  421. package/dist/models/SandboxActionResponse.js +65 -0
  422. package/dist/models/SandboxEnvironment.d.ts +107 -0
  423. package/dist/models/SandboxEnvironment.js +99 -0
  424. package/dist/models/SandboxEnvironmentListResponse.d.ts +33 -0
  425. package/dist/models/SandboxEnvironmentListResponse.js +51 -0
  426. package/dist/models/SandboxEnvironmentResponse.d.ts +39 -0
  427. package/dist/models/SandboxEnvironmentResponse.js +53 -0
  428. package/dist/models/SandboxEnvironmentVersionSummary.d.ts +50 -0
  429. package/dist/models/SandboxEnvironmentVersionSummary.js +62 -0
  430. package/dist/models/SandboxEvent.d.ts +65 -0
  431. package/dist/models/SandboxEvent.js +62 -0
  432. package/dist/models/SandboxInfoResponse.d.ts +45 -0
  433. package/dist/models/SandboxInfoResponse.js +59 -0
  434. package/dist/models/SandboxListResponse.d.ts +59 -0
  435. package/dist/models/SandboxListResponse.js +69 -0
  436. package/dist/models/SandboxUsageResponse.d.ts +102 -0
  437. package/dist/models/SandboxUsageResponse.js +100 -0
  438. package/dist/models/SecretFile.d.ts +38 -0
  439. package/dist/models/SecretFile.js +54 -0
  440. package/dist/models/SecretsResponse.d.ts +71 -0
  441. package/dist/models/SecretsResponse.js +71 -0
  442. package/dist/models/SecretsUpdateRequest.d.ts +39 -0
  443. package/dist/models/SecretsUpdateRequest.js +51 -0
  444. package/dist/models/SelectedRepository.d.ts +92 -0
  445. package/dist/models/SelectedRepository.js +68 -0
  446. package/dist/models/SetEnvironmentSecretFileRequest.d.ts +38 -0
  447. package/dist/models/SetEnvironmentSecretFileRequest.js +54 -0
  448. package/dist/models/SetEnvironmentVarRequest.d.ts +32 -0
  449. package/dist/models/SetEnvironmentVarRequest.js +50 -0
  450. package/dist/models/SnapshotChunk.d.ts +68 -0
  451. package/dist/models/SnapshotChunk.js +74 -0
  452. package/dist/models/SnapshotDownloadResponse.d.ts +104 -0
  453. package/dist/models/SnapshotDownloadResponse.js +101 -0
  454. package/dist/models/SnapshotDownloadResponseAllOfInventory.d.ts +38 -0
  455. package/dist/models/SnapshotDownloadResponseAllOfInventory.js +54 -0
  456. package/dist/models/SnapshotLatestResponse.d.ts +52 -0
  457. package/dist/models/SnapshotLatestResponse.js +66 -0
  458. package/dist/models/SnapshotListResponse.d.ts +59 -0
  459. package/dist/models/SnapshotListResponse.js +69 -0
  460. package/dist/models/SnapshotSummary.d.ts +113 -0
  461. package/dist/models/SnapshotSummary.js +98 -0
  462. package/dist/models/SnapshotTreeEntry.d.ts +53 -0
  463. package/dist/models/SnapshotTreeEntry.js +65 -0
  464. package/dist/models/SnapshotTreeResponse.d.ts +100 -0
  465. package/dist/models/SnapshotTreeResponse.js +96 -0
  466. package/dist/models/SshKeyRequest.d.ts +32 -0
  467. package/dist/models/SshKeyRequest.js +50 -0
  468. package/dist/models/SshKeyResponse.d.ts +56 -0
  469. package/dist/models/SshKeyResponse.js +60 -0
  470. package/dist/models/StartWindowUsage.d.ts +44 -0
  471. package/dist/models/StartWindowUsage.js +52 -0
  472. package/dist/models/SteerEvent.d.ts +70 -0
  473. package/dist/models/SteerEvent.js +74 -0
  474. package/dist/models/SteerEventData.d.ts +54 -0
  475. package/dist/models/SteerEventData.js +68 -0
  476. package/dist/models/SteerRequest.d.ts +43 -0
  477. package/dist/models/SteerRequest.js +52 -0
  478. package/dist/models/SteerResponse.d.ts +97 -0
  479. package/dist/models/SteerResponse.js +97 -0
  480. package/dist/models/StopRequest.d.ts +32 -0
  481. package/dist/models/StopRequest.js +48 -0
  482. package/dist/models/SuccessBase.d.ts +38 -0
  483. package/dist/models/SuccessBase.js +54 -0
  484. package/dist/models/UnknownEvent.d.ts +33 -0
  485. package/dist/models/UnknownEvent.js +52 -0
  486. package/dist/models/UpdateSandboxEnvironmentRequest.d.ts +88 -0
  487. package/dist/models/UpdateSandboxEnvironmentRequest.js +68 -0
  488. package/dist/models/UpdateSandboxEnvironmentRequestRepositoriesInner.d.ts +50 -0
  489. package/dist/models/UpdateSandboxEnvironmentRequestRepositoriesInner.js +56 -0
  490. package/dist/models/UpdateSandboxRequest.d.ts +44 -0
  491. package/dist/models/UpdateSandboxRequest.js +52 -0
  492. package/dist/models/UpgradeSandboxEnvironmentRequest.d.ts +32 -0
  493. package/dist/models/UpgradeSandboxEnvironmentRequest.js +48 -0
  494. package/dist/models/UpgradeSandboxEnvironmentResponse.d.ts +44 -0
  495. package/dist/models/UpgradeSandboxEnvironmentResponse.js +58 -0
  496. package/dist/models/Webhook.d.ts +63 -0
  497. package/dist/models/Webhook.js +71 -0
  498. package/dist/models/WebhookCreateRequest.d.ts +45 -0
  499. package/dist/models/WebhookCreateRequest.js +57 -0
  500. package/dist/models/WebhookDeleteResponse.d.ts +44 -0
  501. package/dist/models/WebhookDeleteResponse.js +58 -0
  502. package/dist/models/WebhookEvent.d.ts +52 -0
  503. package/dist/models/WebhookEvent.js +64 -0
  504. package/dist/models/WebhookEventData.d.ts +45 -0
  505. package/dist/models/WebhookEventData.js +59 -0
  506. package/dist/models/WebhookEventDataSandbox.d.ts +38 -0
  507. package/dist/models/WebhookEventDataSandbox.js +54 -0
  508. package/dist/models/WebhookEventType.d.ts +27 -0
  509. package/dist/models/WebhookEventType.js +53 -0
  510. package/dist/models/WebhookListResponse.d.ts +45 -0
  511. package/dist/models/WebhookListResponse.js +59 -0
  512. package/dist/models/WebhookResponse.d.ts +45 -0
  513. package/dist/models/WebhookResponse.js +59 -0
  514. package/dist/models/WebhookSecretResponse.d.ts +51 -0
  515. package/dist/models/WebhookSecretResponse.js +63 -0
  516. package/dist/models/WebhookUpdateRequest.d.ts +45 -0
  517. package/dist/models/WebhookUpdateRequest.js +53 -0
  518. package/dist/models/index.d.ts +123 -0
  519. package/dist/models/index.js +141 -0
  520. package/dist/runtime.d.ts +184 -0
  521. package/dist/runtime.js +353 -0
  522. package/docs/AddEnvironmentRepoRequest.md +34 -0
  523. package/docs/ApiKey.md +58 -0
  524. package/docs/ApiKeyCatalog.md +42 -0
  525. package/docs/ApiKeyCatalogScopeResources.md +35 -0
  526. package/docs/ApiKeyCreatedResource.md +40 -0
  527. package/docs/ApiKeyRequestUsage.md +34 -0
  528. package/docs/ApiKeyResourceTotals.md +36 -0
  529. package/docs/ApiKeyRevokeResponse.md +36 -0
  530. package/docs/ApiKeyScope.md +40 -0
  531. package/docs/ApiKeyScopeResource.md +38 -0
  532. package/docs/ApiKeyScopeSandboxes.md +30 -0
  533. package/docs/ApiKeySecretResponse.md +40 -0
  534. package/docs/ApiKeyUsageResponse.md +64 -0
  535. package/docs/ApiKeysResponse.md +38 -0
  536. package/docs/BoatApi.md +4967 -0
  537. package/docs/Command200Response.md +66 -0
  538. package/docs/CommandRequest.md +38 -0
  539. package/docs/CommandResponse.md +56 -0
  540. package/docs/CommandStartedResponse.md +50 -0
  541. package/docs/CommandStatusResponse.md +70 -0
  542. package/docs/CompletionEvent.md +40 -0
  543. package/docs/Conversation.md +48 -0
  544. package/docs/ConversationsResponse.md +38 -0
  545. package/docs/CreateSandboxEnvironmentRequest.md +32 -0
  546. package/docs/CreateSandboxRequest.md +49 -0
  547. package/docs/CreateSandboxResponse.md +40 -0
  548. package/docs/CreateScopedApiKey503Response.md +36 -0
  549. package/docs/CreateScopedApiKeyRequest.md +42 -0
  550. package/docs/DataRetentionPolicyResponse.md +42 -0
  551. package/docs/DataRetentionUpdateRequest.md +34 -0
  552. package/docs/DeletionOperation.md +46 -0
  553. package/docs/DeletionOperationResponse.md +36 -0
  554. package/docs/DesktopRequest.md +33 -0
  555. package/docs/DesktopResponse.md +46 -0
  556. package/docs/EnvironmentItemChangeResponse.md +37 -0
  557. package/docs/ErrorEnvelope.md +44 -0
  558. package/docs/ErrorEnvelopeError.md +38 -0
  559. package/docs/ErrorEvent.md +40 -0
  560. package/docs/EventsResponse.md +40 -0
  561. package/docs/FileReadResponse.md +44 -0
  562. package/docs/FileWriteRequest.md +36 -0
  563. package/docs/FileWriteResponse.md +42 -0
  564. package/docs/ForkRequest.md +40 -0
  565. package/docs/HostPortRequest.md +36 -0
  566. package/docs/HostPortResponse.md +44 -0
  567. package/docs/LimitsFields.md +106 -0
  568. package/docs/LimitsFieldsCurrentLimits.md +36 -0
  569. package/docs/LimitsFieldsStartLimits.md +37 -0
  570. package/docs/LimitsFieldsStarts.md +39 -0
  571. package/docs/LimitsResponse.md +110 -0
  572. package/docs/MeResponse.md +36 -0
  573. package/docs/MeResponseAllOfUser.md +38 -0
  574. package/docs/NamedSnapshot.md +47 -0
  575. package/docs/NamedSnapshotDeletedResponse.md +38 -0
  576. package/docs/NamedSnapshotInfoResponse.md +36 -0
  577. package/docs/NamedSnapshotListResponse.md +36 -0
  578. package/docs/NamedSnapshotSaveRequest.md +34 -0
  579. package/docs/NamedSnapshotSavingResponse.md +38 -0
  580. package/docs/PageInfo.md +36 -0
  581. package/docs/PromptEvent.md +42 -0
  582. package/docs/PromptEventData.md +36 -0
  583. package/docs/PromptRequest.md +43 -0
  584. package/docs/PromptResponse.md +50 -0
  585. package/docs/PromptRun.md +48 -0
  586. package/docs/PromptRunResponse.md +38 -0
  587. package/docs/RepoSelectionRequest.md +35 -0
  588. package/docs/RepoSelectionResponse.md +40 -0
  589. package/docs/ReposResponse.md +42 -0
  590. package/docs/Repository.md +44 -0
  591. package/docs/RepositoryInstallation.md +38 -0
  592. package/docs/ResponseEvent.md +43 -0
  593. package/docs/ResponseEventData.md +38 -0
  594. package/docs/ResumeRequest.md +41 -0
  595. package/docs/RotateApiKey409Response.md +34 -0
  596. package/docs/Sandbox.md +76 -0
  597. package/docs/SandboxActionResponse.md +40 -0
  598. package/docs/SandboxEnvironment.md +57 -0
  599. package/docs/SandboxEnvironmentListResponse.md +32 -0
  600. package/docs/SandboxEnvironmentResponse.md +34 -0
  601. package/docs/SandboxEnvironmentVersionSummary.md +39 -0
  602. package/docs/SandboxEvent.md +42 -0
  603. package/docs/SandboxInfoResponse.md +36 -0
  604. package/docs/SandboxListResponse.md +38 -0
  605. package/docs/SandboxUsageResponse.md +52 -0
  606. package/docs/SecretFile.md +34 -0
  607. package/docs/SecretsResponse.md +44 -0
  608. package/docs/SecretsUpdateRequest.md +35 -0
  609. package/docs/SelectedRepository.md +52 -0
  610. package/docs/SetEnvironmentSecretFileRequest.md +34 -0
  611. package/docs/SetEnvironmentVarRequest.md +32 -0
  612. package/docs/SnapshotChunk.md +44 -0
  613. package/docs/SnapshotDownloadResponse.md +50 -0
  614. package/docs/SnapshotDownloadResponseAllOfInventory.md +34 -0
  615. package/docs/SnapshotLatestResponse.md +36 -0
  616. package/docs/SnapshotListResponse.md +38 -0
  617. package/docs/SnapshotSummary.md +54 -0
  618. package/docs/SnapshotTreeEntry.md +36 -0
  619. package/docs/SnapshotTreeResponse.md +52 -0
  620. package/docs/SshKeyRequest.md +32 -0
  621. package/docs/SshKeyResponse.md +40 -0
  622. package/docs/StartWindowUsage.md +37 -0
  623. package/docs/SteerEvent.md +43 -0
  624. package/docs/SteerEventData.md +36 -0
  625. package/docs/SteerRequest.md +35 -0
  626. package/docs/SteerResponse.md +46 -0
  627. package/docs/StopRequest.md +33 -0
  628. package/docs/SuccessBase.md +34 -0
  629. package/docs/UnknownEvent.md +32 -0
  630. package/docs/UpdateSandboxEnvironmentRequest.md +51 -0
  631. package/docs/UpdateSandboxEnvironmentRequestRepositoriesInner.md +38 -0
  632. package/docs/UpdateSandboxRequest.md +36 -0
  633. package/docs/UpgradeSandboxEnvironmentRequest.md +33 -0
  634. package/docs/UpgradeSandboxEnvironmentResponse.md +36 -0
  635. package/docs/Webhook.md +42 -0
  636. package/docs/WebhookCreateRequest.md +36 -0
  637. package/docs/WebhookDeleteResponse.md +36 -0
  638. package/docs/WebhookEvent.md +39 -0
  639. package/docs/WebhookEventData.md +36 -0
  640. package/docs/WebhookEventDataSandbox.md +34 -0
  641. package/docs/WebhookEventType.md +30 -0
  642. package/docs/WebhookListResponse.md +36 -0
  643. package/docs/WebhookResponse.md +36 -0
  644. package/docs/WebhookSecretResponse.md +38 -0
  645. package/docs/WebhookUpdateRequest.md +36 -0
  646. package/package.json +19 -0
  647. package/src/apis/BoatApi.ts +4594 -0
  648. package/src/apis/index.ts +3 -0
  649. package/src/boat-helpers.ts +187 -0
  650. package/src/index.ts +7 -0
  651. package/src/models/AddEnvironmentRepoRequest.ts +74 -0
  652. package/src/models/ApiKey.ts +212 -0
  653. package/src/models/ApiKeyCatalog.ts +118 -0
  654. package/src/models/ApiKeyCatalogScopeResources.ts +83 -0
  655. package/src/models/ApiKeyCreatedResource.ts +113 -0
  656. package/src/models/ApiKeyRequestUsage.ts +85 -0
  657. package/src/models/ApiKeyResourceTotals.ts +84 -0
  658. package/src/models/ApiKeyRevokeResponse.ts +92 -0
  659. package/src/models/ApiKeyScope.ts +105 -0
  660. package/src/models/ApiKeyScopeResource.ts +93 -0
  661. package/src/models/ApiKeyScopeSandboxes.ts +59 -0
  662. package/src/models/ApiKeySecretResponse.ts +110 -0
  663. package/src/models/ApiKeyUsageResponse.ts +246 -0
  664. package/src/models/ApiKeysResponse.ts +108 -0
  665. package/src/models/Command200Response.ts +76 -0
  666. package/src/models/CommandRequest.ts +90 -0
  667. package/src/models/CommandResponse.ts +178 -0
  668. package/src/models/CommandStartedResponse.ts +154 -0
  669. package/src/models/CommandStatusResponse.ts +246 -0
  670. package/src/models/CompletionEvent.ts +111 -0
  671. package/src/models/Conversation.ts +138 -0
  672. package/src/models/ConversationsResponse.ts +111 -0
  673. package/src/models/CreateSandboxEnvironmentRequest.ts +66 -0
  674. package/src/models/CreateSandboxRequest.ts +142 -0
  675. package/src/models/CreateSandboxResponse.ts +128 -0
  676. package/src/models/CreateScopedApiKey503Response.ts +102 -0
  677. package/src/models/CreateScopedApiKeyRequest.ts +118 -0
  678. package/src/models/DataRetentionPolicyResponse.ts +120 -0
  679. package/src/models/DataRetentionUpdateRequest.ts +84 -0
  680. package/src/models/DeletionOperation.ts +161 -0
  681. package/src/models/DeletionOperationResponse.ts +104 -0
  682. package/src/models/DesktopRequest.ts +68 -0
  683. package/src/models/DesktopResponse.ts +123 -0
  684. package/src/models/EnvironmentItemChangeResponse.ts +82 -0
  685. package/src/models/ErrorEnvelope.ts +128 -0
  686. package/src/models/ErrorEnvelopeError.ts +92 -0
  687. package/src/models/ErrorEvent.ts +111 -0
  688. package/src/models/EventsResponse.ts +126 -0
  689. package/src/models/FileReadResponse.ts +139 -0
  690. package/src/models/FileWriteRequest.ts +94 -0
  691. package/src/models/FileWriteResponse.ts +130 -0
  692. package/src/models/ForkRequest.ts +110 -0
  693. package/src/models/HostPortRequest.ts +82 -0
  694. package/src/models/HostPortResponse.ts +126 -0
  695. package/src/models/LimitsFields.ts +390 -0
  696. package/src/models/LimitsFieldsCurrentLimits.ts +84 -0
  697. package/src/models/LimitsFieldsStartLimits.ts +81 -0
  698. package/src/models/LimitsFieldsStarts.ts +97 -0
  699. package/src/models/LimitsResponse.ts +405 -0
  700. package/src/models/MeResponse.ts +102 -0
  701. package/src/models/MeResponseAllOfUser.ts +89 -0
  702. package/src/models/NamedSnapshot.ts +137 -0
  703. package/src/models/NamedSnapshotDeletedResponse.ts +111 -0
  704. package/src/models/NamedSnapshotInfoResponse.ts +102 -0
  705. package/src/models/NamedSnapshotListResponse.ts +102 -0
  706. package/src/models/NamedSnapshotSaveRequest.ts +75 -0
  707. package/src/models/NamedSnapshotSavingResponse.ts +119 -0
  708. package/src/models/PageInfo.ts +84 -0
  709. package/src/models/PromptEvent.ts +127 -0
  710. package/src/models/PromptEventData.ts +98 -0
  711. package/src/models/PromptRequest.ts +132 -0
  712. package/src/models/PromptResponse.ts +170 -0
  713. package/src/models/PromptRun.ts +149 -0
  714. package/src/models/PromptRunResponse.ts +111 -0
  715. package/src/models/RepoSelectionRequest.ts +74 -0
  716. package/src/models/RepoSelectionResponse.ts +110 -0
  717. package/src/models/ReposResponse.ts +132 -0
  718. package/src/models/Repository.ts +116 -0
  719. package/src/models/RepositoryInstallation.ts +97 -0
  720. package/src/models/ResponseEvent.ts +127 -0
  721. package/src/models/ResponseEventData.ts +90 -0
  722. package/src/models/ResumeRequest.ts +110 -0
  723. package/src/models/RotateApiKey409Response.ts +85 -0
  724. package/src/models/Sandbox.ts +299 -0
  725. package/src/models/SandboxActionResponse.ts +109 -0
  726. package/src/models/SandboxEnvironment.ts +195 -0
  727. package/src/models/SandboxEnvironmentListResponse.ts +74 -0
  728. package/src/models/SandboxEnvironmentResponse.ts +82 -0
  729. package/src/models/SandboxEnvironmentVersionSummary.ts +93 -0
  730. package/src/models/SandboxEvent.ts +109 -0
  731. package/src/models/SandboxInfoResponse.ts +92 -0
  732. package/src/models/SandboxListResponse.ts +117 -0
  733. package/src/models/SandboxUsageResponse.ts +169 -0
  734. package/src/models/SecretFile.ts +75 -0
  735. package/src/models/SecretsResponse.ts +126 -0
  736. package/src/models/SecretsUpdateRequest.ts +81 -0
  737. package/src/models/SelectedRepository.ts +145 -0
  738. package/src/models/SetEnvironmentSecretFileRequest.ts +75 -0
  739. package/src/models/SetEnvironmentVarRequest.ts +66 -0
  740. package/src/models/SnapshotChunk.ts +120 -0
  741. package/src/models/SnapshotDownloadResponse.ts +181 -0
  742. package/src/models/SnapshotDownloadResponseAllOfInventory.ts +75 -0
  743. package/src/models/SnapshotLatestResponse.ts +102 -0
  744. package/src/models/SnapshotListResponse.ts +117 -0
  745. package/src/models/SnapshotSummary.ts +179 -0
  746. package/src/models/SnapshotTreeEntry.ts +95 -0
  747. package/src/models/SnapshotTreeResponse.ts +173 -0
  748. package/src/models/SshKeyRequest.ts +66 -0
  749. package/src/models/SshKeyResponse.ts +99 -0
  750. package/src/models/StartWindowUsage.ts +81 -0
  751. package/src/models/SteerEvent.ts +127 -0
  752. package/src/models/SteerEventData.ts +97 -0
  753. package/src/models/SteerRequest.ts +79 -0
  754. package/src/models/SteerResponse.ts +156 -0
  755. package/src/models/StopRequest.ts +65 -0
  756. package/src/models/SuccessBase.ts +75 -0
  757. package/src/models/UnknownEvent.ts +69 -0
  758. package/src/models/UpdateSandboxEnvironmentRequest.ts +152 -0
  759. package/src/models/UpdateSandboxEnvironmentRequestRepositoriesInner.ts +90 -0
  760. package/src/models/UpdateSandboxRequest.ts +81 -0
  761. package/src/models/UpgradeSandboxEnvironmentRequest.ts +65 -0
  762. package/src/models/UpgradeSandboxEnvironmentResponse.ts +84 -0
  763. package/src/models/Webhook.ts +119 -0
  764. package/src/models/WebhookCreateRequest.ts +91 -0
  765. package/src/models/WebhookDeleteResponse.ts +84 -0
  766. package/src/models/WebhookEvent.ts +110 -0
  767. package/src/models/WebhookEventData.ts +92 -0
  768. package/src/models/WebhookEventDataSandbox.ts +75 -0
  769. package/src/models/WebhookEventType.ts +55 -0
  770. package/src/models/WebhookListResponse.ts +92 -0
  771. package/src/models/WebhookResponse.ts +92 -0
  772. package/src/models/WebhookSecretResponse.ts +101 -0
  773. package/src/models/WebhookUpdateRequest.ts +89 -0
  774. package/src/models/index.ts +125 -0
  775. package/src/runtime.ts +449 -0
  776. package/tsconfig.esm.json +7 -0
  777. package/tsconfig.json +22 -0
@@ -0,0 +1,4594 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Boat Public API v1
5
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import * as runtime from '../runtime';
16
+ import {
17
+ type AddEnvironmentRepoRequest,
18
+ AddEnvironmentRepoRequestFromJSON,
19
+ AddEnvironmentRepoRequestToJSON,
20
+ } from '../models/AddEnvironmentRepoRequest';
21
+ import {
22
+ type ApiKeyRevokeResponse,
23
+ ApiKeyRevokeResponseFromJSON,
24
+ ApiKeyRevokeResponseToJSON,
25
+ } from '../models/ApiKeyRevokeResponse';
26
+ import {
27
+ type ApiKeySecretResponse,
28
+ ApiKeySecretResponseFromJSON,
29
+ ApiKeySecretResponseToJSON,
30
+ } from '../models/ApiKeySecretResponse';
31
+ import {
32
+ type ApiKeyUsageResponse,
33
+ ApiKeyUsageResponseFromJSON,
34
+ ApiKeyUsageResponseToJSON,
35
+ } from '../models/ApiKeyUsageResponse';
36
+ import {
37
+ type ApiKeysResponse,
38
+ ApiKeysResponseFromJSON,
39
+ ApiKeysResponseToJSON,
40
+ } from '../models/ApiKeysResponse';
41
+ import {
42
+ type Command200Response,
43
+ Command200ResponseFromJSON,
44
+ Command200ResponseToJSON,
45
+ } from '../models/Command200Response';
46
+ import {
47
+ type CommandRequest,
48
+ CommandRequestFromJSON,
49
+ CommandRequestToJSON,
50
+ } from '../models/CommandRequest';
51
+ import {
52
+ type CommandStatusResponse,
53
+ CommandStatusResponseFromJSON,
54
+ CommandStatusResponseToJSON,
55
+ } from '../models/CommandStatusResponse';
56
+ import {
57
+ type ConversationsResponse,
58
+ ConversationsResponseFromJSON,
59
+ ConversationsResponseToJSON,
60
+ } from '../models/ConversationsResponse';
61
+ import {
62
+ type CreateSandboxEnvironmentRequest,
63
+ CreateSandboxEnvironmentRequestFromJSON,
64
+ CreateSandboxEnvironmentRequestToJSON,
65
+ } from '../models/CreateSandboxEnvironmentRequest';
66
+ import {
67
+ type CreateSandboxRequest,
68
+ CreateSandboxRequestFromJSON,
69
+ CreateSandboxRequestToJSON,
70
+ } from '../models/CreateSandboxRequest';
71
+ import {
72
+ type CreateSandboxResponse,
73
+ CreateSandboxResponseFromJSON,
74
+ CreateSandboxResponseToJSON,
75
+ } from '../models/CreateSandboxResponse';
76
+ import {
77
+ type CreateScopedApiKey503Response,
78
+ CreateScopedApiKey503ResponseFromJSON,
79
+ CreateScopedApiKey503ResponseToJSON,
80
+ } from '../models/CreateScopedApiKey503Response';
81
+ import {
82
+ type CreateScopedApiKeyRequest,
83
+ CreateScopedApiKeyRequestFromJSON,
84
+ CreateScopedApiKeyRequestToJSON,
85
+ } from '../models/CreateScopedApiKeyRequest';
86
+ import {
87
+ type DataRetentionPolicyResponse,
88
+ DataRetentionPolicyResponseFromJSON,
89
+ DataRetentionPolicyResponseToJSON,
90
+ } from '../models/DataRetentionPolicyResponse';
91
+ import {
92
+ type DataRetentionUpdateRequest,
93
+ DataRetentionUpdateRequestFromJSON,
94
+ DataRetentionUpdateRequestToJSON,
95
+ } from '../models/DataRetentionUpdateRequest';
96
+ import {
97
+ type DeletionOperationResponse,
98
+ DeletionOperationResponseFromJSON,
99
+ DeletionOperationResponseToJSON,
100
+ } from '../models/DeletionOperationResponse';
101
+ import {
102
+ type DesktopRequest,
103
+ DesktopRequestFromJSON,
104
+ DesktopRequestToJSON,
105
+ } from '../models/DesktopRequest';
106
+ import {
107
+ type DesktopResponse,
108
+ DesktopResponseFromJSON,
109
+ DesktopResponseToJSON,
110
+ } from '../models/DesktopResponse';
111
+ import {
112
+ type EnvironmentItemChangeResponse,
113
+ EnvironmentItemChangeResponseFromJSON,
114
+ EnvironmentItemChangeResponseToJSON,
115
+ } from '../models/EnvironmentItemChangeResponse';
116
+ import {
117
+ type ErrorEnvelope,
118
+ ErrorEnvelopeFromJSON,
119
+ ErrorEnvelopeToJSON,
120
+ } from '../models/ErrorEnvelope';
121
+ import {
122
+ type EventsResponse,
123
+ EventsResponseFromJSON,
124
+ EventsResponseToJSON,
125
+ } from '../models/EventsResponse';
126
+ import {
127
+ type FileReadResponse,
128
+ FileReadResponseFromJSON,
129
+ FileReadResponseToJSON,
130
+ } from '../models/FileReadResponse';
131
+ import {
132
+ type FileWriteRequest,
133
+ FileWriteRequestFromJSON,
134
+ FileWriteRequestToJSON,
135
+ } from '../models/FileWriteRequest';
136
+ import {
137
+ type FileWriteResponse,
138
+ FileWriteResponseFromJSON,
139
+ FileWriteResponseToJSON,
140
+ } from '../models/FileWriteResponse';
141
+ import {
142
+ type ForkRequest,
143
+ ForkRequestFromJSON,
144
+ ForkRequestToJSON,
145
+ } from '../models/ForkRequest';
146
+ import {
147
+ type HostPortRequest,
148
+ HostPortRequestFromJSON,
149
+ HostPortRequestToJSON,
150
+ } from '../models/HostPortRequest';
151
+ import {
152
+ type HostPortResponse,
153
+ HostPortResponseFromJSON,
154
+ HostPortResponseToJSON,
155
+ } from '../models/HostPortResponse';
156
+ import {
157
+ type LimitsResponse,
158
+ LimitsResponseFromJSON,
159
+ LimitsResponseToJSON,
160
+ } from '../models/LimitsResponse';
161
+ import {
162
+ type MeResponse,
163
+ MeResponseFromJSON,
164
+ MeResponseToJSON,
165
+ } from '../models/MeResponse';
166
+ import {
167
+ type NamedSnapshotDeletedResponse,
168
+ NamedSnapshotDeletedResponseFromJSON,
169
+ NamedSnapshotDeletedResponseToJSON,
170
+ } from '../models/NamedSnapshotDeletedResponse';
171
+ import {
172
+ type NamedSnapshotInfoResponse,
173
+ NamedSnapshotInfoResponseFromJSON,
174
+ NamedSnapshotInfoResponseToJSON,
175
+ } from '../models/NamedSnapshotInfoResponse';
176
+ import {
177
+ type NamedSnapshotListResponse,
178
+ NamedSnapshotListResponseFromJSON,
179
+ NamedSnapshotListResponseToJSON,
180
+ } from '../models/NamedSnapshotListResponse';
181
+ import {
182
+ type NamedSnapshotSaveRequest,
183
+ NamedSnapshotSaveRequestFromJSON,
184
+ NamedSnapshotSaveRequestToJSON,
185
+ } from '../models/NamedSnapshotSaveRequest';
186
+ import {
187
+ type NamedSnapshotSavingResponse,
188
+ NamedSnapshotSavingResponseFromJSON,
189
+ NamedSnapshotSavingResponseToJSON,
190
+ } from '../models/NamedSnapshotSavingResponse';
191
+ import {
192
+ type PromptRequest,
193
+ PromptRequestFromJSON,
194
+ PromptRequestToJSON,
195
+ } from '../models/PromptRequest';
196
+ import {
197
+ type PromptResponse,
198
+ PromptResponseFromJSON,
199
+ PromptResponseToJSON,
200
+ } from '../models/PromptResponse';
201
+ import {
202
+ type PromptRunResponse,
203
+ PromptRunResponseFromJSON,
204
+ PromptRunResponseToJSON,
205
+ } from '../models/PromptRunResponse';
206
+ import {
207
+ type RepoSelectionRequest,
208
+ RepoSelectionRequestFromJSON,
209
+ RepoSelectionRequestToJSON,
210
+ } from '../models/RepoSelectionRequest';
211
+ import {
212
+ type RepoSelectionResponse,
213
+ RepoSelectionResponseFromJSON,
214
+ RepoSelectionResponseToJSON,
215
+ } from '../models/RepoSelectionResponse';
216
+ import {
217
+ type ReposResponse,
218
+ ReposResponseFromJSON,
219
+ ReposResponseToJSON,
220
+ } from '../models/ReposResponse';
221
+ import {
222
+ type ResumeRequest,
223
+ ResumeRequestFromJSON,
224
+ ResumeRequestToJSON,
225
+ } from '../models/ResumeRequest';
226
+ import {
227
+ type RotateApiKey409Response,
228
+ RotateApiKey409ResponseFromJSON,
229
+ RotateApiKey409ResponseToJSON,
230
+ } from '../models/RotateApiKey409Response';
231
+ import {
232
+ type SandboxActionResponse,
233
+ SandboxActionResponseFromJSON,
234
+ SandboxActionResponseToJSON,
235
+ } from '../models/SandboxActionResponse';
236
+ import {
237
+ type SandboxEnvironmentListResponse,
238
+ SandboxEnvironmentListResponseFromJSON,
239
+ SandboxEnvironmentListResponseToJSON,
240
+ } from '../models/SandboxEnvironmentListResponse';
241
+ import {
242
+ type SandboxEnvironmentResponse,
243
+ SandboxEnvironmentResponseFromJSON,
244
+ SandboxEnvironmentResponseToJSON,
245
+ } from '../models/SandboxEnvironmentResponse';
246
+ import {
247
+ type SandboxInfoResponse,
248
+ SandboxInfoResponseFromJSON,
249
+ SandboxInfoResponseToJSON,
250
+ } from '../models/SandboxInfoResponse';
251
+ import {
252
+ type SandboxListResponse,
253
+ SandboxListResponseFromJSON,
254
+ SandboxListResponseToJSON,
255
+ } from '../models/SandboxListResponse';
256
+ import {
257
+ type SandboxUsageResponse,
258
+ SandboxUsageResponseFromJSON,
259
+ SandboxUsageResponseToJSON,
260
+ } from '../models/SandboxUsageResponse';
261
+ import {
262
+ type SecretsResponse,
263
+ SecretsResponseFromJSON,
264
+ SecretsResponseToJSON,
265
+ } from '../models/SecretsResponse';
266
+ import {
267
+ type SecretsUpdateRequest,
268
+ SecretsUpdateRequestFromJSON,
269
+ SecretsUpdateRequestToJSON,
270
+ } from '../models/SecretsUpdateRequest';
271
+ import {
272
+ type SetEnvironmentSecretFileRequest,
273
+ SetEnvironmentSecretFileRequestFromJSON,
274
+ SetEnvironmentSecretFileRequestToJSON,
275
+ } from '../models/SetEnvironmentSecretFileRequest';
276
+ import {
277
+ type SetEnvironmentVarRequest,
278
+ SetEnvironmentVarRequestFromJSON,
279
+ SetEnvironmentVarRequestToJSON,
280
+ } from '../models/SetEnvironmentVarRequest';
281
+ import {
282
+ type SnapshotDownloadResponse,
283
+ SnapshotDownloadResponseFromJSON,
284
+ SnapshotDownloadResponseToJSON,
285
+ } from '../models/SnapshotDownloadResponse';
286
+ import {
287
+ type SnapshotLatestResponse,
288
+ SnapshotLatestResponseFromJSON,
289
+ SnapshotLatestResponseToJSON,
290
+ } from '../models/SnapshotLatestResponse';
291
+ import {
292
+ type SnapshotListResponse,
293
+ SnapshotListResponseFromJSON,
294
+ SnapshotListResponseToJSON,
295
+ } from '../models/SnapshotListResponse';
296
+ import {
297
+ type SnapshotTreeResponse,
298
+ SnapshotTreeResponseFromJSON,
299
+ SnapshotTreeResponseToJSON,
300
+ } from '../models/SnapshotTreeResponse';
301
+ import {
302
+ type SshKeyRequest,
303
+ SshKeyRequestFromJSON,
304
+ SshKeyRequestToJSON,
305
+ } from '../models/SshKeyRequest';
306
+ import {
307
+ type SshKeyResponse,
308
+ SshKeyResponseFromJSON,
309
+ SshKeyResponseToJSON,
310
+ } from '../models/SshKeyResponse';
311
+ import {
312
+ type SteerRequest,
313
+ SteerRequestFromJSON,
314
+ SteerRequestToJSON,
315
+ } from '../models/SteerRequest';
316
+ import {
317
+ type SteerResponse,
318
+ SteerResponseFromJSON,
319
+ SteerResponseToJSON,
320
+ } from '../models/SteerResponse';
321
+ import {
322
+ type StopRequest,
323
+ StopRequestFromJSON,
324
+ StopRequestToJSON,
325
+ } from '../models/StopRequest';
326
+ import {
327
+ type UpdateSandboxEnvironmentRequest,
328
+ UpdateSandboxEnvironmentRequestFromJSON,
329
+ UpdateSandboxEnvironmentRequestToJSON,
330
+ } from '../models/UpdateSandboxEnvironmentRequest';
331
+ import {
332
+ type UpdateSandboxRequest,
333
+ UpdateSandboxRequestFromJSON,
334
+ UpdateSandboxRequestToJSON,
335
+ } from '../models/UpdateSandboxRequest';
336
+ import {
337
+ type UpgradeSandboxEnvironmentRequest,
338
+ UpgradeSandboxEnvironmentRequestFromJSON,
339
+ UpgradeSandboxEnvironmentRequestToJSON,
340
+ } from '../models/UpgradeSandboxEnvironmentRequest';
341
+ import {
342
+ type UpgradeSandboxEnvironmentResponse,
343
+ UpgradeSandboxEnvironmentResponseFromJSON,
344
+ UpgradeSandboxEnvironmentResponseToJSON,
345
+ } from '../models/UpgradeSandboxEnvironmentResponse';
346
+ import {
347
+ type WebhookCreateRequest,
348
+ WebhookCreateRequestFromJSON,
349
+ WebhookCreateRequestToJSON,
350
+ } from '../models/WebhookCreateRequest';
351
+ import {
352
+ type WebhookDeleteResponse,
353
+ WebhookDeleteResponseFromJSON,
354
+ WebhookDeleteResponseToJSON,
355
+ } from '../models/WebhookDeleteResponse';
356
+ import {
357
+ type WebhookListResponse,
358
+ WebhookListResponseFromJSON,
359
+ WebhookListResponseToJSON,
360
+ } from '../models/WebhookListResponse';
361
+ import {
362
+ type WebhookResponse,
363
+ WebhookResponseFromJSON,
364
+ WebhookResponseToJSON,
365
+ } from '../models/WebhookResponse';
366
+ import {
367
+ type WebhookSecretResponse,
368
+ WebhookSecretResponseFromJSON,
369
+ WebhookSecretResponseToJSON,
370
+ } from '../models/WebhookSecretResponse';
371
+ import {
372
+ type WebhookUpdateRequest,
373
+ WebhookUpdateRequestFromJSON,
374
+ WebhookUpdateRequestToJSON,
375
+ } from '../models/WebhookUpdateRequest';
376
+
377
+ export interface AddEnvironmentRepoOperationRequest {
378
+ environmentId: string;
379
+ addEnvironmentRepoRequest: AddEnvironmentRepoRequest;
380
+ }
381
+
382
+ export interface ApiKeyUsageRequest {
383
+ apiKeyId: string;
384
+ }
385
+
386
+ export interface ArtifactRequest {
387
+ sandboxId: string;
388
+ path: string;
389
+ }
390
+
391
+ export interface CommandOperationRequest {
392
+ sandboxId: string;
393
+ commandRequest: CommandRequest;
394
+ }
395
+
396
+ export interface CommandStatusRequest {
397
+ sandboxId: string;
398
+ processId: number;
399
+ tailBytes?: number;
400
+ }
401
+
402
+ export interface ConversationsRequest {
403
+ sandboxId: string;
404
+ }
405
+
406
+ export interface CreateRequest {
407
+ idempotencyKey?: string;
408
+ org?: string;
409
+ xBoatOrg?: string;
410
+ createSandboxRequest?: CreateSandboxRequest;
411
+ }
412
+
413
+ export interface CreateEnvironmentRequest {
414
+ createSandboxEnvironmentRequest: CreateSandboxEnvironmentRequest;
415
+ }
416
+
417
+ export interface CreateScopedApiKeyOperationRequest {
418
+ createScopedApiKeyRequest: CreateScopedApiKeyRequest;
419
+ }
420
+
421
+ export interface CreateWebhookRequest {
422
+ webhookCreateRequest: WebhookCreateRequest;
423
+ }
424
+
425
+ export interface DeleteEnvironmentRequest {
426
+ environmentId: string;
427
+ }
428
+
429
+ export interface DeleteEnvironmentRepoRequest {
430
+ environmentId: string;
431
+ repositoryId: string;
432
+ }
433
+
434
+ export interface DeleteEnvironmentSecretFileRequest {
435
+ path: string;
436
+ environmentId: string;
437
+ }
438
+
439
+ export interface DeleteEnvironmentVarRequest {
440
+ environmentId: string;
441
+ key: string;
442
+ }
443
+
444
+ export interface DeleteNamedSnapshotRequest {
445
+ name: string;
446
+ }
447
+
448
+ export interface DeleteSandboxRequest {
449
+ xAsciiConfirmDelete: string;
450
+ sandboxId: string;
451
+ }
452
+
453
+ export interface DeleteSnapshotRequest {
454
+ snapshotId: string;
455
+ xAsciiConfirmDelete: string;
456
+ }
457
+
458
+ export interface DeleteWebhookRequest {
459
+ webhookId: string;
460
+ }
461
+
462
+ export interface DesktopOperationRequest {
463
+ sandboxId: string;
464
+ vnc?: DesktopOperationVncEnum;
465
+ theme?: DesktopOperationThemeEnum;
466
+ desktopRequest?: DesktopRequest;
467
+ }
468
+
469
+ export interface EventsRequest {
470
+ sandboxId: string;
471
+ limit?: number;
472
+ cursor?: string | null;
473
+ sort?: EventsSortEnum;
474
+ type?: string;
475
+ conversation?: string;
476
+ }
477
+
478
+ export interface ForkOperationRequest {
479
+ sandboxId: string;
480
+ idempotencyKey?: string;
481
+ forkRequest?: ForkRequest;
482
+ }
483
+
484
+ export interface GetRequest {
485
+ sandboxId: string;
486
+ }
487
+
488
+ export interface GetDeletionOperationRequest {
489
+ operationId: string;
490
+ }
491
+
492
+ export interface GetLatestSandboxSnapshotRequest {
493
+ sandboxId: string;
494
+ }
495
+
496
+ export interface GetNamedSnapshotRequest {
497
+ name: string;
498
+ }
499
+
500
+ export interface GetSnapshotDownloadRequest {
501
+ snapshotId: string;
502
+ }
503
+
504
+ export interface GetSnapshotFileRequest {
505
+ snapshotId: string;
506
+ path?: string;
507
+ }
508
+
509
+ export interface GetSnapshotTreeRequest {
510
+ snapshotId: string;
511
+ }
512
+
513
+ export interface GetWebhookRequest {
514
+ webhookId: string;
515
+ }
516
+
517
+ export interface HostPortOperationRequest {
518
+ sandboxId: string;
519
+ hostPortRequest: HostPortRequest;
520
+ }
521
+
522
+ export interface InterruptRequest {
523
+ sandboxId: string;
524
+ conversation?: string;
525
+ }
526
+
527
+ export interface LimitsRequest {
528
+ org?: string;
529
+ xBoatOrg?: string;
530
+ teamId?: string;
531
+ }
532
+
533
+ export interface ListSandboxSnapshotsRequest {
534
+ sandboxId: string;
535
+ limit?: number;
536
+ cursor?: string | null;
537
+ sort?: ListSandboxSnapshotsSortEnum;
538
+ }
539
+
540
+ export interface ListSnapshotsRequest {
541
+ limit?: number;
542
+ cursor?: string | null;
543
+ sort?: ListSnapshotsSortEnum;
544
+ }
545
+
546
+ export interface PromptOperationRequest {
547
+ sandboxId: string;
548
+ promptRequest: PromptRequest;
549
+ }
550
+
551
+ export interface PromptRunStatusRequest {
552
+ sandboxId: string;
553
+ promptId: string;
554
+ }
555
+
556
+ export interface ReadFileRequest {
557
+ sandboxId: string;
558
+ path: string;
559
+ encoding?: ReadFileEncodingEnum;
560
+ }
561
+
562
+ export interface ReposRequest {
563
+ sync?: boolean;
564
+ limit?: number;
565
+ cursor?: string | null;
566
+ sort?: ReposSortEnum;
567
+ q?: string;
568
+ selected?: boolean;
569
+ }
570
+
571
+ export interface ResumeOperationRequest {
572
+ sandboxId: string;
573
+ resumeRequest?: ResumeRequest;
574
+ }
575
+
576
+ export interface RevokeApiKeyRequest {
577
+ apiKeyId: string;
578
+ }
579
+
580
+ export interface RotateApiKeyRequest {
581
+ apiKeyId: string;
582
+ }
583
+
584
+ export interface RotateWebhookSigningSecretRequest {
585
+ webhookId: string;
586
+ }
587
+
588
+ export interface SandboxesRequest {
589
+ limit?: number;
590
+ cursor?: string | null;
591
+ sort?: SandboxesSortEnum;
592
+ state?: string;
593
+ }
594
+
595
+ export interface SaveNamedSnapshotRequest {
596
+ namedSnapshotSaveRequest: NamedSnapshotSaveRequest;
597
+ }
598
+
599
+ export interface SelectRepoRequest {
600
+ repoSelectionRequest: RepoSelectionRequest;
601
+ }
602
+
603
+ export interface SetEnvironmentSecretFileOperationRequest {
604
+ environmentId: string;
605
+ setEnvironmentSecretFileRequest: SetEnvironmentSecretFileRequest;
606
+ }
607
+
608
+ export interface SetEnvironmentVarOperationRequest {
609
+ environmentId: string;
610
+ key: string;
611
+ setEnvironmentVarRequest: SetEnvironmentVarRequest;
612
+ }
613
+
614
+ export interface SshKeyOperationRequest {
615
+ sandboxId: string;
616
+ sshKeyRequest: SshKeyRequest;
617
+ }
618
+
619
+ export interface SteerOperationRequest {
620
+ sandboxId: string;
621
+ steerRequest: SteerRequest;
622
+ conversation?: string;
623
+ }
624
+
625
+ export interface StopOperationRequest {
626
+ sandboxId: string;
627
+ stopRequest?: StopRequest;
628
+ }
629
+
630
+ export interface UpdateRequest {
631
+ sandboxId: string;
632
+ updateSandboxRequest: UpdateSandboxRequest;
633
+ }
634
+
635
+ export interface UpdateDataRetentionRequest {
636
+ dataRetentionUpdateRequest: DataRetentionUpdateRequest;
637
+ }
638
+
639
+ export interface UpdateEnvironmentRequest {
640
+ environmentId: string;
641
+ updateSandboxEnvironmentRequest: UpdateSandboxEnvironmentRequest;
642
+ }
643
+
644
+ export interface UpdateSecretsRequest {
645
+ secretsUpdateRequest: SecretsUpdateRequest;
646
+ }
647
+
648
+ export interface UpdateWebhookRequest {
649
+ webhookId: string;
650
+ webhookUpdateRequest: WebhookUpdateRequest;
651
+ }
652
+
653
+ export interface UpgradeEnvironmentRequest {
654
+ environmentId: string;
655
+ upgradeSandboxEnvironmentRequest?: UpgradeSandboxEnvironmentRequest;
656
+ }
657
+
658
+ export interface UsageRequest {
659
+ sandboxId: string;
660
+ since?: string;
661
+ until?: string;
662
+ }
663
+
664
+ export interface WriteFileRequest {
665
+ sandboxId: string;
666
+ fileWriteRequest: FileWriteRequest;
667
+ }
668
+
669
+ /**
670
+ *
671
+ */
672
+ export class BoatApi extends runtime.BaseAPI {
673
+
674
+ /**
675
+ * Creates request options for addEnvironmentRepo without sending the request
676
+ */
677
+ async addEnvironmentRepoRequestOpts(requestParameters: AddEnvironmentRepoOperationRequest): Promise<runtime.RequestOpts> {
678
+ if (requestParameters['environmentId'] == null) {
679
+ throw new runtime.RequiredError(
680
+ 'environmentId',
681
+ 'Required parameter "environmentId" was null or undefined when calling addEnvironmentRepo().'
682
+ );
683
+ }
684
+
685
+ if (requestParameters['addEnvironmentRepoRequest'] == null) {
686
+ throw new runtime.RequiredError(
687
+ 'addEnvironmentRepoRequest',
688
+ 'Required parameter "addEnvironmentRepoRequest" was null or undefined when calling addEnvironmentRepo().'
689
+ );
690
+ }
691
+
692
+ const queryParameters: any = {};
693
+
694
+ const headerParameters: runtime.HTTPHeaders = {};
695
+
696
+ headerParameters['Content-Type'] = 'application/json';
697
+
698
+ if (this.configuration && this.configuration.accessToken) {
699
+ const token = this.configuration.accessToken;
700
+ const tokenString = await token("BoatBearerAuth", []);
701
+
702
+ if (tokenString) {
703
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
704
+ }
705
+ }
706
+
707
+ let urlPath = `/environments/{environmentId}/repos`;
708
+ urlPath = urlPath.replace('{environmentId}', encodeURIComponent(String(requestParameters['environmentId'])));
709
+
710
+ return {
711
+ path: urlPath,
712
+ method: 'POST',
713
+ headers: headerParameters,
714
+ query: queryParameters,
715
+ body: AddEnvironmentRepoRequestToJSON(requestParameters['addEnvironmentRepoRequest']),
716
+ };
717
+ }
718
+
719
+ /**
720
+ * Adds a repository (or updates its base branch) by database id from the repository list. Mints a new immutable version.
721
+ * Add a repository to an environment
722
+ */
723
+ async addEnvironmentRepoRaw(requestParameters: AddEnvironmentRepoOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EnvironmentItemChangeResponse>> {
724
+ const requestOptions = await this.addEnvironmentRepoRequestOpts(requestParameters);
725
+ const response = await this.request(requestOptions, initOverrides);
726
+
727
+ return new runtime.JSONApiResponse(response, (jsonValue) => EnvironmentItemChangeResponseFromJSON(jsonValue));
728
+ }
729
+
730
+ /**
731
+ * Adds a repository (or updates its base branch) by database id from the repository list. Mints a new immutable version.
732
+ * Add a repository to an environment
733
+ */
734
+ async addEnvironmentRepo(requestParameters: AddEnvironmentRepoOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentItemChangeResponse> {
735
+ const response = await this.addEnvironmentRepoRaw(requestParameters, initOverrides);
736
+ return await response.value();
737
+ }
738
+
739
+ /**
740
+ * Creates request options for apiKeyUsage without sending the request
741
+ */
742
+ async apiKeyUsageRequestOpts(requestParameters: ApiKeyUsageRequest): Promise<runtime.RequestOpts> {
743
+ if (requestParameters['apiKeyId'] == null) {
744
+ throw new runtime.RequiredError(
745
+ 'apiKeyId',
746
+ 'Required parameter "apiKeyId" was null or undefined when calling apiKeyUsage().'
747
+ );
748
+ }
749
+
750
+ const queryParameters: any = {};
751
+
752
+ const headerParameters: runtime.HTTPHeaders = {};
753
+
754
+ if (this.configuration && this.configuration.accessToken) {
755
+ const token = this.configuration.accessToken;
756
+ const tokenString = await token("BoatBearerAuth", []);
757
+
758
+ if (tokenString) {
759
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
760
+ }
761
+ }
762
+
763
+ let urlPath = `/api-keys/{apiKeyId}/usage`;
764
+ urlPath = urlPath.replace('{apiKeyId}', encodeURIComponent(String(requestParameters['apiKeyId'])));
765
+
766
+ return {
767
+ path: urlPath,
768
+ method: 'GET',
769
+ headers: headerParameters,
770
+ query: queryParameters,
771
+ };
772
+ }
773
+
774
+ /**
775
+ * Returns the key\'s request total for the 30-day UTC window and the sandboxes and Agents it created that still exist, including sandboxes that never got a sandbox row. Works for revoked keys owned by the authenticated account.
776
+ * Get API key usage
777
+ */
778
+ async apiKeyUsageRaw(requestParameters: ApiKeyUsageRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ApiKeyUsageResponse>> {
779
+ const requestOptions = await this.apiKeyUsageRequestOpts(requestParameters);
780
+ const response = await this.request(requestOptions, initOverrides);
781
+
782
+ return new runtime.JSONApiResponse(response, (jsonValue) => ApiKeyUsageResponseFromJSON(jsonValue));
783
+ }
784
+
785
+ /**
786
+ * Returns the key\'s request total for the 30-day UTC window and the sandboxes and Agents it created that still exist, including sandboxes that never got a sandbox row. Works for revoked keys owned by the authenticated account.
787
+ * Get API key usage
788
+ */
789
+ async apiKeyUsage(requestParameters: ApiKeyUsageRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ApiKeyUsageResponse> {
790
+ const response = await this.apiKeyUsageRaw(requestParameters, initOverrides);
791
+ return await response.value();
792
+ }
793
+
794
+ /**
795
+ * Creates request options for apiKeys without sending the request
796
+ */
797
+ async apiKeysRequestOpts(): Promise<runtime.RequestOpts> {
798
+ const queryParameters: any = {};
799
+
800
+ const headerParameters: runtime.HTTPHeaders = {};
801
+
802
+ if (this.configuration && this.configuration.accessToken) {
803
+ const token = this.configuration.accessToken;
804
+ const tokenString = await token("BoatBearerAuth", []);
805
+
806
+ if (tokenString) {
807
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
808
+ }
809
+ }
810
+
811
+ let urlPath = `/api-keys`;
812
+
813
+ return {
814
+ path: urlPath,
815
+ method: 'GET',
816
+ headers: headerParameters,
817
+ query: queryParameters,
818
+ };
819
+ }
820
+
821
+ /**
822
+ * Lists API key metadata only. Raw key secrets are not returned after creation/rotation. Results include expiry and scope. A restricted API-key caller receives `apiKeys: []`; only an unrestricted account key or browser/CLI session receives the account inventory. Bearer header is unchanged; scope lives on the key.
823
+ * List API keys
824
+ */
825
+ async apiKeysRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ApiKeysResponse>> {
826
+ const requestOptions = await this.apiKeysRequestOpts();
827
+ const response = await this.request(requestOptions, initOverrides);
828
+
829
+ return new runtime.JSONApiResponse(response, (jsonValue) => ApiKeysResponseFromJSON(jsonValue));
830
+ }
831
+
832
+ /**
833
+ * Lists API key metadata only. Raw key secrets are not returned after creation/rotation. Results include expiry and scope. A restricted API-key caller receives `apiKeys: []`; only an unrestricted account key or browser/CLI session receives the account inventory. Bearer header is unchanged; scope lives on the key.
834
+ * List API keys
835
+ */
836
+ async apiKeys(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ApiKeysResponse> {
837
+ const response = await this.apiKeysRaw(initOverrides);
838
+ return await response.value();
839
+ }
840
+
841
+ /**
842
+ * Creates request options for artifact without sending the request
843
+ */
844
+ async artifactRequestOpts(requestParameters: ArtifactRequest): Promise<runtime.RequestOpts> {
845
+ if (requestParameters['sandboxId'] == null) {
846
+ throw new runtime.RequiredError(
847
+ 'sandboxId',
848
+ 'Required parameter "sandboxId" was null or undefined when calling artifact().'
849
+ );
850
+ }
851
+
852
+ if (requestParameters['path'] == null) {
853
+ throw new runtime.RequiredError(
854
+ 'path',
855
+ 'Required parameter "path" was null or undefined when calling artifact().'
856
+ );
857
+ }
858
+
859
+ const queryParameters: any = {};
860
+
861
+ if (requestParameters['path'] != null) {
862
+ queryParameters['path'] = requestParameters['path'];
863
+ }
864
+
865
+ const headerParameters: runtime.HTTPHeaders = {};
866
+
867
+ if (this.configuration && this.configuration.accessToken) {
868
+ const token = this.configuration.accessToken;
869
+ const tokenString = await token("BoatBearerAuth", []);
870
+
871
+ if (tokenString) {
872
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
873
+ }
874
+ }
875
+
876
+ let urlPath = `/sandboxes/{sandboxId}/artifacts`;
877
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
878
+
879
+ return {
880
+ path: urlPath,
881
+ method: 'GET',
882
+ headers: headerParameters,
883
+ query: queryParameters,
884
+ };
885
+ }
886
+
887
+ /**
888
+ * Download a sandbox artifact
889
+ */
890
+ async artifactRaw(requestParameters: ArtifactRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Blob>> {
891
+ const requestOptions = await this.artifactRequestOpts(requestParameters);
892
+ const response = await this.request(requestOptions, initOverrides);
893
+
894
+ return new runtime.BlobApiResponse(response);
895
+ }
896
+
897
+ /**
898
+ * Download a sandbox artifact
899
+ */
900
+ async artifact(requestParameters: ArtifactRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Blob> {
901
+ const response = await this.artifactRaw(requestParameters, initOverrides);
902
+ return await response.value();
903
+ }
904
+
905
+ /**
906
+ * Creates request options for command without sending the request
907
+ */
908
+ async commandRequestOpts(requestParameters: CommandOperationRequest): Promise<runtime.RequestOpts> {
909
+ if (requestParameters['sandboxId'] == null) {
910
+ throw new runtime.RequiredError(
911
+ 'sandboxId',
912
+ 'Required parameter "sandboxId" was null or undefined when calling command().'
913
+ );
914
+ }
915
+
916
+ if (requestParameters['commandRequest'] == null) {
917
+ throw new runtime.RequiredError(
918
+ 'commandRequest',
919
+ 'Required parameter "commandRequest" was null or undefined when calling command().'
920
+ );
921
+ }
922
+
923
+ const queryParameters: any = {};
924
+
925
+ const headerParameters: runtime.HTTPHeaders = {};
926
+
927
+ headerParameters['Content-Type'] = 'application/json';
928
+
929
+ if (this.configuration && this.configuration.accessToken) {
930
+ const token = this.configuration.accessToken;
931
+ const tokenString = await token("BoatBearerAuth", []);
932
+
933
+ if (tokenString) {
934
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
935
+ }
936
+ }
937
+
938
+ let urlPath = `/sandboxes/{sandboxId}/commands`;
939
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
940
+
941
+ return {
942
+ path: urlPath,
943
+ method: 'POST',
944
+ headers: headerParameters,
945
+ query: queryParameters,
946
+ body: CommandRequestToJSON(requestParameters['commandRequest']),
947
+ };
948
+ }
949
+
950
+ /**
951
+ * 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
+ * Execute a command in a sandbox
953
+ */
954
+ async commandRaw(requestParameters: CommandOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Command200Response>> {
955
+ const requestOptions = await this.commandRequestOpts(requestParameters);
956
+ const response = await this.request(requestOptions, initOverrides);
957
+
958
+ return new runtime.JSONApiResponse(response, (jsonValue) => Command200ResponseFromJSON(jsonValue));
959
+ }
960
+
961
+ /**
962
+ * 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
+ * Execute a command in a sandbox
964
+ */
965
+ async command(requestParameters: CommandOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Command200Response> {
966
+ const response = await this.commandRaw(requestParameters, initOverrides);
967
+ return await response.value();
968
+ }
969
+
970
+ /**
971
+ * Creates request options for commandStatus without sending the request
972
+ */
973
+ async commandStatusRequestOpts(requestParameters: CommandStatusRequest): Promise<runtime.RequestOpts> {
974
+ if (requestParameters['sandboxId'] == null) {
975
+ throw new runtime.RequiredError(
976
+ 'sandboxId',
977
+ 'Required parameter "sandboxId" was null or undefined when calling commandStatus().'
978
+ );
979
+ }
980
+
981
+ if (requestParameters['processId'] == null) {
982
+ throw new runtime.RequiredError(
983
+ 'processId',
984
+ 'Required parameter "processId" was null or undefined when calling commandStatus().'
985
+ );
986
+ }
987
+
988
+ const queryParameters: any = {};
989
+
990
+ if (requestParameters['tailBytes'] != null) {
991
+ queryParameters['tailBytes'] = requestParameters['tailBytes'];
992
+ }
993
+
994
+ const headerParameters: runtime.HTTPHeaders = {};
995
+
996
+ if (this.configuration && this.configuration.accessToken) {
997
+ const token = this.configuration.accessToken;
998
+ const tokenString = await token("BoatBearerAuth", []);
999
+
1000
+ if (tokenString) {
1001
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1002
+ }
1003
+ }
1004
+
1005
+ let urlPath = `/sandboxes/{sandboxId}/commands/{processId}`;
1006
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
1007
+ urlPath = urlPath.replace('{processId}', encodeURIComponent(String(requestParameters['processId'])));
1008
+
1009
+ return {
1010
+ path: urlPath,
1011
+ method: 'GET',
1012
+ headers: headerParameters,
1013
+ query: queryParameters,
1014
+ };
1015
+ }
1016
+
1017
+ /**
1018
+ * Get detached command status and logs
1019
+ */
1020
+ async commandStatusRaw(requestParameters: CommandStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CommandStatusResponse>> {
1021
+ const requestOptions = await this.commandStatusRequestOpts(requestParameters);
1022
+ const response = await this.request(requestOptions, initOverrides);
1023
+
1024
+ return new runtime.JSONApiResponse(response, (jsonValue) => CommandStatusResponseFromJSON(jsonValue));
1025
+ }
1026
+
1027
+ /**
1028
+ * Get detached command status and logs
1029
+ */
1030
+ async commandStatus(requestParameters: CommandStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CommandStatusResponse> {
1031
+ const response = await this.commandStatusRaw(requestParameters, initOverrides);
1032
+ return await response.value();
1033
+ }
1034
+
1035
+ /**
1036
+ * Creates request options for conversations without sending the request
1037
+ */
1038
+ async conversationsRequestOpts(requestParameters: ConversationsRequest): Promise<runtime.RequestOpts> {
1039
+ if (requestParameters['sandboxId'] == null) {
1040
+ throw new runtime.RequiredError(
1041
+ 'sandboxId',
1042
+ 'Required parameter "sandboxId" was null or undefined when calling conversations().'
1043
+ );
1044
+ }
1045
+
1046
+ const queryParameters: any = {};
1047
+
1048
+ const headerParameters: runtime.HTTPHeaders = {};
1049
+
1050
+ if (this.configuration && this.configuration.accessToken) {
1051
+ const token = this.configuration.accessToken;
1052
+ const tokenString = await token("BoatBearerAuth", []);
1053
+
1054
+ if (tokenString) {
1055
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1056
+ }
1057
+ }
1058
+
1059
+ let urlPath = `/sandboxes/{sandboxId}/conversations`;
1060
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
1061
+
1062
+ return {
1063
+ path: urlPath,
1064
+ method: 'GET',
1065
+ headers: headerParameters,
1066
+ query: queryParameters,
1067
+ };
1068
+ }
1069
+
1070
+ /**
1071
+ * Every conversation on the sandbox, most recently prompted first, with what you need to pick one: how many prompts it holds, whether a turn is running in it right now, the last harness and model it ran on, a preview of its last prompt, and `current`, the one a `POST /prompt` without `new` or `conversationId` would continue. Pass an `id` back as `conversationId` on `POST /prompt` to resume that thread, or as `conversation` on `POST /steer`, `POST /interrupt` and `GET /events` to scope those. See [Integrated agents](/integrated-agents).
1072
+ * List boat conversations
1073
+ */
1074
+ async conversationsRaw(requestParameters: ConversationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ConversationsResponse>> {
1075
+ const requestOptions = await this.conversationsRequestOpts(requestParameters);
1076
+ const response = await this.request(requestOptions, initOverrides);
1077
+
1078
+ return new runtime.JSONApiResponse(response, (jsonValue) => ConversationsResponseFromJSON(jsonValue));
1079
+ }
1080
+
1081
+ /**
1082
+ * Every conversation on the sandbox, most recently prompted first, with what you need to pick one: how many prompts it holds, whether a turn is running in it right now, the last harness and model it ran on, a preview of its last prompt, and `current`, the one a `POST /prompt` without `new` or `conversationId` would continue. Pass an `id` back as `conversationId` on `POST /prompt` to resume that thread, or as `conversation` on `POST /steer`, `POST /interrupt` and `GET /events` to scope those. See [Integrated agents](/integrated-agents).
1083
+ * List boat conversations
1084
+ */
1085
+ async conversations(requestParameters: ConversationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ConversationsResponse> {
1086
+ const response = await this.conversationsRaw(requestParameters, initOverrides);
1087
+ return await response.value();
1088
+ }
1089
+
1090
+ /**
1091
+ * Creates request options for create without sending the request
1092
+ */
1093
+ async createRequestOpts(requestParameters: CreateRequest): Promise<runtime.RequestOpts> {
1094
+ const queryParameters: any = {};
1095
+
1096
+ if (requestParameters['org'] != null) {
1097
+ queryParameters['org'] = requestParameters['org'];
1098
+ }
1099
+
1100
+ const headerParameters: runtime.HTTPHeaders = {};
1101
+
1102
+ headerParameters['Content-Type'] = 'application/json';
1103
+
1104
+ if (requestParameters['idempotencyKey'] != null) {
1105
+ headerParameters['Idempotency-Key'] = String(requestParameters['idempotencyKey']);
1106
+ }
1107
+
1108
+ if (requestParameters['xBoatOrg'] != null) {
1109
+ headerParameters['X-Boat-Org'] = String(requestParameters['xBoatOrg']);
1110
+ }
1111
+
1112
+ if (this.configuration && this.configuration.accessToken) {
1113
+ const token = this.configuration.accessToken;
1114
+ const tokenString = await token("BoatBearerAuth", []);
1115
+
1116
+ if (tokenString) {
1117
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1118
+ }
1119
+ }
1120
+
1121
+ let urlPath = `/sandboxes`;
1122
+
1123
+ return {
1124
+ path: urlPath,
1125
+ method: 'POST',
1126
+ headers: headerParameters,
1127
+ query: queryParameters,
1128
+ body: CreateSandboxRequestToJSON(requestParameters['createSandboxRequest']),
1129
+ };
1130
+ }
1131
+
1132
+ /**
1133
+ * 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
+ * Create sandbox
1135
+ */
1136
+ async createRaw(requestParameters: CreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CreateSandboxResponse>> {
1137
+ const requestOptions = await this.createRequestOpts(requestParameters);
1138
+ const response = await this.request(requestOptions, initOverrides);
1139
+
1140
+ return new runtime.JSONApiResponse(response, (jsonValue) => CreateSandboxResponseFromJSON(jsonValue));
1141
+ }
1142
+
1143
+ /**
1144
+ * 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
+ * Create sandbox
1146
+ */
1147
+ async create(requestParameters: CreateRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CreateSandboxResponse> {
1148
+ const response = await this.createRaw(requestParameters, initOverrides);
1149
+ return await response.value();
1150
+ }
1151
+
1152
+ /**
1153
+ * Creates request options for createEnvironment without sending the request
1154
+ */
1155
+ async createEnvironmentRequestOpts(requestParameters: CreateEnvironmentRequest): Promise<runtime.RequestOpts> {
1156
+ if (requestParameters['createSandboxEnvironmentRequest'] == null) {
1157
+ throw new runtime.RequiredError(
1158
+ 'createSandboxEnvironmentRequest',
1159
+ 'Required parameter "createSandboxEnvironmentRequest" was null or undefined when calling createEnvironment().'
1160
+ );
1161
+ }
1162
+
1163
+ const queryParameters: any = {};
1164
+
1165
+ const headerParameters: runtime.HTTPHeaders = {};
1166
+
1167
+ headerParameters['Content-Type'] = 'application/json';
1168
+
1169
+ if (this.configuration && this.configuration.accessToken) {
1170
+ const token = this.configuration.accessToken;
1171
+ const tokenString = await token("BoatBearerAuth", []);
1172
+
1173
+ if (tokenString) {
1174
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1175
+ }
1176
+ }
1177
+
1178
+ let urlPath = `/environments`;
1179
+
1180
+ return {
1181
+ path: urlPath,
1182
+ method: 'POST',
1183
+ headers: headerParameters,
1184
+ query: queryParameters,
1185
+ body: CreateSandboxEnvironmentRequestToJSON(requestParameters['createSandboxEnvironmentRequest']),
1186
+ };
1187
+ }
1188
+
1189
+ /**
1190
+ * Create a new named environment. It starts on version 1 with all fine-grained flags on and `safeForThirdParties` off.
1191
+ * Create a sandbox environment
1192
+ */
1193
+ async createEnvironmentRaw(requestParameters: CreateEnvironmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxEnvironmentListResponse>> {
1194
+ const requestOptions = await this.createEnvironmentRequestOpts(requestParameters);
1195
+ const response = await this.request(requestOptions, initOverrides);
1196
+
1197
+ return new runtime.JSONApiResponse(response, (jsonValue) => SandboxEnvironmentListResponseFromJSON(jsonValue));
1198
+ }
1199
+
1200
+ /**
1201
+ * Create a new named environment. It starts on version 1 with all fine-grained flags on and `safeForThirdParties` off.
1202
+ * Create a sandbox environment
1203
+ */
1204
+ async createEnvironment(requestParameters: CreateEnvironmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxEnvironmentListResponse> {
1205
+ const response = await this.createEnvironmentRaw(requestParameters, initOverrides);
1206
+ return await response.value();
1207
+ }
1208
+
1209
+ /**
1210
+ * Creates request options for createScopedApiKey without sending the request
1211
+ */
1212
+ async createScopedApiKeyRequestOpts(requestParameters: CreateScopedApiKeyOperationRequest): Promise<runtime.RequestOpts> {
1213
+ if (requestParameters['createScopedApiKeyRequest'] == null) {
1214
+ throw new runtime.RequiredError(
1215
+ 'createScopedApiKeyRequest',
1216
+ 'Required parameter "createScopedApiKeyRequest" was null or undefined when calling createScopedApiKey().'
1217
+ );
1218
+ }
1219
+
1220
+ const queryParameters: any = {};
1221
+
1222
+ const headerParameters: runtime.HTTPHeaders = {};
1223
+
1224
+ headerParameters['Content-Type'] = 'application/json';
1225
+
1226
+ if (this.configuration && this.configuration.accessToken) {
1227
+ const token = this.configuration.accessToken;
1228
+ const tokenString = await token("BoatBearerAuth", []);
1229
+
1230
+ if (tokenString) {
1231
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1232
+ }
1233
+ }
1234
+
1235
+ let urlPath = `/api-keys/scoped`;
1236
+
1237
+ return {
1238
+ path: urlPath,
1239
+ method: 'POST',
1240
+ headers: headerParameters,
1241
+ query: queryParameters,
1242
+ body: CreateScopedApiKeyRequestToJSON(requestParameters['createScopedApiKeyRequest']),
1243
+ };
1244
+ }
1245
+
1246
+ /**
1247
+ * 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
+ * Create a scoped API key
1249
+ */
1250
+ async createScopedApiKeyRaw(requestParameters: CreateScopedApiKeyOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ApiKeySecretResponse>> {
1251
+ const requestOptions = await this.createScopedApiKeyRequestOpts(requestParameters);
1252
+ const response = await this.request(requestOptions, initOverrides);
1253
+
1254
+ return new runtime.JSONApiResponse(response, (jsonValue) => ApiKeySecretResponseFromJSON(jsonValue));
1255
+ }
1256
+
1257
+ /**
1258
+ * 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
+ * Create a scoped API key
1260
+ */
1261
+ async createScopedApiKey(requestParameters: CreateScopedApiKeyOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ApiKeySecretResponse> {
1262
+ const response = await this.createScopedApiKeyRaw(requestParameters, initOverrides);
1263
+ return await response.value();
1264
+ }
1265
+
1266
+ /**
1267
+ * Creates request options for createWebhook without sending the request
1268
+ */
1269
+ async createWebhookRequestOpts(requestParameters: CreateWebhookRequest): Promise<runtime.RequestOpts> {
1270
+ if (requestParameters['webhookCreateRequest'] == null) {
1271
+ throw new runtime.RequiredError(
1272
+ 'webhookCreateRequest',
1273
+ 'Required parameter "webhookCreateRequest" was null or undefined when calling createWebhook().'
1274
+ );
1275
+ }
1276
+
1277
+ const queryParameters: any = {};
1278
+
1279
+ const headerParameters: runtime.HTTPHeaders = {};
1280
+
1281
+ headerParameters['Content-Type'] = 'application/json';
1282
+
1283
+ if (this.configuration && this.configuration.accessToken) {
1284
+ const token = this.configuration.accessToken;
1285
+ const tokenString = await token("BoatBearerAuth", []);
1286
+
1287
+ if (tokenString) {
1288
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1289
+ }
1290
+ }
1291
+
1292
+ let urlPath = `/webhooks`;
1293
+
1294
+ return {
1295
+ path: urlPath,
1296
+ method: 'POST',
1297
+ headers: headerParameters,
1298
+ query: queryParameters,
1299
+ body: WebhookCreateRequestToJSON(requestParameters['webhookCreateRequest']),
1300
+ };
1301
+ }
1302
+
1303
+ /**
1304
+ * 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
+ * Create webhook
1306
+ */
1307
+ async createWebhookRaw(requestParameters: CreateWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WebhookSecretResponse>> {
1308
+ const requestOptions = await this.createWebhookRequestOpts(requestParameters);
1309
+ const response = await this.request(requestOptions, initOverrides);
1310
+
1311
+ return new runtime.JSONApiResponse(response, (jsonValue) => WebhookSecretResponseFromJSON(jsonValue));
1312
+ }
1313
+
1314
+ /**
1315
+ * 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
+ * Create webhook
1317
+ */
1318
+ async createWebhook(requestParameters: CreateWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WebhookSecretResponse> {
1319
+ const response = await this.createWebhookRaw(requestParameters, initOverrides);
1320
+ return await response.value();
1321
+ }
1322
+
1323
+ /**
1324
+ * Creates request options for deleteEnvironment without sending the request
1325
+ */
1326
+ async deleteEnvironmentRequestOpts(requestParameters: DeleteEnvironmentRequest): Promise<runtime.RequestOpts> {
1327
+ if (requestParameters['environmentId'] == null) {
1328
+ throw new runtime.RequiredError(
1329
+ 'environmentId',
1330
+ 'Required parameter "environmentId" was null or undefined when calling deleteEnvironment().'
1331
+ );
1332
+ }
1333
+
1334
+ const queryParameters: any = {};
1335
+
1336
+ const headerParameters: runtime.HTTPHeaders = {};
1337
+
1338
+ if (this.configuration && this.configuration.accessToken) {
1339
+ const token = this.configuration.accessToken;
1340
+ const tokenString = await token("BoatBearerAuth", []);
1341
+
1342
+ if (tokenString) {
1343
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1344
+ }
1345
+ }
1346
+
1347
+ let urlPath = `/environments/{environmentId}`;
1348
+ urlPath = urlPath.replace('{environmentId}', encodeURIComponent(String(requestParameters['environmentId'])));
1349
+
1350
+ return {
1351
+ path: urlPath,
1352
+ method: 'DELETE',
1353
+ headers: headerParameters,
1354
+ query: queryParameters,
1355
+ };
1356
+ }
1357
+
1358
+ /**
1359
+ * Soft-deletes an environment. The default environment cannot be deleted, and at least one environment is always kept.
1360
+ * Delete a sandbox environment
1361
+ */
1362
+ async deleteEnvironmentRaw(requestParameters: DeleteEnvironmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxEnvironmentResponse>> {
1363
+ const requestOptions = await this.deleteEnvironmentRequestOpts(requestParameters);
1364
+ const response = await this.request(requestOptions, initOverrides);
1365
+
1366
+ return new runtime.JSONApiResponse(response, (jsonValue) => SandboxEnvironmentResponseFromJSON(jsonValue));
1367
+ }
1368
+
1369
+ /**
1370
+ * Soft-deletes an environment. The default environment cannot be deleted, and at least one environment is always kept.
1371
+ * Delete a sandbox environment
1372
+ */
1373
+ async deleteEnvironment(requestParameters: DeleteEnvironmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxEnvironmentResponse> {
1374
+ const response = await this.deleteEnvironmentRaw(requestParameters, initOverrides);
1375
+ return await response.value();
1376
+ }
1377
+
1378
+ /**
1379
+ * Creates request options for deleteEnvironmentRepo without sending the request
1380
+ */
1381
+ async deleteEnvironmentRepoRequestOpts(requestParameters: DeleteEnvironmentRepoRequest): Promise<runtime.RequestOpts> {
1382
+ if (requestParameters['environmentId'] == null) {
1383
+ throw new runtime.RequiredError(
1384
+ 'environmentId',
1385
+ 'Required parameter "environmentId" was null or undefined when calling deleteEnvironmentRepo().'
1386
+ );
1387
+ }
1388
+
1389
+ if (requestParameters['repositoryId'] == null) {
1390
+ throw new runtime.RequiredError(
1391
+ 'repositoryId',
1392
+ 'Required parameter "repositoryId" was null or undefined when calling deleteEnvironmentRepo().'
1393
+ );
1394
+ }
1395
+
1396
+ const queryParameters: any = {};
1397
+
1398
+ const headerParameters: runtime.HTTPHeaders = {};
1399
+
1400
+ if (this.configuration && this.configuration.accessToken) {
1401
+ const token = this.configuration.accessToken;
1402
+ const tokenString = await token("BoatBearerAuth", []);
1403
+
1404
+ if (tokenString) {
1405
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1406
+ }
1407
+ }
1408
+
1409
+ let urlPath = `/environments/{environmentId}/repos/{repositoryId}`;
1410
+ urlPath = urlPath.replace('{environmentId}', encodeURIComponent(String(requestParameters['environmentId'])));
1411
+ urlPath = urlPath.replace('{repositoryId}', encodeURIComponent(String(requestParameters['repositoryId'])));
1412
+
1413
+ return {
1414
+ path: urlPath,
1415
+ method: 'DELETE',
1416
+ headers: headerParameters,
1417
+ query: queryParameters,
1418
+ };
1419
+ }
1420
+
1421
+ /**
1422
+ * Removes one repository from the environment\'s selection. Mints a new immutable version.
1423
+ * Remove a repository from an environment
1424
+ */
1425
+ async deleteEnvironmentRepoRaw(requestParameters: DeleteEnvironmentRepoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EnvironmentItemChangeResponse>> {
1426
+ const requestOptions = await this.deleteEnvironmentRepoRequestOpts(requestParameters);
1427
+ const response = await this.request(requestOptions, initOverrides);
1428
+
1429
+ return new runtime.JSONApiResponse(response, (jsonValue) => EnvironmentItemChangeResponseFromJSON(jsonValue));
1430
+ }
1431
+
1432
+ /**
1433
+ * Removes one repository from the environment\'s selection. Mints a new immutable version.
1434
+ * Remove a repository from an environment
1435
+ */
1436
+ async deleteEnvironmentRepo(requestParameters: DeleteEnvironmentRepoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentItemChangeResponse> {
1437
+ const response = await this.deleteEnvironmentRepoRaw(requestParameters, initOverrides);
1438
+ return await response.value();
1439
+ }
1440
+
1441
+ /**
1442
+ * Creates request options for deleteEnvironmentSecretFile without sending the request
1443
+ */
1444
+ async deleteEnvironmentSecretFileRequestOpts(requestParameters: DeleteEnvironmentSecretFileRequest): Promise<runtime.RequestOpts> {
1445
+ if (requestParameters['path'] == null) {
1446
+ throw new runtime.RequiredError(
1447
+ 'path',
1448
+ 'Required parameter "path" was null or undefined when calling deleteEnvironmentSecretFile().'
1449
+ );
1450
+ }
1451
+
1452
+ if (requestParameters['environmentId'] == null) {
1453
+ throw new runtime.RequiredError(
1454
+ 'environmentId',
1455
+ 'Required parameter "environmentId" was null or undefined when calling deleteEnvironmentSecretFile().'
1456
+ );
1457
+ }
1458
+
1459
+ const queryParameters: any = {};
1460
+
1461
+ if (requestParameters['path'] != null) {
1462
+ queryParameters['path'] = requestParameters['path'];
1463
+ }
1464
+
1465
+ const headerParameters: runtime.HTTPHeaders = {};
1466
+
1467
+ if (this.configuration && this.configuration.accessToken) {
1468
+ const token = this.configuration.accessToken;
1469
+ const tokenString = await token("BoatBearerAuth", []);
1470
+
1471
+ if (tokenString) {
1472
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1473
+ }
1474
+ }
1475
+
1476
+ let urlPath = `/environments/{environmentId}/secret-files`;
1477
+ urlPath = urlPath.replace('{environmentId}', encodeURIComponent(String(requestParameters['environmentId'])));
1478
+
1479
+ return {
1480
+ path: urlPath,
1481
+ method: 'DELETE',
1482
+ headers: headerParameters,
1483
+ query: queryParameters,
1484
+ };
1485
+ }
1486
+
1487
+ /**
1488
+ * Removes the secret file at `path`. Mints a new immutable version.
1489
+ * Remove one secret file
1490
+ */
1491
+ async deleteEnvironmentSecretFileRaw(requestParameters: DeleteEnvironmentSecretFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EnvironmentItemChangeResponse>> {
1492
+ const requestOptions = await this.deleteEnvironmentSecretFileRequestOpts(requestParameters);
1493
+ const response = await this.request(requestOptions, initOverrides);
1494
+
1495
+ return new runtime.JSONApiResponse(response, (jsonValue) => EnvironmentItemChangeResponseFromJSON(jsonValue));
1496
+ }
1497
+
1498
+ /**
1499
+ * Removes the secret file at `path`. Mints a new immutable version.
1500
+ * Remove one secret file
1501
+ */
1502
+ async deleteEnvironmentSecretFile(requestParameters: DeleteEnvironmentSecretFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentItemChangeResponse> {
1503
+ const response = await this.deleteEnvironmentSecretFileRaw(requestParameters, initOverrides);
1504
+ return await response.value();
1505
+ }
1506
+
1507
+ /**
1508
+ * Creates request options for deleteEnvironmentVar without sending the request
1509
+ */
1510
+ async deleteEnvironmentVarRequestOpts(requestParameters: DeleteEnvironmentVarRequest): Promise<runtime.RequestOpts> {
1511
+ if (requestParameters['environmentId'] == null) {
1512
+ throw new runtime.RequiredError(
1513
+ 'environmentId',
1514
+ 'Required parameter "environmentId" was null or undefined when calling deleteEnvironmentVar().'
1515
+ );
1516
+ }
1517
+
1518
+ if (requestParameters['key'] == null) {
1519
+ throw new runtime.RequiredError(
1520
+ 'key',
1521
+ 'Required parameter "key" was null or undefined when calling deleteEnvironmentVar().'
1522
+ );
1523
+ }
1524
+
1525
+ const queryParameters: any = {};
1526
+
1527
+ const headerParameters: runtime.HTTPHeaders = {};
1528
+
1529
+ if (this.configuration && this.configuration.accessToken) {
1530
+ const token = this.configuration.accessToken;
1531
+ const tokenString = await token("BoatBearerAuth", []);
1532
+
1533
+ if (tokenString) {
1534
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1535
+ }
1536
+ }
1537
+
1538
+ let urlPath = `/environments/{environmentId}/vars/{key}`;
1539
+ urlPath = urlPath.replace('{environmentId}', encodeURIComponent(String(requestParameters['environmentId'])));
1540
+ urlPath = urlPath.replace('{key}', encodeURIComponent(String(requestParameters['key'])));
1541
+
1542
+ return {
1543
+ path: urlPath,
1544
+ method: 'DELETE',
1545
+ headers: headerParameters,
1546
+ query: queryParameters,
1547
+ };
1548
+ }
1549
+
1550
+ /**
1551
+ * Removes a single variable. Mints a new immutable version.
1552
+ * Remove one environment variable
1553
+ */
1554
+ async deleteEnvironmentVarRaw(requestParameters: DeleteEnvironmentVarRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EnvironmentItemChangeResponse>> {
1555
+ const requestOptions = await this.deleteEnvironmentVarRequestOpts(requestParameters);
1556
+ const response = await this.request(requestOptions, initOverrides);
1557
+
1558
+ return new runtime.JSONApiResponse(response, (jsonValue) => EnvironmentItemChangeResponseFromJSON(jsonValue));
1559
+ }
1560
+
1561
+ /**
1562
+ * Removes a single variable. Mints a new immutable version.
1563
+ * Remove one environment variable
1564
+ */
1565
+ async deleteEnvironmentVar(requestParameters: DeleteEnvironmentVarRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentItemChangeResponse> {
1566
+ const response = await this.deleteEnvironmentVarRaw(requestParameters, initOverrides);
1567
+ return await response.value();
1568
+ }
1569
+
1570
+ /**
1571
+ * Creates request options for deleteNamedSnapshot without sending the request
1572
+ */
1573
+ async deleteNamedSnapshotRequestOpts(requestParameters: DeleteNamedSnapshotRequest): Promise<runtime.RequestOpts> {
1574
+ if (requestParameters['name'] == null) {
1575
+ throw new runtime.RequiredError(
1576
+ 'name',
1577
+ 'Required parameter "name" was null or undefined when calling deleteNamedSnapshot().'
1578
+ );
1579
+ }
1580
+
1581
+ const queryParameters: any = {};
1582
+
1583
+ const headerParameters: runtime.HTTPHeaders = {};
1584
+
1585
+ if (this.configuration && this.configuration.accessToken) {
1586
+ const token = this.configuration.accessToken;
1587
+ const tokenString = await token("BoatBearerAuth", []);
1588
+
1589
+ if (tokenString) {
1590
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1591
+ }
1592
+ }
1593
+
1594
+ let urlPath = `/named-snapshots/{name}`;
1595
+ urlPath = urlPath.replace('{name}', encodeURIComponent(String(requestParameters['name'])));
1596
+
1597
+ return {
1598
+ path: urlPath,
1599
+ method: 'DELETE',
1600
+ headers: headerParameters,
1601
+ query: queryParameters,
1602
+ };
1603
+ }
1604
+
1605
+ /**
1606
+ * Remove a named snapshot and release its storage (`boat snapshot rm <name>` in the CLI). Sandboxes already deployed from it are unaffected.
1607
+ * Remove a named snapshot
1608
+ */
1609
+ async deleteNamedSnapshotRaw(requestParameters: DeleteNamedSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<NamedSnapshotDeletedResponse>> {
1610
+ const requestOptions = await this.deleteNamedSnapshotRequestOpts(requestParameters);
1611
+ const response = await this.request(requestOptions, initOverrides);
1612
+
1613
+ return new runtime.JSONApiResponse(response, (jsonValue) => NamedSnapshotDeletedResponseFromJSON(jsonValue));
1614
+ }
1615
+
1616
+ /**
1617
+ * Remove a named snapshot and release its storage (`boat snapshot rm <name>` in the CLI). Sandboxes already deployed from it are unaffected.
1618
+ * Remove a named snapshot
1619
+ */
1620
+ async deleteNamedSnapshot(requestParameters: DeleteNamedSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<NamedSnapshotDeletedResponse> {
1621
+ const response = await this.deleteNamedSnapshotRaw(requestParameters, initOverrides);
1622
+ return await response.value();
1623
+ }
1624
+
1625
+ /**
1626
+ * Creates request options for deleteSandbox without sending the request
1627
+ */
1628
+ async deleteSandboxRequestOpts(requestParameters: DeleteSandboxRequest): Promise<runtime.RequestOpts> {
1629
+ if (requestParameters['xAsciiConfirmDelete'] == null) {
1630
+ throw new runtime.RequiredError(
1631
+ 'xAsciiConfirmDelete',
1632
+ 'Required parameter "xAsciiConfirmDelete" was null or undefined when calling deleteSandbox().'
1633
+ );
1634
+ }
1635
+
1636
+ if (requestParameters['sandboxId'] == null) {
1637
+ throw new runtime.RequiredError(
1638
+ 'sandboxId',
1639
+ 'Required parameter "sandboxId" was null or undefined when calling deleteSandbox().'
1640
+ );
1641
+ }
1642
+
1643
+ const queryParameters: any = {};
1644
+
1645
+ const headerParameters: runtime.HTTPHeaders = {};
1646
+
1647
+ if (requestParameters['xAsciiConfirmDelete'] != null) {
1648
+ headerParameters['X-Ascii-Confirm-Delete'] = String(requestParameters['xAsciiConfirmDelete']);
1649
+ }
1650
+
1651
+ if (this.configuration && this.configuration.accessToken) {
1652
+ const token = this.configuration.accessToken;
1653
+ const tokenString = await token("BoatBearerAuth", []);
1654
+
1655
+ if (tokenString) {
1656
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1657
+ }
1658
+ }
1659
+
1660
+ let urlPath = `/sandboxes/{sandboxId}`;
1661
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
1662
+
1663
+ return {
1664
+ path: urlPath,
1665
+ method: 'DELETE',
1666
+ headers: headerParameters,
1667
+ query: queryParameters,
1668
+ };
1669
+ }
1670
+
1671
+ /**
1672
+ * Accept irreversible background deletion of the sandbox machine, snapshots, and content-bearing records. This is not archive: the sandbox cannot be resumed. Named snapshots and other shared artifacts remain independent. Poll the returned operation until `completed`.
1673
+ * Permanently delete sandbox data
1674
+ */
1675
+ async deleteSandboxRaw(requestParameters: DeleteSandboxRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DeletionOperationResponse>> {
1676
+ const requestOptions = await this.deleteSandboxRequestOpts(requestParameters);
1677
+ const response = await this.request(requestOptions, initOverrides);
1678
+
1679
+ return new runtime.JSONApiResponse(response, (jsonValue) => DeletionOperationResponseFromJSON(jsonValue));
1680
+ }
1681
+
1682
+ /**
1683
+ * Accept irreversible background deletion of the sandbox machine, snapshots, and content-bearing records. This is not archive: the sandbox cannot be resumed. Named snapshots and other shared artifacts remain independent. Poll the returned operation until `completed`.
1684
+ * Permanently delete sandbox data
1685
+ */
1686
+ async deleteSandbox(requestParameters: DeleteSandboxRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DeletionOperationResponse> {
1687
+ const response = await this.deleteSandboxRaw(requestParameters, initOverrides);
1688
+ return await response.value();
1689
+ }
1690
+
1691
+ /**
1692
+ * Creates request options for deleteSnapshot without sending the request
1693
+ */
1694
+ async deleteSnapshotRequestOpts(requestParameters: DeleteSnapshotRequest): Promise<runtime.RequestOpts> {
1695
+ if (requestParameters['snapshotId'] == null) {
1696
+ throw new runtime.RequiredError(
1697
+ 'snapshotId',
1698
+ 'Required parameter "snapshotId" was null or undefined when calling deleteSnapshot().'
1699
+ );
1700
+ }
1701
+
1702
+ if (requestParameters['xAsciiConfirmDelete'] == null) {
1703
+ throw new runtime.RequiredError(
1704
+ 'xAsciiConfirmDelete',
1705
+ 'Required parameter "xAsciiConfirmDelete" was null or undefined when calling deleteSnapshot().'
1706
+ );
1707
+ }
1708
+
1709
+ const queryParameters: any = {};
1710
+
1711
+ const headerParameters: runtime.HTTPHeaders = {};
1712
+
1713
+ if (requestParameters['xAsciiConfirmDelete'] != null) {
1714
+ headerParameters['X-Ascii-Confirm-Delete'] = String(requestParameters['xAsciiConfirmDelete']);
1715
+ }
1716
+
1717
+ if (this.configuration && this.configuration.accessToken) {
1718
+ const token = this.configuration.accessToken;
1719
+ const tokenString = await token("BoatBearerAuth", []);
1720
+
1721
+ if (tokenString) {
1722
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1723
+ }
1724
+ }
1725
+
1726
+ let urlPath = `/snapshots/{snapshotId}`;
1727
+ urlPath = urlPath.replace('{snapshotId}', encodeURIComponent(String(requestParameters['snapshotId'])));
1728
+
1729
+ return {
1730
+ path: urlPath,
1731
+ method: 'DELETE',
1732
+ headers: headerParameters,
1733
+ query: queryParameters,
1734
+ };
1735
+ }
1736
+
1737
+ /**
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`.
1739
+ * Permanently delete snapshot data
1740
+ */
1741
+ async deleteSnapshotRaw(requestParameters: DeleteSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DeletionOperationResponse>> {
1742
+ const requestOptions = await this.deleteSnapshotRequestOpts(requestParameters);
1743
+ const response = await this.request(requestOptions, initOverrides);
1744
+
1745
+ return new runtime.JSONApiResponse(response, (jsonValue) => DeletionOperationResponseFromJSON(jsonValue));
1746
+ }
1747
+
1748
+ /**
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`.
1750
+ * Permanently delete snapshot data
1751
+ */
1752
+ async deleteSnapshot(requestParameters: DeleteSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DeletionOperationResponse> {
1753
+ const response = await this.deleteSnapshotRaw(requestParameters, initOverrides);
1754
+ return await response.value();
1755
+ }
1756
+
1757
+ /**
1758
+ * Creates request options for deleteWebhook without sending the request
1759
+ */
1760
+ async deleteWebhookRequestOpts(requestParameters: DeleteWebhookRequest): Promise<runtime.RequestOpts> {
1761
+ if (requestParameters['webhookId'] == null) {
1762
+ throw new runtime.RequiredError(
1763
+ 'webhookId',
1764
+ 'Required parameter "webhookId" was null or undefined when calling deleteWebhook().'
1765
+ );
1766
+ }
1767
+
1768
+ const queryParameters: any = {};
1769
+
1770
+ const headerParameters: runtime.HTTPHeaders = {};
1771
+
1772
+ if (this.configuration && this.configuration.accessToken) {
1773
+ const token = this.configuration.accessToken;
1774
+ const tokenString = await token("BoatBearerAuth", []);
1775
+
1776
+ if (tokenString) {
1777
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1778
+ }
1779
+ }
1780
+
1781
+ let urlPath = `/webhooks/{webhookId}`;
1782
+ urlPath = urlPath.replace('{webhookId}', encodeURIComponent(String(requestParameters['webhookId'])));
1783
+
1784
+ return {
1785
+ path: urlPath,
1786
+ method: 'DELETE',
1787
+ headers: headerParameters,
1788
+ query: queryParameters,
1789
+ };
1790
+ }
1791
+
1792
+ /**
1793
+ * Deletes the endpoint and its queued deliveries. An attempt already in flight can still arrive.
1794
+ * Delete webhook
1795
+ */
1796
+ async deleteWebhookRaw(requestParameters: DeleteWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WebhookDeleteResponse>> {
1797
+ const requestOptions = await this.deleteWebhookRequestOpts(requestParameters);
1798
+ const response = await this.request(requestOptions, initOverrides);
1799
+
1800
+ return new runtime.JSONApiResponse(response, (jsonValue) => WebhookDeleteResponseFromJSON(jsonValue));
1801
+ }
1802
+
1803
+ /**
1804
+ * Deletes the endpoint and its queued deliveries. An attempt already in flight can still arrive.
1805
+ * Delete webhook
1806
+ */
1807
+ async deleteWebhook(requestParameters: DeleteWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WebhookDeleteResponse> {
1808
+ const response = await this.deleteWebhookRaw(requestParameters, initOverrides);
1809
+ return await response.value();
1810
+ }
1811
+
1812
+ /**
1813
+ * Creates request options for desktop without sending the request
1814
+ */
1815
+ async desktopRequestOpts(requestParameters: DesktopOperationRequest): Promise<runtime.RequestOpts> {
1816
+ if (requestParameters['sandboxId'] == null) {
1817
+ throw new runtime.RequiredError(
1818
+ 'sandboxId',
1819
+ 'Required parameter "sandboxId" was null or undefined when calling desktop().'
1820
+ );
1821
+ }
1822
+
1823
+ const queryParameters: any = {};
1824
+
1825
+ if (requestParameters['vnc'] != null) {
1826
+ queryParameters['vnc'] = requestParameters['vnc'];
1827
+ }
1828
+
1829
+ if (requestParameters['theme'] != null) {
1830
+ queryParameters['theme'] = requestParameters['theme'];
1831
+ }
1832
+
1833
+ const headerParameters: runtime.HTTPHeaders = {};
1834
+
1835
+ headerParameters['Content-Type'] = 'application/json';
1836
+
1837
+ if (this.configuration && this.configuration.accessToken) {
1838
+ const token = this.configuration.accessToken;
1839
+ const tokenString = await token("BoatBearerAuth", []);
1840
+
1841
+ if (tokenString) {
1842
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1843
+ }
1844
+ }
1845
+
1846
+ let urlPath = `/sandboxes/{sandboxId}/desktop`;
1847
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
1848
+
1849
+ return {
1850
+ path: urlPath,
1851
+ method: 'POST',
1852
+ headers: headerParameters,
1853
+ query: queryParameters,
1854
+ body: DesktopRequestToJSON(requestParameters['desktopRequest']),
1855
+ };
1856
+ }
1857
+
1858
+ /**
1859
+ * 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
+ * Get desktop streaming URL
1861
+ */
1862
+ async desktopRaw(requestParameters: DesktopOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DesktopResponse>> {
1863
+ const requestOptions = await this.desktopRequestOpts(requestParameters);
1864
+ const response = await this.request(requestOptions, initOverrides);
1865
+
1866
+ return new runtime.JSONApiResponse(response, (jsonValue) => DesktopResponseFromJSON(jsonValue));
1867
+ }
1868
+
1869
+ /**
1870
+ * 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
+ * Get desktop streaming URL
1872
+ */
1873
+ async desktop(requestParameters: DesktopOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DesktopResponse> {
1874
+ const response = await this.desktopRaw(requestParameters, initOverrides);
1875
+ return await response.value();
1876
+ }
1877
+
1878
+ /**
1879
+ * Creates request options for environments without sending the request
1880
+ */
1881
+ async environmentsRequestOpts(): Promise<runtime.RequestOpts> {
1882
+ const queryParameters: any = {};
1883
+
1884
+ const headerParameters: runtime.HTTPHeaders = {};
1885
+
1886
+ if (this.configuration && this.configuration.accessToken) {
1887
+ const token = this.configuration.accessToken;
1888
+ const tokenString = await token("BoatBearerAuth", []);
1889
+
1890
+ if (tokenString) {
1891
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1892
+ }
1893
+ }
1894
+
1895
+ let urlPath = `/environments`;
1896
+
1897
+ return {
1898
+ path: urlPath,
1899
+ method: 'GET',
1900
+ headers: headerParameters,
1901
+ query: queryParameters,
1902
+ };
1903
+ }
1904
+
1905
+ /**
1906
+ * Returns every non-deleted sandbox environment with its latest-version flags, contents, and per-version sandbox usage. A default environment named `base` is created on first access if none exists.
1907
+ * List Sandbox environments
1908
+ */
1909
+ async environmentsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxEnvironmentListResponse>> {
1910
+ const requestOptions = await this.environmentsRequestOpts();
1911
+ const response = await this.request(requestOptions, initOverrides);
1912
+
1913
+ return new runtime.JSONApiResponse(response, (jsonValue) => SandboxEnvironmentListResponseFromJSON(jsonValue));
1914
+ }
1915
+
1916
+ /**
1917
+ * Returns every non-deleted sandbox environment with its latest-version flags, contents, and per-version sandbox usage. A default environment named `base` is created on first access if none exists.
1918
+ * List Sandbox environments
1919
+ */
1920
+ async environments(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxEnvironmentListResponse> {
1921
+ const response = await this.environmentsRaw(initOverrides);
1922
+ return await response.value();
1923
+ }
1924
+
1925
+ /**
1926
+ * Creates request options for events without sending the request
1927
+ */
1928
+ async eventsRequestOpts(requestParameters: EventsRequest): Promise<runtime.RequestOpts> {
1929
+ if (requestParameters['sandboxId'] == null) {
1930
+ throw new runtime.RequiredError(
1931
+ 'sandboxId',
1932
+ 'Required parameter "sandboxId" was null or undefined when calling events().'
1933
+ );
1934
+ }
1935
+
1936
+ const queryParameters: any = {};
1937
+
1938
+ if (requestParameters['limit'] != null) {
1939
+ queryParameters['limit'] = requestParameters['limit'];
1940
+ }
1941
+
1942
+ if (requestParameters['cursor'] != null) {
1943
+ queryParameters['cursor'] = requestParameters['cursor'];
1944
+ }
1945
+
1946
+ if (requestParameters['sort'] != null) {
1947
+ queryParameters['sort'] = requestParameters['sort'];
1948
+ }
1949
+
1950
+ if (requestParameters['type'] != null) {
1951
+ queryParameters['type'] = requestParameters['type'];
1952
+ }
1953
+
1954
+ if (requestParameters['conversation'] != null) {
1955
+ queryParameters['conversation'] = requestParameters['conversation'];
1956
+ }
1957
+
1958
+ const headerParameters: runtime.HTTPHeaders = {};
1959
+
1960
+ if (this.configuration && this.configuration.accessToken) {
1961
+ const token = this.configuration.accessToken;
1962
+ const tokenString = await token("BoatBearerAuth", []);
1963
+
1964
+ if (tokenString) {
1965
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1966
+ }
1967
+ }
1968
+
1969
+ let urlPath = `/sandboxes/{sandboxId}/events`;
1970
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
1971
+
1972
+ return {
1973
+ path: urlPath,
1974
+ method: 'GET',
1975
+ headers: headerParameters,
1976
+ query: queryParameters,
1977
+ };
1978
+ }
1979
+
1980
+ /**
1981
+ * Return Sandbox work, lifecycle, and progress events so product UIs can show what the sandbox is doing. A Sandbox runs many conversations in parallel; this streams **all** of them by default and every event carries a `conversationId`. Filter to one or more with `conversation`. Event payloads are extensible. Clients can long-poll this endpoint with `sort=asc` and a cursor to stream responses. Response events expose agent text, streaming partials via `data.is_streaming`, and tool calls/results via `data.tools`.
1982
+ * List boat events
1983
+ */
1984
+ async eventsRaw(requestParameters: EventsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EventsResponse>> {
1985
+ const requestOptions = await this.eventsRequestOpts(requestParameters);
1986
+ const response = await this.request(requestOptions, initOverrides);
1987
+
1988
+ return new runtime.JSONApiResponse(response, (jsonValue) => EventsResponseFromJSON(jsonValue));
1989
+ }
1990
+
1991
+ /**
1992
+ * Return Sandbox work, lifecycle, and progress events so product UIs can show what the sandbox is doing. A Sandbox runs many conversations in parallel; this streams **all** of them by default and every event carries a `conversationId`. Filter to one or more with `conversation`. Event payloads are extensible. Clients can long-poll this endpoint with `sort=asc` and a cursor to stream responses. Response events expose agent text, streaming partials via `data.is_streaming`, and tool calls/results via `data.tools`.
1993
+ * List boat events
1994
+ */
1995
+ async events(requestParameters: EventsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EventsResponse> {
1996
+ const response = await this.eventsRaw(requestParameters, initOverrides);
1997
+ return await response.value();
1998
+ }
1999
+
2000
+ /**
2001
+ * Creates request options for fork without sending the request
2002
+ */
2003
+ async forkRequestOpts(requestParameters: ForkOperationRequest): Promise<runtime.RequestOpts> {
2004
+ if (requestParameters['sandboxId'] == null) {
2005
+ throw new runtime.RequiredError(
2006
+ 'sandboxId',
2007
+ 'Required parameter "sandboxId" was null or undefined when calling fork().'
2008
+ );
2009
+ }
2010
+
2011
+ const queryParameters: any = {};
2012
+
2013
+ const headerParameters: runtime.HTTPHeaders = {};
2014
+
2015
+ headerParameters['Content-Type'] = 'application/json';
2016
+
2017
+ if (requestParameters['idempotencyKey'] != null) {
2018
+ headerParameters['Idempotency-Key'] = String(requestParameters['idempotencyKey']);
2019
+ }
2020
+
2021
+ if (this.configuration && this.configuration.accessToken) {
2022
+ const token = this.configuration.accessToken;
2023
+ const tokenString = await token("BoatBearerAuth", []);
2024
+
2025
+ if (tokenString) {
2026
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2027
+ }
2028
+ }
2029
+
2030
+ let urlPath = `/sandboxes/{sandboxId}/fork`;
2031
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
2032
+
2033
+ return {
2034
+ path: urlPath,
2035
+ method: 'POST',
2036
+ headers: headerParameters,
2037
+ query: queryParameters,
2038
+ body: ForkRequestToJSON(requestParameters['forkRequest']),
2039
+ };
2040
+ }
2041
+
2042
+ /**
2043
+ * 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
+ * Fork sandbox
2045
+ */
2046
+ async forkRaw(requestParameters: ForkOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxActionResponse>> {
2047
+ const requestOptions = await this.forkRequestOpts(requestParameters);
2048
+ const response = await this.request(requestOptions, initOverrides);
2049
+
2050
+ return new runtime.JSONApiResponse(response, (jsonValue) => SandboxActionResponseFromJSON(jsonValue));
2051
+ }
2052
+
2053
+ /**
2054
+ * 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
+ * Fork sandbox
2056
+ */
2057
+ async fork(requestParameters: ForkOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxActionResponse> {
2058
+ const response = await this.forkRaw(requestParameters, initOverrides);
2059
+ return await response.value();
2060
+ }
2061
+
2062
+ /**
2063
+ * Creates request options for get without sending the request
2064
+ */
2065
+ async getRequestOpts(requestParameters: GetRequest): Promise<runtime.RequestOpts> {
2066
+ if (requestParameters['sandboxId'] == null) {
2067
+ throw new runtime.RequiredError(
2068
+ 'sandboxId',
2069
+ 'Required parameter "sandboxId" was null or undefined when calling get().'
2070
+ );
2071
+ }
2072
+
2073
+ const queryParameters: any = {};
2074
+
2075
+ const headerParameters: runtime.HTTPHeaders = {};
2076
+
2077
+ if (this.configuration && this.configuration.accessToken) {
2078
+ const token = this.configuration.accessToken;
2079
+ const tokenString = await token("BoatBearerAuth", []);
2080
+
2081
+ if (tokenString) {
2082
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2083
+ }
2084
+ }
2085
+
2086
+ let urlPath = `/sandboxes/{sandboxId}`;
2087
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
2088
+
2089
+ return {
2090
+ path: urlPath,
2091
+ method: 'GET',
2092
+ headers: headerParameters,
2093
+ query: queryParameters,
2094
+ };
2095
+ }
2096
+
2097
+ /**
2098
+ * Poll this endpoint after create, stop, resume, or fork operations.
2099
+ * Get sandbox
2100
+ */
2101
+ async getRaw(requestParameters: GetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxInfoResponse>> {
2102
+ const requestOptions = await this.getRequestOpts(requestParameters);
2103
+ const response = await this.request(requestOptions, initOverrides);
2104
+
2105
+ return new runtime.JSONApiResponse(response, (jsonValue) => SandboxInfoResponseFromJSON(jsonValue));
2106
+ }
2107
+
2108
+ /**
2109
+ * Poll this endpoint after create, stop, resume, or fork operations.
2110
+ * Get sandbox
2111
+ */
2112
+ async get(requestParameters: GetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxInfoResponse> {
2113
+ const response = await this.getRaw(requestParameters, initOverrides);
2114
+ return await response.value();
2115
+ }
2116
+
2117
+ /**
2118
+ * Creates request options for getDataRetention without sending the request
2119
+ */
2120
+ async getDataRetentionRequestOpts(): Promise<runtime.RequestOpts> {
2121
+ const queryParameters: any = {};
2122
+
2123
+ const headerParameters: runtime.HTTPHeaders = {};
2124
+
2125
+ if (this.configuration && this.configuration.accessToken) {
2126
+ const token = this.configuration.accessToken;
2127
+ const tokenString = await token("BoatBearerAuth", []);
2128
+
2129
+ if (tokenString) {
2130
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2131
+ }
2132
+ }
2133
+
2134
+ let urlPath = `/account/data-retention`;
2135
+
2136
+ return {
2137
+ path: urlPath,
2138
+ method: 'GET',
2139
+ headers: headerParameters,
2140
+ query: queryParameters,
2141
+ };
2142
+ }
2143
+
2144
+ /**
2145
+ * Returns the current zero-data-retention policy. Per-Boat API keys cannot access this account-wide setting. Responses are never cached.
2146
+ * Get account data-retention policy
2147
+ */
2148
+ async getDataRetentionRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DataRetentionPolicyResponse>> {
2149
+ const requestOptions = await this.getDataRetentionRequestOpts();
2150
+ const response = await this.request(requestOptions, initOverrides);
2151
+
2152
+ return new runtime.JSONApiResponse(response, (jsonValue) => DataRetentionPolicyResponseFromJSON(jsonValue));
2153
+ }
2154
+
2155
+ /**
2156
+ * Returns the current zero-data-retention policy. Per-Boat API keys cannot access this account-wide setting. Responses are never cached.
2157
+ * Get account data-retention policy
2158
+ */
2159
+ async getDataRetention(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DataRetentionPolicyResponse> {
2160
+ const response = await this.getDataRetentionRaw(initOverrides);
2161
+ return await response.value();
2162
+ }
2163
+
2164
+ /**
2165
+ * Creates request options for getDeletionOperation without sending the request
2166
+ */
2167
+ async getDeletionOperationRequestOpts(requestParameters: GetDeletionOperationRequest): Promise<runtime.RequestOpts> {
2168
+ if (requestParameters['operationId'] == null) {
2169
+ throw new runtime.RequiredError(
2170
+ 'operationId',
2171
+ 'Required parameter "operationId" was null or undefined when calling getDeletionOperation().'
2172
+ );
2173
+ }
2174
+
2175
+ const queryParameters: any = {};
2176
+
2177
+ const headerParameters: runtime.HTTPHeaders = {};
2178
+
2179
+ if (this.configuration && this.configuration.accessToken) {
2180
+ const token = this.configuration.accessToken;
2181
+ const tokenString = await token("BoatBearerAuth", []);
2182
+
2183
+ if (tokenString) {
2184
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2185
+ }
2186
+ }
2187
+
2188
+ let urlPath = `/deletion-operations/{operationId}`;
2189
+ urlPath = urlPath.replace('{operationId}', encodeURIComponent(String(requestParameters['operationId'])));
2190
+
2191
+ return {
2192
+ path: urlPath,
2193
+ method: 'GET',
2194
+ headers: headerParameters,
2195
+ query: queryParameters,
2196
+ };
2197
+ }
2198
+
2199
+ /**
2200
+ * Poll an accepted Boat or snapshot deletion. Only operations owned by the authenticated account are returned. Responses are never cached.
2201
+ * Get deletion operation
2202
+ */
2203
+ async getDeletionOperationRaw(requestParameters: GetDeletionOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DeletionOperationResponse>> {
2204
+ const requestOptions = await this.getDeletionOperationRequestOpts(requestParameters);
2205
+ const response = await this.request(requestOptions, initOverrides);
2206
+
2207
+ return new runtime.JSONApiResponse(response, (jsonValue) => DeletionOperationResponseFromJSON(jsonValue));
2208
+ }
2209
+
2210
+ /**
2211
+ * Poll an accepted Boat or snapshot deletion. Only operations owned by the authenticated account are returned. Responses are never cached.
2212
+ * Get deletion operation
2213
+ */
2214
+ async getDeletionOperation(requestParameters: GetDeletionOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DeletionOperationResponse> {
2215
+ const response = await this.getDeletionOperationRaw(requestParameters, initOverrides);
2216
+ return await response.value();
2217
+ }
2218
+
2219
+ /**
2220
+ * Creates request options for getLatestSandboxSnapshot without sending the request
2221
+ */
2222
+ async getLatestSandboxSnapshotRequestOpts(requestParameters: GetLatestSandboxSnapshotRequest): Promise<runtime.RequestOpts> {
2223
+ if (requestParameters['sandboxId'] == null) {
2224
+ throw new runtime.RequiredError(
2225
+ 'sandboxId',
2226
+ 'Required parameter "sandboxId" was null or undefined when calling getLatestSandboxSnapshot().'
2227
+ );
2228
+ }
2229
+
2230
+ const queryParameters: any = {};
2231
+
2232
+ const headerParameters: runtime.HTTPHeaders = {};
2233
+
2234
+ if (this.configuration && this.configuration.accessToken) {
2235
+ const token = this.configuration.accessToken;
2236
+ const tokenString = await token("BoatBearerAuth", []);
2237
+
2238
+ if (tokenString) {
2239
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2240
+ }
2241
+ }
2242
+
2243
+ let urlPath = `/sandboxes/{sandboxId}/snapshots/latest`;
2244
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
2245
+
2246
+ return {
2247
+ path: urlPath,
2248
+ method: 'GET',
2249
+ headers: headerParameters,
2250
+ query: queryParameters,
2251
+ };
2252
+ }
2253
+
2254
+ /**
2255
+ * Return the most recent completed snapshot for this sandbox, or `null` if it has none.
2256
+ * Get latest boat snapshot
2257
+ */
2258
+ async getLatestSandboxSnapshotRaw(requestParameters: GetLatestSandboxSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SnapshotLatestResponse>> {
2259
+ const requestOptions = await this.getLatestSandboxSnapshotRequestOpts(requestParameters);
2260
+ const response = await this.request(requestOptions, initOverrides);
2261
+
2262
+ return new runtime.JSONApiResponse(response, (jsonValue) => SnapshotLatestResponseFromJSON(jsonValue));
2263
+ }
2264
+
2265
+ /**
2266
+ * Return the most recent completed snapshot for this sandbox, or `null` if it has none.
2267
+ * Get latest boat snapshot
2268
+ */
2269
+ async getLatestSandboxSnapshot(requestParameters: GetLatestSandboxSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SnapshotLatestResponse> {
2270
+ const response = await this.getLatestSandboxSnapshotRaw(requestParameters, initOverrides);
2271
+ return await response.value();
2272
+ }
2273
+
2274
+ /**
2275
+ * Creates request options for getNamedSnapshot without sending the request
2276
+ */
2277
+ async getNamedSnapshotRequestOpts(requestParameters: GetNamedSnapshotRequest): Promise<runtime.RequestOpts> {
2278
+ if (requestParameters['name'] == null) {
2279
+ throw new runtime.RequiredError(
2280
+ 'name',
2281
+ 'Required parameter "name" was null or undefined when calling getNamedSnapshot().'
2282
+ );
2283
+ }
2284
+
2285
+ const queryParameters: any = {};
2286
+
2287
+ const headerParameters: runtime.HTTPHeaders = {};
2288
+
2289
+ if (this.configuration && this.configuration.accessToken) {
2290
+ const token = this.configuration.accessToken;
2291
+ const tokenString = await token("BoatBearerAuth", []);
2292
+
2293
+ if (tokenString) {
2294
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2295
+ }
2296
+ }
2297
+
2298
+ let urlPath = `/named-snapshots/{name}`;
2299
+ urlPath = urlPath.replace('{name}', encodeURIComponent(String(requestParameters['name'])));
2300
+
2301
+ return {
2302
+ path: urlPath,
2303
+ method: 'GET',
2304
+ headers: headerParameters,
2305
+ query: queryParameters,
2306
+ };
2307
+ }
2308
+
2309
+ /**
2310
+ * Get a named snapshot
2311
+ */
2312
+ async getNamedSnapshotRaw(requestParameters: GetNamedSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<NamedSnapshotInfoResponse>> {
2313
+ const requestOptions = await this.getNamedSnapshotRequestOpts(requestParameters);
2314
+ const response = await this.request(requestOptions, initOverrides);
2315
+
2316
+ return new runtime.JSONApiResponse(response, (jsonValue) => NamedSnapshotInfoResponseFromJSON(jsonValue));
2317
+ }
2318
+
2319
+ /**
2320
+ * Get a named snapshot
2321
+ */
2322
+ async getNamedSnapshot(requestParameters: GetNamedSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<NamedSnapshotInfoResponse> {
2323
+ const response = await this.getNamedSnapshotRaw(requestParameters, initOverrides);
2324
+ return await response.value();
2325
+ }
2326
+
2327
+ /**
2328
+ * Creates request options for getSnapshotDownload without sending the request
2329
+ */
2330
+ async getSnapshotDownloadRequestOpts(requestParameters: GetSnapshotDownloadRequest): Promise<runtime.RequestOpts> {
2331
+ if (requestParameters['snapshotId'] == null) {
2332
+ throw new runtime.RequiredError(
2333
+ 'snapshotId',
2334
+ 'Required parameter "snapshotId" was null or undefined when calling getSnapshotDownload().'
2335
+ );
2336
+ }
2337
+
2338
+ const queryParameters: any = {};
2339
+
2340
+ const headerParameters: runtime.HTTPHeaders = {};
2341
+
2342
+ if (this.configuration && this.configuration.accessToken) {
2343
+ const token = this.configuration.accessToken;
2344
+ const tokenString = await token("BoatBearerAuth", []);
2345
+
2346
+ if (tokenString) {
2347
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2348
+ }
2349
+ }
2350
+
2351
+ let urlPath = `/snapshots/{snapshotId}/download`;
2352
+ urlPath = urlPath.replace('{snapshotId}', encodeURIComponent(String(requestParameters['snapshotId'])));
2353
+
2354
+ return {
2355
+ path: urlPath,
2356
+ method: 'GET',
2357
+ headers: headerParameters,
2358
+ query: queryParameters,
2359
+ };
2360
+ }
2361
+
2362
+ /**
2363
+ * Return time-limited signed URLs for every chunk needed to reconstruct the sandbox filesystem at this snapshot (the full chain, base through this generation), plus the inventory. Download the chunks and reassemble them as described by `reconstruct`. The `boat snapshot pull` CLI command does this for you.
2364
+ * Get snapshot download
2365
+ */
2366
+ async getSnapshotDownloadRaw(requestParameters: GetSnapshotDownloadRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SnapshotDownloadResponse>> {
2367
+ const requestOptions = await this.getSnapshotDownloadRequestOpts(requestParameters);
2368
+ const response = await this.request(requestOptions, initOverrides);
2369
+
2370
+ return new runtime.JSONApiResponse(response, (jsonValue) => SnapshotDownloadResponseFromJSON(jsonValue));
2371
+ }
2372
+
2373
+ /**
2374
+ * Return time-limited signed URLs for every chunk needed to reconstruct the sandbox filesystem at this snapshot (the full chain, base through this generation), plus the inventory. Download the chunks and reassemble them as described by `reconstruct`. The `boat snapshot pull` CLI command does this for you.
2375
+ * Get snapshot download
2376
+ */
2377
+ async getSnapshotDownload(requestParameters: GetSnapshotDownloadRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SnapshotDownloadResponse> {
2378
+ const response = await this.getSnapshotDownloadRaw(requestParameters, initOverrides);
2379
+ return await response.value();
2380
+ }
2381
+
2382
+ /**
2383
+ * Creates request options for getSnapshotFile without sending the request
2384
+ */
2385
+ async getSnapshotFileRequestOpts(requestParameters: GetSnapshotFileRequest): Promise<runtime.RequestOpts> {
2386
+ if (requestParameters['snapshotId'] == null) {
2387
+ throw new runtime.RequiredError(
2388
+ 'snapshotId',
2389
+ 'Required parameter "snapshotId" was null or undefined when calling getSnapshotFile().'
2390
+ );
2391
+ }
2392
+
2393
+ const queryParameters: any = {};
2394
+
2395
+ if (requestParameters['path'] != null) {
2396
+ queryParameters['path'] = requestParameters['path'];
2397
+ }
2398
+
2399
+ const headerParameters: runtime.HTTPHeaders = {};
2400
+
2401
+ if (this.configuration && this.configuration.accessToken) {
2402
+ const token = this.configuration.accessToken;
2403
+ const tokenString = await token("BoatBearerAuth", []);
2404
+
2405
+ if (tokenString) {
2406
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2407
+ }
2408
+ }
2409
+
2410
+ let urlPath = `/snapshots/{snapshotId}/files`;
2411
+ urlPath = urlPath.replace('{snapshotId}', encodeURIComponent(String(requestParameters['snapshotId'])));
2412
+
2413
+ return {
2414
+ path: urlPath,
2415
+ method: 'GET',
2416
+ headers: headerParameters,
2417
+ query: queryParameters,
2418
+ };
2419
+ }
2420
+
2421
+ /**
2422
+ * Stream a single file\'s bytes, or a folder subtree as a tar archive, directly out of a snapshot, the sandbox can be stopped or archived; the machine is never contacted. Use `GET /snapshots/{snapshotId}/tree` to list paths, then pass one here. Paths are relative to the snapshot root (same space as `tree` entries; docker volumes under `__dockervol__/`). An empty or `/` path downloads the whole snapshot as a tar. Folder responses set `X-Snapshot-File-Count`, `X-Snapshot-Total-Size-Bytes` and `X-Snapshot-Skipped-Base-Image-Files` headers; both response shapes set `X-Snapshot-Entry-Kind` (`file` or `dir`).
2423
+ * Download a file or folder from a snapshot
2424
+ */
2425
+ async getSnapshotFileRaw(requestParameters: GetSnapshotFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Blob>> {
2426
+ const requestOptions = await this.getSnapshotFileRequestOpts(requestParameters);
2427
+ const response = await this.request(requestOptions, initOverrides);
2428
+
2429
+ return new runtime.BlobApiResponse(response);
2430
+ }
2431
+
2432
+ /**
2433
+ * Stream a single file\'s bytes, or a folder subtree as a tar archive, directly out of a snapshot, the sandbox can be stopped or archived; the machine is never contacted. Use `GET /snapshots/{snapshotId}/tree` to list paths, then pass one here. Paths are relative to the snapshot root (same space as `tree` entries; docker volumes under `__dockervol__/`). An empty or `/` path downloads the whole snapshot as a tar. Folder responses set `X-Snapshot-File-Count`, `X-Snapshot-Total-Size-Bytes` and `X-Snapshot-Skipped-Base-Image-Files` headers; both response shapes set `X-Snapshot-Entry-Kind` (`file` or `dir`).
2434
+ * Download a file or folder from a snapshot
2435
+ */
2436
+ async getSnapshotFile(requestParameters: GetSnapshotFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Blob> {
2437
+ const response = await this.getSnapshotFileRaw(requestParameters, initOverrides);
2438
+ return await response.value();
2439
+ }
2440
+
2441
+ /**
2442
+ * Creates request options for getSnapshotTree without sending the request
2443
+ */
2444
+ async getSnapshotTreeRequestOpts(requestParameters: GetSnapshotTreeRequest): Promise<runtime.RequestOpts> {
2445
+ if (requestParameters['snapshotId'] == null) {
2446
+ throw new runtime.RequiredError(
2447
+ 'snapshotId',
2448
+ 'Required parameter "snapshotId" was null or undefined when calling getSnapshotTree().'
2449
+ );
2450
+ }
2451
+
2452
+ const queryParameters: any = {};
2453
+
2454
+ const headerParameters: runtime.HTTPHeaders = {};
2455
+
2456
+ if (this.configuration && this.configuration.accessToken) {
2457
+ const token = this.configuration.accessToken;
2458
+ const tokenString = await token("BoatBearerAuth", []);
2459
+
2460
+ if (tokenString) {
2461
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2462
+ }
2463
+ }
2464
+
2465
+ let urlPath = `/snapshots/{snapshotId}/tree`;
2466
+ urlPath = urlPath.replace('{snapshotId}', encodeURIComponent(String(requestParameters['snapshotId'])));
2467
+
2468
+ return {
2469
+ path: urlPath,
2470
+ method: 'GET',
2471
+ headers: headerParameters,
2472
+ query: queryParameters,
2473
+ };
2474
+ }
2475
+
2476
+ /**
2477
+ * List the files and folders captured in a snapshot, with sizes. Returns a flat list of entries you can render as a tree.
2478
+ * Get snapshot file tree
2479
+ */
2480
+ async getSnapshotTreeRaw(requestParameters: GetSnapshotTreeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SnapshotTreeResponse>> {
2481
+ const requestOptions = await this.getSnapshotTreeRequestOpts(requestParameters);
2482
+ const response = await this.request(requestOptions, initOverrides);
2483
+
2484
+ return new runtime.JSONApiResponse(response, (jsonValue) => SnapshotTreeResponseFromJSON(jsonValue));
2485
+ }
2486
+
2487
+ /**
2488
+ * List the files and folders captured in a snapshot, with sizes. Returns a flat list of entries you can render as a tree.
2489
+ * Get snapshot file tree
2490
+ */
2491
+ async getSnapshotTree(requestParameters: GetSnapshotTreeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SnapshotTreeResponse> {
2492
+ const response = await this.getSnapshotTreeRaw(requestParameters, initOverrides);
2493
+ return await response.value();
2494
+ }
2495
+
2496
+ /**
2497
+ * Creates request options for getWebhook without sending the request
2498
+ */
2499
+ async getWebhookRequestOpts(requestParameters: GetWebhookRequest): Promise<runtime.RequestOpts> {
2500
+ if (requestParameters['webhookId'] == null) {
2501
+ throw new runtime.RequiredError(
2502
+ 'webhookId',
2503
+ 'Required parameter "webhookId" was null or undefined when calling getWebhook().'
2504
+ );
2505
+ }
2506
+
2507
+ const queryParameters: any = {};
2508
+
2509
+ const headerParameters: runtime.HTTPHeaders = {};
2510
+
2511
+ if (this.configuration && this.configuration.accessToken) {
2512
+ const token = this.configuration.accessToken;
2513
+ const tokenString = await token("BoatBearerAuth", []);
2514
+
2515
+ if (tokenString) {
2516
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2517
+ }
2518
+ }
2519
+
2520
+ let urlPath = `/webhooks/{webhookId}`;
2521
+ urlPath = urlPath.replace('{webhookId}', encodeURIComponent(String(requestParameters['webhookId'])));
2522
+
2523
+ return {
2524
+ path: urlPath,
2525
+ method: 'GET',
2526
+ headers: headerParameters,
2527
+ query: queryParameters,
2528
+ };
2529
+ }
2530
+
2531
+ /**
2532
+ * Returns webhook metadata without the signing secret.
2533
+ * Get webhook
2534
+ */
2535
+ async getWebhookRaw(requestParameters: GetWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WebhookResponse>> {
2536
+ const requestOptions = await this.getWebhookRequestOpts(requestParameters);
2537
+ const response = await this.request(requestOptions, initOverrides);
2538
+
2539
+ return new runtime.JSONApiResponse(response, (jsonValue) => WebhookResponseFromJSON(jsonValue));
2540
+ }
2541
+
2542
+ /**
2543
+ * Returns webhook metadata without the signing secret.
2544
+ * Get webhook
2545
+ */
2546
+ async getWebhook(requestParameters: GetWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WebhookResponse> {
2547
+ const response = await this.getWebhookRaw(requestParameters, initOverrides);
2548
+ return await response.value();
2549
+ }
2550
+
2551
+ /**
2552
+ * Creates request options for hostPort without sending the request
2553
+ */
2554
+ async hostPortRequestOpts(requestParameters: HostPortOperationRequest): Promise<runtime.RequestOpts> {
2555
+ if (requestParameters['sandboxId'] == null) {
2556
+ throw new runtime.RequiredError(
2557
+ 'sandboxId',
2558
+ 'Required parameter "sandboxId" was null or undefined when calling hostPort().'
2559
+ );
2560
+ }
2561
+
2562
+ if (requestParameters['hostPortRequest'] == null) {
2563
+ throw new runtime.RequiredError(
2564
+ 'hostPortRequest',
2565
+ 'Required parameter "hostPortRequest" was null or undefined when calling hostPort().'
2566
+ );
2567
+ }
2568
+
2569
+ const queryParameters: any = {};
2570
+
2571
+ const headerParameters: runtime.HTTPHeaders = {};
2572
+
2573
+ headerParameters['Content-Type'] = 'application/json';
2574
+
2575
+ if (this.configuration && this.configuration.accessToken) {
2576
+ const token = this.configuration.accessToken;
2577
+ const tokenString = await token("BoatBearerAuth", []);
2578
+
2579
+ if (tokenString) {
2580
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2581
+ }
2582
+ }
2583
+
2584
+ let urlPath = `/sandboxes/{sandboxId}/host`;
2585
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
2586
+
2587
+ return {
2588
+ path: urlPath,
2589
+ method: 'POST',
2590
+ headers: headerParameters,
2591
+ query: queryParameters,
2592
+ body: HostPortRequestToJSON(requestParameters['hostPortRequest']),
2593
+ };
2594
+ }
2595
+
2596
+ /**
2597
+ * 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
+ * Expose a sandbox port on a public HTTPS URL
2599
+ */
2600
+ async hostPortRaw(requestParameters: HostPortOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<HostPortResponse>> {
2601
+ const requestOptions = await this.hostPortRequestOpts(requestParameters);
2602
+ const response = await this.request(requestOptions, initOverrides);
2603
+
2604
+ return new runtime.JSONApiResponse(response, (jsonValue) => HostPortResponseFromJSON(jsonValue));
2605
+ }
2606
+
2607
+ /**
2608
+ * 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
+ * Expose a sandbox port on a public HTTPS URL
2610
+ */
2611
+ async hostPort(requestParameters: HostPortOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<HostPortResponse> {
2612
+ const response = await this.hostPortRaw(requestParameters, initOverrides);
2613
+ return await response.value();
2614
+ }
2615
+
2616
+ /**
2617
+ * Creates request options for interrupt without sending the request
2618
+ */
2619
+ async interruptRequestOpts(requestParameters: InterruptRequest): Promise<runtime.RequestOpts> {
2620
+ if (requestParameters['sandboxId'] == null) {
2621
+ throw new runtime.RequiredError(
2622
+ 'sandboxId',
2623
+ 'Required parameter "sandboxId" was null or undefined when calling interrupt().'
2624
+ );
2625
+ }
2626
+
2627
+ const queryParameters: any = {};
2628
+
2629
+ if (requestParameters['conversation'] != null) {
2630
+ queryParameters['conversation'] = requestParameters['conversation'];
2631
+ }
2632
+
2633
+ const headerParameters: runtime.HTTPHeaders = {};
2634
+
2635
+ if (this.configuration && this.configuration.accessToken) {
2636
+ const token = this.configuration.accessToken;
2637
+ const tokenString = await token("BoatBearerAuth", []);
2638
+
2639
+ if (tokenString) {
2640
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2641
+ }
2642
+ }
2643
+
2644
+ let urlPath = `/sandboxes/{sandboxId}/interrupt`;
2645
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
2646
+
2647
+ return {
2648
+ path: urlPath,
2649
+ method: 'POST',
2650
+ headers: headerParameters,
2651
+ query: queryParameters,
2652
+ };
2653
+ }
2654
+
2655
+ /**
2656
+ * Interrupt running agent work. By default this stops **every** conversation on the sandbox. Pass `conversation` to stop just one, leaving the others running. See [Integrated agents](/integrated-agents).
2657
+ * Interrupt running work
2658
+ */
2659
+ async interruptRaw(requestParameters: InterruptRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxActionResponse>> {
2660
+ const requestOptions = await this.interruptRequestOpts(requestParameters);
2661
+ const response = await this.request(requestOptions, initOverrides);
2662
+
2663
+ return new runtime.JSONApiResponse(response, (jsonValue) => SandboxActionResponseFromJSON(jsonValue));
2664
+ }
2665
+
2666
+ /**
2667
+ * Interrupt running agent work. By default this stops **every** conversation on the sandbox. Pass `conversation` to stop just one, leaving the others running. See [Integrated agents](/integrated-agents).
2668
+ * Interrupt running work
2669
+ */
2670
+ async interrupt(requestParameters: InterruptRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxActionResponse> {
2671
+ const response = await this.interruptRaw(requestParameters, initOverrides);
2672
+ return await response.value();
2673
+ }
2674
+
2675
+ /**
2676
+ * Creates request options for limits without sending the request
2677
+ */
2678
+ async limitsRequestOpts(requestParameters: LimitsRequest): Promise<runtime.RequestOpts> {
2679
+ const queryParameters: any = {};
2680
+
2681
+ if (requestParameters['org'] != null) {
2682
+ queryParameters['org'] = requestParameters['org'];
2683
+ }
2684
+
2685
+ if (requestParameters['teamId'] != null) {
2686
+ queryParameters['teamId'] = requestParameters['teamId'];
2687
+ }
2688
+
2689
+ const headerParameters: runtime.HTTPHeaders = {};
2690
+
2691
+ if (requestParameters['xBoatOrg'] != null) {
2692
+ headerParameters['X-Boat-Org'] = String(requestParameters['xBoatOrg']);
2693
+ }
2694
+
2695
+ if (this.configuration && this.configuration.accessToken) {
2696
+ const token = this.configuration.accessToken;
2697
+ const tokenString = await token("BoatBearerAuth", []);
2698
+
2699
+ if (tokenString) {
2700
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2701
+ }
2702
+ }
2703
+
2704
+ let urlPath = `/limits`;
2705
+
2706
+ return {
2707
+ path: urlPath,
2708
+ method: 'GET',
2709
+ headers: headerParameters,
2710
+ query: queryParameters,
2711
+ };
2712
+ }
2713
+
2714
+ /**
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.
2716
+ * Get Boat limits
2717
+ */
2718
+ async limitsRaw(requestParameters: LimitsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<LimitsResponse>> {
2719
+ const requestOptions = await this.limitsRequestOpts(requestParameters);
2720
+ const response = await this.request(requestOptions, initOverrides);
2721
+
2722
+ return new runtime.JSONApiResponse(response, (jsonValue) => LimitsResponseFromJSON(jsonValue));
2723
+ }
2724
+
2725
+ /**
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.
2727
+ * Get Boat limits
2728
+ */
2729
+ async limits(requestParameters: LimitsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<LimitsResponse> {
2730
+ const response = await this.limitsRaw(requestParameters, initOverrides);
2731
+ return await response.value();
2732
+ }
2733
+
2734
+ /**
2735
+ * Creates request options for listNamedSnapshots without sending the request
2736
+ */
2737
+ async listNamedSnapshotsRequestOpts(): Promise<runtime.RequestOpts> {
2738
+ const queryParameters: any = {};
2739
+
2740
+ const headerParameters: runtime.HTTPHeaders = {};
2741
+
2742
+ if (this.configuration && this.configuration.accessToken) {
2743
+ const token = this.configuration.accessToken;
2744
+ const tokenString = await token("BoatBearerAuth", []);
2745
+
2746
+ if (tokenString) {
2747
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2748
+ }
2749
+ }
2750
+
2751
+ let urlPath = `/named-snapshots`;
2752
+
2753
+ return {
2754
+ path: urlPath,
2755
+ method: 'GET',
2756
+ headers: headerParameters,
2757
+ query: queryParameters,
2758
+ };
2759
+ }
2760
+
2761
+ /**
2762
+ * List your named snapshots, newest first.
2763
+ * List named snapshots
2764
+ */
2765
+ async listNamedSnapshotsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<NamedSnapshotListResponse>> {
2766
+ const requestOptions = await this.listNamedSnapshotsRequestOpts();
2767
+ const response = await this.request(requestOptions, initOverrides);
2768
+
2769
+ return new runtime.JSONApiResponse(response, (jsonValue) => NamedSnapshotListResponseFromJSON(jsonValue));
2770
+ }
2771
+
2772
+ /**
2773
+ * List your named snapshots, newest first.
2774
+ * List named snapshots
2775
+ */
2776
+ async listNamedSnapshots(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<NamedSnapshotListResponse> {
2777
+ const response = await this.listNamedSnapshotsRaw(initOverrides);
2778
+ return await response.value();
2779
+ }
2780
+
2781
+ /**
2782
+ * Creates request options for listSandboxSnapshots without sending the request
2783
+ */
2784
+ async listSandboxSnapshotsRequestOpts(requestParameters: ListSandboxSnapshotsRequest): Promise<runtime.RequestOpts> {
2785
+ if (requestParameters['sandboxId'] == null) {
2786
+ throw new runtime.RequiredError(
2787
+ 'sandboxId',
2788
+ 'Required parameter "sandboxId" was null or undefined when calling listSandboxSnapshots().'
2789
+ );
2790
+ }
2791
+
2792
+ const queryParameters: any = {};
2793
+
2794
+ if (requestParameters['limit'] != null) {
2795
+ queryParameters['limit'] = requestParameters['limit'];
2796
+ }
2797
+
2798
+ if (requestParameters['cursor'] != null) {
2799
+ queryParameters['cursor'] = requestParameters['cursor'];
2800
+ }
2801
+
2802
+ if (requestParameters['sort'] != null) {
2803
+ queryParameters['sort'] = requestParameters['sort'];
2804
+ }
2805
+
2806
+ const headerParameters: runtime.HTTPHeaders = {};
2807
+
2808
+ if (this.configuration && this.configuration.accessToken) {
2809
+ const token = this.configuration.accessToken;
2810
+ const tokenString = await token("BoatBearerAuth", []);
2811
+
2812
+ if (tokenString) {
2813
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2814
+ }
2815
+ }
2816
+
2817
+ let urlPath = `/sandboxes/{sandboxId}/snapshots`;
2818
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
2819
+
2820
+ return {
2821
+ path: urlPath,
2822
+ method: 'GET',
2823
+ headers: headerParameters,
2824
+ query: queryParameters,
2825
+ };
2826
+ }
2827
+
2828
+ /**
2829
+ * List visible completed snapshots for one sandbox with uncapped cursor pagination.
2830
+ * List boat snapshots
2831
+ */
2832
+ async listSandboxSnapshotsRaw(requestParameters: ListSandboxSnapshotsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SnapshotListResponse>> {
2833
+ const requestOptions = await this.listSandboxSnapshotsRequestOpts(requestParameters);
2834
+ const response = await this.request(requestOptions, initOverrides);
2835
+
2836
+ return new runtime.JSONApiResponse(response, (jsonValue) => SnapshotListResponseFromJSON(jsonValue));
2837
+ }
2838
+
2839
+ /**
2840
+ * List visible completed snapshots for one sandbox with uncapped cursor pagination.
2841
+ * List boat snapshots
2842
+ */
2843
+ async listSandboxSnapshots(requestParameters: ListSandboxSnapshotsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SnapshotListResponse> {
2844
+ const response = await this.listSandboxSnapshotsRaw(requestParameters, initOverrides);
2845
+ return await response.value();
2846
+ }
2847
+
2848
+ /**
2849
+ * Creates request options for listSnapshots without sending the request
2850
+ */
2851
+ async listSnapshotsRequestOpts(requestParameters: ListSnapshotsRequest): Promise<runtime.RequestOpts> {
2852
+ const queryParameters: any = {};
2853
+
2854
+ if (requestParameters['limit'] != null) {
2855
+ queryParameters['limit'] = requestParameters['limit'];
2856
+ }
2857
+
2858
+ if (requestParameters['cursor'] != null) {
2859
+ queryParameters['cursor'] = requestParameters['cursor'];
2860
+ }
2861
+
2862
+ if (requestParameters['sort'] != null) {
2863
+ queryParameters['sort'] = requestParameters['sort'];
2864
+ }
2865
+
2866
+ const headerParameters: runtime.HTTPHeaders = {};
2867
+
2868
+ if (this.configuration && this.configuration.accessToken) {
2869
+ const token = this.configuration.accessToken;
2870
+ const tokenString = await token("BoatBearerAuth", []);
2871
+
2872
+ if (tokenString) {
2873
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2874
+ }
2875
+ }
2876
+
2877
+ let urlPath = `/snapshots`;
2878
+
2879
+ return {
2880
+ path: urlPath,
2881
+ method: 'GET',
2882
+ headers: headerParameters,
2883
+ query: queryParameters,
2884
+ };
2885
+ }
2886
+
2887
+ /**
2888
+ * List visible completed snapshots across all of your sandboxes using immutable ownership attribution. Pinned, deletion-scheduled, and privacy-fenced sandbox snapshots are omitted. Follow `nextCursor` through the complete history; there is no hidden 500-snapshot cap.
2889
+ * List snapshots
2890
+ */
2891
+ async listSnapshotsRaw(requestParameters: ListSnapshotsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SnapshotListResponse>> {
2892
+ const requestOptions = await this.listSnapshotsRequestOpts(requestParameters);
2893
+ const response = await this.request(requestOptions, initOverrides);
2894
+
2895
+ return new runtime.JSONApiResponse(response, (jsonValue) => SnapshotListResponseFromJSON(jsonValue));
2896
+ }
2897
+
2898
+ /**
2899
+ * List visible completed snapshots across all of your sandboxes using immutable ownership attribution. Pinned, deletion-scheduled, and privacy-fenced sandbox snapshots are omitted. Follow `nextCursor` through the complete history; there is no hidden 500-snapshot cap.
2900
+ * List snapshots
2901
+ */
2902
+ async listSnapshots(requestParameters: ListSnapshotsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SnapshotListResponse> {
2903
+ const response = await this.listSnapshotsRaw(requestParameters, initOverrides);
2904
+ return await response.value();
2905
+ }
2906
+
2907
+ /**
2908
+ * Creates request options for listWebhooks without sending the request
2909
+ */
2910
+ async listWebhooksRequestOpts(): Promise<runtime.RequestOpts> {
2911
+ const queryParameters: any = {};
2912
+
2913
+ const headerParameters: runtime.HTTPHeaders = {};
2914
+
2915
+ if (this.configuration && this.configuration.accessToken) {
2916
+ const token = this.configuration.accessToken;
2917
+ const tokenString = await token("BoatBearerAuth", []);
2918
+
2919
+ if (tokenString) {
2920
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2921
+ }
2922
+ }
2923
+
2924
+ let urlPath = `/webhooks`;
2925
+
2926
+ return {
2927
+ path: urlPath,
2928
+ method: 'GET',
2929
+ headers: headerParameters,
2930
+ query: queryParameters,
2931
+ };
2932
+ }
2933
+
2934
+ /**
2935
+ * Lists account-wide sandbox lifecycle webhook endpoints. Signing secrets are never included.
2936
+ * List webhooks
2937
+ */
2938
+ async listWebhooksRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WebhookListResponse>> {
2939
+ const requestOptions = await this.listWebhooksRequestOpts();
2940
+ const response = await this.request(requestOptions, initOverrides);
2941
+
2942
+ return new runtime.JSONApiResponse(response, (jsonValue) => WebhookListResponseFromJSON(jsonValue));
2943
+ }
2944
+
2945
+ /**
2946
+ * Lists account-wide sandbox lifecycle webhook endpoints. Signing secrets are never included.
2947
+ * List webhooks
2948
+ */
2949
+ async listWebhooks(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WebhookListResponse> {
2950
+ const response = await this.listWebhooksRaw(initOverrides);
2951
+ return await response.value();
2952
+ }
2953
+
2954
+ /**
2955
+ * Creates request options for me without sending the request
2956
+ */
2957
+ async meRequestOpts(): Promise<runtime.RequestOpts> {
2958
+ const queryParameters: any = {};
2959
+
2960
+ const headerParameters: runtime.HTTPHeaders = {};
2961
+
2962
+ if (this.configuration && this.configuration.accessToken) {
2963
+ const token = this.configuration.accessToken;
2964
+ const tokenString = await token("BoatBearerAuth", []);
2965
+
2966
+ if (tokenString) {
2967
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2968
+ }
2969
+ }
2970
+
2971
+ let urlPath = `/me`;
2972
+
2973
+ return {
2974
+ path: urlPath,
2975
+ method: 'GET',
2976
+ headers: headerParameters,
2977
+ query: queryParameters,
2978
+ };
2979
+ }
2980
+
2981
+ /**
2982
+ * Returns GitHub identity for the authenticated Boat account.
2983
+ * Get current Boat user
2984
+ */
2985
+ async meRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<MeResponse>> {
2986
+ const requestOptions = await this.meRequestOpts();
2987
+ const response = await this.request(requestOptions, initOverrides);
2988
+
2989
+ return new runtime.JSONApiResponse(response, (jsonValue) => MeResponseFromJSON(jsonValue));
2990
+ }
2991
+
2992
+ /**
2993
+ * Returns GitHub identity for the authenticated Boat account.
2994
+ * Get current Boat user
2995
+ */
2996
+ async me(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<MeResponse> {
2997
+ const response = await this.meRaw(initOverrides);
2998
+ return await response.value();
2999
+ }
3000
+
3001
+ /**
3002
+ * Creates request options for prompt without sending the request
3003
+ */
3004
+ async promptRequestOpts(requestParameters: PromptOperationRequest): Promise<runtime.RequestOpts> {
3005
+ if (requestParameters['sandboxId'] == null) {
3006
+ throw new runtime.RequiredError(
3007
+ 'sandboxId',
3008
+ 'Required parameter "sandboxId" was null or undefined when calling prompt().'
3009
+ );
3010
+ }
3011
+
3012
+ if (requestParameters['promptRequest'] == null) {
3013
+ throw new runtime.RequiredError(
3014
+ 'promptRequest',
3015
+ 'Required parameter "promptRequest" was null or undefined when calling prompt().'
3016
+ );
3017
+ }
3018
+
3019
+ const queryParameters: any = {};
3020
+
3021
+ const headerParameters: runtime.HTTPHeaders = {};
3022
+
3023
+ headerParameters['Content-Type'] = 'application/json';
3024
+
3025
+ if (this.configuration && this.configuration.accessToken) {
3026
+ const token = this.configuration.accessToken;
3027
+ const tokenString = await token("BoatBearerAuth", []);
3028
+
3029
+ if (tokenString) {
3030
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3031
+ }
3032
+ }
3033
+
3034
+ let urlPath = `/sandboxes/{sandboxId}/prompt`;
3035
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
3036
+
3037
+ return {
3038
+ path: urlPath,
3039
+ method: 'POST',
3040
+ headers: headerParameters,
3041
+ query: queryParameters,
3042
+ body: PromptRequestToJSON(requestParameters['promptRequest']),
3043
+ };
3044
+ }
3045
+
3046
+ /**
3047
+ * 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
+ * Prompt Sandbox
3049
+ */
3050
+ async promptRaw(requestParameters: PromptOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PromptResponse>> {
3051
+ const requestOptions = await this.promptRequestOpts(requestParameters);
3052
+ const response = await this.request(requestOptions, initOverrides);
3053
+
3054
+ return new runtime.JSONApiResponse(response, (jsonValue) => PromptResponseFromJSON(jsonValue));
3055
+ }
3056
+
3057
+ /**
3058
+ * 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
+ * Prompt Sandbox
3060
+ */
3061
+ async prompt(requestParameters: PromptOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PromptResponse> {
3062
+ const response = await this.promptRaw(requestParameters, initOverrides);
3063
+ return await response.value();
3064
+ }
3065
+
3066
+ /**
3067
+ * Creates request options for promptRunStatus without sending the request
3068
+ */
3069
+ async promptRunStatusRequestOpts(requestParameters: PromptRunStatusRequest): Promise<runtime.RequestOpts> {
3070
+ if (requestParameters['sandboxId'] == null) {
3071
+ throw new runtime.RequiredError(
3072
+ 'sandboxId',
3073
+ 'Required parameter "sandboxId" was null or undefined when calling promptRunStatus().'
3074
+ );
3075
+ }
3076
+
3077
+ if (requestParameters['promptId'] == null) {
3078
+ throw new runtime.RequiredError(
3079
+ 'promptId',
3080
+ 'Required parameter "promptId" was null or undefined when calling promptRunStatus().'
3081
+ );
3082
+ }
3083
+
3084
+ const queryParameters: any = {};
3085
+
3086
+ const headerParameters: runtime.HTTPHeaders = {};
3087
+
3088
+ if (this.configuration && this.configuration.accessToken) {
3089
+ const token = this.configuration.accessToken;
3090
+ const tokenString = await token("BoatBearerAuth", []);
3091
+
3092
+ if (tokenString) {
3093
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3094
+ }
3095
+ }
3096
+
3097
+ let urlPath = `/sandboxes/{sandboxId}/prompts/{promptId}`;
3098
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
3099
+ urlPath = urlPath.replace('{promptId}', encodeURIComponent(String(requestParameters['promptId'])));
3100
+
3101
+ return {
3102
+ path: urlPath,
3103
+ method: 'GET',
3104
+ headers: headerParameters,
3105
+ query: queryParameters,
3106
+ };
3107
+ }
3108
+
3109
+ /**
3110
+ * Returns first-class status for a queued/running/finished prompt so clients do not infer completion from sandbox state and events.
3111
+ * Get prompt run status
3112
+ */
3113
+ async promptRunStatusRaw(requestParameters: PromptRunStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PromptRunResponse>> {
3114
+ const requestOptions = await this.promptRunStatusRequestOpts(requestParameters);
3115
+ const response = await this.request(requestOptions, initOverrides);
3116
+
3117
+ return new runtime.JSONApiResponse(response, (jsonValue) => PromptRunResponseFromJSON(jsonValue));
3118
+ }
3119
+
3120
+ /**
3121
+ * Returns first-class status for a queued/running/finished prompt so clients do not infer completion from sandbox state and events.
3122
+ * Get prompt run status
3123
+ */
3124
+ async promptRunStatus(requestParameters: PromptRunStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PromptRunResponse> {
3125
+ const response = await this.promptRunStatusRaw(requestParameters, initOverrides);
3126
+ return await response.value();
3127
+ }
3128
+
3129
+ /**
3130
+ * Creates request options for readFile without sending the request
3131
+ */
3132
+ async readFileRequestOpts(requestParameters: ReadFileRequest): Promise<runtime.RequestOpts> {
3133
+ if (requestParameters['sandboxId'] == null) {
3134
+ throw new runtime.RequiredError(
3135
+ 'sandboxId',
3136
+ 'Required parameter "sandboxId" was null or undefined when calling readFile().'
3137
+ );
3138
+ }
3139
+
3140
+ if (requestParameters['path'] == null) {
3141
+ throw new runtime.RequiredError(
3142
+ 'path',
3143
+ 'Required parameter "path" was null or undefined when calling readFile().'
3144
+ );
3145
+ }
3146
+
3147
+ const queryParameters: any = {};
3148
+
3149
+ if (requestParameters['path'] != null) {
3150
+ queryParameters['path'] = requestParameters['path'];
3151
+ }
3152
+
3153
+ if (requestParameters['encoding'] != null) {
3154
+ queryParameters['encoding'] = requestParameters['encoding'];
3155
+ }
3156
+
3157
+ const headerParameters: runtime.HTTPHeaders = {};
3158
+
3159
+ if (this.configuration && this.configuration.accessToken) {
3160
+ const token = this.configuration.accessToken;
3161
+ const tokenString = await token("BoatBearerAuth", []);
3162
+
3163
+ if (tokenString) {
3164
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3165
+ }
3166
+ }
3167
+
3168
+ let urlPath = `/sandboxes/{sandboxId}/files`;
3169
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
3170
+
3171
+ return {
3172
+ path: urlPath,
3173
+ method: 'GET',
3174
+ headers: headerParameters,
3175
+ query: queryParameters,
3176
+ };
3177
+ }
3178
+
3179
+ /**
3180
+ * Read a file from a sandbox
3181
+ */
3182
+ async readFileRaw(requestParameters: ReadFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FileReadResponse>> {
3183
+ const requestOptions = await this.readFileRequestOpts(requestParameters);
3184
+ const response = await this.request(requestOptions, initOverrides);
3185
+
3186
+ return new runtime.JSONApiResponse(response, (jsonValue) => FileReadResponseFromJSON(jsonValue));
3187
+ }
3188
+
3189
+ /**
3190
+ * Read a file from a sandbox
3191
+ */
3192
+ async readFile(requestParameters: ReadFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FileReadResponse> {
3193
+ const response = await this.readFileRaw(requestParameters, initOverrides);
3194
+ return await response.value();
3195
+ }
3196
+
3197
+ /**
3198
+ * Creates request options for repos without sending the request
3199
+ */
3200
+ async reposRequestOpts(requestParameters: ReposRequest): Promise<runtime.RequestOpts> {
3201
+ const queryParameters: any = {};
3202
+
3203
+ if (requestParameters['sync'] != null) {
3204
+ queryParameters['sync'] = requestParameters['sync'];
3205
+ }
3206
+
3207
+ if (requestParameters['limit'] != null) {
3208
+ queryParameters['limit'] = requestParameters['limit'];
3209
+ }
3210
+
3211
+ if (requestParameters['cursor'] != null) {
3212
+ queryParameters['cursor'] = requestParameters['cursor'];
3213
+ }
3214
+
3215
+ if (requestParameters['sort'] != null) {
3216
+ queryParameters['sort'] = requestParameters['sort'];
3217
+ }
3218
+
3219
+ if (requestParameters['q'] != null) {
3220
+ queryParameters['q'] = requestParameters['q'];
3221
+ }
3222
+
3223
+ if (requestParameters['selected'] != null) {
3224
+ queryParameters['selected'] = requestParameters['selected'];
3225
+ }
3226
+
3227
+ const headerParameters: runtime.HTTPHeaders = {};
3228
+
3229
+ if (this.configuration && this.configuration.accessToken) {
3230
+ const token = this.configuration.accessToken;
3231
+ const tokenString = await token("BoatBearerAuth", []);
3232
+
3233
+ if (tokenString) {
3234
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3235
+ }
3236
+ }
3237
+
3238
+ let urlPath = `/repos`;
3239
+
3240
+ return {
3241
+ path: urlPath,
3242
+ method: 'GET',
3243
+ headers: headerParameters,
3244
+ query: queryParameters,
3245
+ };
3246
+ }
3247
+
3248
+ /**
3249
+ * Returns GitHub repositories grouped by installation plus the current selected repositories for new Sandboxes.
3250
+ * List GitHub repositories available to Boat
3251
+ */
3252
+ async reposRaw(requestParameters: ReposRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ReposResponse>> {
3253
+ const requestOptions = await this.reposRequestOpts(requestParameters);
3254
+ const response = await this.request(requestOptions, initOverrides);
3255
+
3256
+ return new runtime.JSONApiResponse(response, (jsonValue) => ReposResponseFromJSON(jsonValue));
3257
+ }
3258
+
3259
+ /**
3260
+ * Returns GitHub repositories grouped by installation plus the current selected repositories for new Sandboxes.
3261
+ * List GitHub repositories available to Boat
3262
+ */
3263
+ async repos(requestParameters: ReposRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ReposResponse> {
3264
+ const response = await this.reposRaw(requestParameters, initOverrides);
3265
+ return await response.value();
3266
+ }
3267
+
3268
+ /**
3269
+ * Creates request options for resume without sending the request
3270
+ */
3271
+ async resumeRequestOpts(requestParameters: ResumeOperationRequest): Promise<runtime.RequestOpts> {
3272
+ if (requestParameters['sandboxId'] == null) {
3273
+ throw new runtime.RequiredError(
3274
+ 'sandboxId',
3275
+ 'Required parameter "sandboxId" was null or undefined when calling resume().'
3276
+ );
3277
+ }
3278
+
3279
+ const queryParameters: any = {};
3280
+
3281
+ const headerParameters: runtime.HTTPHeaders = {};
3282
+
3283
+ headerParameters['Content-Type'] = 'application/json';
3284
+
3285
+ if (this.configuration && this.configuration.accessToken) {
3286
+ const token = this.configuration.accessToken;
3287
+ const tokenString = await token("BoatBearerAuth", []);
3288
+
3289
+ if (tokenString) {
3290
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3291
+ }
3292
+ }
3293
+
3294
+ let urlPath = `/sandboxes/{sandboxId}/resume`;
3295
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
3296
+
3297
+ return {
3298
+ path: urlPath,
3299
+ method: 'POST',
3300
+ headers: headerParameters,
3301
+ query: queryParameters,
3302
+ body: ResumeRequestToJSON(requestParameters['resumeRequest']),
3303
+ };
3304
+ }
3305
+
3306
+ /**
3307
+ * Resume sandbox
3308
+ */
3309
+ async resumeRaw(requestParameters: ResumeOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxActionResponse>> {
3310
+ const requestOptions = await this.resumeRequestOpts(requestParameters);
3311
+ const response = await this.request(requestOptions, initOverrides);
3312
+
3313
+ return new runtime.JSONApiResponse(response, (jsonValue) => SandboxActionResponseFromJSON(jsonValue));
3314
+ }
3315
+
3316
+ /**
3317
+ * Resume sandbox
3318
+ */
3319
+ async resume(requestParameters: ResumeOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxActionResponse> {
3320
+ const response = await this.resumeRaw(requestParameters, initOverrides);
3321
+ return await response.value();
3322
+ }
3323
+
3324
+ /**
3325
+ * Creates request options for revokeApiKey without sending the request
3326
+ */
3327
+ async revokeApiKeyRequestOpts(requestParameters: RevokeApiKeyRequest): Promise<runtime.RequestOpts> {
3328
+ if (requestParameters['apiKeyId'] == null) {
3329
+ throw new runtime.RequiredError(
3330
+ 'apiKeyId',
3331
+ 'Required parameter "apiKeyId" was null or undefined when calling revokeApiKey().'
3332
+ );
3333
+ }
3334
+
3335
+ const queryParameters: any = {};
3336
+
3337
+ const headerParameters: runtime.HTTPHeaders = {};
3338
+
3339
+ if (this.configuration && this.configuration.accessToken) {
3340
+ const token = this.configuration.accessToken;
3341
+ const tokenString = await token("BoatBearerAuth", []);
3342
+
3343
+ if (tokenString) {
3344
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3345
+ }
3346
+ }
3347
+
3348
+ let urlPath = `/api-keys/{apiKeyId}`;
3349
+ urlPath = urlPath.replace('{apiKeyId}', encodeURIComponent(String(requestParameters['apiKeyId'])));
3350
+
3351
+ return {
3352
+ path: urlPath,
3353
+ method: 'DELETE',
3354
+ headers: headerParameters,
3355
+ query: queryParameters,
3356
+ };
3357
+ }
3358
+
3359
+ /**
3360
+ * Revokes the key immediately. Requires a dashboard or CLI session.
3361
+ * Revoke an API key
3362
+ */
3363
+ async revokeApiKeyRaw(requestParameters: RevokeApiKeyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ApiKeyRevokeResponse>> {
3364
+ const requestOptions = await this.revokeApiKeyRequestOpts(requestParameters);
3365
+ const response = await this.request(requestOptions, initOverrides);
3366
+
3367
+ return new runtime.JSONApiResponse(response, (jsonValue) => ApiKeyRevokeResponseFromJSON(jsonValue));
3368
+ }
3369
+
3370
+ /**
3371
+ * Revokes the key immediately. Requires a dashboard or CLI session.
3372
+ * Revoke an API key
3373
+ */
3374
+ async revokeApiKey(requestParameters: RevokeApiKeyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ApiKeyRevokeResponse> {
3375
+ const response = await this.revokeApiKeyRaw(requestParameters, initOverrides);
3376
+ return await response.value();
3377
+ }
3378
+
3379
+ /**
3380
+ * Creates request options for rotateApiKey without sending the request
3381
+ */
3382
+ async rotateApiKeyRequestOpts(requestParameters: RotateApiKeyRequest): Promise<runtime.RequestOpts> {
3383
+ if (requestParameters['apiKeyId'] == null) {
3384
+ throw new runtime.RequiredError(
3385
+ 'apiKeyId',
3386
+ 'Required parameter "apiKeyId" was null or undefined when calling rotateApiKey().'
3387
+ );
3388
+ }
3389
+
3390
+ const queryParameters: any = {};
3391
+
3392
+ const headerParameters: runtime.HTTPHeaders = {};
3393
+
3394
+ if (this.configuration && this.configuration.accessToken) {
3395
+ const token = this.configuration.accessToken;
3396
+ const tokenString = await token("BoatBearerAuth", []);
3397
+
3398
+ if (tokenString) {
3399
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3400
+ }
3401
+ }
3402
+
3403
+ let urlPath = `/api-keys/{apiKeyId}/rotate`;
3404
+ urlPath = urlPath.replace('{apiKeyId}', encodeURIComponent(String(requestParameters['apiKeyId'])));
3405
+
3406
+ return {
3407
+ path: urlPath,
3408
+ method: 'POST',
3409
+ headers: headerParameters,
3410
+ query: queryParameters,
3411
+ };
3412
+ }
3413
+
3414
+ /**
3415
+ * Replaces the raw secret without changing expiry or scope. Requires a dashboard or CLI session.
3416
+ * Rotate an API key
3417
+ */
3418
+ async rotateApiKeyRaw(requestParameters: RotateApiKeyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ApiKeySecretResponse>> {
3419
+ const requestOptions = await this.rotateApiKeyRequestOpts(requestParameters);
3420
+ const response = await this.request(requestOptions, initOverrides);
3421
+
3422
+ return new runtime.JSONApiResponse(response, (jsonValue) => ApiKeySecretResponseFromJSON(jsonValue));
3423
+ }
3424
+
3425
+ /**
3426
+ * Replaces the raw secret without changing expiry or scope. Requires a dashboard or CLI session.
3427
+ * Rotate an API key
3428
+ */
3429
+ async rotateApiKey(requestParameters: RotateApiKeyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ApiKeySecretResponse> {
3430
+ const response = await this.rotateApiKeyRaw(requestParameters, initOverrides);
3431
+ return await response.value();
3432
+ }
3433
+
3434
+ /**
3435
+ * Creates request options for rotateWebhookSigningSecret without sending the request
3436
+ */
3437
+ async rotateWebhookSigningSecretRequestOpts(requestParameters: RotateWebhookSigningSecretRequest): Promise<runtime.RequestOpts> {
3438
+ if (requestParameters['webhookId'] == null) {
3439
+ throw new runtime.RequiredError(
3440
+ 'webhookId',
3441
+ 'Required parameter "webhookId" was null or undefined when calling rotateWebhookSigningSecret().'
3442
+ );
3443
+ }
3444
+
3445
+ const queryParameters: any = {};
3446
+
3447
+ const headerParameters: runtime.HTTPHeaders = {};
3448
+
3449
+ if (this.configuration && this.configuration.accessToken) {
3450
+ const token = this.configuration.accessToken;
3451
+ const tokenString = await token("BoatBearerAuth", []);
3452
+
3453
+ if (tokenString) {
3454
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3455
+ }
3456
+ }
3457
+
3458
+ let urlPath = `/webhooks/{webhookId}/rotate`;
3459
+ urlPath = urlPath.replace('{webhookId}', encodeURIComponent(String(requestParameters['webhookId'])));
3460
+
3461
+ return {
3462
+ path: urlPath,
3463
+ method: 'POST',
3464
+ headers: headerParameters,
3465
+ query: queryParameters,
3466
+ };
3467
+ }
3468
+
3469
+ /**
3470
+ * Replaces the endpoint\'s signing secret. The new secret is returned only in this response; briefly accept the old secret for attempts already in flight.
3471
+ * Rotate webhook signing secret
3472
+ */
3473
+ async rotateWebhookSigningSecretRaw(requestParameters: RotateWebhookSigningSecretRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WebhookSecretResponse>> {
3474
+ const requestOptions = await this.rotateWebhookSigningSecretRequestOpts(requestParameters);
3475
+ const response = await this.request(requestOptions, initOverrides);
3476
+
3477
+ return new runtime.JSONApiResponse(response, (jsonValue) => WebhookSecretResponseFromJSON(jsonValue));
3478
+ }
3479
+
3480
+ /**
3481
+ * Replaces the endpoint\'s signing secret. The new secret is returned only in this response; briefly accept the old secret for attempts already in flight.
3482
+ * Rotate webhook signing secret
3483
+ */
3484
+ async rotateWebhookSigningSecret(requestParameters: RotateWebhookSigningSecretRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WebhookSecretResponse> {
3485
+ const response = await this.rotateWebhookSigningSecretRaw(requestParameters, initOverrides);
3486
+ return await response.value();
3487
+ }
3488
+
3489
+ /**
3490
+ * Creates request options for sandboxes without sending the request
3491
+ */
3492
+ async sandboxesRequestOpts(requestParameters: SandboxesRequest): Promise<runtime.RequestOpts> {
3493
+ const queryParameters: any = {};
3494
+
3495
+ if (requestParameters['limit'] != null) {
3496
+ queryParameters['limit'] = requestParameters['limit'];
3497
+ }
3498
+
3499
+ if (requestParameters['cursor'] != null) {
3500
+ queryParameters['cursor'] = requestParameters['cursor'];
3501
+ }
3502
+
3503
+ if (requestParameters['sort'] != null) {
3504
+ queryParameters['sort'] = requestParameters['sort'];
3505
+ }
3506
+
3507
+ if (requestParameters['state'] != null) {
3508
+ queryParameters['state'] = requestParameters['state'];
3509
+ }
3510
+
3511
+ const headerParameters: runtime.HTTPHeaders = {};
3512
+
3513
+ if (this.configuration && this.configuration.accessToken) {
3514
+ const token = this.configuration.accessToken;
3515
+ const tokenString = await token("BoatBearerAuth", []);
3516
+
3517
+ if (tokenString) {
3518
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3519
+ }
3520
+ }
3521
+
3522
+ let urlPath = `/sandboxes`;
3523
+
3524
+ return {
3525
+ path: urlPath,
3526
+ method: 'GET',
3527
+ headers: headerParameters,
3528
+ query: queryParameters,
3529
+ };
3530
+ }
3531
+
3532
+ /**
3533
+ * List sandboxes
3534
+ */
3535
+ async sandboxesRaw(requestParameters: SandboxesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxListResponse>> {
3536
+ const requestOptions = await this.sandboxesRequestOpts(requestParameters);
3537
+ const response = await this.request(requestOptions, initOverrides);
3538
+
3539
+ return new runtime.JSONApiResponse(response, (jsonValue) => SandboxListResponseFromJSON(jsonValue));
3540
+ }
3541
+
3542
+ /**
3543
+ * List sandboxes
3544
+ */
3545
+ async sandboxes(requestParameters: SandboxesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxListResponse> {
3546
+ const response = await this.sandboxesRaw(requestParameters, initOverrides);
3547
+ return await response.value();
3548
+ }
3549
+
3550
+ /**
3551
+ * Creates request options for saveNamedSnapshot without sending the request
3552
+ */
3553
+ async saveNamedSnapshotRequestOpts(requestParameters: SaveNamedSnapshotRequest): Promise<runtime.RequestOpts> {
3554
+ if (requestParameters['namedSnapshotSaveRequest'] == null) {
3555
+ throw new runtime.RequiredError(
3556
+ 'namedSnapshotSaveRequest',
3557
+ 'Required parameter "namedSnapshotSaveRequest" was null or undefined when calling saveNamedSnapshot().'
3558
+ );
3559
+ }
3560
+
3561
+ const queryParameters: any = {};
3562
+
3563
+ const headerParameters: runtime.HTTPHeaders = {};
3564
+
3565
+ headerParameters['Content-Type'] = 'application/json';
3566
+
3567
+ if (this.configuration && this.configuration.accessToken) {
3568
+ const token = this.configuration.accessToken;
3569
+ const tokenString = await token("BoatBearerAuth", []);
3570
+
3571
+ if (tokenString) {
3572
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3573
+ }
3574
+ }
3575
+
3576
+ let urlPath = `/named-snapshots`;
3577
+
3578
+ return {
3579
+ path: urlPath,
3580
+ method: 'POST',
3581
+ headers: headerParameters,
3582
+ query: queryParameters,
3583
+ body: NamedSnapshotSaveRequestToJSON(requestParameters['namedSnapshotSaveRequest']),
3584
+ };
3585
+ }
3586
+
3587
+ /**
3588
+ * 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
+ * Save a named snapshot
3590
+ */
3591
+ async saveNamedSnapshotRaw(requestParameters: SaveNamedSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<NamedSnapshotSavingResponse>> {
3592
+ const requestOptions = await this.saveNamedSnapshotRequestOpts(requestParameters);
3593
+ const response = await this.request(requestOptions, initOverrides);
3594
+
3595
+ return new runtime.JSONApiResponse(response, (jsonValue) => NamedSnapshotSavingResponseFromJSON(jsonValue));
3596
+ }
3597
+
3598
+ /**
3599
+ * 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
+ * Save a named snapshot
3601
+ */
3602
+ async saveNamedSnapshot(requestParameters: SaveNamedSnapshotRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<NamedSnapshotSavingResponse> {
3603
+ const response = await this.saveNamedSnapshotRaw(requestParameters, initOverrides);
3604
+ return await response.value();
3605
+ }
3606
+
3607
+ /**
3608
+ * Creates request options for secrets without sending the request
3609
+ */
3610
+ async secretsRequestOpts(): Promise<runtime.RequestOpts> {
3611
+ const queryParameters: any = {};
3612
+
3613
+ const headerParameters: runtime.HTTPHeaders = {};
3614
+
3615
+ if (this.configuration && this.configuration.accessToken) {
3616
+ const token = this.configuration.accessToken;
3617
+ const tokenString = await token("BoatBearerAuth", []);
3618
+
3619
+ if (tokenString) {
3620
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3621
+ }
3622
+ }
3623
+
3624
+ let urlPath = `/secrets`;
3625
+
3626
+ return {
3627
+ path: urlPath,
3628
+ method: 'GET',
3629
+ headers: headerParameters,
3630
+ query: queryParameters,
3631
+ };
3632
+ }
3633
+
3634
+ /**
3635
+ * Returns the environment variables and secret files configured for sandboxes.
3636
+ * Get Boat secrets setup
3637
+ */
3638
+ async secretsRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SecretsResponse>> {
3639
+ const requestOptions = await this.secretsRequestOpts();
3640
+ const response = await this.request(requestOptions, initOverrides);
3641
+
3642
+ return new runtime.JSONApiResponse(response, (jsonValue) => SecretsResponseFromJSON(jsonValue));
3643
+ }
3644
+
3645
+ /**
3646
+ * Returns the environment variables and secret files configured for sandboxes.
3647
+ * Get Boat secrets setup
3648
+ */
3649
+ async secrets(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SecretsResponse> {
3650
+ const response = await this.secretsRaw(initOverrides);
3651
+ return await response.value();
3652
+ }
3653
+
3654
+ /**
3655
+ * Creates request options for selectRepo without sending the request
3656
+ */
3657
+ async selectRepoRequestOpts(requestParameters: SelectRepoRequest): Promise<runtime.RequestOpts> {
3658
+ if (requestParameters['repoSelectionRequest'] == null) {
3659
+ throw new runtime.RequiredError(
3660
+ 'repoSelectionRequest',
3661
+ 'Required parameter "repoSelectionRequest" was null or undefined when calling selectRepo().'
3662
+ );
3663
+ }
3664
+
3665
+ const queryParameters: any = {};
3666
+
3667
+ const headerParameters: runtime.HTTPHeaders = {};
3668
+
3669
+ headerParameters['Content-Type'] = 'application/json';
3670
+
3671
+ if (this.configuration && this.configuration.accessToken) {
3672
+ const token = this.configuration.accessToken;
3673
+ const tokenString = await token("BoatBearerAuth", []);
3674
+
3675
+ if (tokenString) {
3676
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3677
+ }
3678
+ }
3679
+
3680
+ let urlPath = `/repos`;
3681
+
3682
+ return {
3683
+ path: urlPath,
3684
+ method: 'POST',
3685
+ headers: headerParameters,
3686
+ query: queryParameters,
3687
+ body: RepoSelectionRequestToJSON(requestParameters['repoSelectionRequest']),
3688
+ };
3689
+ }
3690
+
3691
+ /**
3692
+ * Idempotently selects one repository for the sandbox environment. Use `databaseId` from `GET /repos` as `repositoryId`; selecting an already-selected repository updates its `baseBranch`.
3693
+ * Select repository for sandboxes
3694
+ */
3695
+ async selectRepoRaw(requestParameters: SelectRepoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RepoSelectionResponse>> {
3696
+ const requestOptions = await this.selectRepoRequestOpts(requestParameters);
3697
+ const response = await this.request(requestOptions, initOverrides);
3698
+
3699
+ return new runtime.JSONApiResponse(response, (jsonValue) => RepoSelectionResponseFromJSON(jsonValue));
3700
+ }
3701
+
3702
+ /**
3703
+ * Idempotently selects one repository for the sandbox environment. Use `databaseId` from `GET /repos` as `repositoryId`; selecting an already-selected repository updates its `baseBranch`.
3704
+ * Select repository for sandboxes
3705
+ */
3706
+ async selectRepo(requestParameters: SelectRepoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RepoSelectionResponse> {
3707
+ const response = await this.selectRepoRaw(requestParameters, initOverrides);
3708
+ return await response.value();
3709
+ }
3710
+
3711
+ /**
3712
+ * Creates request options for setEnvironmentSecretFile without sending the request
3713
+ */
3714
+ async setEnvironmentSecretFileRequestOpts(requestParameters: SetEnvironmentSecretFileOperationRequest): Promise<runtime.RequestOpts> {
3715
+ if (requestParameters['environmentId'] == null) {
3716
+ throw new runtime.RequiredError(
3717
+ 'environmentId',
3718
+ 'Required parameter "environmentId" was null or undefined when calling setEnvironmentSecretFile().'
3719
+ );
3720
+ }
3721
+
3722
+ if (requestParameters['setEnvironmentSecretFileRequest'] == null) {
3723
+ throw new runtime.RequiredError(
3724
+ 'setEnvironmentSecretFileRequest',
3725
+ 'Required parameter "setEnvironmentSecretFileRequest" was null or undefined when calling setEnvironmentSecretFile().'
3726
+ );
3727
+ }
3728
+
3729
+ const queryParameters: any = {};
3730
+
3731
+ const headerParameters: runtime.HTTPHeaders = {};
3732
+
3733
+ headerParameters['Content-Type'] = 'application/json';
3734
+
3735
+ if (this.configuration && this.configuration.accessToken) {
3736
+ const token = this.configuration.accessToken;
3737
+ const tokenString = await token("BoatBearerAuth", []);
3738
+
3739
+ if (tokenString) {
3740
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3741
+ }
3742
+ }
3743
+
3744
+ let urlPath = `/environments/{environmentId}/secret-files`;
3745
+ urlPath = urlPath.replace('{environmentId}', encodeURIComponent(String(requestParameters['environmentId'])));
3746
+
3747
+ return {
3748
+ path: urlPath,
3749
+ method: 'PUT',
3750
+ headers: headerParameters,
3751
+ query: queryParameters,
3752
+ body: SetEnvironmentSecretFileRequestToJSON(requestParameters['setEnvironmentSecretFileRequest']),
3753
+ };
3754
+ }
3755
+
3756
+ /**
3757
+ * Adds or replaces a single secret file by path. Mints a new immutable version.
3758
+ * Write one secret file
3759
+ */
3760
+ async setEnvironmentSecretFileRaw(requestParameters: SetEnvironmentSecretFileOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EnvironmentItemChangeResponse>> {
3761
+ const requestOptions = await this.setEnvironmentSecretFileRequestOpts(requestParameters);
3762
+ const response = await this.request(requestOptions, initOverrides);
3763
+
3764
+ return new runtime.JSONApiResponse(response, (jsonValue) => EnvironmentItemChangeResponseFromJSON(jsonValue));
3765
+ }
3766
+
3767
+ /**
3768
+ * Adds or replaces a single secret file by path. Mints a new immutable version.
3769
+ * Write one secret file
3770
+ */
3771
+ async setEnvironmentSecretFile(requestParameters: SetEnvironmentSecretFileOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentItemChangeResponse> {
3772
+ const response = await this.setEnvironmentSecretFileRaw(requestParameters, initOverrides);
3773
+ return await response.value();
3774
+ }
3775
+
3776
+ /**
3777
+ * Creates request options for setEnvironmentVar without sending the request
3778
+ */
3779
+ async setEnvironmentVarRequestOpts(requestParameters: SetEnvironmentVarOperationRequest): Promise<runtime.RequestOpts> {
3780
+ if (requestParameters['environmentId'] == null) {
3781
+ throw new runtime.RequiredError(
3782
+ 'environmentId',
3783
+ 'Required parameter "environmentId" was null or undefined when calling setEnvironmentVar().'
3784
+ );
3785
+ }
3786
+
3787
+ if (requestParameters['key'] == null) {
3788
+ throw new runtime.RequiredError(
3789
+ 'key',
3790
+ 'Required parameter "key" was null or undefined when calling setEnvironmentVar().'
3791
+ );
3792
+ }
3793
+
3794
+ if (requestParameters['setEnvironmentVarRequest'] == null) {
3795
+ throw new runtime.RequiredError(
3796
+ 'setEnvironmentVarRequest',
3797
+ 'Required parameter "setEnvironmentVarRequest" was null or undefined when calling setEnvironmentVar().'
3798
+ );
3799
+ }
3800
+
3801
+ const queryParameters: any = {};
3802
+
3803
+ const headerParameters: runtime.HTTPHeaders = {};
3804
+
3805
+ headerParameters['Content-Type'] = 'application/json';
3806
+
3807
+ if (this.configuration && this.configuration.accessToken) {
3808
+ const token = this.configuration.accessToken;
3809
+ const tokenString = await token("BoatBearerAuth", []);
3810
+
3811
+ if (tokenString) {
3812
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3813
+ }
3814
+ }
3815
+
3816
+ let urlPath = `/environments/{environmentId}/vars/{key}`;
3817
+ urlPath = urlPath.replace('{environmentId}', encodeURIComponent(String(requestParameters['environmentId'])));
3818
+ urlPath = urlPath.replace('{key}', encodeURIComponent(String(requestParameters['key'])));
3819
+
3820
+ return {
3821
+ path: urlPath,
3822
+ method: 'PUT',
3823
+ headers: headerParameters,
3824
+ query: queryParameters,
3825
+ body: SetEnvironmentVarRequestToJSON(requestParameters['setEnvironmentVarRequest']),
3826
+ };
3827
+ }
3828
+
3829
+ /**
3830
+ * Sets or replaces a single variable without reading or rewriting the rest. Mints a new immutable version.
3831
+ * Set one environment variable
3832
+ */
3833
+ async setEnvironmentVarRaw(requestParameters: SetEnvironmentVarOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<EnvironmentItemChangeResponse>> {
3834
+ const requestOptions = await this.setEnvironmentVarRequestOpts(requestParameters);
3835
+ const response = await this.request(requestOptions, initOverrides);
3836
+
3837
+ return new runtime.JSONApiResponse(response, (jsonValue) => EnvironmentItemChangeResponseFromJSON(jsonValue));
3838
+ }
3839
+
3840
+ /**
3841
+ * Sets or replaces a single variable without reading or rewriting the rest. Mints a new immutable version.
3842
+ * Set one environment variable
3843
+ */
3844
+ async setEnvironmentVar(requestParameters: SetEnvironmentVarOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<EnvironmentItemChangeResponse> {
3845
+ const response = await this.setEnvironmentVarRaw(requestParameters, initOverrides);
3846
+ return await response.value();
3847
+ }
3848
+
3849
+ /**
3850
+ * Creates request options for sshKey without sending the request
3851
+ */
3852
+ async sshKeyRequestOpts(requestParameters: SshKeyOperationRequest): Promise<runtime.RequestOpts> {
3853
+ if (requestParameters['sandboxId'] == null) {
3854
+ throw new runtime.RequiredError(
3855
+ 'sandboxId',
3856
+ 'Required parameter "sandboxId" was null or undefined when calling sshKey().'
3857
+ );
3858
+ }
3859
+
3860
+ if (requestParameters['sshKeyRequest'] == null) {
3861
+ throw new runtime.RequiredError(
3862
+ 'sshKeyRequest',
3863
+ 'Required parameter "sshKeyRequest" was null or undefined when calling sshKey().'
3864
+ );
3865
+ }
3866
+
3867
+ const queryParameters: any = {};
3868
+
3869
+ const headerParameters: runtime.HTTPHeaders = {};
3870
+
3871
+ headerParameters['Content-Type'] = 'application/json';
3872
+
3873
+ if (this.configuration && this.configuration.accessToken) {
3874
+ const token = this.configuration.accessToken;
3875
+ const tokenString = await token("BoatBearerAuth", []);
3876
+
3877
+ if (tokenString) {
3878
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3879
+ }
3880
+ }
3881
+
3882
+ let urlPath = `/sandboxes/{sandboxId}/sshkey`;
3883
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
3884
+
3885
+ return {
3886
+ path: urlPath,
3887
+ method: 'POST',
3888
+ headers: headerParameters,
3889
+ query: queryParameters,
3890
+ body: SshKeyRequestToJSON(requestParameters['sshKeyRequest']),
3891
+ };
3892
+ }
3893
+
3894
+ /**
3895
+ * 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
+ * Configure sandbox SSH key
3897
+ */
3898
+ async sshKeyRaw(requestParameters: SshKeyOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SshKeyResponse>> {
3899
+ const requestOptions = await this.sshKeyRequestOpts(requestParameters);
3900
+ const response = await this.request(requestOptions, initOverrides);
3901
+
3902
+ return new runtime.JSONApiResponse(response, (jsonValue) => SshKeyResponseFromJSON(jsonValue));
3903
+ }
3904
+
3905
+ /**
3906
+ * 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
+ * Configure sandbox SSH key
3908
+ */
3909
+ async sshKey(requestParameters: SshKeyOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SshKeyResponse> {
3910
+ const response = await this.sshKeyRaw(requestParameters, initOverrides);
3911
+ return await response.value();
3912
+ }
3913
+
3914
+ /**
3915
+ * Creates request options for steer without sending the request
3916
+ */
3917
+ async steerRequestOpts(requestParameters: SteerOperationRequest): Promise<runtime.RequestOpts> {
3918
+ if (requestParameters['sandboxId'] == null) {
3919
+ throw new runtime.RequiredError(
3920
+ 'sandboxId',
3921
+ 'Required parameter "sandboxId" was null or undefined when calling steer().'
3922
+ );
3923
+ }
3924
+
3925
+ if (requestParameters['steerRequest'] == null) {
3926
+ throw new runtime.RequiredError(
3927
+ 'steerRequest',
3928
+ 'Required parameter "steerRequest" was null or undefined when calling steer().'
3929
+ );
3930
+ }
3931
+
3932
+ const queryParameters: any = {};
3933
+
3934
+ if (requestParameters['conversation'] != null) {
3935
+ queryParameters['conversation'] = requestParameters['conversation'];
3936
+ }
3937
+
3938
+ const headerParameters: runtime.HTTPHeaders = {};
3939
+
3940
+ headerParameters['Content-Type'] = 'application/json';
3941
+
3942
+ if (this.configuration && this.configuration.accessToken) {
3943
+ const token = this.configuration.accessToken;
3944
+ const tokenString = await token("BoatBearerAuth", []);
3945
+
3946
+ if (tokenString) {
3947
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3948
+ }
3949
+ }
3950
+
3951
+ let urlPath = `/sandboxes/{sandboxId}/steer`;
3952
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
3953
+
3954
+ return {
3955
+ path: urlPath,
3956
+ method: 'POST',
3957
+ headers: headerParameters,
3958
+ query: queryParameters,
3959
+ body: SteerRequestToJSON(requestParameters['steerRequest']),
3960
+ };
3961
+ }
3962
+
3963
+ /**
3964
+ * 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
+ * Steer a running turn
3966
+ */
3967
+ async steerRaw(requestParameters: SteerOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SteerResponse>> {
3968
+ const requestOptions = await this.steerRequestOpts(requestParameters);
3969
+ const response = await this.request(requestOptions, initOverrides);
3970
+
3971
+ return new runtime.JSONApiResponse(response, (jsonValue) => SteerResponseFromJSON(jsonValue));
3972
+ }
3973
+
3974
+ /**
3975
+ * 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
+ * Steer a running turn
3977
+ */
3978
+ async steer(requestParameters: SteerOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SteerResponse> {
3979
+ const response = await this.steerRaw(requestParameters, initOverrides);
3980
+ return await response.value();
3981
+ }
3982
+
3983
+ /**
3984
+ * Creates request options for stop without sending the request
3985
+ */
3986
+ async stopRequestOpts(requestParameters: StopOperationRequest): Promise<runtime.RequestOpts> {
3987
+ if (requestParameters['sandboxId'] == null) {
3988
+ throw new runtime.RequiredError(
3989
+ 'sandboxId',
3990
+ 'Required parameter "sandboxId" was null or undefined when calling stop().'
3991
+ );
3992
+ }
3993
+
3994
+ const queryParameters: any = {};
3995
+
3996
+ const headerParameters: runtime.HTTPHeaders = {};
3997
+
3998
+ headerParameters['Content-Type'] = 'application/json';
3999
+
4000
+ if (this.configuration && this.configuration.accessToken) {
4001
+ const token = this.configuration.accessToken;
4002
+ const tokenString = await token("BoatBearerAuth", []);
4003
+
4004
+ if (tokenString) {
4005
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
4006
+ }
4007
+ }
4008
+
4009
+ let urlPath = `/sandboxes/{sandboxId}/stop`;
4010
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
4011
+
4012
+ return {
4013
+ path: urlPath,
4014
+ method: 'POST',
4015
+ headers: headerParameters,
4016
+ query: queryParameters,
4017
+ body: StopRequestToJSON(requestParameters['stopRequest']),
4018
+ };
4019
+ }
4020
+
4021
+ /**
4022
+ * 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
+ * Stop and archive sandbox
4024
+ */
4025
+ async stopRaw(requestParameters: StopOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxActionResponse>> {
4026
+ const requestOptions = await this.stopRequestOpts(requestParameters);
4027
+ const response = await this.request(requestOptions, initOverrides);
4028
+
4029
+ return new runtime.JSONApiResponse(response, (jsonValue) => SandboxActionResponseFromJSON(jsonValue));
4030
+ }
4031
+
4032
+ /**
4033
+ * 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
+ * Stop and archive sandbox
4035
+ */
4036
+ async stop(requestParameters: StopOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxActionResponse> {
4037
+ const response = await this.stopRaw(requestParameters, initOverrides);
4038
+ return await response.value();
4039
+ }
4040
+
4041
+ /**
4042
+ * Creates request options for update without sending the request
4043
+ */
4044
+ async updateRequestOpts(requestParameters: UpdateRequest): Promise<runtime.RequestOpts> {
4045
+ if (requestParameters['sandboxId'] == null) {
4046
+ throw new runtime.RequiredError(
4047
+ 'sandboxId',
4048
+ 'Required parameter "sandboxId" was null or undefined when calling update().'
4049
+ );
4050
+ }
4051
+
4052
+ if (requestParameters['updateSandboxRequest'] == null) {
4053
+ throw new runtime.RequiredError(
4054
+ 'updateSandboxRequest',
4055
+ 'Required parameter "updateSandboxRequest" was null or undefined when calling update().'
4056
+ );
4057
+ }
4058
+
4059
+ const queryParameters: any = {};
4060
+
4061
+ const headerParameters: runtime.HTTPHeaders = {};
4062
+
4063
+ headerParameters['Content-Type'] = 'application/json';
4064
+
4065
+ if (this.configuration && this.configuration.accessToken) {
4066
+ const token = this.configuration.accessToken;
4067
+ const tokenString = await token("BoatBearerAuth", []);
4068
+
4069
+ if (tokenString) {
4070
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
4071
+ }
4072
+ }
4073
+
4074
+ let urlPath = `/sandboxes/{sandboxId}`;
4075
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
4076
+
4077
+ return {
4078
+ path: urlPath,
4079
+ method: 'PATCH',
4080
+ headers: headerParameters,
4081
+ query: queryParameters,
4082
+ body: UpdateSandboxRequestToJSON(requestParameters['updateSandboxRequest']),
4083
+ };
4084
+ }
4085
+
4086
+ /**
4087
+ * Update sandbox
4088
+ */
4089
+ async updateRaw(requestParameters: UpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxInfoResponse>> {
4090
+ const requestOptions = await this.updateRequestOpts(requestParameters);
4091
+ const response = await this.request(requestOptions, initOverrides);
4092
+
4093
+ return new runtime.JSONApiResponse(response, (jsonValue) => SandboxInfoResponseFromJSON(jsonValue));
4094
+ }
4095
+
4096
+ /**
4097
+ * Update sandbox
4098
+ */
4099
+ async update(requestParameters: UpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxInfoResponse> {
4100
+ const response = await this.updateRaw(requestParameters, initOverrides);
4101
+ return await response.value();
4102
+ }
4103
+
4104
+ /**
4105
+ * Creates request options for updateDataRetention without sending the request
4106
+ */
4107
+ async updateDataRetentionRequestOpts(requestParameters: UpdateDataRetentionRequest): Promise<runtime.RequestOpts> {
4108
+ if (requestParameters['dataRetentionUpdateRequest'] == null) {
4109
+ throw new runtime.RequiredError(
4110
+ 'dataRetentionUpdateRequest',
4111
+ 'Required parameter "dataRetentionUpdateRequest" was null or undefined when calling updateDataRetention().'
4112
+ );
4113
+ }
4114
+
4115
+ const queryParameters: any = {};
4116
+
4117
+ const headerParameters: runtime.HTTPHeaders = {};
4118
+
4119
+ headerParameters['Content-Type'] = 'application/json';
4120
+
4121
+ if (this.configuration && this.configuration.accessToken) {
4122
+ const token = this.configuration.accessToken;
4123
+ const tokenString = await token("BoatBearerAuth", []);
4124
+
4125
+ if (tokenString) {
4126
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
4127
+ }
4128
+ }
4129
+
4130
+ let urlPath = `/account/data-retention`;
4131
+
4132
+ return {
4133
+ path: urlPath,
4134
+ method: 'PATCH',
4135
+ headers: headerParameters,
4136
+ query: queryParameters,
4137
+ body: DataRetentionUpdateRequestToJSON(requestParameters['dataRetentionUpdateRequest']),
4138
+ };
4139
+ }
4140
+
4141
+ /**
4142
+ * 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
+ * Update account data-retention policy
4144
+ */
4145
+ async updateDataRetentionRaw(requestParameters: UpdateDataRetentionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<DataRetentionPolicyResponse>> {
4146
+ const requestOptions = await this.updateDataRetentionRequestOpts(requestParameters);
4147
+ const response = await this.request(requestOptions, initOverrides);
4148
+
4149
+ return new runtime.JSONApiResponse(response, (jsonValue) => DataRetentionPolicyResponseFromJSON(jsonValue));
4150
+ }
4151
+
4152
+ /**
4153
+ * 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
+ * Update account data-retention policy
4155
+ */
4156
+ async updateDataRetention(requestParameters: UpdateDataRetentionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<DataRetentionPolicyResponse> {
4157
+ const response = await this.updateDataRetentionRaw(requestParameters, initOverrides);
4158
+ return await response.value();
4159
+ }
4160
+
4161
+ /**
4162
+ * Creates request options for updateEnvironment without sending the request
4163
+ */
4164
+ async updateEnvironmentRequestOpts(requestParameters: UpdateEnvironmentRequest): Promise<runtime.RequestOpts> {
4165
+ if (requestParameters['environmentId'] == null) {
4166
+ throw new runtime.RequiredError(
4167
+ 'environmentId',
4168
+ 'Required parameter "environmentId" was null or undefined when calling updateEnvironment().'
4169
+ );
4170
+ }
4171
+
4172
+ if (requestParameters['updateSandboxEnvironmentRequest'] == null) {
4173
+ throw new runtime.RequiredError(
4174
+ 'updateSandboxEnvironmentRequest',
4175
+ 'Required parameter "updateSandboxEnvironmentRequest" was null or undefined when calling updateEnvironment().'
4176
+ );
4177
+ }
4178
+
4179
+ const queryParameters: any = {};
4180
+
4181
+ const headerParameters: runtime.HTTPHeaders = {};
4182
+
4183
+ headerParameters['Content-Type'] = 'application/json';
4184
+
4185
+ if (this.configuration && this.configuration.accessToken) {
4186
+ const token = this.configuration.accessToken;
4187
+ const tokenString = await token("BoatBearerAuth", []);
4188
+
4189
+ if (tokenString) {
4190
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
4191
+ }
4192
+ }
4193
+
4194
+ let urlPath = `/environments/{environmentId}`;
4195
+ urlPath = urlPath.replace('{environmentId}', encodeURIComponent(String(requestParameters['environmentId'])));
4196
+
4197
+ return {
4198
+ path: urlPath,
4199
+ method: 'PUT',
4200
+ headers: headerParameters,
4201
+ query: queryParameters,
4202
+ body: UpdateSandboxEnvironmentRequestToJSON(requestParameters['updateSandboxEnvironmentRequest']),
4203
+ };
4204
+ }
4205
+
4206
+ /**
4207
+ * 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
+ * Update a sandbox environment
4209
+ */
4210
+ async updateEnvironmentRaw(requestParameters: UpdateEnvironmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxEnvironmentResponse>> {
4211
+ const requestOptions = await this.updateEnvironmentRequestOpts(requestParameters);
4212
+ const response = await this.request(requestOptions, initOverrides);
4213
+
4214
+ return new runtime.JSONApiResponse(response, (jsonValue) => SandboxEnvironmentResponseFromJSON(jsonValue));
4215
+ }
4216
+
4217
+ /**
4218
+ * 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
+ * Update a sandbox environment
4220
+ */
4221
+ async updateEnvironment(requestParameters: UpdateEnvironmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxEnvironmentResponse> {
4222
+ const response = await this.updateEnvironmentRaw(requestParameters, initOverrides);
4223
+ return await response.value();
4224
+ }
4225
+
4226
+ /**
4227
+ * Creates request options for updateSecrets without sending the request
4228
+ */
4229
+ async updateSecretsRequestOpts(requestParameters: UpdateSecretsRequest): Promise<runtime.RequestOpts> {
4230
+ if (requestParameters['secretsUpdateRequest'] == null) {
4231
+ throw new runtime.RequiredError(
4232
+ 'secretsUpdateRequest',
4233
+ 'Required parameter "secretsUpdateRequest" was null or undefined when calling updateSecrets().'
4234
+ );
4235
+ }
4236
+
4237
+ const queryParameters: any = {};
4238
+
4239
+ const headerParameters: runtime.HTTPHeaders = {};
4240
+
4241
+ headerParameters['Content-Type'] = 'application/json';
4242
+
4243
+ if (this.configuration && this.configuration.accessToken) {
4244
+ const token = this.configuration.accessToken;
4245
+ const tokenString = await token("BoatBearerAuth", []);
4246
+
4247
+ if (tokenString) {
4248
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
4249
+ }
4250
+ }
4251
+
4252
+ let urlPath = `/secrets`;
4253
+
4254
+ return {
4255
+ path: urlPath,
4256
+ method: 'POST',
4257
+ headers: headerParameters,
4258
+ query: queryParameters,
4259
+ body: SecretsUpdateRequestToJSON(requestParameters['secretsUpdateRequest']),
4260
+ };
4261
+ }
4262
+
4263
+ /**
4264
+ * Update Boat secrets setup
4265
+ */
4266
+ async updateSecretsRaw(requestParameters: UpdateSecretsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SecretsResponse>> {
4267
+ const requestOptions = await this.updateSecretsRequestOpts(requestParameters);
4268
+ const response = await this.request(requestOptions, initOverrides);
4269
+
4270
+ return new runtime.JSONApiResponse(response, (jsonValue) => SecretsResponseFromJSON(jsonValue));
4271
+ }
4272
+
4273
+ /**
4274
+ * Update Boat secrets setup
4275
+ */
4276
+ async updateSecrets(requestParameters: UpdateSecretsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SecretsResponse> {
4277
+ const response = await this.updateSecretsRaw(requestParameters, initOverrides);
4278
+ return await response.value();
4279
+ }
4280
+
4281
+ /**
4282
+ * Creates request options for updateWebhook without sending the request
4283
+ */
4284
+ async updateWebhookRequestOpts(requestParameters: UpdateWebhookRequest): Promise<runtime.RequestOpts> {
4285
+ if (requestParameters['webhookId'] == null) {
4286
+ throw new runtime.RequiredError(
4287
+ 'webhookId',
4288
+ 'Required parameter "webhookId" was null or undefined when calling updateWebhook().'
4289
+ );
4290
+ }
4291
+
4292
+ if (requestParameters['webhookUpdateRequest'] == null) {
4293
+ throw new runtime.RequiredError(
4294
+ 'webhookUpdateRequest',
4295
+ 'Required parameter "webhookUpdateRequest" was null or undefined when calling updateWebhook().'
4296
+ );
4297
+ }
4298
+
4299
+ const queryParameters: any = {};
4300
+
4301
+ const headerParameters: runtime.HTTPHeaders = {};
4302
+
4303
+ headerParameters['Content-Type'] = 'application/json';
4304
+
4305
+ if (this.configuration && this.configuration.accessToken) {
4306
+ const token = this.configuration.accessToken;
4307
+ const tokenString = await token("BoatBearerAuth", []);
4308
+
4309
+ if (tokenString) {
4310
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
4311
+ }
4312
+ }
4313
+
4314
+ let urlPath = `/webhooks/{webhookId}`;
4315
+ urlPath = urlPath.replace('{webhookId}', encodeURIComponent(String(requestParameters['webhookId'])));
4316
+
4317
+ return {
4318
+ path: urlPath,
4319
+ method: 'PATCH',
4320
+ headers: headerParameters,
4321
+ query: queryParameters,
4322
+ body: WebhookUpdateRequestToJSON(requestParameters['webhookUpdateRequest']),
4323
+ };
4324
+ }
4325
+
4326
+ /**
4327
+ * Updates the name, endpoint URL, or subscribed events without changing the signing secret.
4328
+ * Update webhook
4329
+ */
4330
+ async updateWebhookRaw(requestParameters: UpdateWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WebhookResponse>> {
4331
+ const requestOptions = await this.updateWebhookRequestOpts(requestParameters);
4332
+ const response = await this.request(requestOptions, initOverrides);
4333
+
4334
+ return new runtime.JSONApiResponse(response, (jsonValue) => WebhookResponseFromJSON(jsonValue));
4335
+ }
4336
+
4337
+ /**
4338
+ * Updates the name, endpoint URL, or subscribed events without changing the signing secret.
4339
+ * Update webhook
4340
+ */
4341
+ async updateWebhook(requestParameters: UpdateWebhookRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WebhookResponse> {
4342
+ const response = await this.updateWebhookRaw(requestParameters, initOverrides);
4343
+ return await response.value();
4344
+ }
4345
+
4346
+ /**
4347
+ * Creates request options for upgradeEnvironment without sending the request
4348
+ */
4349
+ async upgradeEnvironmentRequestOpts(requestParameters: UpgradeEnvironmentRequest): Promise<runtime.RequestOpts> {
4350
+ if (requestParameters['environmentId'] == null) {
4351
+ throw new runtime.RequiredError(
4352
+ 'environmentId',
4353
+ 'Required parameter "environmentId" was null or undefined when calling upgradeEnvironment().'
4354
+ );
4355
+ }
4356
+
4357
+ const queryParameters: any = {};
4358
+
4359
+ const headerParameters: runtime.HTTPHeaders = {};
4360
+
4361
+ headerParameters['Content-Type'] = 'application/json';
4362
+
4363
+ if (this.configuration && this.configuration.accessToken) {
4364
+ const token = this.configuration.accessToken;
4365
+ const tokenString = await token("BoatBearerAuth", []);
4366
+
4367
+ if (tokenString) {
4368
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
4369
+ }
4370
+ }
4371
+
4372
+ let urlPath = `/environments/{environmentId}/upgrade`;
4373
+ urlPath = urlPath.replace('{environmentId}', encodeURIComponent(String(requestParameters['environmentId'])));
4374
+
4375
+ return {
4376
+ path: urlPath,
4377
+ method: 'POST',
4378
+ headers: headerParameters,
4379
+ query: queryParameters,
4380
+ body: UpgradeSandboxEnvironmentRequestToJSON(requestParameters['upgradeSandboxEnvironmentRequest']),
4381
+ };
4382
+ }
4383
+
4384
+ /**
4385
+ * 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
+ * Upgrade sandboxes to an environment\'s latest version
4387
+ */
4388
+ async upgradeEnvironmentRaw(requestParameters: UpgradeEnvironmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<UpgradeSandboxEnvironmentResponse>> {
4389
+ const requestOptions = await this.upgradeEnvironmentRequestOpts(requestParameters);
4390
+ const response = await this.request(requestOptions, initOverrides);
4391
+
4392
+ return new runtime.JSONApiResponse(response, (jsonValue) => UpgradeSandboxEnvironmentResponseFromJSON(jsonValue));
4393
+ }
4394
+
4395
+ /**
4396
+ * 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
+ * Upgrade sandboxes to an environment\'s latest version
4398
+ */
4399
+ async upgradeEnvironment(requestParameters: UpgradeEnvironmentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<UpgradeSandboxEnvironmentResponse> {
4400
+ const response = await this.upgradeEnvironmentRaw(requestParameters, initOverrides);
4401
+ return await response.value();
4402
+ }
4403
+
4404
+ /**
4405
+ * Creates request options for usage without sending the request
4406
+ */
4407
+ async usageRequestOpts(requestParameters: UsageRequest): Promise<runtime.RequestOpts> {
4408
+ if (requestParameters['sandboxId'] == null) {
4409
+ throw new runtime.RequiredError(
4410
+ 'sandboxId',
4411
+ 'Required parameter "sandboxId" was null or undefined when calling usage().'
4412
+ );
4413
+ }
4414
+
4415
+ const queryParameters: any = {};
4416
+
4417
+ if (requestParameters['since'] != null) {
4418
+ queryParameters['since'] = requestParameters['since'];
4419
+ }
4420
+
4421
+ if (requestParameters['until'] != null) {
4422
+ queryParameters['until'] = requestParameters['until'];
4423
+ }
4424
+
4425
+ const headerParameters: runtime.HTTPHeaders = {};
4426
+
4427
+ if (this.configuration && this.configuration.accessToken) {
4428
+ const token = this.configuration.accessToken;
4429
+ const tokenString = await token("BoatBearerAuth", []);
4430
+
4431
+ if (tokenString) {
4432
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
4433
+ }
4434
+ }
4435
+
4436
+ let urlPath = `/sandboxes/{sandboxId}/usage`;
4437
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
4438
+
4439
+ return {
4440
+ path: urlPath,
4441
+ method: 'GET',
4442
+ headers: headerParameters,
4443
+ query: queryParameters,
4444
+ };
4445
+ }
4446
+
4447
+ /**
4448
+ * Machine time one sandbox consumed, and what it costs, so you can bill your own users per sandbox. Same meter as `GET /limits`: billable seconds with the sandbox type\'s multiplier applied, paused past a refused stop, never counting time stopped. Narrow it to a billing period with `since` and `until`; a period boundary that falls inside a running stretch splits that stretch pro rata. Works while the sandbox runs and after it stops.
4449
+ * Get boat usage
4450
+ */
4451
+ async usageRaw(requestParameters: UsageRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SandboxUsageResponse>> {
4452
+ const requestOptions = await this.usageRequestOpts(requestParameters);
4453
+ const response = await this.request(requestOptions, initOverrides);
4454
+
4455
+ return new runtime.JSONApiResponse(response, (jsonValue) => SandboxUsageResponseFromJSON(jsonValue));
4456
+ }
4457
+
4458
+ /**
4459
+ * Machine time one sandbox consumed, and what it costs, so you can bill your own users per sandbox. Same meter as `GET /limits`: billable seconds with the sandbox type\'s multiplier applied, paused past a refused stop, never counting time stopped. Narrow it to a billing period with `since` and `until`; a period boundary that falls inside a running stretch splits that stretch pro rata. Works while the sandbox runs and after it stops.
4460
+ * Get boat usage
4461
+ */
4462
+ async usage(requestParameters: UsageRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SandboxUsageResponse> {
4463
+ const response = await this.usageRaw(requestParameters, initOverrides);
4464
+ return await response.value();
4465
+ }
4466
+
4467
+ /**
4468
+ * Creates request options for writeFile without sending the request
4469
+ */
4470
+ async writeFileRequestOpts(requestParameters: WriteFileRequest): Promise<runtime.RequestOpts> {
4471
+ if (requestParameters['sandboxId'] == null) {
4472
+ throw new runtime.RequiredError(
4473
+ 'sandboxId',
4474
+ 'Required parameter "sandboxId" was null or undefined when calling writeFile().'
4475
+ );
4476
+ }
4477
+
4478
+ if (requestParameters['fileWriteRequest'] == null) {
4479
+ throw new runtime.RequiredError(
4480
+ 'fileWriteRequest',
4481
+ 'Required parameter "fileWriteRequest" was null or undefined when calling writeFile().'
4482
+ );
4483
+ }
4484
+
4485
+ const queryParameters: any = {};
4486
+
4487
+ const headerParameters: runtime.HTTPHeaders = {};
4488
+
4489
+ headerParameters['Content-Type'] = 'application/json';
4490
+
4491
+ if (this.configuration && this.configuration.accessToken) {
4492
+ const token = this.configuration.accessToken;
4493
+ const tokenString = await token("BoatBearerAuth", []);
4494
+
4495
+ if (tokenString) {
4496
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
4497
+ }
4498
+ }
4499
+
4500
+ let urlPath = `/sandboxes/{sandboxId}/files`;
4501
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
4502
+
4503
+ return {
4504
+ path: urlPath,
4505
+ method: 'PUT',
4506
+ headers: headerParameters,
4507
+ query: queryParameters,
4508
+ body: FileWriteRequestToJSON(requestParameters['fileWriteRequest']),
4509
+ };
4510
+ }
4511
+
4512
+ /**
4513
+ * Write a file in a sandbox
4514
+ */
4515
+ async writeFileRaw(requestParameters: WriteFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FileWriteResponse>> {
4516
+ const requestOptions = await this.writeFileRequestOpts(requestParameters);
4517
+ const response = await this.request(requestOptions, initOverrides);
4518
+
4519
+ return new runtime.JSONApiResponse(response, (jsonValue) => FileWriteResponseFromJSON(jsonValue));
4520
+ }
4521
+
4522
+ /**
4523
+ * Write a file in a sandbox
4524
+ */
4525
+ async writeFile(requestParameters: WriteFileRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FileWriteResponse> {
4526
+ const response = await this.writeFileRaw(requestParameters, initOverrides);
4527
+ return await response.value();
4528
+ }
4529
+
4530
+ }
4531
+
4532
+ /**
4533
+ * @export
4534
+ */
4535
+ export const DesktopOperationVncEnum = {
4536
+ NUMBER_1: 1
4537
+ } as const;
4538
+ export type DesktopOperationVncEnum = typeof DesktopOperationVncEnum[keyof typeof DesktopOperationVncEnum];
4539
+ /**
4540
+ * @export
4541
+ */
4542
+ export const DesktopOperationThemeEnum = {
4543
+ Light: 'light',
4544
+ Dark: 'dark'
4545
+ } as const;
4546
+ export type DesktopOperationThemeEnum = typeof DesktopOperationThemeEnum[keyof typeof DesktopOperationThemeEnum];
4547
+ /**
4548
+ * @export
4549
+ */
4550
+ export const EventsSortEnum = {
4551
+ Asc: 'asc',
4552
+ Desc: 'desc'
4553
+ } as const;
4554
+ export type EventsSortEnum = typeof EventsSortEnum[keyof typeof EventsSortEnum];
4555
+ /**
4556
+ * @export
4557
+ */
4558
+ export const ListSandboxSnapshotsSortEnum = {
4559
+ Asc: 'asc',
4560
+ Desc: 'desc'
4561
+ } as const;
4562
+ export type ListSandboxSnapshotsSortEnum = typeof ListSandboxSnapshotsSortEnum[keyof typeof ListSandboxSnapshotsSortEnum];
4563
+ /**
4564
+ * @export
4565
+ */
4566
+ export const ListSnapshotsSortEnum = {
4567
+ Asc: 'asc',
4568
+ Desc: 'desc'
4569
+ } as const;
4570
+ export type ListSnapshotsSortEnum = typeof ListSnapshotsSortEnum[keyof typeof ListSnapshotsSortEnum];
4571
+ /**
4572
+ * @export
4573
+ */
4574
+ export const ReadFileEncodingEnum = {
4575
+ Utf8: 'utf8',
4576
+ Base64: 'base64'
4577
+ } as const;
4578
+ export type ReadFileEncodingEnum = typeof ReadFileEncodingEnum[keyof typeof ReadFileEncodingEnum];
4579
+ /**
4580
+ * @export
4581
+ */
4582
+ export const ReposSortEnum = {
4583
+ Asc: 'asc',
4584
+ Desc: 'desc'
4585
+ } as const;
4586
+ export type ReposSortEnum = typeof ReposSortEnum[keyof typeof ReposSortEnum];
4587
+ /**
4588
+ * @export
4589
+ */
4590
+ export const SandboxesSortEnum = {
4591
+ Asc: 'asc',
4592
+ Desc: 'desc'
4593
+ } as const;
4594
+ export type SandboxesSortEnum = typeof SandboxesSortEnum[keyof typeof SandboxesSortEnum];