|
15 | 15 | SandboxExposeResult, |
16 | 16 | SandboxImageBuild, |
17 | 17 | SandboxImageBuildCreateResult, |
| 18 | + SandboxImageBuildListParams, |
| 19 | + SandboxImageBuildListResponse, |
18 | 20 | SandboxImageListParams, |
19 | 21 | SandboxImageListResponse, |
20 | 22 | SandboxImageInit, |
|
25 | 27 | SandboxNetworkPolicy, |
26 | 28 | SandboxNetworkUpdateResult, |
27 | 29 | SandboxRuntimeSession, |
| 30 | + SandboxSnapshotDeleteResult, |
28 | 31 | SandboxSnapshotListParams, |
29 | 32 | SandboxSnapshotListResponse, |
| 33 | + SandboxSnapshotSummary, |
30 | 34 | SandboxUnexposeResult, |
31 | 35 | StartSandboxFromSnapshotParams, |
32 | 36 | ) |
|
37 | 41 | CreateSandboxParams as CreateSandboxParamsDict, |
38 | 42 | SandboxExecParams as SandboxExecParamsDict, |
39 | 43 | SandboxExposeParams as SandboxExposeParamsDict, |
| 44 | + SandboxImageBuildListParams as SandboxImageBuildListParamsDict, |
40 | 45 | SandboxImageInit as SandboxImageInitDict, |
41 | 46 | SandboxImageListParams as SandboxImageListParamsDict, |
42 | 47 | SandboxListParams as SandboxListParamsDict, |
@@ -450,6 +455,14 @@ async def list_snapshots( |
450 | 455 | ) |
451 | 456 | return SandboxSnapshotListResponse(**payload) |
452 | 457 |
|
| 458 | + async def get_snapshot(self, snapshot: str) -> SandboxSnapshotSummary: |
| 459 | + payload = await self._request("GET", f"/snapshots/{snapshot}") |
| 460 | + return SandboxSnapshotSummary(**payload["snapshot"]) |
| 461 | + |
| 462 | + async def delete_snapshot(self, snapshot: str) -> SandboxSnapshotDeleteResult: |
| 463 | + payload = await self._request("DELETE", f"/snapshots/{snapshot}") |
| 464 | + return SandboxSnapshotDeleteResult(**payload) |
| 465 | + |
453 | 466 | async def stop(self, sandbox_id: str) -> BasicResponse: |
454 | 467 | payload = await self._request("PUT", f"/sandbox/{sandbox_id}/stop") |
455 | 468 | return BasicResponse(**payload) |
@@ -491,6 +504,22 @@ async def cancel_image_build(self, build_id: str) -> SandboxImageBuild: |
491 | 504 | payload = await self._request("POST", f"/images/builds/{build_id}/cancel") |
492 | 505 | return SandboxImageBuild(**payload["build"]) |
493 | 506 |
|
| 507 | + async def list_image_builds( |
| 508 | + self, |
| 509 | + params: Optional[ |
| 510 | + Union[SandboxImageBuildListParamsDict, SandboxImageBuildListParams] |
| 511 | + ] = None, |
| 512 | + ) -> SandboxImageBuildListResponse: |
| 513 | + payload = await self._request( |
| 514 | + "GET", |
| 515 | + "/images/builds", |
| 516 | + params=dump_request( |
| 517 | + params if params is not None else {}, |
| 518 | + SandboxImageBuildListParams, |
| 519 | + ), |
| 520 | + ) |
| 521 | + return SandboxImageBuildListResponse(**payload) |
| 522 | + |
494 | 523 | async def wait_for_image_build( |
495 | 524 | self, |
496 | 525 | build_id: str, |
|
0 commit comments