Skip to content

Commit ff9ade1

Browse files
stainless-app[bot]stainless-bot
authored andcommitted
feat(api): OpenAPI spec update via Stainless API (#128)
1 parent 3940b9f commit ff9ade1

10 files changed

Lines changed: 453 additions & 29 deletions

File tree

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
configured_endpoints: 25
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-7c0be2259b864df540fecbc3b04720c184dd4142bb666849941e081c14c67b5a.yml
1+
configured_endpoints: 27
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-d63149ceb408730060b259bffc06fc16a400fe1f57ef518f1e9209b698c2105d.yml

api.md

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,12 @@ Methods:
6565
- <code title="get /v1/devboxes/{id}">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
6666
- <code title="get /v1/devboxes">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">list</a>(\*\*<a href="src/runloop_api_client/types/devbox_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_list_view.py">DevboxListView</a></code>
6767
- <code title="post /v1/devboxes/{id}/create_ssh_key">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">create_ssh_key</a>(id) -> <a href="./src/runloop_api_client/types/devbox_create_ssh_key_response.py">DevboxCreateSSHKeyResponse</a></code>
68-
- <code title="post /v1/devboxes/{id}/executions/execute_async">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">execute_async</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_execute_async_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
69-
- <code title="post /v1/devboxes/{id}/execute_sync">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">execute_sync</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_execute_sync_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
68+
- <code title="post /v1/devboxes/{id}/executions/execute_async">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">execute_async</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_execute_async_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
69+
- <code title="post /v1/devboxes/{id}/execute_sync">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">execute_sync</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_execute_sync_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
7070
- <code title="post /v1/devboxes/{id}/read_file_contents">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">read_file_contents</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_read_file_contents_params.py">params</a>) -> str</code>
7171
- <code title="post /v1/devboxes/{id}/shutdown">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">shutdown</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
7272
- <code title="post /v1/devboxes/{id}/upload_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">upload_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_upload_file_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_upload_file_response.py">object</a></code>
73-
- <code title="post /v1/devboxes/{id}/write_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">write_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_write_file_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
73+
- <code title="post /v1/devboxes/{id}/write_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">write_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_write_file_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
7474

7575
## Logs
7676

@@ -86,20 +86,12 @@ Methods:
8686

8787
## Executions
8888

89-
Types:
90-
91-
```python
92-
from runloop_api_client.types.devboxes import (
93-
DevboxAsyncExecutionDetailView,
94-
DevboxExecutionDetailView,
95-
DevboxLogsListView,
96-
)
97-
```
98-
9989
Methods:
10090

101-
- <code title="post /v1/devboxes/{id}/executions/execute_async">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">execute_async</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_execute_async_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
102-
- <code title="post /v1/devboxes/{id}/execute_sync">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">execute_sync</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_execute_sync_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
91+
- <code title="get /v1/devboxes/{id}/executions/{execution_id}">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">retrieve</a>(execution_id, \*, id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_retrieve_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
92+
- <code title="post /v1/devboxes/{id}/executions/execute_async">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">execute_async</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_execute_async_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
93+
- <code title="post /v1/devboxes/{id}/execute_sync">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">execute_sync</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_execute_sync_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
94+
- <code title="post /v1/devboxes/{id}/executions/{execution_id}/kill">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">kill</a>(execution_id, \*, id) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
10395
- <code title="get /v1/devboxes/{id}/executions/{execution_id}/logs">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">logs</a>(execution_id, \*, id) -> <a href="./src/runloop_api_client/types/devboxes/devbox_logs_list_view.py">DevboxLogsListView</a></code>
10496

10597
# Functions

src/runloop_api_client/resources/devboxes/devboxes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@
4949
from ..._base_client import make_request_options
5050
from ...types.devbox_view import DevboxView
5151
from ...types.devbox_list_view import DevboxListView
52+
from ...types.devbox_execution_detail_view import DevboxExecutionDetailView
5253
from ...types.devbox_create_ssh_key_response import DevboxCreateSSHKeyResponse
53-
from ...types.devboxes.devbox_execution_detail_view import DevboxExecutionDetailView
54-
from ...types.devboxes.devbox_async_execution_detail_view import DevboxAsyncExecutionDetailView
54+
from ...types.devbox_async_execution_detail_view import DevboxAsyncExecutionDetailView
5555

5656
__all__ = ["DevboxesResource", "AsyncDevboxesResource"]
5757

src/runloop_api_client/resources/devboxes/executions.py

Lines changed: 187 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
async_to_streamed_response_wrapper,
1919
)
2020
from ..._base_client import make_request_options
21-
from ...types.devboxes import execution_execute_sync_params, execution_execute_async_params
21+
from ...types.devboxes import execution_retrieve_params, execution_execute_sync_params, execution_execute_async_params
22+
from ...types.devbox_execution_detail_view import DevboxExecutionDetailView
2223
from ...types.devboxes.devbox_logs_list_view import DevboxLogsListView
23-
from ...types.devboxes.devbox_execution_detail_view import DevboxExecutionDetailView
24-
from ...types.devboxes.devbox_async_execution_detail_view import DevboxAsyncExecutionDetailView
24+
from ...types.devbox_async_execution_detail_view import DevboxAsyncExecutionDetailView
2525

2626
__all__ = ["ExecutionsResource", "AsyncExecutionsResource"]
2727

@@ -35,6 +35,49 @@ def with_raw_response(self) -> ExecutionsResourceWithRawResponse:
3535
def with_streaming_response(self) -> ExecutionsResourceWithStreamingResponse:
3636
return ExecutionsResourceWithStreamingResponse(self)
3737

38+
def retrieve(
39+
self,
40+
execution_id: str,
41+
*,
42+
id: str,
43+
last_n: str | NotGiven = NOT_GIVEN,
44+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
45+
# The extra values given here take precedence over values defined on the client or passed to this method.
46+
extra_headers: Headers | None = None,
47+
extra_query: Query | None = None,
48+
extra_body: Body | None = None,
49+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
50+
) -> DevboxAsyncExecutionDetailView:
51+
"""
52+
Get status of an execution on a devbox.
53+
54+
Args:
55+
last_n: Last n lines of standard error / standard out to return
56+
57+
extra_headers: Send extra headers
58+
59+
extra_query: Add additional query parameters to the request
60+
61+
extra_body: Add additional JSON properties to the request
62+
63+
timeout: Override the client-level default timeout for this request, in seconds
64+
"""
65+
if not id:
66+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
67+
if not execution_id:
68+
raise ValueError(f"Expected a non-empty value for `execution_id` but received {execution_id!r}")
69+
return self._get(
70+
f"/v1/devboxes/{id}/executions/{execution_id}",
71+
options=make_request_options(
72+
extra_headers=extra_headers,
73+
extra_query=extra_query,
74+
extra_body=extra_body,
75+
timeout=timeout,
76+
query=maybe_transform({"last_n": last_n}, execution_retrieve_params.ExecutionRetrieveParams),
77+
),
78+
cast_to=DevboxAsyncExecutionDetailView,
79+
)
80+
3881
def execute_async(
3982
self,
4083
id: str,
@@ -109,6 +152,42 @@ def execute_sync(
109152
cast_to=DevboxExecutionDetailView,
110153
)
111154

155+
def kill(
156+
self,
157+
execution_id: str,
158+
*,
159+
id: str,
160+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
161+
# The extra values given here take precedence over values defined on the client or passed to this method.
162+
extra_headers: Headers | None = None,
163+
extra_query: Query | None = None,
164+
extra_body: Body | None = None,
165+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
166+
) -> DevboxAsyncExecutionDetailView:
167+
"""
168+
Kill an asynchronous execution currently running on a devbox
169+
170+
Args:
171+
extra_headers: Send extra headers
172+
173+
extra_query: Add additional query parameters to the request
174+
175+
extra_body: Add additional JSON properties to the request
176+
177+
timeout: Override the client-level default timeout for this request, in seconds
178+
"""
179+
if not id:
180+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
181+
if not execution_id:
182+
raise ValueError(f"Expected a non-empty value for `execution_id` but received {execution_id!r}")
183+
return self._post(
184+
f"/v1/devboxes/{id}/executions/{execution_id}/kill",
185+
options=make_request_options(
186+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
187+
),
188+
cast_to=DevboxAsyncExecutionDetailView,
189+
)
190+
112191
def logs(
113192
self,
114193
execution_id: str,
@@ -155,6 +234,51 @@ def with_raw_response(self) -> AsyncExecutionsResourceWithRawResponse:
155234
def with_streaming_response(self) -> AsyncExecutionsResourceWithStreamingResponse:
156235
return AsyncExecutionsResourceWithStreamingResponse(self)
157236

237+
async def retrieve(
238+
self,
239+
execution_id: str,
240+
*,
241+
id: str,
242+
last_n: str | NotGiven = NOT_GIVEN,
243+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
244+
# The extra values given here take precedence over values defined on the client or passed to this method.
245+
extra_headers: Headers | None = None,
246+
extra_query: Query | None = None,
247+
extra_body: Body | None = None,
248+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
249+
) -> DevboxAsyncExecutionDetailView:
250+
"""
251+
Get status of an execution on a devbox.
252+
253+
Args:
254+
last_n: Last n lines of standard error / standard out to return
255+
256+
extra_headers: Send extra headers
257+
258+
extra_query: Add additional query parameters to the request
259+
260+
extra_body: Add additional JSON properties to the request
261+
262+
timeout: Override the client-level default timeout for this request, in seconds
263+
"""
264+
if not id:
265+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
266+
if not execution_id:
267+
raise ValueError(f"Expected a non-empty value for `execution_id` but received {execution_id!r}")
268+
return await self._get(
269+
f"/v1/devboxes/{id}/executions/{execution_id}",
270+
options=make_request_options(
271+
extra_headers=extra_headers,
272+
extra_query=extra_query,
273+
extra_body=extra_body,
274+
timeout=timeout,
275+
query=await async_maybe_transform(
276+
{"last_n": last_n}, execution_retrieve_params.ExecutionRetrieveParams
277+
),
278+
),
279+
cast_to=DevboxAsyncExecutionDetailView,
280+
)
281+
158282
async def execute_async(
159283
self,
160284
id: str,
@@ -233,6 +357,42 @@ async def execute_sync(
233357
cast_to=DevboxExecutionDetailView,
234358
)
235359

360+
async def kill(
361+
self,
362+
execution_id: str,
363+
*,
364+
id: str,
365+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
366+
# The extra values given here take precedence over values defined on the client or passed to this method.
367+
extra_headers: Headers | None = None,
368+
extra_query: Query | None = None,
369+
extra_body: Body | None = None,
370+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
371+
) -> DevboxAsyncExecutionDetailView:
372+
"""
373+
Kill an asynchronous execution currently running on a devbox
374+
375+
Args:
376+
extra_headers: Send extra headers
377+
378+
extra_query: Add additional query parameters to the request
379+
380+
extra_body: Add additional JSON properties to the request
381+
382+
timeout: Override the client-level default timeout for this request, in seconds
383+
"""
384+
if not id:
385+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
386+
if not execution_id:
387+
raise ValueError(f"Expected a non-empty value for `execution_id` but received {execution_id!r}")
388+
return await self._post(
389+
f"/v1/devboxes/{id}/executions/{execution_id}/kill",
390+
options=make_request_options(
391+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
392+
),
393+
cast_to=DevboxAsyncExecutionDetailView,
394+
)
395+
236396
async def logs(
237397
self,
238398
execution_id: str,
@@ -274,12 +434,18 @@ class ExecutionsResourceWithRawResponse:
274434
def __init__(self, executions: ExecutionsResource) -> None:
275435
self._executions = executions
276436

437+
self.retrieve = to_raw_response_wrapper(
438+
executions.retrieve,
439+
)
277440
self.execute_async = to_raw_response_wrapper(
278441
executions.execute_async,
279442
)
280443
self.execute_sync = to_raw_response_wrapper(
281444
executions.execute_sync,
282445
)
446+
self.kill = to_raw_response_wrapper(
447+
executions.kill,
448+
)
283449
self.logs = to_raw_response_wrapper(
284450
executions.logs,
285451
)
@@ -289,12 +455,18 @@ class AsyncExecutionsResourceWithRawResponse:
289455
def __init__(self, executions: AsyncExecutionsResource) -> None:
290456
self._executions = executions
291457

458+
self.retrieve = async_to_raw_response_wrapper(
459+
executions.retrieve,
460+
)
292461
self.execute_async = async_to_raw_response_wrapper(
293462
executions.execute_async,
294463
)
295464
self.execute_sync = async_to_raw_response_wrapper(
296465
executions.execute_sync,
297466
)
467+
self.kill = async_to_raw_response_wrapper(
468+
executions.kill,
469+
)
298470
self.logs = async_to_raw_response_wrapper(
299471
executions.logs,
300472
)
@@ -304,12 +476,18 @@ class ExecutionsResourceWithStreamingResponse:
304476
def __init__(self, executions: ExecutionsResource) -> None:
305477
self._executions = executions
306478

479+
self.retrieve = to_streamed_response_wrapper(
480+
executions.retrieve,
481+
)
307482
self.execute_async = to_streamed_response_wrapper(
308483
executions.execute_async,
309484
)
310485
self.execute_sync = to_streamed_response_wrapper(
311486
executions.execute_sync,
312487
)
488+
self.kill = to_streamed_response_wrapper(
489+
executions.kill,
490+
)
313491
self.logs = to_streamed_response_wrapper(
314492
executions.logs,
315493
)
@@ -319,12 +497,18 @@ class AsyncExecutionsResourceWithStreamingResponse:
319497
def __init__(self, executions: AsyncExecutionsResource) -> None:
320498
self._executions = executions
321499

500+
self.retrieve = async_to_streamed_response_wrapper(
501+
executions.retrieve,
502+
)
322503
self.execute_async = async_to_streamed_response_wrapper(
323504
executions.execute_async,
324505
)
325506
self.execute_sync = async_to_streamed_response_wrapper(
326507
executions.execute_sync,
327508
)
509+
self.kill = async_to_streamed_response_wrapper(
510+
executions.kill,
511+
)
328512
self.logs = async_to_streamed_response_wrapper(
329513
executions.logs,
330514
)

src/runloop_api_client/types/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@
2828
from .code_mount_parameters_param import CodeMountParametersParam as CodeMountParametersParam
2929
from .devbox_execute_async_params import DevboxExecuteAsyncParams as DevboxExecuteAsyncParams
3030
from .function_invoke_sync_params import FunctionInvokeSyncParams as FunctionInvokeSyncParams
31+
from .devbox_execution_detail_view import DevboxExecutionDetailView as DevboxExecutionDetailView
3132
from .function_invoke_async_params import FunctionInvokeAsyncParams as FunctionInvokeAsyncParams
3233
from .blueprint_build_logs_list_view import BlueprintBuildLogsListView as BlueprintBuildLogsListView
3334
from .devbox_create_ssh_key_response import DevboxCreateSSHKeyResponse as DevboxCreateSSHKeyResponse
3435
from .devbox_read_file_contents_params import DevboxReadFileContentsParams as DevboxReadFileContentsParams
36+
from .devbox_async_execution_detail_view import DevboxAsyncExecutionDetailView as DevboxAsyncExecutionDetailView
3537
from .devbox_read_file_contents_response import DevboxReadFileContentsResponse as DevboxReadFileContentsResponse

0 commit comments

Comments
 (0)