@@ -121,8 +121,65 @@ async def suspend(self, **request_options: Any) -> Any:
121121 async def resume (self , ** request_options : Any ) -> Any :
122122 return await self ._client .devboxes .resume (self ._id , ** request_options )
123123
124- async def keep_alive (self , ** request_options : Any ) -> Any :
125- return await self ._client .devboxes .keep_alive (self ._id , ** request_options )
124+ async def snapshot_disk (
125+ self ,
126+ * ,
127+ commit_message : str | None | Omit = omit ,
128+ metadata : dict [str , str ] | None | Omit = omit ,
129+ name : str | None | Omit = omit ,
130+ polling_config : PollingConfig | None = None ,
131+ extra_headers : Headers | None = None ,
132+ extra_query : Query | None = None ,
133+ extra_body : Body | None = None ,
134+ timeout : float | Timeout | None | NotGiven = not_given ,
135+ idempotency_key : str | None = None ,
136+ ) -> "AsyncSnapshot" :
137+ snapshot_data = await self ._client .devboxes .snapshot_disk_async (
138+ self ._id ,
139+ commit_message = commit_message ,
140+ metadata = metadata ,
141+ name = name ,
142+ extra_headers = extra_headers ,
143+ extra_query = extra_query ,
144+ extra_body = extra_body ,
145+ timeout = timeout ,
146+ idempotency_key = idempotency_key ,
147+ )
148+ snapshot = self ._snapshot_from_id (snapshot_data .id )
149+ await snapshot .await_completed (
150+ polling_config = polling_config ,
151+ extra_headers = extra_headers ,
152+ extra_query = extra_query ,
153+ extra_body = extra_body ,
154+ timeout = timeout ,
155+ idempotency_key = idempotency_key ,
156+ )
157+ return snapshot
158+
159+ async def snapshot_disk_async (
160+ self ,
161+ * ,
162+ commit_message : str | None | Omit = omit ,
163+ metadata : dict [str , str ] | None | Omit = omit ,
164+ name : str | None | Omit = omit ,
165+ extra_headers : Headers | None = None ,
166+ extra_query : Query | None = None ,
167+ extra_body : Body | None = None ,
168+ timeout : float | Timeout | None | NotGiven = not_given ,
169+ idempotency_key : str | None = None ,
170+ ) -> "AsyncSnapshot" :
171+ snapshot_data = await self ._client .devboxes .snapshot_disk_async (
172+ self ._id ,
173+ commit_message = commit_message ,
174+ metadata = metadata ,
175+ name = name ,
176+ extra_headers = extra_headers ,
177+ extra_query = extra_query ,
178+ extra_body = extra_body ,
179+ timeout = timeout ,
180+ idempotency_key = idempotency_key ,
181+ )
182+ return self ._snapshot_from_id (snapshot_data .id )
126183
127184 async def close (self ) -> None :
128185 await self .shutdown ()
@@ -143,6 +200,11 @@ def net(self) -> "_AsyncNetworkInterface":
143200 # Internal helpers
144201 # ------------------------------------------------------------------ #
145202
203+ def _snapshot_from_id (self , snapshot_id : str ) -> "AsyncSnapshot" :
204+ from .async_snapshot import AsyncSnapshot
205+
206+ return AsyncSnapshot (self ._client , snapshot_id )
207+
146208 def _start_streaming (
147209 self ,
148210 execution_id : str ,
0 commit comments