Skip to content

Commit 4a8f812

Browse files
feat(api): update via SDK Studio
1 parent 260f1a2 commit 4a8f812

File tree

12 files changed

+526
-31
lines changed

12 files changed

+526
-31
lines changed

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 7
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-2813f659cb4e9e81cd3d9c94df748fd6c54f966fd6fd4881da369394aa981ace.yml
3-
openapi_spec_hash: facb760f50156c700b5c016087a70d64
4-
config_hash: 3eb1ed1dd0067258984b31d53a0dab48
1+
configured_endpoints: 10
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-ffefc234d11c041cadab66fa6e7c379cebbd9422d38f2b1b1019e425ae19bbd8.yml
3+
openapi_spec_hash: aa04a371ff95b44847450d657ad0a920
4+
config_hash: f33cc77a9c01e879ad127194c897a988

api.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,18 @@ Methods:
4141
Types:
4242

4343
```python
44-
from kernel.types import BrowserCreateResponse, BrowserRetrieveResponse
44+
from kernel.types import (
45+
BrowserPersistence,
46+
BrowserCreateResponse,
47+
BrowserRetrieveResponse,
48+
BrowserListResponse,
49+
)
4550
```
4651

4752
Methods:
4853

4954
- <code title="post /browsers">client.browsers.<a href="./src/kernel/resources/browsers.py">create</a>(\*\*<a href="src/kernel/types/browser_create_params.py">params</a>) -> <a href="./src/kernel/types/browser_create_response.py">BrowserCreateResponse</a></code>
5055
- <code title="get /browsers/{id}">client.browsers.<a href="./src/kernel/resources/browsers.py">retrieve</a>(id) -> <a href="./src/kernel/types/browser_retrieve_response.py">BrowserRetrieveResponse</a></code>
56+
- <code title="get /browsers">client.browsers.<a href="./src/kernel/resources/browsers.py">list</a>() -> <a href="./src/kernel/types/browser_list_response.py">BrowserListResponse</a></code>
57+
- <code title="delete /browsers">client.browsers.<a href="./src/kernel/resources/browsers.py">delete</a>(\*\*<a href="src/kernel/types/browser_delete_params.py">params</a>) -> None</code>
58+
- <code title="delete /browsers/{id}">client.browsers.<a href="./src/kernel/resources/browsers.py">delete_by_id</a>(id) -> None</code>

src/kernel/resources/browsers.py

Lines changed: 226 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
import httpx
66

7-
from ..types import browser_create_params
8-
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
7+
from ..types import browser_create_params, browser_delete_params
8+
from .._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
99
from .._utils import maybe_transform, async_maybe_transform
1010
from .._compat import cached_property
1111
from .._resource import SyncAPIResource, AsyncAPIResource
@@ -16,7 +16,9 @@
1616
async_to_streamed_response_wrapper,
1717
)
1818
from .._base_client import make_request_options
19+
from ..types.browser_list_response import BrowserListResponse
1920
from ..types.browser_create_response import BrowserCreateResponse
21+
from ..types.browser_persistence_param import BrowserPersistenceParam
2022
from ..types.browser_retrieve_response import BrowserRetrieveResponse
2123

2224
__all__ = ["BrowsersResource", "AsyncBrowsersResource"]
@@ -46,7 +48,7 @@ def create(
4648
self,
4749
*,
4850
invocation_id: str,
49-
persistence: browser_create_params.Persistence | NotGiven = NOT_GIVEN,
51+
persistence: BrowserPersistenceParam | NotGiven = NOT_GIVEN,
5052
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
5153
# The extra values given here take precedence over values defined on the client or passed to this method.
5254
extra_headers: Headers | None = None,
@@ -118,6 +120,97 @@ def retrieve(
118120
cast_to=BrowserRetrieveResponse,
119121
)
120122

123+
def list(
124+
self,
125+
*,
126+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
127+
# The extra values given here take precedence over values defined on the client or passed to this method.
128+
extra_headers: Headers | None = None,
129+
extra_query: Query | None = None,
130+
extra_body: Body | None = None,
131+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
132+
) -> BrowserListResponse:
133+
"""List active browser sessions for the authenticated user"""
134+
return self._get(
135+
"/browsers",
136+
options=make_request_options(
137+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
138+
),
139+
cast_to=BrowserListResponse,
140+
)
141+
142+
def delete(
143+
self,
144+
*,
145+
persistent_id: str,
146+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
147+
# The extra values given here take precedence over values defined on the client or passed to this method.
148+
extra_headers: Headers | None = None,
149+
extra_query: Query | None = None,
150+
extra_body: Body | None = None,
151+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
152+
) -> None:
153+
"""
154+
Delete a persistent browser session by persistent_id query parameter.
155+
156+
Args:
157+
persistent_id: Persistent browser identifier
158+
159+
extra_headers: Send extra headers
160+
161+
extra_query: Add additional query parameters to the request
162+
163+
extra_body: Add additional JSON properties to the request
164+
165+
timeout: Override the client-level default timeout for this request, in seconds
166+
"""
167+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
168+
return self._delete(
169+
"/browsers",
170+
options=make_request_options(
171+
extra_headers=extra_headers,
172+
extra_query=extra_query,
173+
extra_body=extra_body,
174+
timeout=timeout,
175+
query=maybe_transform({"persistent_id": persistent_id}, browser_delete_params.BrowserDeleteParams),
176+
),
177+
cast_to=NoneType,
178+
)
179+
180+
def delete_by_id(
181+
self,
182+
id: str,
183+
*,
184+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
185+
# The extra values given here take precedence over values defined on the client or passed to this method.
186+
extra_headers: Headers | None = None,
187+
extra_query: Query | None = None,
188+
extra_body: Body | None = None,
189+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
190+
) -> None:
191+
"""
192+
Delete Browser Session by ID
193+
194+
Args:
195+
extra_headers: Send extra headers
196+
197+
extra_query: Add additional query parameters to the request
198+
199+
extra_body: Add additional JSON properties to the request
200+
201+
timeout: Override the client-level default timeout for this request, in seconds
202+
"""
203+
if not id:
204+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
205+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
206+
return self._delete(
207+
f"/browsers/{id}",
208+
options=make_request_options(
209+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
210+
),
211+
cast_to=NoneType,
212+
)
213+
121214

122215
class AsyncBrowsersResource(AsyncAPIResource):
123216
@cached_property
@@ -143,7 +236,7 @@ async def create(
143236
self,
144237
*,
145238
invocation_id: str,
146-
persistence: browser_create_params.Persistence | NotGiven = NOT_GIVEN,
239+
persistence: BrowserPersistenceParam | NotGiven = NOT_GIVEN,
147240
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
148241
# The extra values given here take precedence over values defined on the client or passed to this method.
149242
extra_headers: Headers | None = None,
@@ -215,6 +308,99 @@ async def retrieve(
215308
cast_to=BrowserRetrieveResponse,
216309
)
217310

311+
async def list(
312+
self,
313+
*,
314+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
315+
# The extra values given here take precedence over values defined on the client or passed to this method.
316+
extra_headers: Headers | None = None,
317+
extra_query: Query | None = None,
318+
extra_body: Body | None = None,
319+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
320+
) -> BrowserListResponse:
321+
"""List active browser sessions for the authenticated user"""
322+
return await self._get(
323+
"/browsers",
324+
options=make_request_options(
325+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
326+
),
327+
cast_to=BrowserListResponse,
328+
)
329+
330+
async def delete(
331+
self,
332+
*,
333+
persistent_id: str,
334+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
335+
# The extra values given here take precedence over values defined on the client or passed to this method.
336+
extra_headers: Headers | None = None,
337+
extra_query: Query | None = None,
338+
extra_body: Body | None = None,
339+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
340+
) -> None:
341+
"""
342+
Delete a persistent browser session by persistent_id query parameter.
343+
344+
Args:
345+
persistent_id: Persistent browser identifier
346+
347+
extra_headers: Send extra headers
348+
349+
extra_query: Add additional query parameters to the request
350+
351+
extra_body: Add additional JSON properties to the request
352+
353+
timeout: Override the client-level default timeout for this request, in seconds
354+
"""
355+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
356+
return await self._delete(
357+
"/browsers",
358+
options=make_request_options(
359+
extra_headers=extra_headers,
360+
extra_query=extra_query,
361+
extra_body=extra_body,
362+
timeout=timeout,
363+
query=await async_maybe_transform(
364+
{"persistent_id": persistent_id}, browser_delete_params.BrowserDeleteParams
365+
),
366+
),
367+
cast_to=NoneType,
368+
)
369+
370+
async def delete_by_id(
371+
self,
372+
id: str,
373+
*,
374+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
375+
# The extra values given here take precedence over values defined on the client or passed to this method.
376+
extra_headers: Headers | None = None,
377+
extra_query: Query | None = None,
378+
extra_body: Body | None = None,
379+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
380+
) -> None:
381+
"""
382+
Delete Browser Session by ID
383+
384+
Args:
385+
extra_headers: Send extra headers
386+
387+
extra_query: Add additional query parameters to the request
388+
389+
extra_body: Add additional JSON properties to the request
390+
391+
timeout: Override the client-level default timeout for this request, in seconds
392+
"""
393+
if not id:
394+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
395+
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
396+
return await self._delete(
397+
f"/browsers/{id}",
398+
options=make_request_options(
399+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
400+
),
401+
cast_to=NoneType,
402+
)
403+
218404

219405
class BrowsersResourceWithRawResponse:
220406
def __init__(self, browsers: BrowsersResource) -> None:
@@ -226,6 +412,15 @@ def __init__(self, browsers: BrowsersResource) -> None:
226412
self.retrieve = to_raw_response_wrapper(
227413
browsers.retrieve,
228414
)
415+
self.list = to_raw_response_wrapper(
416+
browsers.list,
417+
)
418+
self.delete = to_raw_response_wrapper(
419+
browsers.delete,
420+
)
421+
self.delete_by_id = to_raw_response_wrapper(
422+
browsers.delete_by_id,
423+
)
229424

230425

231426
class AsyncBrowsersResourceWithRawResponse:
@@ -238,6 +433,15 @@ def __init__(self, browsers: AsyncBrowsersResource) -> None:
238433
self.retrieve = async_to_raw_response_wrapper(
239434
browsers.retrieve,
240435
)
436+
self.list = async_to_raw_response_wrapper(
437+
browsers.list,
438+
)
439+
self.delete = async_to_raw_response_wrapper(
440+
browsers.delete,
441+
)
442+
self.delete_by_id = async_to_raw_response_wrapper(
443+
browsers.delete_by_id,
444+
)
241445

242446

243447
class BrowsersResourceWithStreamingResponse:
@@ -250,6 +454,15 @@ def __init__(self, browsers: BrowsersResource) -> None:
250454
self.retrieve = to_streamed_response_wrapper(
251455
browsers.retrieve,
252456
)
457+
self.list = to_streamed_response_wrapper(
458+
browsers.list,
459+
)
460+
self.delete = to_streamed_response_wrapper(
461+
browsers.delete,
462+
)
463+
self.delete_by_id = to_streamed_response_wrapper(
464+
browsers.delete_by_id,
465+
)
253466

254467

255468
class AsyncBrowsersResourceWithStreamingResponse:
@@ -262,3 +475,12 @@ def __init__(self, browsers: AsyncBrowsersResource) -> None:
262475
self.retrieve = async_to_streamed_response_wrapper(
263476
browsers.retrieve,
264477
)
478+
self.list = async_to_streamed_response_wrapper(
479+
browsers.list,
480+
)
481+
self.delete = async_to_streamed_response_wrapper(
482+
browsers.delete,
483+
)
484+
self.delete_by_id = async_to_streamed_response_wrapper(
485+
browsers.delete_by_id,
486+
)

src/kernel/types/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44

55
from .app_list_params import AppListParams as AppListParams
66
from .app_list_response import AppListResponse as AppListResponse
7+
from .browser_persistence import BrowserPersistence as BrowserPersistence
78
from .browser_create_params import BrowserCreateParams as BrowserCreateParams
9+
from .browser_delete_params import BrowserDeleteParams as BrowserDeleteParams
10+
from .browser_list_response import BrowserListResponse as BrowserListResponse
811
from .browser_create_response import BrowserCreateResponse as BrowserCreateResponse
12+
from .browser_persistence_param import BrowserPersistenceParam as BrowserPersistenceParam
913
from .browser_retrieve_response import BrowserRetrieveResponse as BrowserRetrieveResponse

src/kernel/types/browser_create_params.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,14 @@
44

55
from typing_extensions import Required, TypedDict
66

7-
__all__ = ["BrowserCreateParams", "Persistence"]
7+
from .browser_persistence_param import BrowserPersistenceParam
8+
9+
__all__ = ["BrowserCreateParams"]
810

911

1012
class BrowserCreateParams(TypedDict, total=False):
1113
invocation_id: Required[str]
1214
"""action invocation ID"""
1315

14-
persistence: Persistence
16+
persistence: BrowserPersistenceParam
1517
"""Optional persistence configuration for the browser session."""
16-
17-
18-
class Persistence(TypedDict, total=False):
19-
id: Required[str]
20-
"""Unique identifier for the persistent browser session."""

src/kernel/types/browser_create_response.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,9 @@
33
from typing import Optional
44

55
from .._models import BaseModel
6+
from .browser_persistence import BrowserPersistence
67

7-
__all__ = ["BrowserCreateResponse", "Persistence"]
8-
9-
10-
class Persistence(BaseModel):
11-
id: str
12-
"""Unique identifier for the persistent browser session."""
8+
__all__ = ["BrowserCreateResponse"]
139

1410

1511
class BrowserCreateResponse(BaseModel):
@@ -22,5 +18,5 @@ class BrowserCreateResponse(BaseModel):
2218
session_id: str
2319
"""Unique identifier for the browser session"""
2420

25-
persistence: Optional[Persistence] = None
21+
persistence: Optional[BrowserPersistence] = None
2622
"""Optional persistence configuration for the browser session."""
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from __future__ import annotations
4+
5+
from typing_extensions import Required, TypedDict
6+
7+
__all__ = ["BrowserDeleteParams"]
8+
9+
10+
class BrowserDeleteParams(TypedDict, total=False):
11+
persistent_id: Required[str]
12+
"""Persistent browser identifier"""

0 commit comments

Comments
 (0)