@boatdev/sdk 1.9.9 → 1.11.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 (179) hide show
  1. package/.openapi-generator/FILES +30 -0
  2. package/dist/apis/BoatApi.d.ts +144 -18
  3. package/dist/apis/BoatApi.js +305 -22
  4. package/dist/esm/apis/BoatApi.d.ts +144 -18
  5. package/dist/esm/apis/BoatApi.js +304 -21
  6. package/dist/esm/models/CreateSandboxRequest.d.ts +9 -3
  7. package/dist/esm/models/CreateSandboxRequest.js +2 -0
  8. package/dist/esm/models/CreateSandboxResponse.d.ts +6 -0
  9. package/dist/esm/models/CreateSandboxResponse.js +2 -0
  10. package/dist/esm/models/CreateScopedApiKeyRequest.d.ts +1 -1
  11. package/dist/esm/models/CredentialId.d.ts +3 -0
  12. package/dist/esm/models/CredentialId.js +3 -0
  13. package/dist/esm/models/CredentialProfile.d.ts +7 -0
  14. package/dist/esm/models/CredentialProfile.js +3 -0
  15. package/dist/esm/models/DeletionOperation.d.ts +1 -1
  16. package/dist/esm/models/LimitsFields.d.ts +1 -1
  17. package/dist/esm/models/LimitsResponse.d.ts +1 -1
  18. package/dist/esm/models/MeResponseAllOfUser.d.ts +1 -0
  19. package/dist/esm/models/MeResponseAllOfUser.js +1 -0
  20. package/dist/esm/models/ResourceAccess.d.ts +38 -0
  21. package/dist/esm/models/ResourceAccess.js +47 -0
  22. package/dist/esm/models/ResourceAccessUpdate.d.ts +38 -0
  23. package/dist/esm/models/ResourceAccessUpdate.js +45 -0
  24. package/dist/esm/models/ResumeRequest.d.ts +1 -1
  25. package/dist/esm/models/Sandbox.d.ts +35 -1
  26. package/dist/esm/models/Sandbox.js +17 -0
  27. package/dist/esm/models/SandboxCost.d.ts +44 -0
  28. package/dist/esm/models/SandboxCost.js +51 -0
  29. package/dist/esm/models/SandboxEnvironment.d.ts +7 -0
  30. package/dist/esm/models/SandboxEnvironment.js +3 -0
  31. package/dist/esm/models/SandboxLastReboot.d.ts +47 -0
  32. package/dist/esm/models/SandboxLastReboot.js +51 -0
  33. package/dist/esm/models/SandboxListResponse.d.ts +7 -0
  34. package/dist/esm/models/SandboxListResponse.js +3 -0
  35. package/dist/esm/models/SandboxListResponseAllOfDeletedCost.d.ts +44 -0
  36. package/dist/esm/models/SandboxListResponseAllOfDeletedCost.js +51 -0
  37. package/dist/esm/models/SavedSnapshot.d.ts +83 -0
  38. package/dist/esm/models/SavedSnapshot.js +71 -0
  39. package/dist/esm/models/SavedSnapshotAllowance.d.ts +81 -0
  40. package/dist/esm/models/SavedSnapshotAllowance.js +57 -0
  41. package/dist/esm/models/SavedSnapshotDeletedResponse.d.ts +64 -0
  42. package/dist/esm/models/SavedSnapshotDeletedResponse.js +67 -0
  43. package/dist/esm/models/SavedSnapshotInfoResponse.d.ts +52 -0
  44. package/dist/esm/models/SavedSnapshotInfoResponse.js +58 -0
  45. package/dist/esm/models/SavedSnapshotListResponse.d.ts +59 -0
  46. package/dist/esm/models/SavedSnapshotListResponse.js +61 -0
  47. package/dist/esm/models/SavedSnapshotSaveRequest.d.ts +38 -0
  48. package/dist/esm/models/SavedSnapshotSaveRequest.js +47 -0
  49. package/dist/esm/models/SavedSnapshotSavingResponse.d.ts +65 -0
  50. package/dist/esm/models/SavedSnapshotSavingResponse.js +68 -0
  51. package/dist/esm/models/SnapshotSummary.d.ts +1 -1
  52. package/dist/esm/models/Unshare200Response.d.ts +39 -0
  53. package/dist/esm/models/Unshare200Response.js +44 -0
  54. package/dist/esm/models/UpdateCredentialProfileRequest.d.ts +7 -0
  55. package/dist/esm/models/UpdateCredentialProfileRequest.js +3 -0
  56. package/dist/esm/models/UpdateOrganization200Response.d.ts +50 -0
  57. package/dist/esm/models/UpdateOrganization200Response.js +47 -0
  58. package/dist/esm/models/UpdateOrganizationRequest.d.ts +32 -0
  59. package/dist/esm/models/UpdateOrganizationRequest.js +43 -0
  60. package/dist/esm/models/UpdateSandboxEnvironmentRequest.d.ts +7 -0
  61. package/dist/esm/models/UpdateSandboxEnvironmentRequest.js +3 -0
  62. package/dist/esm/models/index.d.ts +15 -0
  63. package/dist/esm/models/index.js +15 -0
  64. package/dist/models/CreateSandboxRequest.d.ts +9 -3
  65. package/dist/models/CreateSandboxRequest.js +2 -0
  66. package/dist/models/CreateSandboxResponse.d.ts +6 -0
  67. package/dist/models/CreateSandboxResponse.js +2 -0
  68. package/dist/models/CreateScopedApiKeyRequest.d.ts +1 -1
  69. package/dist/models/CredentialId.d.ts +3 -0
  70. package/dist/models/CredentialId.js +3 -0
  71. package/dist/models/CredentialProfile.d.ts +7 -0
  72. package/dist/models/CredentialProfile.js +3 -0
  73. package/dist/models/DeletionOperation.d.ts +1 -1
  74. package/dist/models/LimitsFields.d.ts +1 -1
  75. package/dist/models/LimitsResponse.d.ts +1 -1
  76. package/dist/models/MeResponseAllOfUser.d.ts +1 -0
  77. package/dist/models/MeResponseAllOfUser.js +1 -0
  78. package/dist/models/ResourceAccess.d.ts +38 -0
  79. package/dist/models/ResourceAccess.js +54 -0
  80. package/dist/models/ResourceAccessUpdate.d.ts +38 -0
  81. package/dist/models/ResourceAccessUpdate.js +52 -0
  82. package/dist/models/ResumeRequest.d.ts +1 -1
  83. package/dist/models/Sandbox.d.ts +35 -1
  84. package/dist/models/Sandbox.js +18 -1
  85. package/dist/models/SandboxCost.d.ts +44 -0
  86. package/dist/models/SandboxCost.js +58 -0
  87. package/dist/models/SandboxEnvironment.d.ts +7 -0
  88. package/dist/models/SandboxEnvironment.js +3 -0
  89. package/dist/models/SandboxLastReboot.d.ts +47 -0
  90. package/dist/models/SandboxLastReboot.js +59 -0
  91. package/dist/models/SandboxListResponse.d.ts +7 -0
  92. package/dist/models/SandboxListResponse.js +3 -0
  93. package/dist/models/SandboxListResponseAllOfDeletedCost.d.ts +44 -0
  94. package/dist/models/SandboxListResponseAllOfDeletedCost.js +58 -0
  95. package/dist/models/SavedSnapshot.d.ts +83 -0
  96. package/dist/models/SavedSnapshot.js +79 -0
  97. package/dist/models/SavedSnapshotAllowance.d.ts +81 -0
  98. package/dist/models/SavedSnapshotAllowance.js +64 -0
  99. package/dist/models/SavedSnapshotDeletedResponse.d.ts +64 -0
  100. package/dist/models/SavedSnapshotDeletedResponse.js +75 -0
  101. package/dist/models/SavedSnapshotInfoResponse.d.ts +52 -0
  102. package/dist/models/SavedSnapshotInfoResponse.js +66 -0
  103. package/dist/models/SavedSnapshotListResponse.d.ts +59 -0
  104. package/dist/models/SavedSnapshotListResponse.js +69 -0
  105. package/dist/models/SavedSnapshotSaveRequest.d.ts +38 -0
  106. package/dist/models/SavedSnapshotSaveRequest.js +54 -0
  107. package/dist/models/SavedSnapshotSavingResponse.d.ts +65 -0
  108. package/dist/models/SavedSnapshotSavingResponse.js +76 -0
  109. package/dist/models/SnapshotSummary.d.ts +1 -1
  110. package/dist/models/Unshare200Response.d.ts +39 -0
  111. package/dist/models/Unshare200Response.js +51 -0
  112. package/dist/models/UpdateCredentialProfileRequest.d.ts +7 -0
  113. package/dist/models/UpdateCredentialProfileRequest.js +3 -0
  114. package/dist/models/UpdateOrganization200Response.d.ts +50 -0
  115. package/dist/models/UpdateOrganization200Response.js +54 -0
  116. package/dist/models/UpdateOrganizationRequest.d.ts +32 -0
  117. package/dist/models/UpdateOrganizationRequest.js +50 -0
  118. package/dist/models/UpdateSandboxEnvironmentRequest.d.ts +7 -0
  119. package/dist/models/UpdateSandboxEnvironmentRequest.js +3 -0
  120. package/dist/models/index.d.ts +15 -0
  121. package/dist/models/index.js +15 -0
  122. package/docs/BoatApi.md +468 -19
  123. package/docs/CreateSandboxRequest.md +2 -0
  124. package/docs/CreateSandboxResponse.md +2 -0
  125. package/docs/CredentialProfile.md +2 -0
  126. package/docs/ResourceAccess.md +35 -0
  127. package/docs/ResourceAccessUpdate.md +35 -0
  128. package/docs/Sandbox.md +8 -0
  129. package/docs/SandboxCost.md +37 -0
  130. package/docs/SandboxEnvironment.md +2 -0
  131. package/docs/SandboxLastReboot.md +35 -0
  132. package/docs/SandboxListResponse.md +2 -0
  133. package/docs/SandboxListResponseAllOfDeletedCost.md +37 -0
  134. package/docs/SavedSnapshot.md +47 -0
  135. package/docs/SavedSnapshotAllowance.md +49 -0
  136. package/docs/SavedSnapshotDeletedResponse.md +38 -0
  137. package/docs/SavedSnapshotInfoResponse.md +36 -0
  138. package/docs/SavedSnapshotListResponse.md +38 -0
  139. package/docs/SavedSnapshotSaveRequest.md +34 -0
  140. package/docs/SavedSnapshotSavingResponse.md +38 -0
  141. package/docs/Unshare200Response.md +34 -0
  142. package/docs/UpdateCredentialProfileRequest.md +2 -0
  143. package/docs/UpdateOrganization200Response.md +38 -0
  144. package/docs/UpdateOrganizationRequest.md +32 -0
  145. package/docs/UpdateSandboxEnvironmentRequest.md +2 -0
  146. package/package.json +1 -1
  147. package/src/apis/BoatApi.ts +440 -21
  148. package/src/models/CreateSandboxRequest.ts +11 -3
  149. package/src/models/CreateSandboxResponse.ts +8 -0
  150. package/src/models/CreateScopedApiKeyRequest.ts +1 -1
  151. package/src/models/CredentialId.ts +3 -0
  152. package/src/models/CredentialProfile.ts +15 -0
  153. package/src/models/DeletionOperation.ts +1 -1
  154. package/src/models/LimitsFields.ts +1 -1
  155. package/src/models/LimitsResponse.ts +1 -1
  156. package/src/models/MeResponseAllOfUser.ts +1 -0
  157. package/src/models/ResourceAccess.ts +75 -0
  158. package/src/models/ResourceAccessUpdate.ts +74 -0
  159. package/src/models/ResumeRequest.ts +1 -1
  160. package/src/models/Sandbox.ts +56 -1
  161. package/src/models/SandboxCost.ts +84 -0
  162. package/src/models/SandboxEnvironment.ts +15 -0
  163. package/src/models/SandboxLastReboot.ts +85 -0
  164. package/src/models/SandboxListResponse.ts +15 -0
  165. package/src/models/SandboxListResponseAllOfDeletedCost.ts +84 -0
  166. package/src/models/SavedSnapshot.ts +137 -0
  167. package/src/models/SavedSnapshotAllowance.ts +130 -0
  168. package/src/models/SavedSnapshotDeletedResponse.ts +111 -0
  169. package/src/models/SavedSnapshotInfoResponse.ts +102 -0
  170. package/src/models/SavedSnapshotListResponse.ts +117 -0
  171. package/src/models/SavedSnapshotSaveRequest.ts +75 -0
  172. package/src/models/SavedSnapshotSavingResponse.ts +119 -0
  173. package/src/models/SnapshotSummary.ts +1 -1
  174. package/src/models/Unshare200Response.ts +81 -0
  175. package/src/models/UpdateCredentialProfileRequest.ts +16 -0
  176. package/src/models/UpdateOrganization200Response.ts +89 -0
  177. package/src/models/UpdateOrganizationRequest.ts +66 -0
  178. package/src/models/UpdateSandboxEnvironmentRequest.ts +15 -0
  179. package/src/models/index.ts +15 -0
@@ -83,6 +83,11 @@ import { SandboxEnvironmentResponseFromJSON, } from '../models/SandboxEnvironmen
83
83
  import { SandboxInfoResponseFromJSON, } from '../models/SandboxInfoResponse';
84
84
  import { SandboxListResponseFromJSON, } from '../models/SandboxListResponse';
85
85
  import { SandboxUsageResponseFromJSON, } from '../models/SandboxUsageResponse';
86
+ import { SavedSnapshotDeletedResponseFromJSON, } from '../models/SavedSnapshotDeletedResponse';
87
+ import { SavedSnapshotInfoResponseFromJSON, } from '../models/SavedSnapshotInfoResponse';
88
+ import { SavedSnapshotListResponseFromJSON, } from '../models/SavedSnapshotListResponse';
89
+ import { SavedSnapshotSaveRequestToJSON, } from '../models/SavedSnapshotSaveRequest';
90
+ import { SavedSnapshotSavingResponseFromJSON, } from '../models/SavedSnapshotSavingResponse';
86
91
  import { SecretsResponseFromJSON, } from '../models/SecretsResponse';
87
92
  import { SecretsUpdateRequestToJSON, } from '../models/SecretsUpdateRequest';
88
93
  import { SetCredentialKeyRequestToJSON, } from '../models/SetCredentialKeyRequest';
@@ -104,8 +109,11 @@ import { StopRequestToJSON, } from '../models/StopRequest';
104
109
  import { TelemetryResponseFromJSON, } from '../models/TelemetryResponse';
105
110
  import { TelemetrySetRequestToJSON, } from '../models/TelemetrySetRequest';
106
111
  import { TelemetrySetResponseFromJSON, } from '../models/TelemetrySetResponse';
112
+ import { Unshare200ResponseFromJSON, } from '../models/Unshare200Response';
107
113
  import { UpdateAiProxyRequestToJSON, } from '../models/UpdateAiProxyRequest';
108
114
  import { UpdateCredentialProfileRequestToJSON, } from '../models/UpdateCredentialProfileRequest';
115
+ import { UpdateOrganization200ResponseFromJSON, } from '../models/UpdateOrganization200Response';
116
+ import { UpdateOrganizationRequestToJSON, } from '../models/UpdateOrganizationRequest';
109
117
  import { UpdateSandboxEnvironmentRequestToJSON, } from '../models/UpdateSandboxEnvironmentRequest';
110
118
  import { UpdateSandboxRequestToJSON, } from '../models/UpdateSandboxRequest';
111
119
  import { UpgradeSandboxEnvironmentRequestToJSON, } from '../models/UpgradeSandboxEnvironmentRequest';
@@ -909,7 +917,7 @@ export class BoatApi extends runtime.BaseAPI {
909
917
  headerParameters["Authorization"] = `Bearer ${tokenString}`;
910
918
  }
911
919
  }
912
- let urlPath = `/named-snapshots/{name}/shares`;
920
+ let urlPath = `/saved-snapshots/{name}/shares`;
913
921
  urlPath = urlPath.replace('{name}', encodeURIComponent(String(requestParameters['name'])));
914
922
  return {
915
923
  path: urlPath,
@@ -919,8 +927,8 @@ export class BoatApi extends runtime.BaseAPI {
919
927
  };
920
928
  }
921
929
  /**
922
- * 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`.
923
- * Share a named snapshot
930
+ * 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`.
931
+ * Share a saved snapshot
924
932
  */
925
933
  async createSnapshotShareRaw(requestParameters, initOverrides) {
926
934
  const requestOptions = await this.createSnapshotShareRequestOpts(requestParameters);
@@ -928,8 +936,8 @@ export class BoatApi extends runtime.BaseAPI {
928
936
  return new runtime.JSONApiResponse(response, (jsonValue) => NamedSnapshotShareCreatedResponseFromJSON(jsonValue));
929
937
  }
930
938
  /**
931
- * 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`.
932
- * Share a named snapshot
939
+ * 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`.
940
+ * Share a saved snapshot
933
941
  */
934
942
  async createSnapshotShare(requestParameters, initOverrides) {
935
943
  const response = await this.createSnapshotShareRaw(requestParameters, initOverrides);
@@ -1407,6 +1415,7 @@ export class BoatApi extends runtime.BaseAPI {
1407
1415
  }
1408
1416
  /**
1409
1417
  * Creates request options for deleteNamedSnapshot without sending the request
1418
+ * @deprecated
1410
1419
  */
1411
1420
  async deleteNamedSnapshotRequestOpts(requestParameters) {
1412
1421
  if (requestParameters['name'] == null) {
@@ -1433,6 +1442,7 @@ export class BoatApi extends runtime.BaseAPI {
1433
1442
  /**
1434
1443
  * Remove a named snapshot and release its storage (`boat snapshot rm <name>` in the CLI). Sandboxes already deployed from it are unaffected.
1435
1444
  * Remove a named snapshot
1445
+ * @deprecated
1436
1446
  */
1437
1447
  async deleteNamedSnapshotRaw(requestParameters, initOverrides) {
1438
1448
  const requestOptions = await this.deleteNamedSnapshotRequestOpts(requestParameters);
@@ -1442,6 +1452,7 @@ export class BoatApi extends runtime.BaseAPI {
1442
1452
  /**
1443
1453
  * Remove a named snapshot and release its storage (`boat snapshot rm <name>` in the CLI). Sandboxes already deployed from it are unaffected.
1444
1454
  * Remove a named snapshot
1455
+ * @deprecated
1445
1456
  */
1446
1457
  async deleteNamedSnapshot(requestParameters, initOverrides) {
1447
1458
  const response = await this.deleteNamedSnapshotRaw(requestParameters, initOverrides);
@@ -1479,7 +1490,7 @@ export class BoatApi extends runtime.BaseAPI {
1479
1490
  };
1480
1491
  }
1481
1492
  /**
1482
- * 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`.
1493
+ * 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`.
1483
1494
  * Permanently delete sandbox data
1484
1495
  */
1485
1496
  async deleteSandboxRaw(requestParameters, initOverrides) {
@@ -1488,7 +1499,7 @@ export class BoatApi extends runtime.BaseAPI {
1488
1499
  return new runtime.JSONApiResponse(response, (jsonValue) => DeletionOperationResponseFromJSON(jsonValue));
1489
1500
  }
1490
1501
  /**
1491
- * 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`.
1502
+ * 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`.
1492
1503
  * Permanently delete sandbox data
1493
1504
  */
1494
1505
  async deleteSandbox(requestParameters, initOverrides) {
@@ -1527,7 +1538,7 @@ export class BoatApi extends runtime.BaseAPI {
1527
1538
  };
1528
1539
  }
1529
1540
  /**
1530
- * 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.
1541
+ * 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.
1531
1542
  * Permanently delete all snapshots of a sandbox
1532
1543
  */
1533
1544
  async deleteSandboxSnapshotsRaw(requestParameters, initOverrides) {
@@ -1536,13 +1547,55 @@ export class BoatApi extends runtime.BaseAPI {
1536
1547
  return new runtime.JSONApiResponse(response, (jsonValue) => DeletionOperationListResponseFromJSON(jsonValue));
1537
1548
  }
1538
1549
  /**
1539
- * 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.
1550
+ * 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.
1540
1551
  * Permanently delete all snapshots of a sandbox
1541
1552
  */
1542
1553
  async deleteSandboxSnapshots(requestParameters, initOverrides) {
1543
1554
  const response = await this.deleteSandboxSnapshotsRaw(requestParameters, initOverrides);
1544
1555
  return await response.value();
1545
1556
  }
1557
+ /**
1558
+ * Creates request options for deleteSavedSnapshot without sending the request
1559
+ */
1560
+ async deleteSavedSnapshotRequestOpts(requestParameters) {
1561
+ if (requestParameters['name'] == null) {
1562
+ throw new runtime.RequiredError('name', 'Required parameter "name" was null or undefined when calling deleteSavedSnapshot().');
1563
+ }
1564
+ const queryParameters = {};
1565
+ const headerParameters = {};
1566
+ if (this.configuration && this.configuration.accessToken) {
1567
+ const token = this.configuration.accessToken;
1568
+ const tokenString = await token("BoatBearerAuth", []);
1569
+ if (tokenString) {
1570
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
1571
+ }
1572
+ }
1573
+ let urlPath = `/saved-snapshots/{name}`;
1574
+ urlPath = urlPath.replace('{name}', encodeURIComponent(String(requestParameters['name'])));
1575
+ return {
1576
+ path: urlPath,
1577
+ method: 'DELETE',
1578
+ headers: headerParameters,
1579
+ query: queryParameters,
1580
+ };
1581
+ }
1582
+ /**
1583
+ * Remove a saved snapshot and release its storage (`boat snapshot rm <name>` in the CLI). Sandboxes already deployed from it are unaffected.
1584
+ * Remove a saved snapshot
1585
+ */
1586
+ async deleteSavedSnapshotRaw(requestParameters, initOverrides) {
1587
+ const requestOptions = await this.deleteSavedSnapshotRequestOpts(requestParameters);
1588
+ const response = await this.request(requestOptions, initOverrides);
1589
+ return new runtime.JSONApiResponse(response, (jsonValue) => SavedSnapshotDeletedResponseFromJSON(jsonValue));
1590
+ }
1591
+ /**
1592
+ * Remove a saved snapshot and release its storage (`boat snapshot rm <name>` in the CLI). Sandboxes already deployed from it are unaffected.
1593
+ * Remove a saved snapshot
1594
+ */
1595
+ async deleteSavedSnapshot(requestParameters, initOverrides) {
1596
+ const response = await this.deleteSavedSnapshotRaw(requestParameters, initOverrides);
1597
+ return await response.value();
1598
+ }
1546
1599
  /**
1547
1600
  * Creates request options for deleteSnapshot without sending the request
1548
1601
  */
@@ -2172,6 +2225,7 @@ export class BoatApi extends runtime.BaseAPI {
2172
2225
  }
2173
2226
  /**
2174
2227
  * Creates request options for getNamedSnapshot without sending the request
2228
+ * @deprecated
2175
2229
  */
2176
2230
  async getNamedSnapshotRequestOpts(requestParameters) {
2177
2231
  if (requestParameters['name'] == null) {
@@ -2197,6 +2251,7 @@ export class BoatApi extends runtime.BaseAPI {
2197
2251
  }
2198
2252
  /**
2199
2253
  * Get a named snapshot
2254
+ * @deprecated
2200
2255
  */
2201
2256
  async getNamedSnapshotRaw(requestParameters, initOverrides) {
2202
2257
  const requestOptions = await this.getNamedSnapshotRequestOpts(requestParameters);
@@ -2205,6 +2260,7 @@ export class BoatApi extends runtime.BaseAPI {
2205
2260
  }
2206
2261
  /**
2207
2262
  * Get a named snapshot
2263
+ * @deprecated
2208
2264
  */
2209
2265
  async getNamedSnapshot(requestParameters, initOverrides) {
2210
2266
  const response = await this.getNamedSnapshotRaw(requestParameters, initOverrides);
@@ -2239,7 +2295,7 @@ export class BoatApi extends runtime.BaseAPI {
2239
2295
  };
2240
2296
  }
2241
2297
  /**
2242
- * One sandbox\'s proxied AI usage per UTC day, credential and model, and whether it is blocked. Needs an API key with `box.read` on the sandbox.
2298
+ * One sandbox\'s proxied AI usage per UTC day, credential and model, and whether it is blocked. Needs an API key with `sandbox.read` on the sandbox.
2243
2299
  * Get sandbox AI usage
2244
2300
  */
2245
2301
  async getSandboxAiUsageRaw(requestParameters, initOverrides) {
@@ -2248,13 +2304,53 @@ export class BoatApi extends runtime.BaseAPI {
2248
2304
  return new runtime.JSONApiResponse(response, (jsonValue) => SandboxAiUsageResponseFromJSON(jsonValue));
2249
2305
  }
2250
2306
  /**
2251
- * One sandbox\'s proxied AI usage per UTC day, credential and model, and whether it is blocked. Needs an API key with `box.read` on the sandbox.
2307
+ * One sandbox\'s proxied AI usage per UTC day, credential and model, and whether it is blocked. Needs an API key with `sandbox.read` on the sandbox.
2252
2308
  * Get sandbox AI usage
2253
2309
  */
2254
2310
  async getSandboxAiUsage(requestParameters, initOverrides) {
2255
2311
  const response = await this.getSandboxAiUsageRaw(requestParameters, initOverrides);
2256
2312
  return await response.value();
2257
2313
  }
2314
+ /**
2315
+ * Creates request options for getSavedSnapshot without sending the request
2316
+ */
2317
+ async getSavedSnapshotRequestOpts(requestParameters) {
2318
+ if (requestParameters['name'] == null) {
2319
+ throw new runtime.RequiredError('name', 'Required parameter "name" was null or undefined when calling getSavedSnapshot().');
2320
+ }
2321
+ const queryParameters = {};
2322
+ const headerParameters = {};
2323
+ if (this.configuration && this.configuration.accessToken) {
2324
+ const token = this.configuration.accessToken;
2325
+ const tokenString = await token("BoatBearerAuth", []);
2326
+ if (tokenString) {
2327
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2328
+ }
2329
+ }
2330
+ let urlPath = `/saved-snapshots/{name}`;
2331
+ urlPath = urlPath.replace('{name}', encodeURIComponent(String(requestParameters['name'])));
2332
+ return {
2333
+ path: urlPath,
2334
+ method: 'GET',
2335
+ headers: headerParameters,
2336
+ query: queryParameters,
2337
+ };
2338
+ }
2339
+ /**
2340
+ * Get a saved snapshot
2341
+ */
2342
+ async getSavedSnapshotRaw(requestParameters, initOverrides) {
2343
+ const requestOptions = await this.getSavedSnapshotRequestOpts(requestParameters);
2344
+ const response = await this.request(requestOptions, initOverrides);
2345
+ return new runtime.JSONApiResponse(response, (jsonValue) => SavedSnapshotInfoResponseFromJSON(jsonValue));
2346
+ }
2347
+ /**
2348
+ * Get a saved snapshot
2349
+ */
2350
+ async getSavedSnapshot(requestParameters, initOverrides) {
2351
+ const response = await this.getSavedSnapshotRaw(requestParameters, initOverrides);
2352
+ return await response.value();
2353
+ }
2258
2354
  /**
2259
2355
  * Creates request options for getSnapshotDownload without sending the request
2260
2356
  */
@@ -2736,6 +2832,7 @@ export class BoatApi extends runtime.BaseAPI {
2736
2832
  }
2737
2833
  /**
2738
2834
  * Creates request options for listNamedSnapshots without sending the request
2835
+ * @deprecated
2739
2836
  */
2740
2837
  async listNamedSnapshotsRequestOpts() {
2741
2838
  const queryParameters = {};
@@ -2758,6 +2855,7 @@ export class BoatApi extends runtime.BaseAPI {
2758
2855
  /**
2759
2856
  * List your named snapshots, newest first.
2760
2857
  * List named snapshots
2858
+ * @deprecated
2761
2859
  */
2762
2860
  async listNamedSnapshotsRaw(initOverrides) {
2763
2861
  const requestOptions = await this.listNamedSnapshotsRequestOpts();
@@ -2767,6 +2865,7 @@ export class BoatApi extends runtime.BaseAPI {
2767
2865
  /**
2768
2866
  * List your named snapshots, newest first.
2769
2867
  * List named snapshots
2868
+ * @deprecated
2770
2869
  */
2771
2870
  async listNamedSnapshots(initOverrides) {
2772
2871
  const response = await this.listNamedSnapshotsRaw(initOverrides);
@@ -2861,6 +2960,44 @@ export class BoatApi extends runtime.BaseAPI {
2861
2960
  const response = await this.listSandboxSnapshotsRaw(requestParameters, initOverrides);
2862
2961
  return await response.value();
2863
2962
  }
2963
+ /**
2964
+ * Creates request options for listSavedSnapshots without sending the request
2965
+ */
2966
+ async listSavedSnapshotsRequestOpts() {
2967
+ const queryParameters = {};
2968
+ const headerParameters = {};
2969
+ if (this.configuration && this.configuration.accessToken) {
2970
+ const token = this.configuration.accessToken;
2971
+ const tokenString = await token("BoatBearerAuth", []);
2972
+ if (tokenString) {
2973
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
2974
+ }
2975
+ }
2976
+ let urlPath = `/saved-snapshots`;
2977
+ return {
2978
+ path: urlPath,
2979
+ method: 'GET',
2980
+ headers: headerParameters,
2981
+ query: queryParameters,
2982
+ };
2983
+ }
2984
+ /**
2985
+ * List your saved snapshots, newest first.
2986
+ * List saved snapshots
2987
+ */
2988
+ async listSavedSnapshotsRaw(initOverrides) {
2989
+ const requestOptions = await this.listSavedSnapshotsRequestOpts();
2990
+ const response = await this.request(requestOptions, initOverrides);
2991
+ return new runtime.JSONApiResponse(response, (jsonValue) => SavedSnapshotListResponseFromJSON(jsonValue));
2992
+ }
2993
+ /**
2994
+ * List your saved snapshots, newest first.
2995
+ * List saved snapshots
2996
+ */
2997
+ async listSavedSnapshots(initOverrides) {
2998
+ const response = await this.listSavedSnapshotsRaw(initOverrides);
2999
+ return await response.value();
3000
+ }
2864
3001
  /**
2865
3002
  * Creates request options for listSnapshotShares without sending the request
2866
3003
  */
@@ -2877,7 +3014,7 @@ export class BoatApi extends runtime.BaseAPI {
2877
3014
  headerParameters["Authorization"] = `Bearer ${tokenString}`;
2878
3015
  }
2879
3016
  }
2880
- let urlPath = `/named-snapshots/{name}/shares`;
3017
+ let urlPath = `/saved-snapshots/{name}/shares`;
2881
3018
  urlPath = urlPath.replace('{name}', encodeURIComponent(String(requestParameters['name'])));
2882
3019
  return {
2883
3020
  path: urlPath,
@@ -2887,8 +3024,8 @@ export class BoatApi extends runtime.BaseAPI {
2887
3024
  };
2888
3025
  }
2889
3026
  /**
2890
- * 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`.
2891
- * List share codes of a named snapshot
3027
+ * 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`.
3028
+ * List share codes of a saved snapshot
2892
3029
  */
2893
3030
  async listSnapshotSharesRaw(requestParameters, initOverrides) {
2894
3031
  const requestOptions = await this.listSnapshotSharesRequestOpts(requestParameters);
@@ -2896,8 +3033,8 @@ export class BoatApi extends runtime.BaseAPI {
2896
3033
  return new runtime.JSONApiResponse(response, (jsonValue) => NamedSnapshotShareListResponseFromJSON(jsonValue));
2897
3034
  }
2898
3035
  /**
2899
- * 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`.
2900
- * List share codes of a named snapshot
3036
+ * 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`.
3037
+ * List share codes of a saved snapshot
2901
3038
  */
2902
3039
  async listSnapshotShares(requestParameters, initOverrides) {
2903
3040
  const response = await this.listSnapshotSharesRaw(requestParameters, initOverrides);
@@ -3239,7 +3376,7 @@ export class BoatApi extends runtime.BaseAPI {
3239
3376
  };
3240
3377
  }
3241
3378
  /**
3242
- * Power-cycle the machine of a sandbox that stopped answering. The disk is not touched. The sandbox usually answers again within 1-2 minutes and then saves your work by itself; `sandbox.recovered` fires when it does. Refused with `409`: - `sandbox_is_reachable`: the sandbox answers normally. - `too_soon`: a recover started less than 10 minutes ago. - `no_machine`: the sandbox has no machine. Resume it instead. - `recover_unsupported`: its machine cannot be power-cycled. Wait for it to answer, or resume it from its last snapshot. - `reset_failed`: the power-cycle failed. Reply to the incident email.
3379
+ * Power-cycle the machine of a sandbox that stopped answering. The disk is not touched. The sandbox usually answers again within 1-2 minutes and then saves your work by itself; `sandbox.recovered` fires when it does. Refused with `409`: - `sandbox_is_reachable`: the sandbox answers normally. - `too_soon`: a recover started less than 10 minutes ago. - `no_machine`: the sandbox has no machine. Resume it instead. - `recover_unsupported`: its machine cannot be power-cycled. Wait for it to answer, or stop it with `{\"force\": true}` and resume it from its last good snapshot. With no snapshot, a forced stop loses everything. - `reset_failed`: the power-cycle failed. Reply to the incident email.
3243
3380
  * Recover a sandbox that stopped responding
3244
3381
  */
3245
3382
  async recoverRaw(requestParameters, initOverrides) {
@@ -3248,7 +3385,7 @@ export class BoatApi extends runtime.BaseAPI {
3248
3385
  return new runtime.JSONApiResponse(response, (jsonValue) => Recover200ResponseFromJSON(jsonValue));
3249
3386
  }
3250
3387
  /**
3251
- * Power-cycle the machine of a sandbox that stopped answering. The disk is not touched. The sandbox usually answers again within 1-2 minutes and then saves your work by itself; `sandbox.recovered` fires when it does. Refused with `409`: - `sandbox_is_reachable`: the sandbox answers normally. - `too_soon`: a recover started less than 10 minutes ago. - `no_machine`: the sandbox has no machine. Resume it instead. - `recover_unsupported`: its machine cannot be power-cycled. Wait for it to answer, or resume it from its last snapshot. - `reset_failed`: the power-cycle failed. Reply to the incident email.
3388
+ * Power-cycle the machine of a sandbox that stopped answering. The disk is not touched. The sandbox usually answers again within 1-2 minutes and then saves your work by itself; `sandbox.recovered` fires when it does. Refused with `409`: - `sandbox_is_reachable`: the sandbox answers normally. - `too_soon`: a recover started less than 10 minutes ago. - `no_machine`: the sandbox has no machine. Resume it instead. - `recover_unsupported`: its machine cannot be power-cycled. Wait for it to answer, or stop it with `{\"force\": true}` and resume it from its last good snapshot. With no snapshot, a forced stop loses everything. - `reset_failed`: the power-cycle failed. Reply to the incident email.
3252
3389
  * Recover a sandbox that stopped responding
3253
3390
  */
3254
3391
  async recover(requestParameters, initOverrides) {
@@ -3415,7 +3552,7 @@ export class BoatApi extends runtime.BaseAPI {
3415
3552
  headerParameters["Authorization"] = `Bearer ${tokenString}`;
3416
3553
  }
3417
3554
  }
3418
- let urlPath = `/named-snapshots/{name}/shares/{shareId}`;
3555
+ let urlPath = `/saved-snapshots/{name}/shares/{shareId}`;
3419
3556
  urlPath = urlPath.replace('{name}', encodeURIComponent(String(requestParameters['name'])));
3420
3557
  urlPath = urlPath.replace('{shareId}', encodeURIComponent(String(requestParameters['shareId'])));
3421
3558
  return {
@@ -3546,6 +3683,9 @@ export class BoatApi extends runtime.BaseAPI {
3546
3683
  if (requestParameters['state'] != null) {
3547
3684
  queryParameters['state'] = requestParameters['state'];
3548
3685
  }
3686
+ if (requestParameters['include'] != null) {
3687
+ queryParameters['include'] = requestParameters['include'];
3688
+ }
3549
3689
  const headerParameters = {};
3550
3690
  if (requestParameters['xBoatOrg'] != null) {
3551
3691
  headerParameters['X-Boat-Org'] = String(requestParameters['xBoatOrg']);
@@ -3584,6 +3724,7 @@ export class BoatApi extends runtime.BaseAPI {
3584
3724
  }
3585
3725
  /**
3586
3726
  * Creates request options for saveNamedSnapshot without sending the request
3727
+ * @deprecated
3587
3728
  */
3588
3729
  async saveNamedSnapshotRequestOpts(input) {
3589
3730
  const requestParameters = runtime.unflattenBody(input, 'namedSnapshotSaveRequest', [], []);
@@ -3612,6 +3753,7 @@ export class BoatApi extends runtime.BaseAPI {
3612
3753
  /**
3613
3754
  * 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.
3614
3755
  * Save a named snapshot
3756
+ * @deprecated
3615
3757
  */
3616
3758
  async saveNamedSnapshotRaw(requestParameters, initOverrides) {
3617
3759
  const requestOptions = await this.saveNamedSnapshotRequestOpts(requestParameters);
@@ -3621,11 +3763,56 @@ export class BoatApi extends runtime.BaseAPI {
3621
3763
  /**
3622
3764
  * 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.
3623
3765
  * Save a named snapshot
3766
+ * @deprecated
3624
3767
  */
3625
3768
  async saveNamedSnapshot(requestParameters, initOverrides) {
3626
3769
  const response = await this.saveNamedSnapshotRaw(requestParameters, initOverrides);
3627
3770
  return await response.value();
3628
3771
  }
3772
+ /**
3773
+ * Creates request options for saveSavedSnapshot without sending the request
3774
+ */
3775
+ async saveSavedSnapshotRequestOpts(input) {
3776
+ const requestParameters = runtime.unflattenBody(input, 'savedSnapshotSaveRequest', [], []);
3777
+ if (requestParameters['savedSnapshotSaveRequest'] == null) {
3778
+ throw new runtime.RequiredError('savedSnapshotSaveRequest', 'Required parameter "savedSnapshotSaveRequest" was null or undefined when calling saveSavedSnapshot().');
3779
+ }
3780
+ const queryParameters = {};
3781
+ const headerParameters = {};
3782
+ headerParameters['Content-Type'] = 'application/json';
3783
+ if (this.configuration && this.configuration.accessToken) {
3784
+ const token = this.configuration.accessToken;
3785
+ const tokenString = await token("BoatBearerAuth", []);
3786
+ if (tokenString) {
3787
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
3788
+ }
3789
+ }
3790
+ let urlPath = `/saved-snapshots`;
3791
+ return {
3792
+ path: urlPath,
3793
+ method: 'POST',
3794
+ headers: headerParameters,
3795
+ query: queryParameters,
3796
+ body: SavedSnapshotSaveRequestToJSON(requestParameters['savedSnapshotSaveRequest']),
3797
+ };
3798
+ }
3799
+ /**
3800
+ * 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.
3801
+ * Save a saved snapshot
3802
+ */
3803
+ async saveSavedSnapshotRaw(requestParameters, initOverrides) {
3804
+ const requestOptions = await this.saveSavedSnapshotRequestOpts(requestParameters);
3805
+ const response = await this.request(requestOptions, initOverrides);
3806
+ return new runtime.JSONApiResponse(response, (jsonValue) => SavedSnapshotSavingResponseFromJSON(jsonValue));
3807
+ }
3808
+ /**
3809
+ * 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.
3810
+ * Save a saved snapshot
3811
+ */
3812
+ async saveSavedSnapshot(requestParameters, initOverrides) {
3813
+ const response = await this.saveSavedSnapshotRaw(requestParameters, initOverrides);
3814
+ return await response.value();
3815
+ }
3629
3816
  /**
3630
3817
  * Creates request options for secrets without sending the request
3631
3818
  */
@@ -4080,7 +4267,7 @@ export class BoatApi extends runtime.BaseAPI {
4080
4267
  };
4081
4268
  }
4082
4269
  /**
4083
- * Let every member of the organization that pays for this sandbox use it. Your personal logins (GitHub token, Claude and Codex logins, environment secrets, the sandbox\'s own CLI key) are never pushed to it again and are wiped off its disk at its next start, so a teammate never acts as you. Files you wrote stay. One-way: the sandbox stays like a `noEnv` sandbox from then on. A running sandbox stays `view` for the organization until you stop and resume it (`restartRequired`). Only the person who created the sandbox can share it, and only a sandbox billed to an organization. Sharing an already shared sandbox is a no-op.
4270
+ * Let every member of the organization that pays for this sandbox use it. A sandbox that holds none of your personal logins is shared at once. A sandbox that holds them: your personal logins (GitHub token, Claude and Codex logins, environment secrets, the sandbox\'s own CLI key) are never pushed to it again and are wiped off its disk at its next start, so a teammate never acts as you. Files you wrote stay. The wipe is one-way: the sandbox stays like a `noEnv` sandbox from then on. A running sandbox stays `view` for the organization until you stop and resume it (`restartRequired`): its running programs hold your logins in memory. Teammates never read history recorded before the share. Only the person who created the sandbox can share it, and only a sandbox billed to an organization. Sharing an already shared sandbox is a no-op. Undo with `POST /sandboxes/{sandboxId}/unshare`.
4084
4271
  * Share sandbox with the organization
4085
4272
  */
4086
4273
  async shareRaw(requestParameters, initOverrides) {
@@ -4089,7 +4276,7 @@ export class BoatApi extends runtime.BaseAPI {
4089
4276
  return new runtime.JSONApiResponse(response, (jsonValue) => Share200ResponseFromJSON(jsonValue));
4090
4277
  }
4091
4278
  /**
4092
- * Let every member of the organization that pays for this sandbox use it. Your personal logins (GitHub token, Claude and Codex logins, environment secrets, the sandbox\'s own CLI key) are never pushed to it again and are wiped off its disk at its next start, so a teammate never acts as you. Files you wrote stay. One-way: the sandbox stays like a `noEnv` sandbox from then on. A running sandbox stays `view` for the organization until you stop and resume it (`restartRequired`). Only the person who created the sandbox can share it, and only a sandbox billed to an organization. Sharing an already shared sandbox is a no-op.
4279
+ * Let every member of the organization that pays for this sandbox use it. A sandbox that holds none of your personal logins is shared at once. A sandbox that holds them: your personal logins (GitHub token, Claude and Codex logins, environment secrets, the sandbox\'s own CLI key) are never pushed to it again and are wiped off its disk at its next start, so a teammate never acts as you. Files you wrote stay. The wipe is one-way: the sandbox stays like a `noEnv` sandbox from then on. A running sandbox stays `view` for the organization until you stop and resume it (`restartRequired`): its running programs hold your logins in memory. Teammates never read history recorded before the share. Only the person who created the sandbox can share it, and only a sandbox billed to an organization. Sharing an already shared sandbox is a no-op. Undo with `POST /sandboxes/{sandboxId}/unshare`.
4093
4280
  * Share sandbox with the organization
4094
4281
  */
4095
4282
  async share(requestParameters, initOverrides) {
@@ -4336,6 +4523,48 @@ export class BoatApi extends runtime.BaseAPI {
4336
4523
  const response = await this.switchCredentialAccountRaw(requestParameters, initOverrides);
4337
4524
  return await response.value();
4338
4525
  }
4526
+ /**
4527
+ * Creates request options for unshare without sending the request
4528
+ */
4529
+ async unshareRequestOpts(requestParameters) {
4530
+ if (requestParameters['sandboxId'] == null) {
4531
+ throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling unshare().');
4532
+ }
4533
+ const queryParameters = {};
4534
+ const headerParameters = {};
4535
+ if (this.configuration && this.configuration.accessToken) {
4536
+ const token = this.configuration.accessToken;
4537
+ const tokenString = await token("BoatBearerAuth", []);
4538
+ if (tokenString) {
4539
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
4540
+ }
4541
+ }
4542
+ let urlPath = `/sandboxes/{sandboxId}/unshare`;
4543
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
4544
+ return {
4545
+ path: urlPath,
4546
+ method: 'POST',
4547
+ headers: headerParameters,
4548
+ query: queryParameters,
4549
+ };
4550
+ }
4551
+ /**
4552
+ * Make a shared organization sandbox private again, at once. Only you can then use it. Teammates still see it in their list and can stop it. Their SSH keys are removed from the running machine. Nothing on the sandbox changes: files, installs and its environment stay. Undo with `POST /sandboxes/{sandboxId}/share`. Only the person who created the sandbox can make it private, and only a sandbox billed to an organization. Making a private sandbox private is a no-op.
4553
+ * Make an organization sandbox private
4554
+ */
4555
+ async unshareRaw(requestParameters, initOverrides) {
4556
+ const requestOptions = await this.unshareRequestOpts(requestParameters);
4557
+ const response = await this.request(requestOptions, initOverrides);
4558
+ return new runtime.JSONApiResponse(response, (jsonValue) => Unshare200ResponseFromJSON(jsonValue));
4559
+ }
4560
+ /**
4561
+ * Make a shared organization sandbox private again, at once. Only you can then use it. Teammates still see it in their list and can stop it. Their SSH keys are removed from the running machine. Nothing on the sandbox changes: files, installs and its environment stay. Undo with `POST /sandboxes/{sandboxId}/share`. Only the person who created the sandbox can make it private, and only a sandbox billed to an organization. Making a private sandbox private is a no-op.
4562
+ * Make an organization sandbox private
4563
+ */
4564
+ async unshare(requestParameters, initOverrides) {
4565
+ const response = await this.unshareRaw(requestParameters, initOverrides);
4566
+ return await response.value();
4567
+ }
4339
4568
  /**
4340
4569
  * Creates request options for update without sending the request
4341
4570
  */
@@ -4575,6 +4804,54 @@ export class BoatApi extends runtime.BaseAPI {
4575
4804
  const response = await this.updateEnvironmentRaw(requestParameters, initOverrides);
4576
4805
  return await response.value();
4577
4806
  }
4807
+ /**
4808
+ * Creates request options for updateOrganization without sending the request
4809
+ */
4810
+ async updateOrganizationRequestOpts(input) {
4811
+ const requestParameters = runtime.unflattenBody(input, 'updateOrganizationRequest', ['org'], []);
4812
+ if (requestParameters['org'] == null) {
4813
+ throw new runtime.RequiredError('org', 'Required parameter "org" was null or undefined when calling updateOrganization().');
4814
+ }
4815
+ if (requestParameters['updateOrganizationRequest'] == null) {
4816
+ throw new runtime.RequiredError('updateOrganizationRequest', 'Required parameter "updateOrganizationRequest" was null or undefined when calling updateOrganization().');
4817
+ }
4818
+ const queryParameters = {};
4819
+ const headerParameters = {};
4820
+ headerParameters['Content-Type'] = 'application/json';
4821
+ if (this.configuration && this.configuration.accessToken) {
4822
+ const token = this.configuration.accessToken;
4823
+ const tokenString = await token("BoatBearerAuth", []);
4824
+ if (tokenString) {
4825
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
4826
+ }
4827
+ }
4828
+ let urlPath = `/orgs/{org}`;
4829
+ urlPath = urlPath.replace('{org}', encodeURIComponent(String(requestParameters['org'])));
4830
+ return {
4831
+ path: urlPath,
4832
+ method: 'PATCH',
4833
+ headers: headerParameters,
4834
+ query: queryParameters,
4835
+ body: UpdateOrganizationRequestToJSON(requestParameters['updateOrganizationRequest']),
4836
+ };
4837
+ }
4838
+ /**
4839
+ * Owners and admins set whether new sandboxes of the organization start private (only their creator can use them) or shared (every member can use those that hold none of their creator\'s logins). The default is shared. Existing sandboxes keep their setting; their creators change it with `POST /sandboxes/{sandboxId}/share` and `POST /sandboxes/{sandboxId}/unshare`. A fork of a private sandbox is private.
4840
+ * Update organization settings
4841
+ */
4842
+ async updateOrganizationRaw(requestParameters, initOverrides) {
4843
+ const requestOptions = await this.updateOrganizationRequestOpts(requestParameters);
4844
+ const response = await this.request(requestOptions, initOverrides);
4845
+ return new runtime.JSONApiResponse(response, (jsonValue) => UpdateOrganization200ResponseFromJSON(jsonValue));
4846
+ }
4847
+ /**
4848
+ * Owners and admins set whether new sandboxes of the organization start private (only their creator can use them) or shared (every member can use those that hold none of their creator\'s logins). The default is shared. Existing sandboxes keep their setting; their creators change it with `POST /sandboxes/{sandboxId}/share` and `POST /sandboxes/{sandboxId}/unshare`. A fork of a private sandbox is private.
4849
+ * Update organization settings
4850
+ */
4851
+ async updateOrganization(requestParameters, initOverrides) {
4852
+ const response = await this.updateOrganizationRaw(requestParameters, initOverrides);
4853
+ return await response.value();
4854
+ }
4578
4855
  /**
4579
4856
  * Creates request options for updateSecrets without sending the request
4580
4857
  */
@@ -4879,3 +5156,9 @@ export const SandboxesSortEnum = {
4879
5156
  Asc: 'asc',
4880
5157
  Desc: 'desc'
4881
5158
  };
5159
+ /**
5160
+ * @export
5161
+ */
5162
+ export const SandboxesIncludeEnum = {
5163
+ Cost: 'cost'
5164
+ };
@@ -16,7 +16,7 @@
16
16
  */
17
17
  export interface CreateSandboxRequest {
18
18
  /**
19
- * Machine size. `small` consumes machine time at half rate and `large` at twice the default rate (see the Billing guide). `xlarge` needs the $100/month plan or higher; lower plans get a 403 `machine_class_plan_required` on create, resume and fork. A fork inherits the source sandbox's type unless the fork request passes its own, and resume and fork can move a sandbox between sizes.
19
+ * Machine size. `small` consumes machine time at half rate and `large` at twice the default rate (see the Billing guide). `xlarge` needs the $100/month plan or higher, or an account access grant from an administrator. Otherwise, create, resume and fork return 403 `machine_class_plan_required`. A fork inherits the source sandbox's type unless the fork request passes its own, and resume and fork can move a sandbox between sizes.
20
20
  * @type {CreateSandboxRequestTypeEnum}
21
21
  * @memberof CreateSandboxRequest
22
22
  */
@@ -48,7 +48,7 @@ export interface CreateSandboxRequest {
48
48
  */
49
49
  noEnv?: boolean;
50
50
  /**
51
- * Pass `false` to never snapshot this sandbox. Nothing is captured in the background, so it pays no CPU or memory for it, and stopping it erases its disk the way zero data retention does. It cannot be resumed, forked, or saved as a named snapshot, and if its machine fails there is no backup to rebuild it from.
51
+ * Pass `false` to never snapshot this sandbox. Nothing is captured in the background, so it pays no CPU or memory for it, and stopping it erases its disk the way zero data retention does. It cannot be resumed, forked, or saved as a saved snapshot, and if its machine fails there is no backup to rebuild it from.
52
52
  * @type {boolean}
53
53
  * @memberof CreateSandboxRequest
54
54
  */
@@ -65,6 +65,12 @@ export interface CreateSandboxRequest {
65
65
  * @memberof CreateSandboxRequest
66
66
  */
67
67
  failFast?: boolean;
68
+ /**
69
+ * With `from`: create this many sandboxes from the saved snapshot in one request. Boat creates them together, which is faster than separate creates when you need many sandboxes at once. Start limits and the active-sandbox limit count every sandbox of the batch; if the batch does not fit, nothing is created. The answer lists all of them in `sandboxes` (and the first one in `sandbox`). Refused with 400 `count_requires_from` without `from`, and with 400 `count_with_fail_fast` together with `failFast`.
70
+ * @type {number}
71
+ * @memberof CreateSandboxRequest
72
+ */
73
+ count?: number;
68
74
  /**
69
75
  * Shell script that runs on the sandbox after it is ready. Ready means "ready to accept the user", not "setup done": the script starts in the background once provisioning completes and never blocks the sandbox becoming usable. It runs as the sandbox user (`user`, not root; `sudo` needs no password) via `bash`, with the sandbox's environment applied, and its output goes to a log file on the sandbox. Observe the outcome as `setupStatus` (pending/running/done/failed) and `setupError` on the sandbox. Rejected with a 400 `invalid_setup_script` error when it is not a string or exceeds 64KB.
70
76
  * @type {string}
@@ -84,7 +90,7 @@ export interface CreateSandboxRequest {
84
90
  */
85
91
  teamId?: string;
86
92
  /**
87
- * Create the sandbox from a named snapshot (saved with `POST /named-snapshots`, or `boat snapshot <id> <name>` in the CLI). The sandbox starts from that exact frozen state. Omitting `type` inherits the type the snapshot was saved from; env and no-env inherit from the snapshot's source sandbox unless the request passes its own, with the same rules as forking. Also accepts a share code (`bsh_...`) that another account made with `POST /named-snapshots/{name}/shares`. The new sandbox lives in and is billed to your account. It does not get the owner's per-sandbox env; your own environment applies normally. A wrong or revoked code returns `404 snapshot_not_found`.
93
+ * Create the sandbox from a saved snapshot (saved with `POST /saved-snapshots`, or `boat snapshot <id> <name>` in the CLI). The sandbox starts from that exact frozen state. Omitting `type` inherits the type the snapshot was saved from; env and no-env inherit from the snapshot's source sandbox unless the request passes its own, with the same rules as forking. Also accepts a share code (`bsh_...`) that another account made with `POST /saved-snapshots/{name}/shares`. The new sandbox lives in and is billed to your account. It does not get the owner's per-sandbox env; your own environment applies normally. A wrong or revoked code returns `404 snapshot_not_found`.
88
94
  * @type {string}
89
95
  * @memberof CreateSandboxRequest
90
96
  */
@@ -42,6 +42,7 @@ export function CreateSandboxRequestFromJSONTyped(json, ignoreDiscriminator) {
42
42
  'snapshots': json['snapshots'] == null ? undefined : json['snapshots'],
43
43
  'monitoring': json['monitoring'] == null ? undefined : json['monitoring'],
44
44
  'failFast': json['failFast'] == null ? undefined : json['failFast'],
45
+ 'count': json['count'] == null ? undefined : json['count'],
45
46
  'setupScript': json['setupScript'] == null ? undefined : json['setupScript'],
46
47
  'org': json['org'] == null ? undefined : json['org'],
47
48
  'teamId': json['teamId'] == null ? undefined : json['teamId'],
@@ -64,6 +65,7 @@ export function CreateSandboxRequestToJSONTyped(value, ignoreDiscriminator = fal
64
65
  'snapshots': value['snapshots'],
65
66
  'monitoring': value['monitoring'],
66
67
  'failFast': value['failFast'],
68
+ 'count': value['count'],
67
69
  'setupScript': value['setupScript'],
68
70
  'org': value['org'],
69
71
  'teamId': value['teamId'],