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"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 90
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-9b2e136aedff0713e8d50d6c53a930cd2c3583dcac1a9fce552cf25bb0d29214.yml
openapi_spec_hash: 81e1da702f2dfb28bbe1bfab0d5d8cbd
config_hash: 5b2602a56850cf0d0e50da298d1c6916
configured_endpoints: 92
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-f1d928f705d6771a22fe701dfb8c0c66aabbd0dd6d17e3fa09b8eb3a48259a84.yml
openapi_spec_hash: 12dc18a4da3f084fee3d2c5f428e1df3
config_hash: f9f7bc60c36f103c77333d9149cd3e46
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Changelog

## 0.62.0 (2025-10-01)

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

### Features

* **api:** api update ([a2ed6d7](https://github.com/runloopai/api-client-python/commit/a2ed6d7530f8ea05f600713163ac646989426a65))
* **api:** api update ([59b9486](https://github.com/runloopai/api-client-python/commit/59b9486f94c15ec76021ec98db3dad93225be663))
* **api:** api update ([8d62f4b](https://github.com/runloopai/api-client-python/commit/8d62f4b5018b52f3d813b8f6a1f3e5460b80e368))

## 0.61.0 (2025-09-29)

Full Changelog: [v0.60.1...v0.61.0](https://github.com/runloopai/api-client-python/compare/v0.60.1...v0.61.0)
Expand Down
4 changes: 4 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,14 @@ Types:

```python
from runloop_api_client.types import (
BlueprintBuildFromInspectionParameters,
BlueprintBuildLog,
BlueprintBuildLogsListView,
BlueprintBuildParameters,
BlueprintListView,
BlueprintPreviewView,
BlueprintView,
InspectionSource,
)
```

Expand All @@ -61,6 +63,7 @@ Methods:
- <code title="get /v1/blueprints/{id}">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/blueprint_view.py">BlueprintView</a></code>
- <code title="get /v1/blueprints">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">list</a>(\*\*<a href="src/runloop_api_client/types/blueprint_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/blueprint_view.py">SyncBlueprintsCursorIDPage[BlueprintView]</a></code>
- <code title="post /v1/blueprints/{id}/delete">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">delete</a>(id) -> object</code>
- <code title="post /v1/blueprints/create_from_inspection">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">create_from_inspection</a>(\*\*<a href="src/runloop_api_client/types/blueprint_create_from_inspection_params.py">params</a>) -> <a href="./src/runloop_api_client/types/blueprint_view.py">BlueprintView</a></code>
- <code title="get /v1/blueprints/list_public">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">list_public</a>(\*\*<a href="src/runloop_api_client/types/blueprint_list_public_params.py">params</a>) -> <a href="./src/runloop_api_client/types/blueprint_view.py">SyncBlueprintsCursorIDPage[BlueprintView]</a></code>
- <code title="get /v1/blueprints/{id}/logs">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">logs</a>(id) -> <a href="./src/runloop_api_client/types/blueprint_build_logs_list_view.py">BlueprintBuildLogsListView</a></code>
- <code title="post /v1/blueprints/preview">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">preview</a>(\*\*<a href="src/runloop_api_client/types/blueprint_preview_params.py">params</a>) -> <a href="./src/runloop_api_client/types/blueprint_preview_view.py">BlueprintPreviewView</a></code>
Expand Down Expand Up @@ -298,6 +301,7 @@ Methods:
- <code title="get /v1/repositories/{id}">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/repository_connection_view.py">RepositoryConnectionView</a></code>
- <code title="get /v1/repositories">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">list</a>(\*\*<a href="src/runloop_api_client/types/repository_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/repository_connection_view.py">SyncRepositoriesCursorIDPage[RepositoryConnectionView]</a></code>
- <code title="post /v1/repositories/{id}/delete">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">delete</a>(id) -> object</code>
- <code title="post /v1/repositories/{id}/inspect">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">inspect</a>(id, \*\*<a href="src/runloop_api_client/types/repository_inspect_params.py">params</a>) -> <a href="./src/runloop_api_client/types/repository_inspection_details.py">RepositoryInspectionDetails</a></code>
- <code title="get /v1/repositories/{id}/inspections">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">list_inspections</a>(id) -> <a href="./src/runloop_api_client/types/repository_inspection_list_view.py">RepositoryInspectionListView</a></code>
- <code title="post /v1/repositories/{id}/refresh">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">refresh</a>(id, \*\*<a href="src/runloop_api_client/types/repository_refresh_params.py">params</a>) -> object</code>

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.61.0"
version = "0.62.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.61.0" # x-release-please-version
__version__ = "0.62.0" # x-release-please-version
152 changes: 152 additions & 0 deletions src/runloop_api_client/resources/blueprints.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
blueprint_create_params,
blueprint_preview_params,
blueprint_list_public_params,
blueprint_create_from_inspection_params,
)
from .._types import NOT_GIVEN, Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
from .._utils import maybe_transform, async_maybe_transform
Expand All @@ -29,6 +30,7 @@
from ..lib.polling_async import async_poll_until
from ..types.blueprint_view import BlueprintView
from ..types.blueprint_preview_view import BlueprintPreviewView
from ..types.inspection_source_param import InspectionSourceParam
from ..types.blueprint_build_logs_list_view import BlueprintBuildLogsListView
from ..types.shared_params.launch_parameters import LaunchParameters
from ..types.shared_params.code_mount_parameters import CodeMountParameters
Expand Down Expand Up @@ -394,6 +396,75 @@ def delete(
cast_to=object,
)

def create_from_inspection(
self,
*,
inspection_source: InspectionSourceParam,
name: str,
file_mounts: Optional[Dict[str, str]] | Omit = omit,
launch_parameters: Optional[LaunchParameters] | Omit = omit,
metadata: Optional[Dict[str, str]] | Omit = omit,
system_setup_commands: Optional[SequenceNotStr[str]] | 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,
idempotency_key: str | None = None,
) -> BlueprintView:
"""
Starts build of custom defined container Blueprint using a RepositoryConnection
Inspection as a source container specification.

Args:
inspection_source: (Optional) Use a RepositoryInspection a source of a Blueprint build. The
Dockerfile will be automatically created based on the RepositoryInspection
contents.

name: Name of the Blueprint.

file_mounts: (Optional) Map of paths and file contents to write before setup.

launch_parameters: Parameters to configure your Devbox at launch time.

metadata: (Optional) User defined metadata for the Blueprint.

system_setup_commands: A list of commands to run to set up your system.

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/blueprints/create_from_inspection",
body=maybe_transform(
{
"inspection_source": inspection_source,
"name": name,
"file_mounts": file_mounts,
"launch_parameters": launch_parameters,
"metadata": metadata,
"system_setup_commands": system_setup_commands,
},
blueprint_create_from_inspection_params.BlueprintCreateFromInspectionParams,
),
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
idempotency_key=idempotency_key,
),
cast_to=BlueprintView,
)

def list_public(
self,
*,
Expand Down Expand Up @@ -919,6 +990,75 @@ async def delete(
cast_to=object,
)

async def create_from_inspection(
self,
*,
inspection_source: InspectionSourceParam,
name: str,
file_mounts: Optional[Dict[str, str]] | Omit = omit,
launch_parameters: Optional[LaunchParameters] | Omit = omit,
metadata: Optional[Dict[str, str]] | Omit = omit,
system_setup_commands: Optional[SequenceNotStr[str]] | 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,
idempotency_key: str | None = None,
) -> BlueprintView:
"""
Starts build of custom defined container Blueprint using a RepositoryConnection
Inspection as a source container specification.

Args:
inspection_source: (Optional) Use a RepositoryInspection a source of a Blueprint build. The
Dockerfile will be automatically created based on the RepositoryInspection
contents.

name: Name of the Blueprint.

file_mounts: (Optional) Map of paths and file contents to write before setup.

launch_parameters: Parameters to configure your Devbox at launch time.

metadata: (Optional) User defined metadata for the Blueprint.

system_setup_commands: A list of commands to run to set up your system.

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/blueprints/create_from_inspection",
body=await async_maybe_transform(
{
"inspection_source": inspection_source,
"name": name,
"file_mounts": file_mounts,
"launch_parameters": launch_parameters,
"metadata": metadata,
"system_setup_commands": system_setup_commands,
},
blueprint_create_from_inspection_params.BlueprintCreateFromInspectionParams,
),
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
idempotency_key=idempotency_key,
),
cast_to=BlueprintView,
)

def list_public(
self,
*,
Expand Down Expand Up @@ -1114,6 +1254,9 @@ def __init__(self, blueprints: BlueprintsResource) -> None:
self.delete = to_raw_response_wrapper(
blueprints.delete,
)
self.create_from_inspection = to_raw_response_wrapper(
blueprints.create_from_inspection,
)
self.list_public = to_raw_response_wrapper(
blueprints.list_public,
)
Expand Down Expand Up @@ -1141,6 +1284,9 @@ def __init__(self, blueprints: AsyncBlueprintsResource) -> None:
self.delete = async_to_raw_response_wrapper(
blueprints.delete,
)
self.create_from_inspection = async_to_raw_response_wrapper(
blueprints.create_from_inspection,
)
self.list_public = async_to_raw_response_wrapper(
blueprints.list_public,
)
Expand Down Expand Up @@ -1168,6 +1314,9 @@ def __init__(self, blueprints: BlueprintsResource) -> None:
self.delete = to_streamed_response_wrapper(
blueprints.delete,
)
self.create_from_inspection = to_streamed_response_wrapper(
blueprints.create_from_inspection,
)
self.list_public = to_streamed_response_wrapper(
blueprints.list_public,
)
Expand Down Expand Up @@ -1195,6 +1344,9 @@ def __init__(self, blueprints: AsyncBlueprintsResource) -> None:
self.delete = async_to_streamed_response_wrapper(
blueprints.delete,
)
self.create_from_inspection = async_to_streamed_response_wrapper(
blueprints.create_from_inspection,
)
self.list_public = async_to_streamed_response_wrapper(
blueprints.list_public,
)
Expand Down
Loading