diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 86b0e83d7..cb9d2541c 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.21.0" + ".": "0.22.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 9d22ea0fc..abd9dea86 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 73 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-76f469266d2a329a84074f63a1e53c27bb78eb39c0585fe7790b082e1758c0c5.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-a6925284ea7678ed801dbaf6b5c60676b97ab7a16191c1b2ff8ef6a468e89f3b.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 85b08a7e7..3108be617 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.22.0 (2025-02-04) + +Full Changelog: [v0.21.0...v0.22.0](https://github.com/runloopai/api-client-python/compare/v0.21.0...v0.22.0) + +### Features + +* **api:** api update ([#531](https://github.com/runloopai/api-client-python/issues/531)) ([2952d8d](https://github.com/runloopai/api-client-python/commit/2952d8d3b2653fd02f1bf99ac3cb6e76739a282a)) + ## 0.21.0 (2025-02-04) Full Changelog: [v0.20.0...v0.21.0](https://github.com/runloopai/api-client-python/compare/v0.20.0...v0.21.0) diff --git a/api.md b/api.md index 18f2b224d..0595502d6 100644 --- a/api.md +++ b/api.md @@ -111,7 +111,7 @@ from runloop_api_client.types.devboxes import BrowserView Methods: -- client.devboxes.browsers.create() -> BrowserView +- client.devboxes.browsers.create(\*\*params) -> BrowserView ## Computers diff --git a/pyproject.toml b/pyproject.toml index e42d7d556..369c275c3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "runloop_api_client" -version = "0.21.0" +version = "0.22.0" description = "The official Python library for the runloop API" dynamic = ["readme"] license = "MIT" diff --git a/src/runloop_api_client/_version.py b/src/runloop_api_client/_version.py index bd2ebaed5..c524a520b 100644 --- a/src/runloop_api_client/_version.py +++ b/src/runloop_api_client/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "runloop_api_client" -__version__ = "0.21.0" # x-release-please-version +__version__ = "0.22.0" # x-release-please-version diff --git a/src/runloop_api_client/resources/devboxes/browsers.py b/src/runloop_api_client/resources/devboxes/browsers.py index 59d264bcc..d59cbcd4d 100644 --- a/src/runloop_api_client/resources/devboxes/browsers.py +++ b/src/runloop_api_client/resources/devboxes/browsers.py @@ -2,9 +2,15 @@ from __future__ import annotations +from typing import Optional + import httpx from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven +from ..._utils import ( + maybe_transform, + async_maybe_transform, +) from ..._compat import cached_property from ..._resource import SyncAPIResource, AsyncAPIResource from ..._response import ( @@ -14,6 +20,7 @@ async_to_streamed_response_wrapper, ) from ..._base_client import make_request_options +from ...types.devboxes import browser_create_params from ...types.devboxes.browser_view import BrowserView __all__ = ["BrowsersResource", "AsyncBrowsersResource"] @@ -42,6 +49,7 @@ def with_streaming_response(self) -> BrowsersResourceWithStreamingResponse: def create( self, *, + name: Optional[str] | NotGiven = NOT_GIVEN, # 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, @@ -55,9 +63,23 @@ def create( As part of booting the Devbox, the browser will automatically be started with connection utilities activated. + + Args: + name: The name to use for the created Devbox with a Browser. + + 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 + + idempotency_key: Specify a custom idempotency key for this request """ return self._post( "/v1/devboxes/browsers", + body=maybe_transform({"name": name}, browser_create_params.BrowserCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -92,6 +114,7 @@ def with_streaming_response(self) -> AsyncBrowsersResourceWithStreamingResponse: async def create( self, *, + name: Optional[str] | NotGiven = NOT_GIVEN, # 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, @@ -105,9 +128,23 @@ async def create( As part of booting the Devbox, the browser will automatically be started with connection utilities activated. + + Args: + name: The name to use for the created Devbox with a Browser. + + 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 + + idempotency_key: Specify a custom idempotency key for this request """ return await self._post( "/v1/devboxes/browsers", + body=await async_maybe_transform({"name": name}, browser_create_params.BrowserCreateParams), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, diff --git a/src/runloop_api_client/resources/devboxes/computers.py b/src/runloop_api_client/resources/devboxes/computers.py index c10791302..b34697390 100644 --- a/src/runloop_api_client/resources/devboxes/computers.py +++ b/src/runloop_api_client/resources/devboxes/computers.py @@ -59,6 +59,7 @@ def create( self, *, display_dimensions: Optional[computer_create_params.DisplayDimensions] | NotGiven = NOT_GIVEN, + name: Optional[str] | NotGiven = NOT_GIVEN, # 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, @@ -78,6 +79,8 @@ def create( Args: display_dimensions: Customize the dimensions of the computer display. + name: The name to use for the created computer. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -91,7 +94,11 @@ def create( return self._post( "/v1/devboxes/computers", body=maybe_transform( - {"display_dimensions": display_dimensions}, computer_create_params.ComputerCreateParams + { + "display_dimensions": display_dimensions, + "name": name, + }, + computer_create_params.ComputerCreateParams, ), options=make_request_options( extra_headers=extra_headers, @@ -285,6 +292,7 @@ async def create( self, *, display_dimensions: Optional[computer_create_params.DisplayDimensions] | NotGiven = NOT_GIVEN, + name: Optional[str] | NotGiven = NOT_GIVEN, # 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, @@ -304,6 +312,8 @@ async def create( Args: display_dimensions: Customize the dimensions of the computer display. + name: The name to use for the created computer. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -317,7 +327,11 @@ async def create( return await self._post( "/v1/devboxes/computers", body=await async_maybe_transform( - {"display_dimensions": display_dimensions}, computer_create_params.ComputerCreateParams + { + "display_dimensions": display_dimensions, + "name": name, + }, + computer_create_params.ComputerCreateParams, ), options=make_request_options( extra_headers=extra_headers, diff --git a/src/runloop_api_client/types/devbox_view.py b/src/runloop_api_client/types/devbox_view.py index f645afde6..0a056748e 100644 --- a/src/runloop_api_client/types/devbox_view.py +++ b/src/runloop_api_client/types/devbox_view.py @@ -13,7 +13,7 @@ class DevboxView(BaseModel): id: str """The ID of the Devbox.""" - capabilities: List[Literal["unknown", "computer_usage", "browser_usage"]] + capabilities: List[Literal["unknown", "computer_usage", "browser_usage", "language_server"]] """A list of capability groups this devbox has access to. This allows devboxes to be compatible with certain tools sets like computer diff --git a/src/runloop_api_client/types/devboxes/__init__.py b/src/runloop_api_client/types/devboxes/__init__.py index eadbfb1b5..6ec9bf85f 100644 --- a/src/runloop_api_client/types/devboxes/__init__.py +++ b/src/runloop_api_client/types/devboxes/__init__.py @@ -43,6 +43,7 @@ from .references_response import ReferencesResponse as ReferencesResponse from .diagnostics_response import DiagnosticsResponse as DiagnosticsResponse from .base_diagnostic_param import BaseDiagnosticParam as BaseDiagnosticParam +from .browser_create_params import BrowserCreateParams as BrowserCreateParams from .code_actions_response import CodeActionsResponse as CodeActionsResponse from .devbox_logs_list_view import DevboxLogsListView as DevboxLogsListView from .lsp_formatting_params import LspFormattingParams as LspFormattingParams diff --git a/src/runloop_api_client/types/devboxes/browser_create_params.py b/src/runloop_api_client/types/devboxes/browser_create_params.py new file mode 100644 index 000000000..523b03be0 --- /dev/null +++ b/src/runloop_api_client/types/devboxes/browser_create_params.py @@ -0,0 +1,13 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Optional +from typing_extensions import TypedDict + +__all__ = ["BrowserCreateParams"] + + +class BrowserCreateParams(TypedDict, total=False): + name: Optional[str] + """The name to use for the created Devbox with a Browser.""" diff --git a/src/runloop_api_client/types/devboxes/computer_create_params.py b/src/runloop_api_client/types/devboxes/computer_create_params.py index 15c00cff0..febd5aef5 100644 --- a/src/runloop_api_client/types/devboxes/computer_create_params.py +++ b/src/runloop_api_client/types/devboxes/computer_create_params.py @@ -12,6 +12,9 @@ class ComputerCreateParams(TypedDict, total=False): display_dimensions: Optional[DisplayDimensions] """Customize the dimensions of the computer display.""" + name: Optional[str] + """The name to use for the created computer.""" + class DisplayDimensions(TypedDict, total=False): display_height_px: Required[int] diff --git a/tests/api_resources/devboxes/test_browsers.py b/tests/api_resources/devboxes/test_browsers.py index 9b1a51a2b..2bdbd823a 100644 --- a/tests/api_resources/devboxes/test_browsers.py +++ b/tests/api_resources/devboxes/test_browsers.py @@ -22,6 +22,13 @@ def test_method_create(self, client: Runloop) -> None: browser = client.devboxes.browsers.create() assert_matches_type(BrowserView, browser, path=["response"]) + @parametrize + def test_method_create_with_all_params(self, client: Runloop) -> None: + browser = client.devboxes.browsers.create( + name="name", + ) + assert_matches_type(BrowserView, browser, path=["response"]) + @parametrize def test_raw_response_create(self, client: Runloop) -> None: response = client.devboxes.browsers.with_raw_response.create() @@ -51,6 +58,13 @@ async def test_method_create(self, async_client: AsyncRunloop) -> None: browser = await async_client.devboxes.browsers.create() assert_matches_type(BrowserView, browser, path=["response"]) + @parametrize + async def test_method_create_with_all_params(self, async_client: AsyncRunloop) -> None: + browser = await async_client.devboxes.browsers.create( + name="name", + ) + assert_matches_type(BrowserView, browser, path=["response"]) + @parametrize async def test_raw_response_create(self, async_client: AsyncRunloop) -> None: response = await async_client.devboxes.browsers.with_raw_response.create() diff --git a/tests/api_resources/devboxes/test_computers.py b/tests/api_resources/devboxes/test_computers.py index 09b08358a..a388926b6 100644 --- a/tests/api_resources/devboxes/test_computers.py +++ b/tests/api_resources/devboxes/test_computers.py @@ -34,6 +34,7 @@ def test_method_create_with_all_params(self, client: Runloop) -> None: "display_height_px": 0, "display_width_px": 0, }, + name="name", ) assert_matches_type(ComputerView, computer, path=["response"]) @@ -220,6 +221,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncRunloop) - "display_height_px": 0, "display_width_px": 0, }, + name="name", ) assert_matches_type(ComputerView, computer, path=["response"])