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 @@
{
".": "1.10.1"
".": "1.10.2"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 118
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-fa81aa937935299daa80a12956d3f4d69344342291689a77f41f14db5efd928e.yml
openapi_spec_hash: e388727b0c2f4debe675845ab26feacd
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-439b1a08248ef3bc7457c7b0a9a6218149732535a9f0dd541501fc35e2a3f8c2.yml
openapi_spec_hash: 35b12a086d98484417ce3d2543c47929
config_hash: cbda3692cb48ab8582a0df1674b9e5c8
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Changelog

## 1.10.2 (2026-02-26)

Full Changelog: [v1.10.1...v1.10.2](https://github.com/runloopai/api-client-python/compare/v1.10.1...v1.10.2)

### Bug Fixes

* remove beta docs from gateway-config ([#7677](https://github.com/runloopai/api-client-python/issues/7677)) ([0c64614](https://github.com/runloopai/api-client-python/commit/0c64614708063bd267e2dabde810ccb56914d088))


### Chores

* rename AI Gateway to Agent Gateway ([#7687](https://github.com/runloopai/api-client-python/issues/7687)) ([6e96bda](https://github.com/runloopai/api-client-python/commit/6e96bda273b1a49b4c0efd731e64761675919157))

## 1.10.1 (2026-02-26)

Full Changelog: [v1.10.0...v1.10.1](https://github.com/runloopai/api-client-python/compare/v1.10.0...v1.10.1)
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "runloop_api_client"
version = "1.10.1"
version = "1.10.2"
description = "The official Python library for the runloop API"
dynamic = ["readme"]
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion src/runloop_api_client/_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__ = "runloop_api_client"
__version__ = "1.10.1" # x-release-please-version
__version__ = "1.10.2" # x-release-please-version
16 changes: 8 additions & 8 deletions src/runloop_api_client/resources/devboxes/devboxes.py
Original file line number Diff line number Diff line change
Expand Up @@ -234,10 +234,10 @@ def create(

file_mounts: Map of paths and file contents to write before setup. Use mounts instead.

gateways: [Beta] (Optional) Gateway specifications for credential proxying. Map key is the
environment variable prefix (e.g., 'GWS_ANTHROPIC'). The gateway will proxy
requests to external APIs using the specified credential without exposing the
real API key. Example: {'GWS_ANTHROPIC': {'gateway': 'anthropic', 'secret':
gateways: (Optional) Agent gateway specifications for credential proxying. Map key is the
environment variable prefix (e.g., 'GWS_ANTHROPIC'). The agent gateway will
proxy requests to external APIs using the specified credential without exposing
the real API key. Example: {'GWS_ANTHROPIC': {'gateway': 'anthropic', 'secret':
'my_claude_key'}}

launch_parameters: Parameters to configure the resources and launch time behavior of the Devbox.
Expand Down Expand Up @@ -1912,10 +1912,10 @@ async def create(

file_mounts: Map of paths and file contents to write before setup. Use mounts instead.

gateways: [Beta] (Optional) Gateway specifications for credential proxying. Map key is the
environment variable prefix (e.g., 'GWS_ANTHROPIC'). The gateway will proxy
requests to external APIs using the specified credential without exposing the
real API key. Example: {'GWS_ANTHROPIC': {'gateway': 'anthropic', 'secret':
gateways: (Optional) Agent gateway specifications for credential proxying. Map key is the
environment variable prefix (e.g., 'GWS_ANTHROPIC'). The agent gateway will
proxy requests to external APIs using the specified credential without exposing
the real API key. Example: {'GWS_ANTHROPIC': {'gateway': 'anthropic', 'secret':
'my_claude_key'}}

launch_parameters: Parameters to configure the resources and launch time behavior of the Devbox.
Expand Down
36 changes: 18 additions & 18 deletions src/runloop_api_client/resources/gateway_configs.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ def create(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
idempotency_key: str | None = None,
) -> GatewayConfigView:
"""
[Beta] Create a new GatewayConfig to proxy API requests through the credential
gateway. The config specifies the target endpoint and how credentials should be
applied.
"""Create a new GatewayConfig to proxy API requests through the agent gateway.

The
config specifies the target endpoint and how credentials should be applied.

Args:
auth_mechanism: How credentials should be applied to proxied requests. Specify the type
Expand Down Expand Up @@ -118,7 +118,7 @@ def retrieve(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> GatewayConfigView:
"""
[Beta] Get a specific GatewayConfig by its unique identifier.
Get a specific GatewayConfig by its unique identifier.

Args:
extra_headers: Send extra headers
Expand Down Expand Up @@ -155,7 +155,7 @@ def update(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
idempotency_key: str | None = None,
) -> GatewayConfigView:
"""[Beta] Update an existing GatewayConfig.
"""Update an existing GatewayConfig.

All fields are optional.

Expand Down Expand Up @@ -216,8 +216,8 @@ def list(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> SyncGatewayConfigsCursorIDPage[GatewayConfigView]:
"""
[Beta] List all GatewayConfigs for the authenticated account, including
system-provided configs like 'anthropic' and 'openai'.
List all GatewayConfigs for the authenticated account, including system-provided
configs like 'anthropic' and 'openai'.

Args:
id: Filter by ID.
Expand Down Expand Up @@ -269,7 +269,7 @@ def delete(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
idempotency_key: str | None = None,
) -> GatewayConfigView:
"""[Beta] Delete an existing GatewayConfig.
"""Delete an existing GatewayConfig.

This action is irreversible.

Expand Down Expand Up @@ -334,10 +334,10 @@ async def create(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
idempotency_key: str | None = None,
) -> GatewayConfigView:
"""
[Beta] Create a new GatewayConfig to proxy API requests through the credential
gateway. The config specifies the target endpoint and how credentials should be
applied.
"""Create a new GatewayConfig to proxy API requests through the agent gateway.

The
config specifies the target endpoint and how credentials should be applied.

Args:
auth_mechanism: How credentials should be applied to proxied requests. Specify the type
Expand Down Expand Up @@ -393,7 +393,7 @@ async def retrieve(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> GatewayConfigView:
"""
[Beta] Get a specific GatewayConfig by its unique identifier.
Get a specific GatewayConfig by its unique identifier.

Args:
extra_headers: Send extra headers
Expand Down Expand Up @@ -430,7 +430,7 @@ async def update(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
idempotency_key: str | None = None,
) -> GatewayConfigView:
"""[Beta] Update an existing GatewayConfig.
"""Update an existing GatewayConfig.

All fields are optional.

Expand Down Expand Up @@ -491,8 +491,8 @@ def list(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> AsyncPaginator[GatewayConfigView, AsyncGatewayConfigsCursorIDPage[GatewayConfigView]]:
"""
[Beta] List all GatewayConfigs for the authenticated account, including
system-provided configs like 'anthropic' and 'openai'.
List all GatewayConfigs for the authenticated account, including system-provided
configs like 'anthropic' and 'openai'.

Args:
id: Filter by ID.
Expand Down Expand Up @@ -544,7 +544,7 @@ async def delete(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
idempotency_key: str | None = None,
) -> GatewayConfigView:
"""[Beta] Delete an existing GatewayConfig.
"""Delete an existing GatewayConfig.

This action is irreversible.

Expand Down
28 changes: 14 additions & 14 deletions src/runloop_api_client/resources/network_policies.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def create(
self,
*,
name: str,
allow_ai_gateway: Optional[bool] | Omit = omit,
allow_agent_gateway: Optional[bool] | Omit = omit,
allow_all: Optional[bool] | Omit = omit,
allow_devbox_to_devbox: Optional[bool] | Omit = omit,
allow_mcp_gateway: Optional[bool] | Omit = omit,
Expand All @@ -71,8 +71,8 @@ def create(
name: The human-readable name for the NetworkPolicy. Must be unique within the
account.

allow_ai_gateway: (Optional) If true, allows devbox egress to the AI credential gateway for
credential proxying. Defaults to false.
allow_agent_gateway: (Optional) If true, allows devbox egress to the agent gateway for credential
proxying. Defaults to false.

allow_all: (Optional) If true, all egress traffic is allowed (ALLOW_ALL policy). Defaults
to false.
Expand Down Expand Up @@ -104,7 +104,7 @@ def create(
body=maybe_transform(
{
"name": name,
"allow_ai_gateway": allow_ai_gateway,
"allow_agent_gateway": allow_agent_gateway,
"allow_all": allow_all,
"allow_devbox_to_devbox": allow_devbox_to_devbox,
"allow_mcp_gateway": allow_mcp_gateway,
Expand Down Expand Up @@ -160,7 +160,7 @@ def update(
self,
id: str,
*,
allow_ai_gateway: Optional[bool] | Omit = omit,
allow_agent_gateway: Optional[bool] | Omit = omit,
allow_all: Optional[bool] | Omit = omit,
allow_devbox_to_devbox: Optional[bool] | Omit = omit,
allow_mcp_gateway: Optional[bool] | Omit = omit,
Expand All @@ -180,7 +180,7 @@ def update(
All fields are optional.

Args:
allow_ai_gateway: If true, allows devbox egress to the AI credential gateway.
allow_agent_gateway: If true, allows devbox egress to the agent gateway.

allow_all: If true, all egress traffic is allowed (ALLOW_ALL policy).

Expand Down Expand Up @@ -211,7 +211,7 @@ def update(
f"/v1/network-policies/{id}",
body=maybe_transform(
{
"allow_ai_gateway": allow_ai_gateway,
"allow_agent_gateway": allow_agent_gateway,
"allow_all": allow_all,
"allow_devbox_to_devbox": allow_devbox_to_devbox,
"allow_mcp_gateway": allow_mcp_gateway,
Expand Down Expand Up @@ -352,7 +352,7 @@ async def create(
self,
*,
name: str,
allow_ai_gateway: Optional[bool] | Omit = omit,
allow_agent_gateway: Optional[bool] | Omit = omit,
allow_all: Optional[bool] | Omit = omit,
allow_devbox_to_devbox: Optional[bool] | Omit = omit,
allow_mcp_gateway: Optional[bool] | Omit = omit,
Expand All @@ -375,8 +375,8 @@ async def create(
name: The human-readable name for the NetworkPolicy. Must be unique within the
account.

allow_ai_gateway: (Optional) If true, allows devbox egress to the AI credential gateway for
credential proxying. Defaults to false.
allow_agent_gateway: (Optional) If true, allows devbox egress to the agent gateway for credential
proxying. Defaults to false.

allow_all: (Optional) If true, all egress traffic is allowed (ALLOW_ALL policy). Defaults
to false.
Expand Down Expand Up @@ -408,7 +408,7 @@ async def create(
body=await async_maybe_transform(
{
"name": name,
"allow_ai_gateway": allow_ai_gateway,
"allow_agent_gateway": allow_agent_gateway,
"allow_all": allow_all,
"allow_devbox_to_devbox": allow_devbox_to_devbox,
"allow_mcp_gateway": allow_mcp_gateway,
Expand Down Expand Up @@ -464,7 +464,7 @@ async def update(
self,
id: str,
*,
allow_ai_gateway: Optional[bool] | Omit = omit,
allow_agent_gateway: Optional[bool] | Omit = omit,
allow_all: Optional[bool] | Omit = omit,
allow_devbox_to_devbox: Optional[bool] | Omit = omit,
allow_mcp_gateway: Optional[bool] | Omit = omit,
Expand All @@ -484,7 +484,7 @@ async def update(
All fields are optional.

Args:
allow_ai_gateway: If true, allows devbox egress to the AI credential gateway.
allow_agent_gateway: If true, allows devbox egress to the agent gateway.

allow_all: If true, all egress traffic is allowed (ALLOW_ALL policy).

Expand Down Expand Up @@ -515,7 +515,7 @@ async def update(
f"/v1/network-policies/{id}",
body=await async_maybe_transform(
{
"allow_ai_gateway": allow_ai_gateway,
"allow_agent_gateway": allow_agent_gateway,
"allow_all": allow_all,
"allow_devbox_to_devbox": allow_devbox_to_devbox,
"allow_mcp_gateway": allow_mcp_gateway,
Expand Down
12 changes: 6 additions & 6 deletions src/runloop_api_client/types/devbox_create_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@ class DevboxBaseCreateParams(TypedDict, total=False):
"""Map of paths and file contents to write before setup. Use mounts instead."""

gateways: Optional[Dict[str, Gateways]]
"""[Beta] (Optional) Gateway specifications for credential proxying.
"""(Optional) Agent gateway specifications for credential proxying.

Map key is the environment variable prefix (e.g., 'GWS_ANTHROPIC'). The gateway
will proxy requests to external APIs using the specified credential without
exposing the real API key. Example: {'GWS_ANTHROPIC': {'gateway': 'anthropic',
'secret': 'my_claude_key'}}
Map key is the environment variable prefix (e.g., 'GWS_ANTHROPIC'). The agent
gateway will proxy requests to external APIs using the specified credential
without exposing the real API key. Example: {'GWS_ANTHROPIC': {'gateway':
'anthropic', 'secret': 'my_claude_key'}}
"""

launch_parameters: Optional[LaunchParameters]
Expand Down Expand Up @@ -112,7 +112,7 @@ class DevboxCreateParams(DevboxBaseCreateParams, total=False):

class Gateways(TypedDict, total=False):
"""
[Beta] GatewaySpec links a gateway configuration to a secret for credential proxying in a devbox. The gateway will proxy requests to external APIs using the specified credential without exposing the real API key.
GatewaySpec links an agent gateway configuration to a secret for credential proxying in a devbox. The agent gateway will proxy requests to external APIs using the specified credential without exposing the real API key.
"""

gateway: Required[str]
Expand Down
2 changes: 1 addition & 1 deletion src/runloop_api_client/types/devbox_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ class DevboxView(BaseModel):
"""The failure reason if the Devbox failed, if the Devbox has a 'failure' status."""

gateway_specs: Optional[Dict[str, GatewaySpecs]] = None
"""[Beta] Gateway specifications configured for this devbox.
"""Gateway specifications configured for this devbox.

Map key is the environment variable prefix (e.g., 'GWS_ANTHROPIC').
"""
Expand Down
2 changes: 1 addition & 1 deletion src/runloop_api_client/types/gateway_config_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class AuthMechanism(BaseModel):

class GatewayConfigView(BaseModel):
"""
A GatewayConfig defines a configuration for proxying API requests through the credential gateway. It specifies the target endpoint and how credentials should be applied.
A GatewayConfig defines a configuration for proxying API requests through the agent gateway. It specifies the target endpoint and how credentials should be applied.
"""

id: str
Expand Down
6 changes: 3 additions & 3 deletions src/runloop_api_client/types/network_policy_create_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ class NetworkPolicyCreateParams(TypedDict, total=False):
Must be unique within the account.
"""

allow_ai_gateway: Optional[bool]
allow_agent_gateway: Optional[bool]
"""
(Optional) If true, allows devbox egress to the AI credential gateway for
credential proxying. Defaults to false.
(Optional) If true, allows devbox egress to the agent gateway for credential
proxying. Defaults to false.
"""

allow_all: Optional[bool]
Expand Down
4 changes: 2 additions & 2 deletions src/runloop_api_client/types/network_policy_update_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@


class NetworkPolicyUpdateParams(TypedDict, total=False):
allow_ai_gateway: Optional[bool]
"""If true, allows devbox egress to the AI credential gateway."""
allow_agent_gateway: Optional[bool]
"""If true, allows devbox egress to the agent gateway."""

allow_all: Optional[bool]
"""If true, all egress traffic is allowed (ALLOW_ALL policy)."""
Expand Down
7 changes: 2 additions & 5 deletions src/runloop_api_client/types/network_policy_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,8 @@
class Egress(BaseModel):
"""The egress rules for this policy."""

allow_ai_gateway: bool
"""
If true, allows devbox egress to the AI credential gateway for credential
proxying.
"""
allow_agent_gateway: bool
"""If true, allows devbox egress to the agent gateway for credential proxying."""

allow_all: bool
"""If true, all egress traffic is allowed and other fields are ignored.
Expand Down
Loading