From 5cf6a4a5ba6f63105342da3154c81a4da3868736 Mon Sep 17 00:00:00 2001
From: "stainless-app[bot]"
<142633134+stainless-app[bot]@users.noreply.github.com>
Date: Mon, 10 Mar 2025 22:23:15 +0000
Subject: [PATCH] feat(api): api update
---
.stats.yml | 2 +-
api.md | 10 ++-
.../resources/sessions/sessions.py | 9 +--
src/browserbase/types/__init__.py | 1 +
.../types/session_retrieve_response.py | 64 +++++++++++++++++++
tests/api_resources/test_sessions.py | 13 ++--
6 files changed, 86 insertions(+), 13 deletions(-)
create mode 100644 src/browserbase/types/session_retrieve_response.py
diff --git a/.stats.yml b/.stats.yml
index be07776..86eb81b 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,2 +1,2 @@
configured_endpoints: 18
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fbrowserbase-396a2b9092f645c5a9e46a1f3be8c2e45ca9ae079e1d39761eb0a73f56e24b15.yml
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/browserbase%2Fbrowserbase-a42637317cf43a3f4dacf3b88ac09b86e41d4dc44c51140aa92cef99b5d0c02a.yml
diff --git a/api.md b/api.md
index 3f21eb2..dbb776f 100644
--- a/api.md
+++ b/api.md
@@ -45,13 +45,19 @@ Methods:
Types:
```python
-from browserbase.types import Session, SessionLiveURLs, SessionCreateResponse, SessionListResponse
+from browserbase.types import (
+ Session,
+ SessionLiveURLs,
+ SessionCreateResponse,
+ SessionRetrieveResponse,
+ SessionListResponse,
+)
```
Methods:
- client.sessions.create(\*\*params) -> SessionCreateResponse
-- client.sessions.retrieve(id) -> Session
+- client.sessions.retrieve(id) -> SessionRetrieveResponse
- client.sessions.update(id, \*\*params) -> Session
- client.sessions.list(\*\*params) -> SessionListResponse
- client.sessions.debug(id) -> SessionLiveURLs
diff --git a/src/browserbase/resources/sessions/sessions.py b/src/browserbase/resources/sessions/sessions.py
index 0572d91..c1710e2 100644
--- a/src/browserbase/resources/sessions/sessions.py
+++ b/src/browserbase/resources/sessions/sessions.py
@@ -58,6 +58,7 @@
from ...types.session_live_urls import SessionLiveURLs
from ...types.session_list_response import SessionListResponse
from ...types.session_create_response import SessionCreateResponse
+from ...types.session_retrieve_response import SessionRetrieveResponse
__all__ = ["SessionsResource", "AsyncSessionsResource"]
@@ -180,7 +181,7 @@ def retrieve(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Session:
+ ) -> SessionRetrieveResponse:
"""
Session
@@ -200,7 +201,7 @@ def retrieve(
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=Session,
+ cast_to=SessionRetrieveResponse,
)
def update(
@@ -451,7 +452,7 @@ async def retrieve(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> Session:
+ ) -> SessionRetrieveResponse:
"""
Session
@@ -471,7 +472,7 @@ async def retrieve(
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- cast_to=Session,
+ cast_to=SessionRetrieveResponse,
)
async def update(
diff --git a/src/browserbase/types/__init__.py b/src/browserbase/types/__init__.py
index ebc243d..4dd85dd 100644
--- a/src/browserbase/types/__init__.py
+++ b/src/browserbase/types/__init__.py
@@ -18,3 +18,4 @@
from .context_update_response import ContextUpdateResponse as ContextUpdateResponse
from .extension_create_params import ExtensionCreateParams as ExtensionCreateParams
from .session_create_response import SessionCreateResponse as SessionCreateResponse
+from .session_retrieve_response import SessionRetrieveResponse as SessionRetrieveResponse
diff --git a/src/browserbase/types/session_retrieve_response.py b/src/browserbase/types/session_retrieve_response.py
new file mode 100644
index 0000000..a9a4ff2
--- /dev/null
+++ b/src/browserbase/types/session_retrieve_response.py
@@ -0,0 +1,64 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import Dict, Optional
+from datetime import datetime
+from typing_extensions import Literal
+
+from pydantic import Field as FieldInfo
+
+from .._models import BaseModel
+
+__all__ = ["SessionRetrieveResponse"]
+
+
+class SessionRetrieveResponse(BaseModel):
+ id: str
+
+ created_at: datetime = FieldInfo(alias="createdAt")
+
+ expires_at: datetime = FieldInfo(alias="expiresAt")
+
+ keep_alive: bool = FieldInfo(alias="keepAlive")
+ """Indicates if the Session was created to be kept alive upon disconnections"""
+
+ project_id: str = FieldInfo(alias="projectId")
+ """The Project ID linked to the Session."""
+
+ proxy_bytes: int = FieldInfo(alias="proxyBytes")
+ """Bytes used via the [Proxy](/features/stealth-mode#proxies-and-residential-ips)"""
+
+ region: Literal["us-west-2", "us-east-1", "eu-central-1", "ap-southeast-1"]
+ """The region where the Session is running."""
+
+ started_at: datetime = FieldInfo(alias="startedAt")
+
+ status: Literal["RUNNING", "ERROR", "TIMED_OUT", "COMPLETED"]
+
+ updated_at: datetime = FieldInfo(alias="updatedAt")
+
+ avg_cpu_usage: Optional[int] = FieldInfo(alias="avgCpuUsage", default=None)
+ """CPU used by the Session"""
+
+ connect_url: Optional[str] = FieldInfo(alias="connectUrl", default=None)
+ """WebSocket URL to connect to the Session."""
+
+ context_id: Optional[str] = FieldInfo(alias="contextId", default=None)
+ """Optional. The Context linked to the Session."""
+
+ ended_at: Optional[datetime] = FieldInfo(alias="endedAt", default=None)
+
+ memory_usage: Optional[int] = FieldInfo(alias="memoryUsage", default=None)
+ """Memory used by the Session"""
+
+ selenium_remote_url: Optional[str] = FieldInfo(alias="seleniumRemoteUrl", default=None)
+ """HTTP URL to connect to the Session."""
+
+ signing_key: Optional[str] = FieldInfo(alias="signingKey", default=None)
+ """Signing key to use when connecting to the Session via HTTP."""
+
+ user_metadata: Optional[Dict[str, object]] = FieldInfo(alias="userMetadata", default=None)
+ """Arbitrary user metadata to attach to the session.
+
+ To learn more about user metadata, see
+ [User Metadata](/features/sessions#user-metadata).
+ """
diff --git a/tests/api_resources/test_sessions.py b/tests/api_resources/test_sessions.py
index 482624f..853a591 100644
--- a/tests/api_resources/test_sessions.py
+++ b/tests/api_resources/test_sessions.py
@@ -14,6 +14,7 @@
SessionLiveURLs,
SessionListResponse,
SessionCreateResponse,
+ SessionRetrieveResponse,
)
base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
@@ -100,7 +101,7 @@ def test_method_retrieve(self, client: Browserbase) -> None:
session = client.sessions.retrieve(
"id",
)
- assert_matches_type(Session, session, path=["response"])
+ assert_matches_type(SessionRetrieveResponse, session, path=["response"])
@parametrize
def test_raw_response_retrieve(self, client: Browserbase) -> None:
@@ -111,7 +112,7 @@ def test_raw_response_retrieve(self, client: Browserbase) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
session = response.parse()
- assert_matches_type(Session, session, path=["response"])
+ assert_matches_type(SessionRetrieveResponse, session, path=["response"])
@parametrize
def test_streaming_response_retrieve(self, client: Browserbase) -> None:
@@ -122,7 +123,7 @@ def test_streaming_response_retrieve(self, client: Browserbase) -> None:
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
session = response.parse()
- assert_matches_type(Session, session, path=["response"])
+ assert_matches_type(SessionRetrieveResponse, session, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -332,7 +333,7 @@ async def test_method_retrieve(self, async_client: AsyncBrowserbase) -> None:
session = await async_client.sessions.retrieve(
"id",
)
- assert_matches_type(Session, session, path=["response"])
+ assert_matches_type(SessionRetrieveResponse, session, path=["response"])
@parametrize
async def test_raw_response_retrieve(self, async_client: AsyncBrowserbase) -> None:
@@ -343,7 +344,7 @@ async def test_raw_response_retrieve(self, async_client: AsyncBrowserbase) -> No
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
session = await response.parse()
- assert_matches_type(Session, session, path=["response"])
+ assert_matches_type(SessionRetrieveResponse, session, path=["response"])
@parametrize
async def test_streaming_response_retrieve(self, async_client: AsyncBrowserbase) -> None:
@@ -354,7 +355,7 @@ async def test_streaming_response_retrieve(self, async_client: AsyncBrowserbase)
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
session = await response.parse()
- assert_matches_type(Session, session, path=["response"])
+ assert_matches_type(SessionRetrieveResponse, session, path=["response"])
assert cast(Any, response.is_closed) is True