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.68.0"
".": "0.69.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 97
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-5f33221208c1febba343daf570f73a5086f150a9b128df045ebddc3fe2c86607.yml
openapi_spec_hash: 0aea07130ddbe43a665a13a68231e2ca
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-0dd27c6877ed117c50fe0af95cee4d54c646d2484368e131b8e3315eba3fffcc.yml
openapi_spec_hash: 68f663172747aef8e66f2b23289efc7b
config_hash: 2363f563f42501d2b1587a4f64bdccaf
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Changelog

## 0.69.0 (2025-11-21)

Full Changelog: [v0.68.0...v0.69.0](https://github.com/runloopai/api-client-python/compare/v0.68.0...v0.69.0)

### Features

* **blueprints:** blueprints create_and_await_build_complete now take in build_context and named_build_context arguments ([#681](https://github.com/runloopai/api-client-python/issues/681)) ([1febe28](https://github.com/runloopai/api-client-python/commit/1febe28e2cadb23eae0cc411922646ce7b8875d3))
* **devbox:** unify api for devbox mounts ([01c7d14](https://github.com/runloopai/api-client-python/commit/01c7d14091961822d7fe706d6fa7528b6607f87a))
* **docs:** add documentation for the object oriented sdk, rendered with sphinx ([#677](https://github.com/runloopai/api-client-python/issues/677)) ([e8d1053](https://github.com/runloopai/api-client-python/commit/e8d1053edd15c07f8e8099e9736f97e5fd72fcfb))
* **storage-objects:** Add upload_from_dir helper method ([#680](https://github.com/runloopai/api-client-python/issues/680)) ([be5d99e](https://github.com/runloopai/api-client-python/commit/be5d99ef9983a64658c38ae5e0364122d11b86c4))


### Documentation

* restructured sync vs async sdk and resources, added support for more type references ([#679](https://github.com/runloopai/api-client-python/issues/679)) ([6af891e](https://github.com/runloopai/api-client-python/commit/6af891e0b87d038b5b61a683fdf410df94f495b6))

## 0.68.0 (2025-11-19)

Full Changelog: [v0.67.0...v0.68.0](https://github.com/runloopai/api-client-python/compare/v0.67.0...v0.68.0)
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 = "0.68.0"
version = "0.69.0"
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__ = "0.68.0" # x-release-please-version
__version__ = "0.69.0" # x-release-please-version
4 changes: 2 additions & 2 deletions src/runloop_api_client/resources/devboxes/devboxes.py
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ def create(

metadata: User defined metadata to attach to the devbox for organization.

mounts: A list of file system mounts to be included in the Devbox.
mounts: A list of mounts to be included in the Devbox.

name: (Optional) A user specified name to give the Devbox.

Expand Down Expand Up @@ -1769,7 +1769,7 @@ async def create(

metadata: User defined metadata to attach to the devbox for organization.

mounts: A list of file system mounts to be included in the Devbox.
mounts: A list of mounts to be included in the Devbox.

name: (Optional) A user specified name to give the Devbox.

Expand Down
2 changes: 1 addition & 1 deletion src/runloop_api_client/types/devbox_create_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class DevboxBaseCreateParams(TypedDict, total=False):
"""User defined metadata to attach to the devbox for organization."""

mounts: Optional[Iterable[Mount]]
"""A list of file system mounts to be included in the Devbox."""
"""A list of mounts to be included in the Devbox."""

name: Optional[str]
"""(Optional) A user specified name to give the Devbox."""
Expand Down
3 changes: 3 additions & 0 deletions src/runloop_api_client/types/shared/code_mount_parameters.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing import Optional
from typing_extensions import Literal

from ..._models import BaseModel

Expand All @@ -17,6 +18,8 @@ class CodeMountParameters(BaseModel):
repo_owner: str
"""The owner of the repo."""

type: Literal["code_mount"]

token: Optional[str] = None
"""The authentication token necessary to pull repo."""

Expand Down
25 changes: 21 additions & 4 deletions src/runloop_api_client/types/shared/mount.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,29 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing import Union
from typing_extensions import Annotated, TypeAlias
from typing import Dict, Union
from typing_extensions import Literal, Annotated, TypeAlias

from ..._utils import PropertyInfo
from ..._models import BaseModel
from .code_mount_parameters import CodeMountParameters
from .agent_mount_parameters import AgentMountParameters
from .object_mount_parameters import ObjectMountParameters

__all__ = ["Mount"]
__all__ = ["Mount", "FileMountParameters"]

Mount: TypeAlias = Annotated[Union[ObjectMountParameters, AgentMountParameters], PropertyInfo(discriminator="type")]

class FileMountParameters(BaseModel):
files: Dict[str, str]
"""Map of file paths to file contents to be written before setup.

Keys are absolute paths where files should be created, values are the file
contents.
"""

type: Literal["file_mount"]


Mount: TypeAlias = Annotated[
Union[ObjectMountParameters, AgentMountParameters, CodeMountParameters, FileMountParameters],
PropertyInfo(discriminator="type"),
]
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from __future__ import annotations

from typing import Optional
from typing_extensions import Required, TypedDict
from typing_extensions import Literal, Required, TypedDict

__all__ = ["CodeMountParameters"]

Expand All @@ -18,6 +18,8 @@ class CodeMountParameters(TypedDict, total=False):
repo_owner: Required[str]
"""The owner of the repo."""

type: Required[Literal["code_mount"]]

token: Optional[str]
"""The authentication token necessary to pull repo."""

Expand Down
21 changes: 17 additions & 4 deletions src/runloop_api_client/types/shared_params/mount.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,25 @@

from __future__ import annotations

from typing import Union
from typing_extensions import TypeAlias
from typing import Dict, Union
from typing_extensions import Literal, Required, TypeAlias, TypedDict

from .code_mount_parameters import CodeMountParameters
from .agent_mount_parameters import AgentMountParameters
from .object_mount_parameters import ObjectMountParameters

__all__ = ["Mount"]
__all__ = ["Mount", "FileMountParameters"]

Mount: TypeAlias = Union[ObjectMountParameters, AgentMountParameters]

class FileMountParameters(TypedDict, total=False):
files: Required[Dict[str, str]]
"""Map of file paths to file contents to be written before setup.

Keys are absolute paths where files should be created, values are the file
contents.
"""

type: Required[Literal["file_mount"]]


Mount: TypeAlias = Union[ObjectMountParameters, AgentMountParameters, CodeMountParameters, FileMountParameters]
4 changes: 4 additions & 0 deletions tests/api_resources/test_blueprints.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ def test_method_create_with_all_params(self, client: Runloop) -> None:
{
"repo_name": "repo_name",
"repo_owner": "repo_owner",
"type": "code_mount",
"token": "token",
"install_command": "install_command",
}
Expand Down Expand Up @@ -412,6 +413,7 @@ def test_method_preview_with_all_params(self, client: Runloop) -> None:
{
"repo_name": "repo_name",
"repo_owner": "repo_owner",
"type": "code_mount",
"token": "token",
"install_command": "install_command",
}
Expand Down Expand Up @@ -514,6 +516,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncRunloop) -
{
"repo_name": "repo_name",
"repo_owner": "repo_owner",
"type": "code_mount",
"token": "token",
"install_command": "install_command",
}
Expand Down Expand Up @@ -882,6 +885,7 @@ async def test_method_preview_with_all_params(self, async_client: AsyncRunloop)
{
"repo_name": "repo_name",
"repo_owner": "repo_owner",
"type": "code_mount",
"token": "token",
"install_command": "install_command",
}
Expand Down
2 changes: 2 additions & 0 deletions tests/api_resources/test_devboxes.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ def test_method_create_with_all_params(self, client: Runloop) -> None:
{
"repo_name": "repo_name",
"repo_owner": "repo_owner",
"type": "code_mount",
"token": "token",
"install_command": "install_command",
}
Expand Down Expand Up @@ -1606,6 +1607,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncRunloop) -
{
"repo_name": "repo_name",
"repo_owner": "repo_owner",
"type": "code_mount",
"token": "token",
"install_command": "install_command",
}
Expand Down