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 .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.61.0"
".": "0.62.0"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 117
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-33e46e6a0095c2ec39a51860ee4e133c5a21a80a90cbe9e52953c07e5e0295de.yml
openapi_spec_hash: 4aa466b9af39768b65a44b68ae0d1f6e
config_hash: ede72e4ae65cc5a6d6927938b3455c46
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-e6c711f0d29a7d956cc8ca621440da966c1f1575b1205d01328b1099edf1c517.yml
openapi_spec_hash: c06e7e36de1c6f9b29b54a6e3dc08ee5
config_hash: 36159c262d293fbeacf513ab600a1729
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Changelog

## 0.62.0 (2026-06-04)

Full Changelog: [v0.61.0...v0.62.0](https://github.com/kernel/kernel-python-sdk/compare/v0.61.0...v0.62.0)

### Features

* api: paginate GET /browser_pools ([c25d693](https://github.com/kernel/kernel-python-sdk/commit/c25d693e310a1035d74654018f68b311f37545d0))
* api: paginate GET /extensions ([55c3324](https://github.com/kernel/kernel-python-sdk/commit/55c332493f9c7efd21ef8a2fdae40c8318e704cb))
* api: paginate GET /org/credential_providers ([01897bc](https://github.com/kernel/kernel-python-sdk/commit/01897bc9f7215580aa2f2ca41bfcf1b4d29e9005))
* api: paginate GET /proxies ([7ff0bdf](https://github.com/kernel/kernel-python-sdk/commit/7ff0bdf181029f0711b694fb6498fbc75183b0f3))

## 0.61.0 (2026-06-03)

Full Changelog: [v0.60.0...v0.61.0](https://github.com/kernel/kernel-python-sdk/compare/v0.60.0...v0.61.0)
Expand Down
11 changes: 5 additions & 6 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ Methods:

- <code title="post /proxies">client.proxies.<a href="./src/kernel/resources/proxies.py">create</a>(\*\*<a href="src/kernel/types/proxy_create_params.py">params</a>) -> <a href="./src/kernel/types/proxy_create_response.py">ProxyCreateResponse</a></code>
- <code title="get /proxies/{id}">client.proxies.<a href="./src/kernel/resources/proxies.py">retrieve</a>(id) -> <a href="./src/kernel/types/proxy_retrieve_response.py">ProxyRetrieveResponse</a></code>
- <code title="get /proxies">client.proxies.<a href="./src/kernel/resources/proxies.py">list</a>() -> <a href="./src/kernel/types/proxy_list_response.py">ProxyListResponse</a></code>
- <code title="get /proxies">client.proxies.<a href="./src/kernel/resources/proxies.py">list</a>(\*\*<a href="src/kernel/types/proxy_list_params.py">params</a>) -> <a href="./src/kernel/types/proxy_list_response.py">SyncOffsetPagination[ProxyListResponse]</a></code>
- <code title="delete /proxies/{id}">client.proxies.<a href="./src/kernel/resources/proxies.py">delete</a>(id) -> None</code>
- <code title="post /proxies/{id}/check">client.proxies.<a href="./src/kernel/resources/proxies.py">check</a>(id, \*\*<a href="src/kernel/types/proxy_check_params.py">params</a>) -> <a href="./src/kernel/types/proxy_check_response.py">ProxyCheckResponse</a></code>

Expand All @@ -338,7 +338,7 @@ from kernel.types import ExtensionListResponse, ExtensionUploadResponse

Methods:

- <code title="get /extensions">client.extensions.<a href="./src/kernel/resources/extensions.py">list</a>() -> <a href="./src/kernel/types/extension_list_response.py">ExtensionListResponse</a></code>
- <code title="get /extensions">client.extensions.<a href="./src/kernel/resources/extensions.py">list</a>(\*\*<a href="src/kernel/types/extension_list_params.py">params</a>) -> <a href="./src/kernel/types/extension_list_response.py">SyncOffsetPagination[ExtensionListResponse]</a></code>
- <code title="delete /extensions/{id_or_name}">client.extensions.<a href="./src/kernel/resources/extensions.py">delete</a>(id_or_name) -> None</code>
- <code title="get /extensions/{id_or_name}">client.extensions.<a href="./src/kernel/resources/extensions.py">download</a>(id_or_name) -> BinaryAPIResponse</code>
- <code title="get /extensions/from_chrome_store">client.extensions.<a href="./src/kernel/resources/extensions.py">download_from_chrome_store</a>(\*\*<a href="src/kernel/types/extension_download_from_chrome_store_params.py">params</a>) -> BinaryAPIResponse</code>
Expand All @@ -349,15 +349,15 @@ Methods:
Types:

```python
from kernel.types import BrowserPool, BrowserPoolListResponse, BrowserPoolAcquireResponse
from kernel.types import BrowserPool, BrowserPoolAcquireResponse
```

Methods:

- <code title="post /browser_pools">client.browser_pools.<a href="./src/kernel/resources/browser_pools.py">create</a>(\*\*<a href="src/kernel/types/browser_pool_create_params.py">params</a>) -> <a href="./src/kernel/types/browser_pool.py">BrowserPool</a></code>
- <code title="get /browser_pools/{id_or_name}">client.browser_pools.<a href="./src/kernel/resources/browser_pools.py">retrieve</a>(id_or_name) -> <a href="./src/kernel/types/browser_pool.py">BrowserPool</a></code>
- <code title="patch /browser_pools/{id_or_name}">client.browser_pools.<a href="./src/kernel/resources/browser_pools.py">update</a>(id_or_name, \*\*<a href="src/kernel/types/browser_pool_update_params.py">params</a>) -> <a href="./src/kernel/types/browser_pool.py">BrowserPool</a></code>
- <code title="get /browser_pools">client.browser_pools.<a href="./src/kernel/resources/browser_pools.py">list</a>() -> <a href="./src/kernel/types/browser_pool_list_response.py">BrowserPoolListResponse</a></code>
- <code title="get /browser_pools">client.browser_pools.<a href="./src/kernel/resources/browser_pools.py">list</a>(\*\*<a href="src/kernel/types/browser_pool_list_params.py">params</a>) -> <a href="./src/kernel/types/browser_pool.py">SyncOffsetPagination[BrowserPool]</a></code>
- <code title="delete /browser_pools/{id_or_name}">client.browser_pools.<a href="./src/kernel/resources/browser_pools.py">delete</a>(id_or_name, \*\*<a href="src/kernel/types/browser_pool_delete_params.py">params</a>) -> None</code>
- <code title="post /browser_pools/{id_or_name}/acquire">client.browser_pools.<a href="./src/kernel/resources/browser_pools.py">acquire</a>(id_or_name, \*\*<a href="src/kernel/types/browser_pool_acquire_params.py">params</a>) -> <a href="./src/kernel/types/browser_pool_acquire_response.py">BrowserPoolAcquireResponse</a></code>
- <code title="post /browser_pools/{id_or_name}/flush">client.browser_pools.<a href="./src/kernel/resources/browser_pools.py">flush</a>(id_or_name) -> None</code>
Expand Down Expand Up @@ -441,7 +441,6 @@ from kernel.types import (
CredentialProviderItem,
CredentialProviderTestResult,
UpdateCredentialProviderRequest,
CredentialProviderListResponse,
CredentialProviderListItemsResponse,
)
```
Expand All @@ -451,7 +450,7 @@ Methods:
- <code title="post /org/credential_providers">client.credential_providers.<a href="./src/kernel/resources/credential_providers.py">create</a>(\*\*<a href="src/kernel/types/credential_provider_create_params.py">params</a>) -> <a href="./src/kernel/types/credential_provider.py">CredentialProvider</a></code>
- <code title="get /org/credential_providers/{id}">client.credential_providers.<a href="./src/kernel/resources/credential_providers.py">retrieve</a>(id) -> <a href="./src/kernel/types/credential_provider.py">CredentialProvider</a></code>
- <code title="patch /org/credential_providers/{id}">client.credential_providers.<a href="./src/kernel/resources/credential_providers.py">update</a>(id, \*\*<a href="src/kernel/types/credential_provider_update_params.py">params</a>) -> <a href="./src/kernel/types/credential_provider.py">CredentialProvider</a></code>
- <code title="get /org/credential_providers">client.credential_providers.<a href="./src/kernel/resources/credential_providers.py">list</a>() -> <a href="./src/kernel/types/credential_provider_list_response.py">CredentialProviderListResponse</a></code>
- <code title="get /org/credential_providers">client.credential_providers.<a href="./src/kernel/resources/credential_providers.py">list</a>(\*\*<a href="src/kernel/types/credential_provider_list_params.py">params</a>) -> <a href="./src/kernel/types/credential_provider.py">SyncOffsetPagination[CredentialProvider]</a></code>
- <code title="delete /org/credential_providers/{id}">client.credential_providers.<a href="./src/kernel/resources/credential_providers.py">delete</a>(id) -> None</code>
- <code title="get /org/credential_providers/{id}/items">client.credential_providers.<a href="./src/kernel/resources/credential_providers.py">list_items</a>(id) -> <a href="./src/kernel/types/credential_provider_list_items_response.py">CredentialProviderListItemsResponse</a></code>
- <code title="post /org/credential_providers/{id}/test">client.credential_providers.<a href="./src/kernel/resources/credential_providers.py">test</a>(id) -> <a href="./src/kernel/types/credential_provider_test_result.py">CredentialProviderTestResult</a></code>
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "kernel"
version = "0.61.0"
version = "0.62.0"
description = "The official Python library for the kernel API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/kernel/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "kernel"
__version__ = "0.61.0" # x-release-please-version
__version__ = "0.62.0" # x-release-please-version
83 changes: 70 additions & 13 deletions src/kernel/resources/browser_pools.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import httpx

from ..types import (
browser_pool_list_params,
browser_pool_create_params,
browser_pool_delete_params,
browser_pool_update_params,
Expand All @@ -23,9 +24,9 @@
async_to_raw_response_wrapper,
async_to_streamed_response_wrapper,
)
from .._base_client import make_request_options
from ..pagination import SyncOffsetPagination, AsyncOffsetPagination
from .._base_client import AsyncPaginator, make_request_options
from ..types.browser_pool import BrowserPool
from ..types.browser_pool_list_response import BrowserPoolListResponse
from ..types.browser_pool_acquire_response import BrowserPoolAcquireResponse
from ..types.shared_params.browser_profile import BrowserProfile
from ..types.shared_params.browser_viewport import BrowserViewport
Expand Down Expand Up @@ -326,20 +327,48 @@ def update(
def list(
self,
*,
limit: int | Omit = omit,
offset: int | Omit = omit,
# 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,
) -> BrowserPoolListResponse:
"""List browser pools owned by the caller's organization."""
return self._get(
) -> SyncOffsetPagination[BrowserPool]:
"""
List browser pools owned by the caller's organization.

Args:
limit: Limit the number of browser pools to return.

offset: Offset the number of browser pools to return.

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
"""
return self._get_api_list(
"/browser_pools",
page=SyncOffsetPagination[BrowserPool],
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
query=maybe_transform(
{
"limit": limit,
"offset": offset,
},
browser_pool_list_params.BrowserPoolListParams,
),
),
cast_to=BrowserPoolListResponse,
model=BrowserPool,
)

def delete(
Expand Down Expand Up @@ -801,23 +830,51 @@ async def update(
cast_to=BrowserPool,
)

async def list(
def list(
self,
*,
limit: int | Omit = omit,
offset: int | Omit = omit,
# 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,
) -> BrowserPoolListResponse:
"""List browser pools owned by the caller's organization."""
return await self._get(
) -> AsyncPaginator[BrowserPool, AsyncOffsetPagination[BrowserPool]]:
"""
List browser pools owned by the caller's organization.

Args:
limit: Limit the number of browser pools to return.

offset: Offset the number of browser pools to return.

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
"""
return self._get_api_list(
"/browser_pools",
page=AsyncOffsetPagination[BrowserPool],
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
query=maybe_transform(
{
"limit": limit,
"offset": offset,
},
browser_pool_list_params.BrowserPoolListParams,
),
),
cast_to=BrowserPoolListResponse,
model=BrowserPool,
)

async def delete(
Expand Down
88 changes: 74 additions & 14 deletions src/kernel/resources/credential_providers.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@

import httpx

from ..types import credential_provider_create_params, credential_provider_update_params
from ..types import (
credential_provider_list_params,
credential_provider_create_params,
credential_provider_update_params,
)
from .._types import Body, Omit, Query, Headers, NoneType, NotGiven, omit, not_given
from .._utils import path_template, maybe_transform, async_maybe_transform
from .._compat import cached_property
Expand All @@ -17,10 +21,10 @@
async_to_raw_response_wrapper,
async_to_streamed_response_wrapper,
)
from .._base_client import make_request_options
from ..pagination import SyncOffsetPagination, AsyncOffsetPagination
from .._base_client import AsyncPaginator, make_request_options
from ..types.credential_provider import CredentialProvider
from ..types.credential_provider_test_result import CredentialProviderTestResult
from ..types.credential_provider_list_response import CredentialProviderListResponse
from ..types.credential_provider_list_items_response import CredentialProviderListItemsResponse

__all__ = ["CredentialProvidersResource", "AsyncCredentialProvidersResource"]
Expand Down Expand Up @@ -194,20 +198,48 @@ def update(
def list(
self,
*,
limit: int | Omit = omit,
offset: int | Omit = omit,
# 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,
) -> CredentialProviderListResponse:
"""List external credential providers configured for the organization."""
return self._get(
) -> SyncOffsetPagination[CredentialProvider]:
"""
List external credential providers configured for the organization.

Args:
limit: Limit the number of credential providers to return.

offset: Offset the number of credential providers to return.

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
"""
return self._get_api_list(
"/org/credential_providers",
page=SyncOffsetPagination[CredentialProvider],
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
query=maybe_transform(
{
"limit": limit,
"offset": offset,
},
credential_provider_list_params.CredentialProviderListParams,
),
),
cast_to=CredentialProviderListResponse,
model=CredentialProvider,
)

def delete(
Expand Down Expand Up @@ -477,23 +509,51 @@ async def update(
cast_to=CredentialProvider,
)

async def list(
def list(
self,
*,
limit: int | Omit = omit,
offset: int | Omit = omit,
# 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,
) -> CredentialProviderListResponse:
"""List external credential providers configured for the organization."""
return await self._get(
) -> AsyncPaginator[CredentialProvider, AsyncOffsetPagination[CredentialProvider]]:
"""
List external credential providers configured for the organization.

Args:
limit: Limit the number of credential providers to return.

offset: Offset the number of credential providers to return.

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
"""
return self._get_api_list(
"/org/credential_providers",
page=AsyncOffsetPagination[CredentialProvider],
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
query=maybe_transform(
{
"limit": limit,
"offset": offset,
},
credential_provider_list_params.CredentialProviderListParams,
),
),
cast_to=CredentialProviderListResponse,
model=CredentialProvider,
)

async def delete(
Expand Down
Loading
Loading