Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .stats.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
configured_endpoints: 29
configured_endpoints: 32
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-6cf047d01929db28b7655b33123900eeb28f3c5c12878b4a6d59676d839e8ccc.yml
4 changes: 4 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ from runloop_api_client.types import (
DevboxListView,
DevboxSnapshotListView,
DevboxSnapshotView,
DevboxTunnelView,
DevboxView,
DevboxCreateSSHKeyResponse,
DevboxReadFileContentsResponse,
Expand All @@ -63,13 +64,16 @@ Methods:
- <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>
- <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>
- <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>
- <code title="post /v1/devboxes/{id}/create_tunnel">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">create_tunnel</a>(id) -> <a href="./src/runloop_api_client/types/devbox_tunnel_view.py">DevboxTunnelView</a></code>
- <code title="get /v1/devboxes/disk_snapshots">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">disk_snapshots</a>(\*\*<a href="src/runloop_api_client/types/devbox_disk_snapshots_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_snapshot_list_view.py">DevboxSnapshotListView</a></code>
- <code title="post /v1/devboxes/{id}/download_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">download_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_download_file_params.py">params</a>) -> BinaryAPIResponse</code>
- <code title="post /v1/devboxes/{id}/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>
- <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>
- <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>
- <code title="post /v1/devboxes/{id}/resume">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">resume</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
- <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>
- <code title="post /v1/devboxes/{id}/snapshot_disk">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">snapshot_disk</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_snapshot_disk_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_snapshot_view.py">DevboxSnapshotView</a></code>
- <code title="post /v1/devboxes/{id}/suspend">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">suspend</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
- <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>
- <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>

Expand Down
237 changes: 237 additions & 0 deletions src/runloop_api_client/resources/devboxes/devboxes.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
from ..._base_client import make_request_options
from ...types.devbox_view import DevboxView
from ...types.devbox_list_view import DevboxListView
from ...types.devbox_tunnel_view import DevboxTunnelView
from ...types.devbox_snapshot_view import DevboxSnapshotView
from ...types.devbox_snapshot_list_view import DevboxSnapshotListView
from ...types.code_mount_parameters_param import CodeMountParametersParam
Expand Down Expand Up @@ -314,6 +315,39 @@ def create_ssh_key(
cast_to=DevboxCreateSSHKeyResponse,
)

def create_tunnel(
self,
id: str,
*,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> DevboxTunnelView:
"""
Create a tunnel to an available port on the Devbox.

Args:
extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not id:
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
return self._post(
f"/v1/devboxes/{id}/create_tunnel",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=DevboxTunnelView,
)

def disk_snapshots(
self,
*,
Expand Down Expand Up @@ -530,6 +564,39 @@ def read_file_contents(
cast_to=str,
)

def resume(
self,
id: str,
*,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> DevboxView:
"""
Resume a suspended devbox by id.

Args:
extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not id:
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
return self._post(
f"/v1/devboxes/{id}/resume",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=DevboxView,
)

def shutdown(
self,
id: str,
Expand Down Expand Up @@ -610,6 +677,40 @@ def snapshot_disk(
cast_to=DevboxSnapshotView,
)

def suspend(
self,
id: str,
*,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> DevboxView:
"""Suspend a devbox by id.

This will take the devbox out of service.

Args:
extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not id:
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
return self._post(
f"/v1/devboxes/{id}/suspend",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=DevboxView,
)

def upload_file(
self,
id: str,
Expand Down Expand Up @@ -948,6 +1049,39 @@ async def create_ssh_key(
cast_to=DevboxCreateSSHKeyResponse,
)

async def create_tunnel(
self,
id: str,
*,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> DevboxTunnelView:
"""
Create a tunnel to an available port on the Devbox.

Args:
extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not id:
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
return await self._post(
f"/v1/devboxes/{id}/create_tunnel",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=DevboxTunnelView,
)

async def disk_snapshots(
self,
*,
Expand Down Expand Up @@ -1164,6 +1298,39 @@ async def read_file_contents(
cast_to=str,
)

async def resume(
self,
id: str,
*,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> DevboxView:
"""
Resume a suspended devbox by id.

Args:
extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not id:
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
return await self._post(
f"/v1/devboxes/{id}/resume",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=DevboxView,
)

async def shutdown(
self,
id: str,
Expand Down Expand Up @@ -1244,6 +1411,40 @@ async def snapshot_disk(
cast_to=DevboxSnapshotView,
)

async def suspend(
self,
id: str,
*,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
) -> DevboxView:
"""Suspend a devbox by id.

This will take the devbox out of service.

Args:
extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not id:
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
return await self._post(
f"/v1/devboxes/{id}/suspend",
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=DevboxView,
)

async def upload_file(
self,
id: str,
Expand Down Expand Up @@ -1355,6 +1556,9 @@ def __init__(self, devboxes: DevboxesResource) -> None:
self.create_ssh_key = to_raw_response_wrapper(
devboxes.create_ssh_key,
)
self.create_tunnel = to_raw_response_wrapper(
devboxes.create_tunnel,
)
self.disk_snapshots = to_raw_response_wrapper(
devboxes.disk_snapshots,
)
Expand All @@ -1371,12 +1575,18 @@ def __init__(self, devboxes: DevboxesResource) -> None:
self.read_file_contents = to_raw_response_wrapper(
devboxes.read_file_contents,
)
self.resume = to_raw_response_wrapper(
devboxes.resume,
)
self.shutdown = to_raw_response_wrapper(
devboxes.shutdown,
)
self.snapshot_disk = to_raw_response_wrapper(
devboxes.snapshot_disk,
)
self.suspend = to_raw_response_wrapper(
devboxes.suspend,
)
self.upload_file = to_raw_response_wrapper(
devboxes.upload_file,
)
Expand Down Expand Up @@ -1409,6 +1619,9 @@ def __init__(self, devboxes: AsyncDevboxesResource) -> None:
self.create_ssh_key = async_to_raw_response_wrapper(
devboxes.create_ssh_key,
)
self.create_tunnel = async_to_raw_response_wrapper(
devboxes.create_tunnel,
)
self.disk_snapshots = async_to_raw_response_wrapper(
devboxes.disk_snapshots,
)
Expand All @@ -1425,12 +1638,18 @@ def __init__(self, devboxes: AsyncDevboxesResource) -> None:
self.read_file_contents = async_to_raw_response_wrapper(
devboxes.read_file_contents,
)
self.resume = async_to_raw_response_wrapper(
devboxes.resume,
)
self.shutdown = async_to_raw_response_wrapper(
devboxes.shutdown,
)
self.snapshot_disk = async_to_raw_response_wrapper(
devboxes.snapshot_disk,
)
self.suspend = async_to_raw_response_wrapper(
devboxes.suspend,
)
self.upload_file = async_to_raw_response_wrapper(
devboxes.upload_file,
)
Expand Down Expand Up @@ -1463,6 +1682,9 @@ def __init__(self, devboxes: DevboxesResource) -> None:
self.create_ssh_key = to_streamed_response_wrapper(
devboxes.create_ssh_key,
)
self.create_tunnel = to_streamed_response_wrapper(
devboxes.create_tunnel,
)
self.disk_snapshots = to_streamed_response_wrapper(
devboxes.disk_snapshots,
)
Expand All @@ -1479,12 +1701,18 @@ def __init__(self, devboxes: DevboxesResource) -> None:
self.read_file_contents = to_streamed_response_wrapper(
devboxes.read_file_contents,
)
self.resume = to_streamed_response_wrapper(
devboxes.resume,
)
self.shutdown = to_streamed_response_wrapper(
devboxes.shutdown,
)
self.snapshot_disk = to_streamed_response_wrapper(
devboxes.snapshot_disk,
)
self.suspend = to_streamed_response_wrapper(
devboxes.suspend,
)
self.upload_file = to_streamed_response_wrapper(
devboxes.upload_file,
)
Expand Down Expand Up @@ -1517,6 +1745,9 @@ def __init__(self, devboxes: AsyncDevboxesResource) -> None:
self.create_ssh_key = async_to_streamed_response_wrapper(
devboxes.create_ssh_key,
)
self.create_tunnel = async_to_streamed_response_wrapper(
devboxes.create_tunnel,
)
self.disk_snapshots = async_to_streamed_response_wrapper(
devboxes.disk_snapshots,
)
Expand All @@ -1533,12 +1764,18 @@ def __init__(self, devboxes: AsyncDevboxesResource) -> None:
self.read_file_contents = async_to_streamed_response_wrapper(
devboxes.read_file_contents,
)
self.resume = async_to_streamed_response_wrapper(
devboxes.resume,
)
self.shutdown = async_to_streamed_response_wrapper(
devboxes.shutdown,
)
self.snapshot_disk = async_to_streamed_response_wrapper(
devboxes.snapshot_disk,
)
self.suspend = async_to_streamed_response_wrapper(
devboxes.suspend,
)
self.upload_file = async_to_streamed_response_wrapper(
devboxes.upload_file,
)
Expand Down
Loading