Skip to content

Commit 0f1ce28

Browse files
feat(api): api update (#540)
1 parent ecd4acd commit 0f1ce28

34 files changed

+1513
-126
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
configured_endpoints: 73
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-a6925284ea7678ed801dbaf6b5c60676b97ab7a16191c1b2ff8ef6a468e89f3b.yml
1+
configured_endpoints: 77
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-a3d91c690527ff6a9040ade46943ba56916987f1f7d1fb45a9974546770ffe97.yml

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ Error codes are as follows:
179179

180180
### Retries
181181

182-
Certain errors are automatically retried 2 times by default, with a short exponential backoff.
182+
Certain errors are automatically retried 0 times by default, with a short exponential backoff.
183183
Connection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,
184184
429 Rate Limit, and >=500 Internal errors are all retried by default.
185185

api.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ Methods:
8383

8484
- <code title="post /v1/devboxes">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">create</a>(\*\*<a href="src/runloop_api_client/types/devbox_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
8585
- <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>
86+
- <code title="post /v1/devboxes/{id}">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">update</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_update_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
8687
- <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_view.py">SyncDevboxesCursorIDPage[DevboxView]</a></code>
8788
- <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>
8889
- <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_create_tunnel_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_tunnel_view.py">DevboxTunnelView</a></code>
@@ -101,6 +102,20 @@ Methods:
101102
- <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>
102103
- <code title="post /v1/devboxes/{id}/write_file_contents">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">write_file_contents</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_write_file_contents_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
103104

105+
## DiskSnapshots
106+
107+
Types:
108+
109+
```python
110+
from runloop_api_client.types.devboxes import DiskSnapshotDeleteResponse
111+
```
112+
113+
Methods:
114+
115+
- <code title="post /v1/devboxes/disk_snapshots/{id}">client.devboxes.disk_snapshots.<a href="./src/runloop_api_client/resources/devboxes/disk_snapshots.py">update</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_snapshot_view.py">DevboxSnapshotView</a></code>
116+
- <code title="get /v1/devboxes/disk_snapshots">client.devboxes.disk_snapshots.<a href="./src/runloop_api_client/resources/devboxes/disk_snapshots.py">list</a>(\*\*<a href="src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_snapshot_view.py">SyncDiskSnapshotsCursorIDPage[DevboxSnapshotView]</a></code>
117+
- <code title="post /v1/devboxes/disk_snapshots/{id}/delete">client.devboxes.disk_snapshots.<a href="./src/runloop_api_client/resources/devboxes/disk_snapshots.py">delete</a>(id) -> <a href="./src/runloop_api_client/types/devboxes/disk_snapshot_delete_response.py">object</a></code>
118+
104119
## Browsers
105120

106121
Types:
@@ -112,6 +127,7 @@ from runloop_api_client.types.devboxes import BrowserView
112127
Methods:
113128

114129
- <code title="post /v1/devboxes/browsers">client.devboxes.browsers.<a href="./src/runloop_api_client/resources/devboxes/browsers.py">create</a>(\*\*<a href="src/runloop_api_client/types/devboxes/browser_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/browser_view.py">BrowserView</a></code>
130+
- <code title="get /v1/devboxes/browsers/{id}">client.devboxes.browsers.<a href="./src/runloop_api_client/resources/devboxes/browsers.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/devboxes/browser_view.py">BrowserView</a></code>
115131

116132
## Computers
117133

@@ -129,6 +145,7 @@ from runloop_api_client.types.devboxes import (
129145
Methods:
130146

131147
- <code title="post /v1/devboxes/computers">client.devboxes.computers.<a href="./src/runloop_api_client/resources/devboxes/computers.py">create</a>(\*\*<a href="src/runloop_api_client/types/devboxes/computer_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/computer_view.py">ComputerView</a></code>
148+
- <code title="get /v1/devboxes/computers/{id}">client.devboxes.computers.<a href="./src/runloop_api_client/resources/devboxes/computers.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/devboxes/computer_view.py">ComputerView</a></code>
132149
- <code title="post /v1/devboxes/computers/{id}/keyboard_interaction">client.devboxes.computers.<a href="./src/runloop_api_client/resources/devboxes/computers.py">keyboard_interaction</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py">ComputerKeyboardInteractionResponse</a></code>
133150
- <code title="post /v1/devboxes/computers/{id}/mouse_interaction">client.devboxes.computers.<a href="./src/runloop_api_client/resources/devboxes/computers.py">mouse_interaction</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py">ComputerMouseInteractionResponse</a></code>
134151
- <code title="post /v1/devboxes/computers/{id}/screen_interaction">client.devboxes.computers.<a href="./src/runloop_api_client/resources/devboxes/computers.py">screen_interaction</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py">ComputerScreenInteractionResponse</a></code>
@@ -163,6 +180,7 @@ from runloop_api_client.types.devboxes import (
163180
DiagnosticSeverity,
164181
DiagnosticsResponse,
165182
DiagnosticTag,
183+
DocumentSymbol,
166184
DocumentSymbolResponse,
167185
DocumentUri,
168186
FileContentsResponse,

src/runloop_api_client/_constants.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
# default timeout is 1 minute
99
DEFAULT_TIMEOUT = httpx.Timeout(timeout=60, connect=5.0)
10-
DEFAULT_MAX_RETRIES = 2
10+
DEFAULT_MAX_RETRIES = 0
1111
DEFAULT_CONNECTION_LIMITS = httpx.Limits(max_connections=100, max_keepalive_connections=20)
1212

13-
INITIAL_RETRY_DELAY = 0.5
14-
MAX_RETRY_DELAY = 8.0
13+
INITIAL_RETRY_DELAY = 1.0
14+
MAX_RETRY_DELAY = 10.0

src/runloop_api_client/resources/devboxes/__init__.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,22 @@
4848
ExecutionsResourceWithStreamingResponse,
4949
AsyncExecutionsResourceWithStreamingResponse,
5050
)
51+
from .disk_snapshots import (
52+
DiskSnapshotsResource,
53+
AsyncDiskSnapshotsResource,
54+
DiskSnapshotsResourceWithRawResponse,
55+
AsyncDiskSnapshotsResourceWithRawResponse,
56+
DiskSnapshotsResourceWithStreamingResponse,
57+
AsyncDiskSnapshotsResourceWithStreamingResponse,
58+
)
5159

5260
__all__ = [
61+
"DiskSnapshotsResource",
62+
"AsyncDiskSnapshotsResource",
63+
"DiskSnapshotsResourceWithRawResponse",
64+
"AsyncDiskSnapshotsResourceWithRawResponse",
65+
"DiskSnapshotsResourceWithStreamingResponse",
66+
"AsyncDiskSnapshotsResourceWithStreamingResponse",
5367
"BrowsersResource",
5468
"AsyncBrowsersResource",
5569
"BrowsersResourceWithRawResponse",

src/runloop_api_client/resources/devboxes/browsers.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,39 @@ def create(
9090
cast_to=BrowserView,
9191
)
9292

93+
def retrieve(
94+
self,
95+
id: str,
96+
*,
97+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
98+
# The extra values given here take precedence over values defined on the client or passed to this method.
99+
extra_headers: Headers | None = None,
100+
extra_query: Query | None = None,
101+
extra_body: Body | None = None,
102+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
103+
) -> BrowserView:
104+
"""
105+
Get Browser Details.
106+
107+
Args:
108+
extra_headers: Send extra headers
109+
110+
extra_query: Add additional query parameters to the request
111+
112+
extra_body: Add additional JSON properties to the request
113+
114+
timeout: Override the client-level default timeout for this request, in seconds
115+
"""
116+
if not id:
117+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
118+
return self._get(
119+
f"/v1/devboxes/browsers/{id}",
120+
options=make_request_options(
121+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
122+
),
123+
cast_to=BrowserView,
124+
)
125+
93126

94127
class AsyncBrowsersResource(AsyncAPIResource):
95128
@cached_property
@@ -155,6 +188,39 @@ async def create(
155188
cast_to=BrowserView,
156189
)
157190

191+
async def retrieve(
192+
self,
193+
id: str,
194+
*,
195+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
196+
# The extra values given here take precedence over values defined on the client or passed to this method.
197+
extra_headers: Headers | None = None,
198+
extra_query: Query | None = None,
199+
extra_body: Body | None = None,
200+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
201+
) -> BrowserView:
202+
"""
203+
Get Browser Details.
204+
205+
Args:
206+
extra_headers: Send extra headers
207+
208+
extra_query: Add additional query parameters to the request
209+
210+
extra_body: Add additional JSON properties to the request
211+
212+
timeout: Override the client-level default timeout for this request, in seconds
213+
"""
214+
if not id:
215+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
216+
return await self._get(
217+
f"/v1/devboxes/browsers/{id}",
218+
options=make_request_options(
219+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
220+
),
221+
cast_to=BrowserView,
222+
)
223+
158224

159225
class BrowsersResourceWithRawResponse:
160226
def __init__(self, browsers: BrowsersResource) -> None:
@@ -163,6 +229,9 @@ def __init__(self, browsers: BrowsersResource) -> None:
163229
self.create = to_raw_response_wrapper(
164230
browsers.create,
165231
)
232+
self.retrieve = to_raw_response_wrapper(
233+
browsers.retrieve,
234+
)
166235

167236

168237
class AsyncBrowsersResourceWithRawResponse:
@@ -172,6 +241,9 @@ def __init__(self, browsers: AsyncBrowsersResource) -> None:
172241
self.create = async_to_raw_response_wrapper(
173242
browsers.create,
174243
)
244+
self.retrieve = async_to_raw_response_wrapper(
245+
browsers.retrieve,
246+
)
175247

176248

177249
class BrowsersResourceWithStreamingResponse:
@@ -181,6 +253,9 @@ def __init__(self, browsers: BrowsersResource) -> None:
181253
self.create = to_streamed_response_wrapper(
182254
browsers.create,
183255
)
256+
self.retrieve = to_streamed_response_wrapper(
257+
browsers.retrieve,
258+
)
184259

185260

186261
class AsyncBrowsersResourceWithStreamingResponse:
@@ -190,3 +265,6 @@ def __init__(self, browsers: AsyncBrowsersResource) -> None:
190265
self.create = async_to_streamed_response_wrapper(
191266
browsers.create,
192267
)
268+
self.retrieve = async_to_streamed_response_wrapper(
269+
browsers.retrieve,
270+
)

src/runloop_api_client/resources/devboxes/computers.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,39 @@ def create(
110110
cast_to=ComputerView,
111111
)
112112

113+
def retrieve(
114+
self,
115+
id: str,
116+
*,
117+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
118+
# The extra values given here take precedence over values defined on the client or passed to this method.
119+
extra_headers: Headers | None = None,
120+
extra_query: Query | None = None,
121+
extra_body: Body | None = None,
122+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
123+
) -> ComputerView:
124+
"""
125+
Get Computer Details.
126+
127+
Args:
128+
extra_headers: Send extra headers
129+
130+
extra_query: Add additional query parameters to the request
131+
132+
extra_body: Add additional JSON properties to the request
133+
134+
timeout: Override the client-level default timeout for this request, in seconds
135+
"""
136+
if not id:
137+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
138+
return self._get(
139+
f"/v1/devboxes/computers/{id}",
140+
options=make_request_options(
141+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
142+
),
143+
cast_to=ComputerView,
144+
)
145+
113146
def keyboard_interaction(
114147
self,
115148
id: str,
@@ -343,6 +376,39 @@ async def create(
343376
cast_to=ComputerView,
344377
)
345378

379+
async def retrieve(
380+
self,
381+
id: str,
382+
*,
383+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
384+
# The extra values given here take precedence over values defined on the client or passed to this method.
385+
extra_headers: Headers | None = None,
386+
extra_query: Query | None = None,
387+
extra_body: Body | None = None,
388+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
389+
) -> ComputerView:
390+
"""
391+
Get Computer Details.
392+
393+
Args:
394+
extra_headers: Send extra headers
395+
396+
extra_query: Add additional query parameters to the request
397+
398+
extra_body: Add additional JSON properties to the request
399+
400+
timeout: Override the client-level default timeout for this request, in seconds
401+
"""
402+
if not id:
403+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
404+
return await self._get(
405+
f"/v1/devboxes/computers/{id}",
406+
options=make_request_options(
407+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
408+
),
409+
cast_to=ComputerView,
410+
)
411+
346412
async def keyboard_interaction(
347413
self,
348414
id: str,
@@ -508,6 +574,9 @@ def __init__(self, computers: ComputersResource) -> None:
508574
self.create = to_raw_response_wrapper(
509575
computers.create,
510576
)
577+
self.retrieve = to_raw_response_wrapper(
578+
computers.retrieve,
579+
)
511580
self.keyboard_interaction = to_raw_response_wrapper(
512581
computers.keyboard_interaction,
513582
)
@@ -526,6 +595,9 @@ def __init__(self, computers: AsyncComputersResource) -> None:
526595
self.create = async_to_raw_response_wrapper(
527596
computers.create,
528597
)
598+
self.retrieve = async_to_raw_response_wrapper(
599+
computers.retrieve,
600+
)
529601
self.keyboard_interaction = async_to_raw_response_wrapper(
530602
computers.keyboard_interaction,
531603
)
@@ -544,6 +616,9 @@ def __init__(self, computers: ComputersResource) -> None:
544616
self.create = to_streamed_response_wrapper(
545617
computers.create,
546618
)
619+
self.retrieve = to_streamed_response_wrapper(
620+
computers.retrieve,
621+
)
547622
self.keyboard_interaction = to_streamed_response_wrapper(
548623
computers.keyboard_interaction,
549624
)
@@ -562,6 +637,9 @@ def __init__(self, computers: AsyncComputersResource) -> None:
562637
self.create = async_to_streamed_response_wrapper(
563638
computers.create,
564639
)
640+
self.retrieve = async_to_streamed_response_wrapper(
641+
computers.retrieve,
642+
)
565643
self.keyboard_interaction = async_to_streamed_response_wrapper(
566644
computers.keyboard_interaction,
567645
)

0 commit comments

Comments
 (0)