@boatdev/sdk 1.10.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/.openapi-generator/FILES +64 -0
  2. package/dist/apis/BoatApi.d.ts +283 -26
  3. package/dist/apis/BoatApi.js +662 -29
  4. package/dist/esm/apis/BoatApi.d.ts +283 -26
  5. package/dist/esm/apis/BoatApi.js +662 -29
  6. package/dist/esm/models/CreateSandboxRequest.d.ts +38 -4
  7. package/dist/esm/models/CreateSandboxRequest.js +17 -0
  8. package/dist/esm/models/CreateSandboxRequestFilesInner.d.ts +52 -0
  9. package/dist/esm/models/CreateSandboxRequestFilesInner.js +56 -0
  10. package/dist/esm/models/CreateSandboxResponse.d.ts +7 -0
  11. package/dist/esm/models/CreateSandboxResponse.js +3 -0
  12. package/dist/esm/models/CreateSandboxResponseAllOfHostedPortsInner.d.ts +77 -0
  13. package/dist/esm/models/CreateSandboxResponseAllOfHostedPortsInner.js +64 -0
  14. package/dist/esm/models/CredentialId.d.ts +3 -0
  15. package/dist/esm/models/CredentialId.js +3 -0
  16. package/dist/esm/models/CredentialProfile.d.ts +7 -0
  17. package/dist/esm/models/CredentialProfile.js +3 -0
  18. package/dist/esm/models/DeletionOperation.d.ts +1 -1
  19. package/dist/esm/models/FileDeleteResponse.d.ts +57 -0
  20. package/dist/esm/models/FileDeleteResponse.js +59 -0
  21. package/dist/esm/models/FileEntry.d.ts +68 -0
  22. package/dist/esm/models/FileEntry.js +67 -0
  23. package/dist/esm/models/FileFindResponse.d.ts +70 -0
  24. package/dist/esm/models/FileFindResponse.js +66 -0
  25. package/dist/esm/models/FileFindResponseAllOfMatches.d.ts +44 -0
  26. package/dist/esm/models/FileFindResponseAllOfMatches.js +51 -0
  27. package/dist/esm/models/FileFolderRequest.d.ts +38 -0
  28. package/dist/esm/models/FileFolderRequest.js +45 -0
  29. package/dist/esm/models/FileInfoResponse.d.ts +95 -0
  30. package/dist/esm/models/FileInfoResponse.js +85 -0
  31. package/dist/esm/models/FileListResponse.d.ts +70 -0
  32. package/dist/esm/models/FileListResponse.js +68 -0
  33. package/dist/esm/models/FileMoveRequest.d.ts +44 -0
  34. package/dist/esm/models/FileMoveRequest.js +49 -0
  35. package/dist/esm/models/FileMoveResponse.d.ts +63 -0
  36. package/dist/esm/models/FileMoveResponse.js +63 -0
  37. package/dist/esm/models/FilePermissionsRequest.d.ts +38 -0
  38. package/dist/esm/models/FilePermissionsRequest.js +47 -0
  39. package/dist/esm/models/FileReplaceRequest.d.ts +44 -0
  40. package/dist/esm/models/FileReplaceRequest.js +51 -0
  41. package/dist/esm/models/FileReplaceResponse.d.ts +58 -0
  42. package/dist/esm/models/FileReplaceResponse.js +60 -0
  43. package/dist/esm/models/FileReplaceResponseAllOfResults.d.ts +50 -0
  44. package/dist/esm/models/FileReplaceResponseAllOfResults.js +51 -0
  45. package/dist/esm/models/FileSearchResponse.d.ts +69 -0
  46. package/dist/esm/models/FileSearchResponse.js +65 -0
  47. package/dist/esm/models/LimitsFields.d.ts +54 -16
  48. package/dist/esm/models/LimitsFields.js +16 -2
  49. package/dist/esm/models/LimitsFieldsOveragePrices.d.ts +51 -0
  50. package/dist/esm/models/LimitsFieldsOveragePrices.js +48 -0
  51. package/dist/esm/models/LimitsFieldsOveragePricesStartBracketsInner.d.ts +44 -0
  52. package/dist/esm/models/LimitsFieldsOveragePricesStartBracketsInner.js +45 -0
  53. package/dist/esm/models/LimitsFieldsPlanIncluded.d.ts +44 -0
  54. package/dist/esm/models/LimitsFieldsPlanIncluded.js +45 -0
  55. package/dist/esm/models/LimitsFieldsStartLimitsWithWallet.d.ts +44 -0
  56. package/dist/esm/models/LimitsFieldsStartLimitsWithWallet.js +45 -0
  57. package/dist/esm/models/LimitsFieldsWallet.d.ts +32 -0
  58. package/dist/esm/models/LimitsFieldsWallet.js +41 -0
  59. package/dist/esm/models/LimitsResponse.d.ts +54 -16
  60. package/dist/esm/models/LimitsResponse.js +16 -2
  61. package/dist/esm/models/NamedSnapshotAllowance.d.ts +9 -3
  62. package/dist/esm/models/NamedSnapshotAllowance.js +2 -0
  63. package/dist/esm/models/ResourceAccess.d.ts +38 -0
  64. package/dist/esm/models/ResourceAccess.js +47 -0
  65. package/dist/esm/models/ResourceAccessUpdate.d.ts +38 -0
  66. package/dist/esm/models/ResourceAccessUpdate.js +45 -0
  67. package/dist/esm/models/Sandbox.d.ts +7 -0
  68. package/dist/esm/models/Sandbox.js +3 -0
  69. package/dist/esm/models/SandboxEnvironment.d.ts +7 -0
  70. package/dist/esm/models/SandboxEnvironment.js +3 -0
  71. package/dist/esm/models/SandboxLastReboot.d.ts +47 -0
  72. package/dist/esm/models/SandboxLastReboot.js +51 -0
  73. package/dist/esm/models/SandboxListResponse.d.ts +7 -0
  74. package/dist/esm/models/SandboxListResponse.js +3 -0
  75. package/dist/esm/models/SandboxListResponseAllOfDeletedCost.d.ts +44 -0
  76. package/dist/esm/models/SandboxListResponseAllOfDeletedCost.js +51 -0
  77. package/dist/esm/models/SavedSnapshot.d.ts +83 -0
  78. package/dist/esm/models/SavedSnapshot.js +71 -0
  79. package/dist/esm/models/SavedSnapshotAllowance.d.ts +87 -0
  80. package/dist/esm/models/SavedSnapshotAllowance.js +59 -0
  81. package/dist/esm/models/SavedSnapshotDeletedResponse.d.ts +64 -0
  82. package/dist/esm/models/SavedSnapshotDeletedResponse.js +67 -0
  83. package/dist/esm/models/SavedSnapshotInfoResponse.d.ts +52 -0
  84. package/dist/esm/models/SavedSnapshotInfoResponse.js +58 -0
  85. package/dist/esm/models/SavedSnapshotListResponse.d.ts +59 -0
  86. package/dist/esm/models/SavedSnapshotListResponse.js +61 -0
  87. package/dist/esm/models/SavedSnapshotSaveRequest.d.ts +38 -0
  88. package/dist/esm/models/SavedSnapshotSaveRequest.js +47 -0
  89. package/dist/esm/models/SavedSnapshotSavingResponse.d.ts +65 -0
  90. package/dist/esm/models/SavedSnapshotSavingResponse.js +68 -0
  91. package/dist/esm/models/SnapshotSummary.d.ts +1 -1
  92. package/dist/esm/models/UpdateCredentialProfileRequest.d.ts +7 -0
  93. package/dist/esm/models/UpdateCredentialProfileRequest.js +3 -0
  94. package/dist/esm/models/UpdateSandboxEnvironmentRequest.d.ts +7 -0
  95. package/dist/esm/models/UpdateSandboxEnvironmentRequest.js +3 -0
  96. package/dist/esm/models/index.d.ts +32 -0
  97. package/dist/esm/models/index.js +32 -0
  98. package/dist/models/CreateSandboxRequest.d.ts +38 -4
  99. package/dist/models/CreateSandboxRequest.js +18 -1
  100. package/dist/models/CreateSandboxRequestFilesInner.d.ts +52 -0
  101. package/dist/models/CreateSandboxRequestFilesInner.js +64 -0
  102. package/dist/models/CreateSandboxResponse.d.ts +7 -0
  103. package/dist/models/CreateSandboxResponse.js +3 -0
  104. package/dist/models/CreateSandboxResponseAllOfHostedPortsInner.d.ts +77 -0
  105. package/dist/models/CreateSandboxResponseAllOfHostedPortsInner.js +72 -0
  106. package/dist/models/CredentialId.d.ts +3 -0
  107. package/dist/models/CredentialId.js +3 -0
  108. package/dist/models/CredentialProfile.d.ts +7 -0
  109. package/dist/models/CredentialProfile.js +3 -0
  110. package/dist/models/DeletionOperation.d.ts +1 -1
  111. package/dist/models/FileDeleteResponse.d.ts +57 -0
  112. package/dist/models/FileDeleteResponse.js +67 -0
  113. package/dist/models/FileEntry.d.ts +68 -0
  114. package/dist/models/FileEntry.js +74 -0
  115. package/dist/models/FileFindResponse.d.ts +70 -0
  116. package/dist/models/FileFindResponse.js +74 -0
  117. package/dist/models/FileFindResponseAllOfMatches.d.ts +44 -0
  118. package/dist/models/FileFindResponseAllOfMatches.js +58 -0
  119. package/dist/models/FileFolderRequest.d.ts +38 -0
  120. package/dist/models/FileFolderRequest.js +52 -0
  121. package/dist/models/FileInfoResponse.d.ts +95 -0
  122. package/dist/models/FileInfoResponse.js +93 -0
  123. package/dist/models/FileListResponse.d.ts +70 -0
  124. package/dist/models/FileListResponse.js +76 -0
  125. package/dist/models/FileMoveRequest.d.ts +44 -0
  126. package/dist/models/FileMoveRequest.js +56 -0
  127. package/dist/models/FileMoveResponse.d.ts +63 -0
  128. package/dist/models/FileMoveResponse.js +71 -0
  129. package/dist/models/FilePermissionsRequest.d.ts +38 -0
  130. package/dist/models/FilePermissionsRequest.js +54 -0
  131. package/dist/models/FileReplaceRequest.d.ts +44 -0
  132. package/dist/models/FileReplaceRequest.js +58 -0
  133. package/dist/models/FileReplaceResponse.d.ts +58 -0
  134. package/dist/models/FileReplaceResponse.js +68 -0
  135. package/dist/models/FileReplaceResponseAllOfResults.d.ts +50 -0
  136. package/dist/models/FileReplaceResponseAllOfResults.js +58 -0
  137. package/dist/models/FileSearchResponse.d.ts +69 -0
  138. package/dist/models/FileSearchResponse.js +73 -0
  139. package/dist/models/LimitsFields.d.ts +54 -16
  140. package/dist/models/LimitsFields.js +16 -2
  141. package/dist/models/LimitsFieldsOveragePrices.d.ts +51 -0
  142. package/dist/models/LimitsFieldsOveragePrices.js +55 -0
  143. package/dist/models/LimitsFieldsOveragePricesStartBracketsInner.d.ts +44 -0
  144. package/dist/models/LimitsFieldsOveragePricesStartBracketsInner.js +52 -0
  145. package/dist/models/LimitsFieldsPlanIncluded.d.ts +44 -0
  146. package/dist/models/LimitsFieldsPlanIncluded.js +52 -0
  147. package/dist/models/LimitsFieldsStartLimitsWithWallet.d.ts +44 -0
  148. package/dist/models/LimitsFieldsStartLimitsWithWallet.js +52 -0
  149. package/dist/models/LimitsFieldsWallet.d.ts +32 -0
  150. package/dist/models/LimitsFieldsWallet.js +48 -0
  151. package/dist/models/LimitsResponse.d.ts +54 -16
  152. package/dist/models/LimitsResponse.js +16 -2
  153. package/dist/models/NamedSnapshotAllowance.d.ts +9 -3
  154. package/dist/models/NamedSnapshotAllowance.js +2 -0
  155. package/dist/models/ResourceAccess.d.ts +38 -0
  156. package/dist/models/ResourceAccess.js +54 -0
  157. package/dist/models/ResourceAccessUpdate.d.ts +38 -0
  158. package/dist/models/ResourceAccessUpdate.js +52 -0
  159. package/dist/models/Sandbox.d.ts +7 -0
  160. package/dist/models/Sandbox.js +3 -0
  161. package/dist/models/SandboxEnvironment.d.ts +7 -0
  162. package/dist/models/SandboxEnvironment.js +3 -0
  163. package/dist/models/SandboxLastReboot.d.ts +47 -0
  164. package/dist/models/SandboxLastReboot.js +59 -0
  165. package/dist/models/SandboxListResponse.d.ts +7 -0
  166. package/dist/models/SandboxListResponse.js +3 -0
  167. package/dist/models/SandboxListResponseAllOfDeletedCost.d.ts +44 -0
  168. package/dist/models/SandboxListResponseAllOfDeletedCost.js +58 -0
  169. package/dist/models/SavedSnapshot.d.ts +83 -0
  170. package/dist/models/SavedSnapshot.js +79 -0
  171. package/dist/models/SavedSnapshotAllowance.d.ts +87 -0
  172. package/dist/models/SavedSnapshotAllowance.js +66 -0
  173. package/dist/models/SavedSnapshotDeletedResponse.d.ts +64 -0
  174. package/dist/models/SavedSnapshotDeletedResponse.js +75 -0
  175. package/dist/models/SavedSnapshotInfoResponse.d.ts +52 -0
  176. package/dist/models/SavedSnapshotInfoResponse.js +66 -0
  177. package/dist/models/SavedSnapshotListResponse.d.ts +59 -0
  178. package/dist/models/SavedSnapshotListResponse.js +69 -0
  179. package/dist/models/SavedSnapshotSaveRequest.d.ts +38 -0
  180. package/dist/models/SavedSnapshotSaveRequest.js +54 -0
  181. package/dist/models/SavedSnapshotSavingResponse.d.ts +65 -0
  182. package/dist/models/SavedSnapshotSavingResponse.js +76 -0
  183. package/dist/models/SnapshotSummary.d.ts +1 -1
  184. package/dist/models/UpdateCredentialProfileRequest.d.ts +7 -0
  185. package/dist/models/UpdateCredentialProfileRequest.js +3 -0
  186. package/dist/models/UpdateSandboxEnvironmentRequest.d.ts +7 -0
  187. package/dist/models/UpdateSandboxEnvironmentRequest.js +3 -0
  188. package/dist/models/index.d.ts +32 -0
  189. package/dist/models/index.js +32 -0
  190. package/docs/BoatApi.md +1049 -61
  191. package/docs/CreateSandboxRequest.md +8 -0
  192. package/docs/CreateSandboxRequestFilesInner.md +36 -0
  193. package/docs/CreateSandboxResponse.md +2 -0
  194. package/docs/CreateSandboxResponseAllOfHostedPortsInner.md +44 -0
  195. package/docs/CredentialProfile.md +2 -0
  196. package/docs/FileDeleteResponse.md +38 -0
  197. package/docs/FileEntry.md +44 -0
  198. package/docs/FileFindResponse.md +42 -0
  199. package/docs/FileFindResponseAllOfMatches.md +36 -0
  200. package/docs/FileFolderRequest.md +34 -0
  201. package/docs/FileInfoResponse.md +50 -0
  202. package/docs/FileListResponse.md +42 -0
  203. package/docs/FileMoveRequest.md +36 -0
  204. package/docs/FileMoveResponse.md +40 -0
  205. package/docs/FilePermissionsRequest.md +34 -0
  206. package/docs/FileReplaceRequest.md +36 -0
  207. package/docs/FileReplaceResponse.md +38 -0
  208. package/docs/FileReplaceResponseAllOfResults.md +38 -0
  209. package/docs/FileSearchResponse.md +42 -0
  210. package/docs/LimitsFields.md +12 -2
  211. package/docs/LimitsFieldsOveragePrices.md +39 -0
  212. package/docs/LimitsFieldsOveragePricesStartBracketsInner.md +36 -0
  213. package/docs/LimitsFieldsPlanIncluded.md +37 -0
  214. package/docs/LimitsFieldsStartLimitsWithWallet.md +37 -0
  215. package/docs/LimitsFieldsWallet.md +33 -0
  216. package/docs/LimitsResponse.md +12 -2
  217. package/docs/NamedSnapshotAllowance.md +3 -1
  218. package/docs/ResourceAccess.md +35 -0
  219. package/docs/ResourceAccessUpdate.md +35 -0
  220. package/docs/Sandbox.md +2 -0
  221. package/docs/SandboxEnvironment.md +2 -0
  222. package/docs/SandboxLastReboot.md +35 -0
  223. package/docs/SandboxListResponse.md +2 -0
  224. package/docs/SandboxListResponseAllOfDeletedCost.md +37 -0
  225. package/docs/SavedSnapshot.md +47 -0
  226. package/docs/SavedSnapshotAllowance.md +51 -0
  227. package/docs/SavedSnapshotDeletedResponse.md +38 -0
  228. package/docs/SavedSnapshotInfoResponse.md +36 -0
  229. package/docs/SavedSnapshotListResponse.md +38 -0
  230. package/docs/SavedSnapshotSaveRequest.md +34 -0
  231. package/docs/SavedSnapshotSavingResponse.md +38 -0
  232. package/docs/UpdateCredentialProfileRequest.md +2 -0
  233. package/docs/UpdateSandboxEnvironmentRequest.md +2 -0
  234. package/package.json +1 -1
  235. package/src/apis/BoatApi.ts +999 -30
  236. package/src/models/CreateSandboxRequest.ts +60 -4
  237. package/src/models/CreateSandboxRequestFilesInner.ts +94 -0
  238. package/src/models/CreateSandboxResponse.ts +15 -0
  239. package/src/models/CreateSandboxResponseAllOfHostedPortsInner.ts +128 -0
  240. package/src/models/CredentialId.ts +3 -0
  241. package/src/models/CredentialProfile.ts +15 -0
  242. package/src/models/DeletionOperation.ts +1 -1
  243. package/src/models/FileDeleteResponse.ts +102 -0
  244. package/src/models/FileEntry.ts +120 -0
  245. package/src/models/FileFindResponse.ts +127 -0
  246. package/src/models/FileFindResponseAllOfMatches.ts +84 -0
  247. package/src/models/FileFolderRequest.ts +74 -0
  248. package/src/models/FileInfoResponse.ts +158 -0
  249. package/src/models/FileListResponse.ts +128 -0
  250. package/src/models/FileMoveRequest.ts +83 -0
  251. package/src/models/FileMoveResponse.ts +111 -0
  252. package/src/models/FilePermissionsRequest.ts +75 -0
  253. package/src/models/FileReplaceRequest.ts +84 -0
  254. package/src/models/FileReplaceResponse.ts +110 -0
  255. package/src/models/FileReplaceResponseAllOfResults.ts +91 -0
  256. package/src/models/FileSearchResponse.ts +119 -0
  257. package/src/models/LimitsFields.ts +90 -16
  258. package/src/models/LimitsFieldsOveragePrices.ts +97 -0
  259. package/src/models/LimitsFieldsOveragePricesStartBracketsInner.ts +81 -0
  260. package/src/models/LimitsFieldsPlanIncluded.ts +81 -0
  261. package/src/models/LimitsFieldsStartLimitsWithWallet.ts +81 -0
  262. package/src/models/LimitsFieldsWallet.ts +65 -0
  263. package/src/models/LimitsResponse.ts +90 -16
  264. package/src/models/NamedSnapshotAllowance.ts +11 -3
  265. package/src/models/ResourceAccess.ts +75 -0
  266. package/src/models/ResourceAccessUpdate.ts +74 -0
  267. package/src/models/Sandbox.ts +15 -0
  268. package/src/models/SandboxEnvironment.ts +15 -0
  269. package/src/models/SandboxLastReboot.ts +85 -0
  270. package/src/models/SandboxListResponse.ts +15 -0
  271. package/src/models/SandboxListResponseAllOfDeletedCost.ts +84 -0
  272. package/src/models/SavedSnapshot.ts +137 -0
  273. package/src/models/SavedSnapshotAllowance.ts +138 -0
  274. package/src/models/SavedSnapshotDeletedResponse.ts +111 -0
  275. package/src/models/SavedSnapshotInfoResponse.ts +102 -0
  276. package/src/models/SavedSnapshotListResponse.ts +117 -0
  277. package/src/models/SavedSnapshotSaveRequest.ts +75 -0
  278. package/src/models/SavedSnapshotSavingResponse.ts +119 -0
  279. package/src/models/SnapshotSummary.ts +1 -1
  280. package/src/models/UpdateCredentialProfileRequest.ts +16 -0
  281. package/src/models/UpdateSandboxEnvironmentRequest.ts +15 -0
  282. package/src/models/index.ts +32 -0
@@ -47,7 +47,18 @@ import { DesktopRequestToJSON, } from '../models/DesktopRequest';
47
47
  import { DesktopResponseFromJSON, } from '../models/DesktopResponse';
48
48
  import { EnvironmentItemChangeResponseFromJSON, } from '../models/EnvironmentItemChangeResponse';
49
49
  import { EventsResponseFromJSON, } from '../models/EventsResponse';
50
+ import { FileDeleteResponseFromJSON, } from '../models/FileDeleteResponse';
51
+ import { FileFindResponseFromJSON, } from '../models/FileFindResponse';
52
+ import { FileFolderRequestToJSON, } from '../models/FileFolderRequest';
53
+ import { FileInfoResponseFromJSON, } from '../models/FileInfoResponse';
54
+ import { FileListResponseFromJSON, } from '../models/FileListResponse';
55
+ import { FileMoveRequestToJSON, } from '../models/FileMoveRequest';
56
+ import { FileMoveResponseFromJSON, } from '../models/FileMoveResponse';
57
+ import { FilePermissionsRequestToJSON, } from '../models/FilePermissionsRequest';
50
58
  import { FileReadResponseFromJSON, } from '../models/FileReadResponse';
59
+ import { FileReplaceRequestToJSON, } from '../models/FileReplaceRequest';
60
+ import { FileReplaceResponseFromJSON, } from '../models/FileReplaceResponse';
61
+ import { FileSearchResponseFromJSON, } from '../models/FileSearchResponse';
51
62
  import { FileUrlRequestToJSON, } from '../models/FileUrlRequest';
52
63
  import { FileUrlResponseFromJSON, } from '../models/FileUrlResponse';
53
64
  import { FileWriteRequestToJSON, } from '../models/FileWriteRequest';
@@ -83,6 +94,11 @@ import { SandboxEnvironmentResponseFromJSON, } from '../models/SandboxEnvironmen
83
94
  import { SandboxInfoResponseFromJSON, } from '../models/SandboxInfoResponse';
84
95
  import { SandboxListResponseFromJSON, } from '../models/SandboxListResponse';
85
96
  import { SandboxUsageResponseFromJSON, } from '../models/SandboxUsageResponse';
97
+ import { SavedSnapshotDeletedResponseFromJSON, } from '../models/SavedSnapshotDeletedResponse';
98
+ import { SavedSnapshotInfoResponseFromJSON, } from '../models/SavedSnapshotInfoResponse';
99
+ import { SavedSnapshotListResponseFromJSON, } from '../models/SavedSnapshotListResponse';
100
+ import { SavedSnapshotSaveRequestToJSON, } from '../models/SavedSnapshotSaveRequest';
101
+ import { SavedSnapshotSavingResponseFromJSON, } from '../models/SavedSnapshotSavingResponse';
86
102
  import { SecretsResponseFromJSON, } from '../models/SecretsResponse';
87
103
  import { SecretsUpdateRequestToJSON, } from '../models/SecretsUpdateRequest';
88
104
  import { SetCredentialKeyRequestToJSON, } from '../models/SetCredentialKeyRequest';
@@ -852,6 +868,54 @@ export class BoatApi extends runtime.BaseAPI {
852
868
  const response = await this.createEnvironmentRaw(requestParameters, initOverrides);
853
869
  return await response.value();
854
870
  }
871
+ /**
872
+ * Creates request options for createFolder without sending the request
873
+ */
874
+ async createFolderRequestOpts(input) {
875
+ const requestParameters = runtime.unflattenBody(input, 'fileFolderRequest', ['sandboxId'], []);
876
+ if (requestParameters['sandboxId'] == null) {
877
+ throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling createFolder().');
878
+ }
879
+ if (requestParameters['fileFolderRequest'] == null) {
880
+ throw new runtime.RequiredError('fileFolderRequest', 'Required parameter "fileFolderRequest" was null or undefined when calling createFolder().');
881
+ }
882
+ const queryParameters = {};
883
+ const headerParameters = {};
884
+ headerParameters['Content-Type'] = 'application/json';
885
+ if (this.configuration && this.configuration.accessToken) {
886
+ const token = this.configuration.accessToken;
887
+ const tokenString = await token("BoatBearerAuth", []);
888
+ if (tokenString) {
889
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
890
+ }
891
+ }
892
+ let urlPath = `/sandboxes/{sandboxId}/files/folder`;
893
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
894
+ return {
895
+ path: urlPath,
896
+ method: 'POST',
897
+ headers: headerParameters,
898
+ query: queryParameters,
899
+ body: FileFolderRequestToJSON(requestParameters['fileFolderRequest']),
900
+ };
901
+ }
902
+ /**
903
+ * Missing parent directories are created. An existing directory is not an error. Needs `file.write`.
904
+ * Create a directory in a sandbox
905
+ */
906
+ async createFolderRaw(requestParameters, initOverrides) {
907
+ const requestOptions = await this.createFolderRequestOpts(requestParameters);
908
+ const response = await this.request(requestOptions, initOverrides);
909
+ return new runtime.JSONApiResponse(response, (jsonValue) => FileInfoResponseFromJSON(jsonValue));
910
+ }
911
+ /**
912
+ * Missing parent directories are created. An existing directory is not an error. Needs `file.write`.
913
+ * Create a directory in a sandbox
914
+ */
915
+ async createFolder(requestParameters, initOverrides) {
916
+ const response = await this.createFolderRaw(requestParameters, initOverrides);
917
+ return await response.value();
918
+ }
855
919
  /**
856
920
  * Creates request options for createScopedApiKey without sending the request
857
921
  */
@@ -880,7 +944,7 @@ export class BoatApi extends runtime.BaseAPI {
880
944
  };
881
945
  }
882
946
  /**
883
- * 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.
947
+ * Creates a scoped, expiring API key. Requires a dashboard/CLI session or an admin-scoped token. The secret is returned once. An unknown field is a 400, so a misspelled scope never creates a full-access key. environmentIds takes your own environments and the org environments you can use. This dedicated path returns a typed 503 until scoped credential creation is activated.
884
948
  * Create a scoped API key
885
949
  */
886
950
  async createScopedApiKeyRaw(requestParameters, initOverrides) {
@@ -889,7 +953,7 @@ export class BoatApi extends runtime.BaseAPI {
889
953
  return new runtime.JSONApiResponse(response, (jsonValue) => ApiKeySecretResponseFromJSON(jsonValue));
890
954
  }
891
955
  /**
892
- * 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.
956
+ * Creates a scoped, expiring API key. Requires a dashboard/CLI session or an admin-scoped token. The secret is returned once. An unknown field is a 400, so a misspelled scope never creates a full-access key. environmentIds takes your own environments and the org environments you can use. This dedicated path returns a typed 503 until scoped credential creation is activated.
893
957
  * Create a scoped API key
894
958
  */
895
959
  async createScopedApiKey(requestParameters, initOverrides) {
@@ -912,7 +976,7 @@ export class BoatApi extends runtime.BaseAPI {
912
976
  headerParameters["Authorization"] = `Bearer ${tokenString}`;
913
977
  }
914
978
  }
915
- let urlPath = `/named-snapshots/{name}/shares`;
979
+ let urlPath = `/saved-snapshots/{name}/shares`;
916
980
  urlPath = urlPath.replace('{name}', encodeURIComponent(String(requestParameters['name'])));
917
981
  return {
918
982
  path: urlPath,
@@ -922,8 +986,8 @@ export class BoatApi extends runtime.BaseAPI {
922
986
  };
923
987
  }
924
988
  /**
925
- * Make a secret code that lets any Boat account create a sandbox from this named snapshot (`boat snapshot share <name>` in the CLI). The response shows the code once; Boat stores only a hash. Re-saving the name changes what the code deploys. Removing the name removes its codes. Everything on the disk is shared, so do not keep secrets in files on it. Needs `snapshot.write`.
926
- * Share a named snapshot
989
+ * Make a secret code that lets any Boat account create a sandbox from this saved snapshot (`boat snapshot share <name>` in the CLI). The response shows the code once; Boat stores only a hash. Re-saving the name changes what the code deploys. Removing the name removes its codes. Everything on the disk is shared, so do not keep secrets in files on it. Needs `snapshot.write`.
990
+ * Share a saved snapshot
927
991
  */
928
992
  async createSnapshotShareRaw(requestParameters, initOverrides) {
929
993
  const requestOptions = await this.createSnapshotShareRequestOpts(requestParameters);
@@ -931,8 +995,8 @@ export class BoatApi extends runtime.BaseAPI {
931
995
  return new runtime.JSONApiResponse(response, (jsonValue) => NamedSnapshotShareCreatedResponseFromJSON(jsonValue));
932
996
  }
933
997
  /**
934
- * Make a secret code that lets any Boat account create a sandbox from this named snapshot (`boat snapshot share <name>` in the CLI). The response shows the code once; Boat stores only a hash. Re-saving the name changes what the code deploys. Removing the name removes its codes. Everything on the disk is shared, so do not keep secrets in files on it. Needs `snapshot.write`.
935
- * Share a named snapshot
998
+ * Make a secret code that lets any Boat account create a sandbox from this saved snapshot (`boat snapshot share <name>` in the CLI). The response shows the code once; Boat stores only a hash. Re-saving the name changes what the code deploys. Removing the name removes its codes. Everything on the disk is shared, so do not keep secrets in files on it. Needs `snapshot.write`.
999
+ * Share a saved snapshot
936
1000
  */
937
1001
  async createSnapshotShare(requestParameters, initOverrides) {
938
1002
  const response = await this.createSnapshotShareRaw(requestParameters, initOverrides);
@@ -1408,8 +1472,60 @@ export class BoatApi extends runtime.BaseAPI {
1408
1472
  const response = await this.deleteEnvironmentVarRaw(requestParameters, initOverrides);
1409
1473
  return await response.value();
1410
1474
  }
1475
+ /**
1476
+ * Creates request options for deleteFile without sending the request
1477
+ */
1478
+ async deleteFileRequestOpts(requestParameters) {
1479
+ if (requestParameters['sandboxId'] == null) {
1480
+ throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling deleteFile().');
1481
+ }
1482
+ if (requestParameters['path'] == null) {
1483
+ throw new runtime.RequiredError('path', 'Required parameter "path" was null or undefined when calling deleteFile().');
1484
+ }
1485
+ const queryParameters = {};
1486
+ if (requestParameters['path'] != null) {
1487
+ queryParameters['path'] = requestParameters['path'];
1488
+ }
1489
+ if (requestParameters['recursive'] != null) {
1490
+ queryParameters['recursive'] = requestParameters['recursive'];
1491
+ }
1492
+ const headerParameters = {};
1493
+ if (this.configuration && this.configuration.accessToken) {
1494
+ const token = this.configuration.accessToken;
1495
+ const tokenString = await token("BoatBearerAuth", []);
1496
+ if (tokenString) {
1497
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1498
+ }
1499
+ }
1500
+ let urlPath = `/sandboxes/{sandboxId}/files`;
1501
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
1502
+ return {
1503
+ path: urlPath,
1504
+ method: 'DELETE',
1505
+ headers: headerParameters,
1506
+ query: queryParameters,
1507
+ };
1508
+ }
1509
+ /**
1510
+ * A directory needs `recursive=true`. A symlink is deleted itself, never its target. /home/user and /tmp themselves cannot be deleted. Needs `file.write`.
1511
+ * Delete a file or directory in a sandbox
1512
+ */
1513
+ async deleteFileRaw(requestParameters, initOverrides) {
1514
+ const requestOptions = await this.deleteFileRequestOpts(requestParameters);
1515
+ const response = await this.request(requestOptions, initOverrides);
1516
+ return new runtime.JSONApiResponse(response, (jsonValue) => FileDeleteResponseFromJSON(jsonValue));
1517
+ }
1518
+ /**
1519
+ * A directory needs `recursive=true`. A symlink is deleted itself, never its target. /home/user and /tmp themselves cannot be deleted. Needs `file.write`.
1520
+ * Delete a file or directory in a sandbox
1521
+ */
1522
+ async deleteFile(requestParameters, initOverrides) {
1523
+ const response = await this.deleteFileRaw(requestParameters, initOverrides);
1524
+ return await response.value();
1525
+ }
1411
1526
  /**
1412
1527
  * Creates request options for deleteNamedSnapshot without sending the request
1528
+ * @deprecated
1413
1529
  */
1414
1530
  async deleteNamedSnapshotRequestOpts(requestParameters) {
1415
1531
  if (requestParameters['name'] == null) {
@@ -1436,6 +1552,7 @@ export class BoatApi extends runtime.BaseAPI {
1436
1552
  /**
1437
1553
  * Remove a named snapshot and release its storage (`boat snapshot rm <name>` in the CLI). Sandboxes already deployed from it are unaffected.
1438
1554
  * Remove a named snapshot
1555
+ * @deprecated
1439
1556
  */
1440
1557
  async deleteNamedSnapshotRaw(requestParameters, initOverrides) {
1441
1558
  const requestOptions = await this.deleteNamedSnapshotRequestOpts(requestParameters);
@@ -1445,6 +1562,7 @@ export class BoatApi extends runtime.BaseAPI {
1445
1562
  /**
1446
1563
  * Remove a named snapshot and release its storage (`boat snapshot rm <name>` in the CLI). Sandboxes already deployed from it are unaffected.
1447
1564
  * Remove a named snapshot
1565
+ * @deprecated
1448
1566
  */
1449
1567
  async deleteNamedSnapshot(requestParameters, initOverrides) {
1450
1568
  const response = await this.deleteNamedSnapshotRaw(requestParameters, initOverrides);
@@ -1482,7 +1600,7 @@ export class BoatApi extends runtime.BaseAPI {
1482
1600
  };
1483
1601
  }
1484
1602
  /**
1485
- * 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`.
1603
+ * Accept irreversible background deletion of the sandbox machine, snapshots, and content-bearing records. This is not archive: the sandbox cannot be resumed. Saved snapshots and other shared artifacts remain independent. Poll the returned operation until `completed`.
1486
1604
  * Permanently delete sandbox data
1487
1605
  */
1488
1606
  async deleteSandboxRaw(requestParameters, initOverrides) {
@@ -1491,7 +1609,7 @@ export class BoatApi extends runtime.BaseAPI {
1491
1609
  return new runtime.JSONApiResponse(response, (jsonValue) => DeletionOperationResponseFromJSON(jsonValue));
1492
1610
  }
1493
1611
  /**
1494
- * 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`.
1612
+ * Accept irreversible background deletion of the sandbox machine, snapshots, and content-bearing records. This is not archive: the sandbox cannot be resumed. Saved snapshots and other shared artifacts remain independent. Poll the returned operation until `completed`.
1495
1613
  * Permanently delete sandbox data
1496
1614
  */
1497
1615
  async deleteSandbox(requestParameters, initOverrides) {
@@ -1530,7 +1648,7 @@ export class BoatApi extends runtime.BaseAPI {
1530
1648
  };
1531
1649
  }
1532
1650
  /**
1533
- * Accept irreversible deletion of every unpinned snapshot of this sandbox. The sandbox itself and its named snapshots stay. Snapshots disappear from lists, restores and forks immediately; their stored data is purged in the background. Set `X-Ascii-Confirm-Delete` to the sandbox id.
1651
+ * Accept irreversible deletion of every unpinned snapshot of this sandbox. The sandbox itself and its saved snapshots stay. Snapshots disappear from lists, restores and forks immediately; their stored data is purged in the background. Set `X-Ascii-Confirm-Delete` to the sandbox id.
1534
1652
  * Permanently delete all snapshots of a sandbox
1535
1653
  */
1536
1654
  async deleteSandboxSnapshotsRaw(requestParameters, initOverrides) {
@@ -1539,13 +1657,55 @@ export class BoatApi extends runtime.BaseAPI {
1539
1657
  return new runtime.JSONApiResponse(response, (jsonValue) => DeletionOperationListResponseFromJSON(jsonValue));
1540
1658
  }
1541
1659
  /**
1542
- * Accept irreversible deletion of every unpinned snapshot of this sandbox. The sandbox itself and its named snapshots stay. Snapshots disappear from lists, restores and forks immediately; their stored data is purged in the background. Set `X-Ascii-Confirm-Delete` to the sandbox id.
1660
+ * Accept irreversible deletion of every unpinned snapshot of this sandbox. The sandbox itself and its saved snapshots stay. Snapshots disappear from lists, restores and forks immediately; their stored data is purged in the background. Set `X-Ascii-Confirm-Delete` to the sandbox id.
1543
1661
  * Permanently delete all snapshots of a sandbox
1544
1662
  */
1545
1663
  async deleteSandboxSnapshots(requestParameters, initOverrides) {
1546
1664
  const response = await this.deleteSandboxSnapshotsRaw(requestParameters, initOverrides);
1547
1665
  return await response.value();
1548
1666
  }
1667
+ /**
1668
+ * Creates request options for deleteSavedSnapshot without sending the request
1669
+ */
1670
+ async deleteSavedSnapshotRequestOpts(requestParameters) {
1671
+ if (requestParameters['name'] == null) {
1672
+ throw new runtime.RequiredError('name', 'Required parameter "name" was null or undefined when calling deleteSavedSnapshot().');
1673
+ }
1674
+ const queryParameters = {};
1675
+ const headerParameters = {};
1676
+ if (this.configuration && this.configuration.accessToken) {
1677
+ const token = this.configuration.accessToken;
1678
+ const tokenString = await token("BoatBearerAuth", []);
1679
+ if (tokenString) {
1680
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1681
+ }
1682
+ }
1683
+ let urlPath = `/saved-snapshots/{name}`;
1684
+ urlPath = urlPath.replace('{name}', encodeURIComponent(String(requestParameters['name'])));
1685
+ return {
1686
+ path: urlPath,
1687
+ method: 'DELETE',
1688
+ headers: headerParameters,
1689
+ query: queryParameters,
1690
+ };
1691
+ }
1692
+ /**
1693
+ * Remove a saved snapshot and release its storage (`boat snapshot rm <name>` in the CLI). Sandboxes already deployed from it are unaffected.
1694
+ * Remove a saved snapshot
1695
+ */
1696
+ async deleteSavedSnapshotRaw(requestParameters, initOverrides) {
1697
+ const requestOptions = await this.deleteSavedSnapshotRequestOpts(requestParameters);
1698
+ const response = await this.request(requestOptions, initOverrides);
1699
+ return new runtime.JSONApiResponse(response, (jsonValue) => SavedSnapshotDeletedResponseFromJSON(jsonValue));
1700
+ }
1701
+ /**
1702
+ * Remove a saved snapshot and release its storage (`boat snapshot rm <name>` in the CLI). Sandboxes already deployed from it are unaffected.
1703
+ * Remove a saved snapshot
1704
+ */
1705
+ async deleteSavedSnapshot(requestParameters, initOverrides) {
1706
+ const response = await this.deleteSavedSnapshotRaw(requestParameters, initOverrides);
1707
+ return await response.value();
1708
+ }
1549
1709
  /**
1550
1710
  * Creates request options for deleteSnapshot without sending the request
1551
1711
  */
@@ -1823,6 +1983,60 @@ export class BoatApi extends runtime.BaseAPI {
1823
1983
  const response = await this.eventsRaw(requestParameters, initOverrides);
1824
1984
  return await response.value();
1825
1985
  }
1986
+ /**
1987
+ * Creates request options for findInFiles without sending the request
1988
+ */
1989
+ async findInFilesRequestOpts(requestParameters) {
1990
+ if (requestParameters['sandboxId'] == null) {
1991
+ throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling findInFiles().');
1992
+ }
1993
+ if (requestParameters['pattern'] == null) {
1994
+ throw new runtime.RequiredError('pattern', 'Required parameter "pattern" was null or undefined when calling findInFiles().');
1995
+ }
1996
+ const queryParameters = {};
1997
+ if (requestParameters['path'] != null) {
1998
+ queryParameters['path'] = requestParameters['path'];
1999
+ }
2000
+ if (requestParameters['pattern'] != null) {
2001
+ queryParameters['pattern'] = requestParameters['pattern'];
2002
+ }
2003
+ if (requestParameters['regex'] != null) {
2004
+ queryParameters['regex'] = requestParameters['regex'];
2005
+ }
2006
+ const headerParameters = {};
2007
+ if (this.configuration && this.configuration.accessToken) {
2008
+ const token = this.configuration.accessToken;
2009
+ const tokenString = await token("BoatBearerAuth", []);
2010
+ if (tokenString) {
2011
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2012
+ }
2013
+ }
2014
+ let urlPath = `/sandboxes/{sandboxId}/files/find`;
2015
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
2016
+ return {
2017
+ path: urlPath,
2018
+ method: 'GET',
2019
+ headers: headerParameters,
2020
+ query: queryParameters,
2021
+ };
2022
+ }
2023
+ /**
2024
+ * Every line under `path` that contains `pattern`. `pattern` is plain text; with `regex=true` it is an extended regular expression. Binary files are skipped and symlinks are not followed. Needs `file.read`.
2025
+ * Find text in sandbox files
2026
+ */
2027
+ async findInFilesRaw(requestParameters, initOverrides) {
2028
+ const requestOptions = await this.findInFilesRequestOpts(requestParameters);
2029
+ const response = await this.request(requestOptions, initOverrides);
2030
+ return new runtime.JSONApiResponse(response, (jsonValue) => FileFindResponseFromJSON(jsonValue));
2031
+ }
2032
+ /**
2033
+ * Every line under `path` that contains `pattern`. `pattern` is plain text; with `regex=true` it is an extended regular expression. Binary files are skipped and symlinks are not followed. Needs `file.read`.
2034
+ * Find text in sandbox files
2035
+ */
2036
+ async findInFiles(requestParameters, initOverrides) {
2037
+ const response = await this.findInFilesRaw(requestParameters, initOverrides);
2038
+ return await response.value();
2039
+ }
1826
2040
  /**
1827
2041
  * Creates request options for fork without sending the request
1828
2042
  */
@@ -2131,6 +2345,54 @@ export class BoatApi extends runtime.BaseAPI {
2131
2345
  const response = await this.getDeletionOperationRaw(requestParameters, initOverrides);
2132
2346
  return await response.value();
2133
2347
  }
2348
+ /**
2349
+ * Creates request options for getFileInfo without sending the request
2350
+ */
2351
+ async getFileInfoRequestOpts(requestParameters) {
2352
+ if (requestParameters['sandboxId'] == null) {
2353
+ throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling getFileInfo().');
2354
+ }
2355
+ if (requestParameters['path'] == null) {
2356
+ throw new runtime.RequiredError('path', 'Required parameter "path" was null or undefined when calling getFileInfo().');
2357
+ }
2358
+ const queryParameters = {};
2359
+ if (requestParameters['path'] != null) {
2360
+ queryParameters['path'] = requestParameters['path'];
2361
+ }
2362
+ const headerParameters = {};
2363
+ if (this.configuration && this.configuration.accessToken) {
2364
+ const token = this.configuration.accessToken;
2365
+ const tokenString = await token("BoatBearerAuth", []);
2366
+ if (tokenString) {
2367
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2368
+ }
2369
+ }
2370
+ let urlPath = `/sandboxes/{sandboxId}/files/info`;
2371
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
2372
+ return {
2373
+ path: urlPath,
2374
+ method: 'GET',
2375
+ headers: headerParameters,
2376
+ query: queryParameters,
2377
+ };
2378
+ }
2379
+ /**
2380
+ * Size, permission bits, type and modification time. Needs `file.read`.
2381
+ * Get file or directory details in a sandbox
2382
+ */
2383
+ async getFileInfoRaw(requestParameters, initOverrides) {
2384
+ const requestOptions = await this.getFileInfoRequestOpts(requestParameters);
2385
+ const response = await this.request(requestOptions, initOverrides);
2386
+ return new runtime.JSONApiResponse(response, (jsonValue) => FileInfoResponseFromJSON(jsonValue));
2387
+ }
2388
+ /**
2389
+ * Size, permission bits, type and modification time. Needs `file.read`.
2390
+ * Get file or directory details in a sandbox
2391
+ */
2392
+ async getFileInfo(requestParameters, initOverrides) {
2393
+ const response = await this.getFileInfoRaw(requestParameters, initOverrides);
2394
+ return await response.value();
2395
+ }
2134
2396
  /**
2135
2397
  * Creates request options for getLatestSandboxSnapshot without sending the request
2136
2398
  */
@@ -2175,6 +2437,7 @@ export class BoatApi extends runtime.BaseAPI {
2175
2437
  }
2176
2438
  /**
2177
2439
  * Creates request options for getNamedSnapshot without sending the request
2440
+ * @deprecated
2178
2441
  */
2179
2442
  async getNamedSnapshotRequestOpts(requestParameters) {
2180
2443
  if (requestParameters['name'] == null) {
@@ -2200,6 +2463,7 @@ export class BoatApi extends runtime.BaseAPI {
2200
2463
  }
2201
2464
  /**
2202
2465
  * Get a named snapshot
2466
+ * @deprecated
2203
2467
  */
2204
2468
  async getNamedSnapshotRaw(requestParameters, initOverrides) {
2205
2469
  const requestOptions = await this.getNamedSnapshotRequestOpts(requestParameters);
@@ -2208,6 +2472,7 @@ export class BoatApi extends runtime.BaseAPI {
2208
2472
  }
2209
2473
  /**
2210
2474
  * Get a named snapshot
2475
+ * @deprecated
2211
2476
  */
2212
2477
  async getNamedSnapshot(requestParameters, initOverrides) {
2213
2478
  const response = await this.getNamedSnapshotRaw(requestParameters, initOverrides);
@@ -2258,6 +2523,46 @@ export class BoatApi extends runtime.BaseAPI {
2258
2523
  const response = await this.getSandboxAiUsageRaw(requestParameters, initOverrides);
2259
2524
  return await response.value();
2260
2525
  }
2526
+ /**
2527
+ * Creates request options for getSavedSnapshot without sending the request
2528
+ */
2529
+ async getSavedSnapshotRequestOpts(requestParameters) {
2530
+ if (requestParameters['name'] == null) {
2531
+ throw new runtime.RequiredError('name', 'Required parameter "name" was null or undefined when calling getSavedSnapshot().');
2532
+ }
2533
+ const queryParameters = {};
2534
+ const headerParameters = {};
2535
+ if (this.configuration && this.configuration.accessToken) {
2536
+ const token = this.configuration.accessToken;
2537
+ const tokenString = await token("BoatBearerAuth", []);
2538
+ if (tokenString) {
2539
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2540
+ }
2541
+ }
2542
+ let urlPath = `/saved-snapshots/{name}`;
2543
+ urlPath = urlPath.replace('{name}', encodeURIComponent(String(requestParameters['name'])));
2544
+ return {
2545
+ path: urlPath,
2546
+ method: 'GET',
2547
+ headers: headerParameters,
2548
+ query: queryParameters,
2549
+ };
2550
+ }
2551
+ /**
2552
+ * Get a saved snapshot
2553
+ */
2554
+ async getSavedSnapshotRaw(requestParameters, initOverrides) {
2555
+ const requestOptions = await this.getSavedSnapshotRequestOpts(requestParameters);
2556
+ const response = await this.request(requestOptions, initOverrides);
2557
+ return new runtime.JSONApiResponse(response, (jsonValue) => SavedSnapshotInfoResponseFromJSON(jsonValue));
2558
+ }
2559
+ /**
2560
+ * Get a saved snapshot
2561
+ */
2562
+ async getSavedSnapshot(requestParameters, initOverrides) {
2563
+ const response = await this.getSavedSnapshotRaw(requestParameters, initOverrides);
2564
+ return await response.value();
2565
+ }
2261
2566
  /**
2262
2567
  * Creates request options for getSnapshotDownload without sending the request
2263
2568
  */
@@ -2637,7 +2942,7 @@ export class BoatApi extends runtime.BaseAPI {
2637
2942
  };
2638
2943
  }
2639
2944
  /**
2640
- * Check remaining machine starts, compute time, credits, access readiness, and concurrent-sandbox capacity for the wallet a create would bill: the `org` / `X-Boat-Org` you pass (id or name), else the account\'s active wallet, else personal. The response carries `teamId` when an organization wallet was read.
2945
+ * Check remaining machine starts, included VM time, the wallet, overage prices, access readiness, and concurrent-sandbox capacity for the wallet a create would bill: the `org` / `X-Boat-Org` you pass (id or name), else the account\'s active wallet, else personal. The response carries `teamId` when an organization wallet was read.
2641
2946
  * Get Boat limits
2642
2947
  */
2643
2948
  async limitsRaw(requestParameters, initOverrides) {
@@ -2646,7 +2951,7 @@ export class BoatApi extends runtime.BaseAPI {
2646
2951
  return new runtime.JSONApiResponse(response, (jsonValue) => LimitsResponseFromJSON(jsonValue));
2647
2952
  }
2648
2953
  /**
2649
- * Check remaining machine starts, compute time, credits, access readiness, and concurrent-sandbox capacity for the wallet a create would bill: the `org` / `X-Boat-Org` you pass (id or name), else the account\'s active wallet, else personal. The response carries `teamId` when an organization wallet was read.
2954
+ * Check remaining machine starts, included VM time, the wallet, overage prices, access readiness, and concurrent-sandbox capacity for the wallet a create would bill: the `org` / `X-Boat-Org` you pass (id or name), else the account\'s active wallet, else personal. The response carries `teamId` when an organization wallet was read.
2650
2955
  * Get Boat limits
2651
2956
  */
2652
2957
  async limits(requestParameters = {}, initOverrides) {
@@ -2737,8 +3042,54 @@ export class BoatApi extends runtime.BaseAPI {
2737
3042
  const response = await this.listCredentialProfilesRaw(initOverrides);
2738
3043
  return await response.value();
2739
3044
  }
3045
+ /**
3046
+ * Creates request options for listFiles without sending the request
3047
+ */
3048
+ async listFilesRequestOpts(requestParameters) {
3049
+ if (requestParameters['sandboxId'] == null) {
3050
+ throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling listFiles().');
3051
+ }
3052
+ const queryParameters = {};
3053
+ if (requestParameters['path'] != null) {
3054
+ queryParameters['path'] = requestParameters['path'];
3055
+ }
3056
+ const headerParameters = {};
3057
+ if (this.configuration && this.configuration.accessToken) {
3058
+ const token = this.configuration.accessToken;
3059
+ const tokenString = await token("BoatBearerAuth", []);
3060
+ if (tokenString) {
3061
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3062
+ }
3063
+ }
3064
+ let urlPath = `/sandboxes/{sandboxId}/files/list`;
3065
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
3066
+ return {
3067
+ path: urlPath,
3068
+ method: 'GET',
3069
+ headers: headerParameters,
3070
+ query: queryParameters,
3071
+ };
3072
+ }
3073
+ /**
3074
+ * One level, sorted by name. A symlink is listed as a symlink, not followed. Defaults to /home/user. Needs `file.read`.
3075
+ * List a directory in a sandbox
3076
+ */
3077
+ async listFilesRaw(requestParameters, initOverrides) {
3078
+ const requestOptions = await this.listFilesRequestOpts(requestParameters);
3079
+ const response = await this.request(requestOptions, initOverrides);
3080
+ return new runtime.JSONApiResponse(response, (jsonValue) => FileListResponseFromJSON(jsonValue));
3081
+ }
3082
+ /**
3083
+ * One level, sorted by name. A symlink is listed as a symlink, not followed. Defaults to /home/user. Needs `file.read`.
3084
+ * List a directory in a sandbox
3085
+ */
3086
+ async listFiles(requestParameters, initOverrides) {
3087
+ const response = await this.listFilesRaw(requestParameters, initOverrides);
3088
+ return await response.value();
3089
+ }
2740
3090
  /**
2741
3091
  * Creates request options for listNamedSnapshots without sending the request
3092
+ * @deprecated
2742
3093
  */
2743
3094
  async listNamedSnapshotsRequestOpts() {
2744
3095
  const queryParameters = {};
@@ -2761,6 +3112,7 @@ export class BoatApi extends runtime.BaseAPI {
2761
3112
  /**
2762
3113
  * List your named snapshots, newest first.
2763
3114
  * List named snapshots
3115
+ * @deprecated
2764
3116
  */
2765
3117
  async listNamedSnapshotsRaw(initOverrides) {
2766
3118
  const requestOptions = await this.listNamedSnapshotsRequestOpts();
@@ -2770,6 +3122,7 @@ export class BoatApi extends runtime.BaseAPI {
2770
3122
  /**
2771
3123
  * List your named snapshots, newest first.
2772
3124
  * List named snapshots
3125
+ * @deprecated
2773
3126
  */
2774
3127
  async listNamedSnapshots(initOverrides) {
2775
3128
  const response = await this.listNamedSnapshotsRaw(initOverrides);
@@ -2864,6 +3217,44 @@ export class BoatApi extends runtime.BaseAPI {
2864
3217
  const response = await this.listSandboxSnapshotsRaw(requestParameters, initOverrides);
2865
3218
  return await response.value();
2866
3219
  }
3220
+ /**
3221
+ * Creates request options for listSavedSnapshots without sending the request
3222
+ */
3223
+ async listSavedSnapshotsRequestOpts() {
3224
+ const queryParameters = {};
3225
+ const headerParameters = {};
3226
+ if (this.configuration && this.configuration.accessToken) {
3227
+ const token = this.configuration.accessToken;
3228
+ const tokenString = await token("BoatBearerAuth", []);
3229
+ if (tokenString) {
3230
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3231
+ }
3232
+ }
3233
+ let urlPath = `/saved-snapshots`;
3234
+ return {
3235
+ path: urlPath,
3236
+ method: 'GET',
3237
+ headers: headerParameters,
3238
+ query: queryParameters,
3239
+ };
3240
+ }
3241
+ /**
3242
+ * List your saved snapshots, newest first.
3243
+ * List saved snapshots
3244
+ */
3245
+ async listSavedSnapshotsRaw(initOverrides) {
3246
+ const requestOptions = await this.listSavedSnapshotsRequestOpts();
3247
+ const response = await this.request(requestOptions, initOverrides);
3248
+ return new runtime.JSONApiResponse(response, (jsonValue) => SavedSnapshotListResponseFromJSON(jsonValue));
3249
+ }
3250
+ /**
3251
+ * List your saved snapshots, newest first.
3252
+ * List saved snapshots
3253
+ */
3254
+ async listSavedSnapshots(initOverrides) {
3255
+ const response = await this.listSavedSnapshotsRaw(initOverrides);
3256
+ return await response.value();
3257
+ }
2867
3258
  /**
2868
3259
  * Creates request options for listSnapshotShares without sending the request
2869
3260
  */
@@ -2880,7 +3271,7 @@ export class BoatApi extends runtime.BaseAPI {
2880
3271
  headerParameters["Authorization"] = `Bearer ${tokenString}`;
2881
3272
  }
2882
3273
  }
2883
- let urlPath = `/named-snapshots/{name}/shares`;
3274
+ let urlPath = `/saved-snapshots/{name}/shares`;
2884
3275
  urlPath = urlPath.replace('{name}', encodeURIComponent(String(requestParameters['name'])));
2885
3276
  return {
2886
3277
  path: urlPath,
@@ -2890,8 +3281,8 @@ export class BoatApi extends runtime.BaseAPI {
2890
3281
  };
2891
3282
  }
2892
3283
  /**
2893
- * List the share codes of a named snapshot, active and revoked (`boat snapshot shares <name>` in the CLI). The full codes are not returned. Needs `snapshot.read`.
2894
- * List share codes of a named snapshot
3284
+ * List the share codes of a saved snapshot, active and revoked (`boat snapshot shares <name>` in the CLI). The full codes are not returned. Needs `snapshot.read`.
3285
+ * List share codes of a saved snapshot
2895
3286
  */
2896
3287
  async listSnapshotSharesRaw(requestParameters, initOverrides) {
2897
3288
  const requestOptions = await this.listSnapshotSharesRequestOpts(requestParameters);
@@ -2899,8 +3290,8 @@ export class BoatApi extends runtime.BaseAPI {
2899
3290
  return new runtime.JSONApiResponse(response, (jsonValue) => NamedSnapshotShareListResponseFromJSON(jsonValue));
2900
3291
  }
2901
3292
  /**
2902
- * List the share codes of a named snapshot, active and revoked (`boat snapshot shares <name>` in the CLI). The full codes are not returned. Needs `snapshot.read`.
2903
- * List share codes of a named snapshot
3293
+ * List the share codes of a saved snapshot, active and revoked (`boat snapshot shares <name>` in the CLI). The full codes are not returned. Needs `snapshot.read`.
3294
+ * List share codes of a saved snapshot
2904
3295
  */
2905
3296
  async listSnapshotShares(requestParameters, initOverrides) {
2906
3297
  const response = await this.listSnapshotSharesRaw(requestParameters, initOverrides);
@@ -3029,6 +3420,54 @@ export class BoatApi extends runtime.BaseAPI {
3029
3420
  const response = await this.meRaw(initOverrides);
3030
3421
  return await response.value();
3031
3422
  }
3423
+ /**
3424
+ * Creates request options for moveFile without sending the request
3425
+ */
3426
+ async moveFileRequestOpts(input) {
3427
+ const requestParameters = runtime.unflattenBody(input, 'fileMoveRequest', ['sandboxId'], []);
3428
+ if (requestParameters['sandboxId'] == null) {
3429
+ throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling moveFile().');
3430
+ }
3431
+ if (requestParameters['fileMoveRequest'] == null) {
3432
+ throw new runtime.RequiredError('fileMoveRequest', 'Required parameter "fileMoveRequest" was null or undefined when calling moveFile().');
3433
+ }
3434
+ const queryParameters = {};
3435
+ const headerParameters = {};
3436
+ headerParameters['Content-Type'] = 'application/json';
3437
+ if (this.configuration && this.configuration.accessToken) {
3438
+ const token = this.configuration.accessToken;
3439
+ const tokenString = await token("BoatBearerAuth", []);
3440
+ if (tokenString) {
3441
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3442
+ }
3443
+ }
3444
+ let urlPath = `/sandboxes/{sandboxId}/files/move`;
3445
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
3446
+ return {
3447
+ path: urlPath,
3448
+ method: 'POST',
3449
+ headers: headerParameters,
3450
+ query: queryParameters,
3451
+ body: FileMoveRequestToJSON(requestParameters['fileMoveRequest']),
3452
+ };
3453
+ }
3454
+ /**
3455
+ * Works across /home/user and /tmp. A symlink is moved itself, never its target. Needs `file.write`.
3456
+ * Move or rename a file or directory in a sandbox
3457
+ */
3458
+ async moveFileRaw(requestParameters, initOverrides) {
3459
+ const requestOptions = await this.moveFileRequestOpts(requestParameters);
3460
+ const response = await this.request(requestOptions, initOverrides);
3461
+ return new runtime.JSONApiResponse(response, (jsonValue) => FileMoveResponseFromJSON(jsonValue));
3462
+ }
3463
+ /**
3464
+ * Works across /home/user and /tmp. A symlink is moved itself, never its target. Needs `file.write`.
3465
+ * Move or rename a file or directory in a sandbox
3466
+ */
3467
+ async moveFile(requestParameters, initOverrides) {
3468
+ const response = await this.moveFileRaw(requestParameters, initOverrides);
3469
+ return await response.value();
3470
+ }
3032
3471
  /**
3033
3472
  * Creates request options for processes without sending the request
3034
3473
  */
@@ -3200,7 +3639,7 @@ export class BoatApi extends runtime.BaseAPI {
3200
3639
  };
3201
3640
  }
3202
3641
  /**
3203
- * Files up to 5 MiB. For a larger file, use `POST /sandboxes/{sandboxId}/files/download-url`.
3642
+ * Files up to 5 MiB. For a larger file, use `POST /sandboxes/{sandboxId}/files/download-url`. On a sandbox that is still starting, the call waits until it is ready (up to 60 s, like a command), so it reads the sandbox\'s own disk and never the machine\'s stock one.
3204
3643
  * Read a file from a sandbox
3205
3644
  */
3206
3645
  async readFileRaw(requestParameters, initOverrides) {
@@ -3209,7 +3648,7 @@ export class BoatApi extends runtime.BaseAPI {
3209
3648
  return new runtime.JSONApiResponse(response, (jsonValue) => FileReadResponseFromJSON(jsonValue));
3210
3649
  }
3211
3650
  /**
3212
- * Files up to 5 MiB. For a larger file, use `POST /sandboxes/{sandboxId}/files/download-url`.
3651
+ * Files up to 5 MiB. For a larger file, use `POST /sandboxes/{sandboxId}/files/download-url`. On a sandbox that is still starting, the call waits until it is ready (up to 60 s, like a command), so it reads the sandbox\'s own disk and never the machine\'s stock one.
3213
3652
  * Read a file from a sandbox
3214
3653
  */
3215
3654
  async readFile(requestParameters, initOverrides) {
@@ -3258,6 +3697,54 @@ export class BoatApi extends runtime.BaseAPI {
3258
3697
  const response = await this.recoverRaw(requestParameters, initOverrides);
3259
3698
  return await response.value();
3260
3699
  }
3700
+ /**
3701
+ * Creates request options for replaceInFiles without sending the request
3702
+ */
3703
+ async replaceInFilesRequestOpts(input) {
3704
+ const requestParameters = runtime.unflattenBody(input, 'fileReplaceRequest', ['sandboxId'], []);
3705
+ if (requestParameters['sandboxId'] == null) {
3706
+ throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling replaceInFiles().');
3707
+ }
3708
+ if (requestParameters['fileReplaceRequest'] == null) {
3709
+ throw new runtime.RequiredError('fileReplaceRequest', 'Required parameter "fileReplaceRequest" was null or undefined when calling replaceInFiles().');
3710
+ }
3711
+ const queryParameters = {};
3712
+ const headerParameters = {};
3713
+ headerParameters['Content-Type'] = 'application/json';
3714
+ if (this.configuration && this.configuration.accessToken) {
3715
+ const token = this.configuration.accessToken;
3716
+ const tokenString = await token("BoatBearerAuth", []);
3717
+ if (tokenString) {
3718
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3719
+ }
3720
+ }
3721
+ let urlPath = `/sandboxes/{sandboxId}/files/replace`;
3722
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
3723
+ return {
3724
+ path: urlPath,
3725
+ method: 'POST',
3726
+ headers: headerParameters,
3727
+ query: queryParameters,
3728
+ body: FileReplaceRequestToJSON(requestParameters['fileReplaceRequest']),
3729
+ };
3730
+ }
3731
+ /**
3732
+ * Replaces every occurrence of `pattern` with `newValue` in each file. Needs `file.write`.
3733
+ * Replace text in sandbox files
3734
+ */
3735
+ async replaceInFilesRaw(requestParameters, initOverrides) {
3736
+ const requestOptions = await this.replaceInFilesRequestOpts(requestParameters);
3737
+ const response = await this.request(requestOptions, initOverrides);
3738
+ return new runtime.JSONApiResponse(response, (jsonValue) => FileReplaceResponseFromJSON(jsonValue));
3739
+ }
3740
+ /**
3741
+ * Replaces every occurrence of `pattern` with `newValue` in each file. Needs `file.write`.
3742
+ * Replace text in sandbox files
3743
+ */
3744
+ async replaceInFiles(requestParameters, initOverrides) {
3745
+ const response = await this.replaceInFilesRaw(requestParameters, initOverrides);
3746
+ return await response.value();
3747
+ }
3261
3748
  /**
3262
3749
  * Creates request options for repos without sending the request
3263
3750
  */
@@ -3383,7 +3870,7 @@ export class BoatApi extends runtime.BaseAPI {
3383
3870
  };
3384
3871
  }
3385
3872
  /**
3386
- * Revokes the key immediately. Requires a dashboard or CLI session.
3873
+ * Revokes the key immediately. Requires a dashboard or CLI session, or an admin-scoped key. A key revokes itself or a key it could create (same or fewer actions, sandboxes and environments, no later expiry).
3387
3874
  * Revoke an API key
3388
3875
  */
3389
3876
  async revokeApiKeyRaw(requestParameters, initOverrides) {
@@ -3392,7 +3879,7 @@ export class BoatApi extends runtime.BaseAPI {
3392
3879
  return new runtime.JSONApiResponse(response, (jsonValue) => ApiKeyRevokeResponseFromJSON(jsonValue));
3393
3880
  }
3394
3881
  /**
3395
- * Revokes the key immediately. Requires a dashboard or CLI session.
3882
+ * Revokes the key immediately. Requires a dashboard or CLI session, or an admin-scoped key. A key revokes itself or a key it could create (same or fewer actions, sandboxes and environments, no later expiry).
3396
3883
  * Revoke an API key
3397
3884
  */
3398
3885
  async revokeApiKey(requestParameters, initOverrides) {
@@ -3418,7 +3905,7 @@ export class BoatApi extends runtime.BaseAPI {
3418
3905
  headerParameters["Authorization"] = `Bearer ${tokenString}`;
3419
3906
  }
3420
3907
  }
3421
- let urlPath = `/named-snapshots/{name}/shares/{shareId}`;
3908
+ let urlPath = `/saved-snapshots/{name}/shares/{shareId}`;
3422
3909
  urlPath = urlPath.replace('{name}', encodeURIComponent(String(requestParameters['name'])));
3423
3910
  urlPath = urlPath.replace('{shareId}', encodeURIComponent(String(requestParameters['shareId'])));
3424
3911
  return {
@@ -3471,7 +3958,7 @@ export class BoatApi extends runtime.BaseAPI {
3471
3958
  };
3472
3959
  }
3473
3960
  /**
3474
- * Replaces the raw secret without changing expiry or scope. Requires a dashboard or CLI session.
3961
+ * Replaces the raw secret without changing expiry or scope. Requires a dashboard or CLI session, or an admin-scoped key. A key rotates itself or a key it could create.
3475
3962
  * Rotate an API key
3476
3963
  */
3477
3964
  async rotateApiKeyRaw(requestParameters, initOverrides) {
@@ -3480,7 +3967,7 @@ export class BoatApi extends runtime.BaseAPI {
3480
3967
  return new runtime.JSONApiResponse(response, (jsonValue) => ApiKeySecretResponseFromJSON(jsonValue));
3481
3968
  }
3482
3969
  /**
3483
- * Replaces the raw secret without changing expiry or scope. Requires a dashboard or CLI session.
3970
+ * Replaces the raw secret without changing expiry or scope. Requires a dashboard or CLI session, or an admin-scoped key. A key rotates itself or a key it could create.
3484
3971
  * Rotate an API key
3485
3972
  */
3486
3973
  async rotateApiKey(requestParameters, initOverrides) {
@@ -3590,6 +4077,7 @@ export class BoatApi extends runtime.BaseAPI {
3590
4077
  }
3591
4078
  /**
3592
4079
  * Creates request options for saveNamedSnapshot without sending the request
4080
+ * @deprecated
3593
4081
  */
3594
4082
  async saveNamedSnapshotRequestOpts(input) {
3595
4083
  const requestParameters = runtime.unflattenBody(input, 'namedSnapshotSaveRequest', [], []);
@@ -3618,6 +4106,7 @@ export class BoatApi extends runtime.BaseAPI {
3618
4106
  /**
3619
4107
  * 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.
3620
4108
  * Save a named snapshot
4109
+ * @deprecated
3621
4110
  */
3622
4111
  async saveNamedSnapshotRaw(requestParameters, initOverrides) {
3623
4112
  const requestOptions = await this.saveNamedSnapshotRequestOpts(requestParameters);
@@ -3627,11 +4116,107 @@ export class BoatApi extends runtime.BaseAPI {
3627
4116
  /**
3628
4117
  * 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.
3629
4118
  * Save a named snapshot
4119
+ * @deprecated
3630
4120
  */
3631
4121
  async saveNamedSnapshot(requestParameters, initOverrides) {
3632
4122
  const response = await this.saveNamedSnapshotRaw(requestParameters, initOverrides);
3633
4123
  return await response.value();
3634
4124
  }
4125
+ /**
4126
+ * Creates request options for saveSavedSnapshot without sending the request
4127
+ */
4128
+ async saveSavedSnapshotRequestOpts(input) {
4129
+ const requestParameters = runtime.unflattenBody(input, 'savedSnapshotSaveRequest', [], []);
4130
+ if (requestParameters['savedSnapshotSaveRequest'] == null) {
4131
+ throw new runtime.RequiredError('savedSnapshotSaveRequest', 'Required parameter "savedSnapshotSaveRequest" was null or undefined when calling saveSavedSnapshot().');
4132
+ }
4133
+ const queryParameters = {};
4134
+ const headerParameters = {};
4135
+ headerParameters['Content-Type'] = 'application/json';
4136
+ if (this.configuration && this.configuration.accessToken) {
4137
+ const token = this.configuration.accessToken;
4138
+ const tokenString = await token("BoatBearerAuth", []);
4139
+ if (tokenString) {
4140
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
4141
+ }
4142
+ }
4143
+ let urlPath = `/saved-snapshots`;
4144
+ return {
4145
+ path: urlPath,
4146
+ method: 'POST',
4147
+ headers: headerParameters,
4148
+ query: queryParameters,
4149
+ body: SavedSnapshotSaveRequestToJSON(requestParameters['savedSnapshotSaveRequest']),
4150
+ };
4151
+ }
4152
+ /**
4153
+ * 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 /saved-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.
4154
+ * Save a saved snapshot
4155
+ */
4156
+ async saveSavedSnapshotRaw(requestParameters, initOverrides) {
4157
+ const requestOptions = await this.saveSavedSnapshotRequestOpts(requestParameters);
4158
+ const response = await this.request(requestOptions, initOverrides);
4159
+ return new runtime.JSONApiResponse(response, (jsonValue) => SavedSnapshotSavingResponseFromJSON(jsonValue));
4160
+ }
4161
+ /**
4162
+ * 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 /saved-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.
4163
+ * Save a saved snapshot
4164
+ */
4165
+ async saveSavedSnapshot(requestParameters, initOverrides) {
4166
+ const response = await this.saveSavedSnapshotRaw(requestParameters, initOverrides);
4167
+ return await response.value();
4168
+ }
4169
+ /**
4170
+ * Creates request options for searchFiles without sending the request
4171
+ */
4172
+ async searchFilesRequestOpts(requestParameters) {
4173
+ if (requestParameters['sandboxId'] == null) {
4174
+ throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling searchFiles().');
4175
+ }
4176
+ if (requestParameters['pattern'] == null) {
4177
+ throw new runtime.RequiredError('pattern', 'Required parameter "pattern" was null or undefined when calling searchFiles().');
4178
+ }
4179
+ const queryParameters = {};
4180
+ if (requestParameters['path'] != null) {
4181
+ queryParameters['path'] = requestParameters['path'];
4182
+ }
4183
+ if (requestParameters['pattern'] != null) {
4184
+ queryParameters['pattern'] = requestParameters['pattern'];
4185
+ }
4186
+ const headerParameters = {};
4187
+ if (this.configuration && this.configuration.accessToken) {
4188
+ const token = this.configuration.accessToken;
4189
+ const tokenString = await token("BoatBearerAuth", []);
4190
+ if (tokenString) {
4191
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
4192
+ }
4193
+ }
4194
+ let urlPath = `/sandboxes/{sandboxId}/files/search`;
4195
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
4196
+ return {
4197
+ path: urlPath,
4198
+ method: 'GET',
4199
+ headers: headerParameters,
4200
+ query: queryParameters,
4201
+ };
4202
+ }
4203
+ /**
4204
+ * Every file and directory under `path` whose name matches the glob `pattern` (for example `*.py`). Symlinks are not followed. Needs `file.read`.
4205
+ * Search files by name in a sandbox
4206
+ */
4207
+ async searchFilesRaw(requestParameters, initOverrides) {
4208
+ const requestOptions = await this.searchFilesRequestOpts(requestParameters);
4209
+ const response = await this.request(requestOptions, initOverrides);
4210
+ return new runtime.JSONApiResponse(response, (jsonValue) => FileSearchResponseFromJSON(jsonValue));
4211
+ }
4212
+ /**
4213
+ * Every file and directory under `path` whose name matches the glob `pattern` (for example `*.py`). Symlinks are not followed. Needs `file.read`.
4214
+ * Search files by name in a sandbox
4215
+ */
4216
+ async searchFiles(requestParameters, initOverrides) {
4217
+ const response = await this.searchFilesRaw(requestParameters, initOverrides);
4218
+ return await response.value();
4219
+ }
3635
4220
  /**
3636
4221
  * Creates request options for secrets without sending the request
3637
4222
  */
@@ -3968,6 +4553,54 @@ export class BoatApi extends runtime.BaseAPI {
3968
4553
  const response = await this.setEnvironmentVarRaw(requestParameters, initOverrides);
3969
4554
  return await response.value();
3970
4555
  }
4556
+ /**
4557
+ * Creates request options for setFilePermissions without sending the request
4558
+ */
4559
+ async setFilePermissionsRequestOpts(input) {
4560
+ const requestParameters = runtime.unflattenBody(input, 'filePermissionsRequest', ['sandboxId'], []);
4561
+ if (requestParameters['sandboxId'] == null) {
4562
+ throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling setFilePermissions().');
4563
+ }
4564
+ if (requestParameters['filePermissionsRequest'] == null) {
4565
+ throw new runtime.RequiredError('filePermissionsRequest', 'Required parameter "filePermissionsRequest" was null or undefined when calling setFilePermissions().');
4566
+ }
4567
+ const queryParameters = {};
4568
+ const headerParameters = {};
4569
+ headerParameters['Content-Type'] = 'application/json';
4570
+ if (this.configuration && this.configuration.accessToken) {
4571
+ const token = this.configuration.accessToken;
4572
+ const tokenString = await token("BoatBearerAuth", []);
4573
+ if (tokenString) {
4574
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
4575
+ }
4576
+ }
4577
+ let urlPath = `/sandboxes/{sandboxId}/files/permissions`;
4578
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
4579
+ return {
4580
+ path: urlPath,
4581
+ method: 'POST',
4582
+ headers: headerParameters,
4583
+ query: queryParameters,
4584
+ body: FilePermissionsRequestToJSON(requestParameters['filePermissionsRequest']),
4585
+ };
4586
+ }
4587
+ /**
4588
+ * Sets the permission bits. Files belong to the sandbox user; the owner and group do not change. Needs `file.write`.
4589
+ * Set file permissions in a sandbox
4590
+ */
4591
+ async setFilePermissionsRaw(requestParameters, initOverrides) {
4592
+ const requestOptions = await this.setFilePermissionsRequestOpts(requestParameters);
4593
+ const response = await this.request(requestOptions, initOverrides);
4594
+ return new runtime.JSONApiResponse(response, (jsonValue) => FileInfoResponseFromJSON(jsonValue));
4595
+ }
4596
+ /**
4597
+ * Sets the permission bits. Files belong to the sandbox user; the owner and group do not change. Needs `file.write`.
4598
+ * Set file permissions in a sandbox
4599
+ */
4600
+ async setFilePermissions(requestParameters, initOverrides) {
4601
+ const response = await this.setFilePermissionsRaw(requestParameters, initOverrides);
4602
+ return await response.value();
4603
+ }
3971
4604
  /**
3972
4605
  * Creates request options for setSandboxAiAccess without sending the request
3973
4606
  */
@@ -4464,7 +5097,7 @@ export class BoatApi extends runtime.BaseAPI {
4464
5097
  };
4465
5098
  }
4466
5099
  /**
4467
- * With the proxy on, sandboxes get placeholder keys and base URLs that point at Boat. Boat swaps in the real key on each request. Real keys never enter the sandbox. Running sandboxes switch at their next start. While on, the account pays $1 of Boat time for each UTC day, plus $1 per 1,000 proxied requests, charged to the wallet each sandbox bills. For an organization, only its owner can change the switch. Needs an API key with `account.admin`.
5100
+ * With the proxy on, sandboxes get placeholder keys and base URLs that point at Boat. Boat swaps in the real key on each request. Real keys never enter the sandbox. Running sandboxes switch at their next start. While on, the wallet of the account pays $1 for each UTC day, plus $1 per 1,000 proxied requests, charged to the wallet each sandbox bills. For an organization, only its owner can change the switch. Needs an API key with `account.admin`.
4468
5101
  * Turn the AI credentials proxy on or off
4469
5102
  */
4470
5103
  async updateAiProxyRaw(requestParameters, initOverrides) {
@@ -4473,7 +5106,7 @@ export class BoatApi extends runtime.BaseAPI {
4473
5106
  return new runtime.JSONApiResponse(response, (jsonValue) => AiProxySettingsFromJSON(jsonValue));
4474
5107
  }
4475
5108
  /**
4476
- * With the proxy on, sandboxes get placeholder keys and base URLs that point at Boat. Boat swaps in the real key on each request. Real keys never enter the sandbox. Running sandboxes switch at their next start. While on, the account pays $1 of Boat time for each UTC day, plus $1 per 1,000 proxied requests, charged to the wallet each sandbox bills. For an organization, only its owner can change the switch. Needs an API key with `account.admin`.
5109
+ * With the proxy on, sandboxes get placeholder keys and base URLs that point at Boat. Boat swaps in the real key on each request. Real keys never enter the sandbox. Running sandboxes switch at their next start. While on, the wallet of the account pays $1 for each UTC day, plus $1 per 1,000 proxied requests, charged to the wallet each sandbox bills. For an organization, only its owner can change the switch. Needs an API key with `account.admin`.
4477
5110
  * Turn the AI credentials proxy on or off
4478
5111
  */
4479
5112
  async updateAiProxy(requestParameters, initOverrides) {
@@ -4889,7 +5522,7 @@ export class BoatApi extends runtime.BaseAPI {
4889
5522
  };
4890
5523
  }
4891
5524
  /**
4892
- * Files up to 5 MiB after decoding. For a larger file, use `POST /sandboxes/{sandboxId}/files/upload-url`.
5525
+ * Files up to 5 MiB after decoding. For a larger file, use `POST /sandboxes/{sandboxId}/files/upload-url`. On a sandbox that is still starting, the call waits until it is ready (up to 60 s, like a command): a sandbox\'s files are in place only once it is ready, so a write any earlier would not stay. A `200` always means the file is on the sandbox\'s disk.
4893
5526
  * Write a file in a sandbox
4894
5527
  */
4895
5528
  async writeFileRaw(requestParameters, initOverrides) {
@@ -4898,7 +5531,7 @@ export class BoatApi extends runtime.BaseAPI {
4898
5531
  return new runtime.JSONApiResponse(response, (jsonValue) => FileWriteResponseFromJSON(jsonValue));
4899
5532
  }
4900
5533
  /**
4901
- * Files up to 5 MiB after decoding. For a larger file, use `POST /sandboxes/{sandboxId}/files/upload-url`.
5534
+ * Files up to 5 MiB after decoding. For a larger file, use `POST /sandboxes/{sandboxId}/files/upload-url`. On a sandbox that is still starting, the call waits until it is ready (up to 60 s, like a command): a sandbox\'s files are in place only once it is ready, so a write any earlier would not stay. A `200` always means the file is on the sandbox\'s disk.
4902
5535
  * Write a file in a sandbox
4903
5536
  */
4904
5537
  async writeFile(requestParameters, initOverrides) {