From 49a39e15cdb131567da55c689033b94affba85f2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 30 Jul 2025 18:09:02 +0000 Subject: [PATCH 1/2] feat(api): api update --- .stats.yml | 4 +- .../resources/benchmarks/benchmarks.py | 40 +++++++++++++---- .../resources/scenarios/scenarios.py | 32 ++++++++++--- .../types/benchmark_create_params.py | 9 +++- .../types/benchmark_run_view.py | 3 ++ .../types/benchmark_start_run_params.py | 5 ++- .../types/benchmark_update_params.py | 9 +++- .../types/benchmark_view.py | 9 +++- .../types/blueprint_view.py | 45 ++++++++++++++++++- .../types/scenario_create_params.py | 7 +++ .../types/scenario_run_view.py | 5 ++- .../types/scenario_start_run_params.py | 5 ++- .../types/scenario_update_params.py | 10 +++-- src/runloop_api_client/types/scenario_view.py | 6 +++ .../types/shared/launch_parameters.py | 6 +++ .../types/shared_params/launch_parameters.py | 6 +++ tests/api_resources/scenarios/test_scorers.py | 2 + tests/api_resources/test_benchmarks.py | 6 +++ tests/api_resources/test_blueprints.py | 4 ++ tests/api_resources/test_devboxes.py | 2 + tests/api_resources/test_scenarios.py | 14 +++++- 21 files changed, 199 insertions(+), 30 deletions(-) diff --git a/.stats.yml b/.stats.yml index 1e72a9a13..5be2d49b7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 92 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-bbb5c731b774122662526cc0b24015828012b1f09bb32fe2d54498aa09e52c92.yml -openapi_spec_hash: 3d23e89561895724da8d48967dd26f17 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-2417f3ff96b2f0934e6ee5cafd072e111515712cebb58eff3690bda46b9e04d8.yml +openapi_spec_hash: 15877c256d01485dacbb4e348d79845d config_hash: 60681f589a9e641fdb7f19af2021a033 diff --git a/src/runloop_api_client/resources/benchmarks/benchmarks.py b/src/runloop_api_client/resources/benchmarks/benchmarks.py index af8a721b3..3df2b183d 100644 --- a/src/runloop_api_client/resources/benchmarks/benchmarks.py +++ b/src/runloop_api_client/resources/benchmarks/benchmarks.py @@ -71,6 +71,7 @@ def create( name: str, metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN, required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN, + required_secrets: List[str] | NotGiven = NOT_GIVEN, scenario_ids: Optional[List[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. @@ -88,8 +89,12 @@ def create( metadata: User defined metadata to attach to the benchmark for organization. - required_environment_variables: Environment variables required to run the benchmark. If these variables are not - supplied, the benchmark will fail to start + required_environment_variables: Environment variables required to run the benchmark. If any required variables + are not supplied, the benchmark will fail to start + + required_secrets: Secrets required to run the benchmark with (user secret name will be mapped to + benchmark required secret name). If any of these secrets are not provided or the + mapping is incorrect, the benchmark will fail to start. scenario_ids: The Scenario IDs that make up the Benchmark. @@ -110,6 +115,7 @@ def create( "name": name, "metadata": metadata, "required_environment_variables": required_environment_variables, + "required_secrets": required_secrets, "scenario_ids": scenario_ids, }, benchmark_create_params.BenchmarkCreateParams, @@ -164,6 +170,7 @@ def update( name: str, metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN, required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN, + required_secrets: List[str] | NotGiven = NOT_GIVEN, scenario_ids: Optional[List[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. @@ -181,8 +188,12 @@ def update( metadata: User defined metadata to attach to the benchmark for organization. - required_environment_variables: Environment variables required to run the benchmark. If these variables are not - supplied, the benchmark will fail to start + required_environment_variables: Environment variables required to run the benchmark. If any required variables + are not supplied, the benchmark will fail to start + + required_secrets: Secrets required to run the benchmark with (user secret name will be mapped to + benchmark required secret name). If any of these secrets are not provided or the + mapping is incorrect, the benchmark will fail to start. scenario_ids: The Scenario IDs that make up the Benchmark. @@ -205,6 +216,7 @@ def update( "name": name, "metadata": metadata, "required_environment_variables": required_environment_variables, + "required_secrets": required_secrets, "scenario_ids": scenario_ids, }, benchmark_update_params.BenchmarkUpdateParams, @@ -451,6 +463,7 @@ async def create( name: str, metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN, required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN, + required_secrets: List[str] | NotGiven = NOT_GIVEN, scenario_ids: Optional[List[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. @@ -468,8 +481,12 @@ async def create( metadata: User defined metadata to attach to the benchmark for organization. - required_environment_variables: Environment variables required to run the benchmark. If these variables are not - supplied, the benchmark will fail to start + required_environment_variables: Environment variables required to run the benchmark. If any required variables + are not supplied, the benchmark will fail to start + + required_secrets: Secrets required to run the benchmark with (user secret name will be mapped to + benchmark required secret name). If any of these secrets are not provided or the + mapping is incorrect, the benchmark will fail to start. scenario_ids: The Scenario IDs that make up the Benchmark. @@ -490,6 +507,7 @@ async def create( "name": name, "metadata": metadata, "required_environment_variables": required_environment_variables, + "required_secrets": required_secrets, "scenario_ids": scenario_ids, }, benchmark_create_params.BenchmarkCreateParams, @@ -544,6 +562,7 @@ async def update( name: str, metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN, required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN, + required_secrets: List[str] | NotGiven = NOT_GIVEN, scenario_ids: Optional[List[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. @@ -561,8 +580,12 @@ async def update( metadata: User defined metadata to attach to the benchmark for organization. - required_environment_variables: Environment variables required to run the benchmark. If these variables are not - supplied, the benchmark will fail to start + required_environment_variables: Environment variables required to run the benchmark. If any required variables + are not supplied, the benchmark will fail to start + + required_secrets: Secrets required to run the benchmark with (user secret name will be mapped to + benchmark required secret name). If any of these secrets are not provided or the + mapping is incorrect, the benchmark will fail to start. scenario_ids: The Scenario IDs that make up the Benchmark. @@ -585,6 +608,7 @@ async def update( "name": name, "metadata": metadata, "required_environment_variables": required_environment_variables, + "required_secrets": required_secrets, "scenario_ids": scenario_ids, }, benchmark_update_params.BenchmarkUpdateParams, diff --git a/src/runloop_api_client/resources/scenarios/scenarios.py b/src/runloop_api_client/resources/scenarios/scenarios.py index a585b21cf..7425a11fb 100644 --- a/src/runloop_api_client/resources/scenarios/scenarios.py +++ b/src/runloop_api_client/resources/scenarios/scenarios.py @@ -91,6 +91,7 @@ def create( metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN, reference_output: Optional[str] | NotGiven = NOT_GIVEN, required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN, + required_secret_names: Optional[List[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, @@ -121,6 +122,10 @@ def create( required_environment_variables: Environment variables required to run the scenario. If these variables are not provided, the scenario will fail to start. + required_secret_names: Secrets required to run the scenario (user secret name to scenario required + secret name). If these secrets are not provided or the mapping is incorrect, the + scenario will fail to start. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -142,6 +147,7 @@ def create( "metadata": metadata, "reference_output": reference_output, "required_environment_variables": required_environment_variables, + "required_secret_names": required_secret_names, }, scenario_create_params.ScenarioCreateParams, ), @@ -197,7 +203,8 @@ def update( metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN, name: Optional[str] | NotGiven = NOT_GIVEN, reference_output: Optional[str] | NotGiven = NOT_GIVEN, - required_env_vars: Optional[List[str]] | NotGiven = NOT_GIVEN, + required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN, + required_secrets: Optional[List[str]] | NotGiven = NOT_GIVEN, scoring_contract: Optional[ScoringContractUpdateParam] | 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. @@ -225,7 +232,9 @@ def update( can be the result of a git diff or a sequence of command actions to apply to the environment. - required_env_vars: Environment variables required to run the benchmark. + required_environment_variables: Environment variables required to run the scenario. + + required_secrets: Secrets required to run the scenario. scoring_contract: The scoring contract for the Scenario. @@ -250,7 +259,8 @@ def update( "metadata": metadata, "name": name, "reference_output": reference_output, - "required_env_vars": required_env_vars, + "required_environment_variables": required_environment_variables, + "required_secrets": required_secrets, "scoring_contract": scoring_contract, }, scenario_update_params.ScenarioUpdateParams, @@ -527,6 +537,7 @@ async def create( metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN, reference_output: Optional[str] | NotGiven = NOT_GIVEN, required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN, + required_secret_names: Optional[List[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, @@ -557,6 +568,10 @@ async def create( required_environment_variables: Environment variables required to run the scenario. If these variables are not provided, the scenario will fail to start. + required_secret_names: Secrets required to run the scenario (user secret name to scenario required + secret name). If these secrets are not provided or the mapping is incorrect, the + scenario will fail to start. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -578,6 +593,7 @@ async def create( "metadata": metadata, "reference_output": reference_output, "required_environment_variables": required_environment_variables, + "required_secret_names": required_secret_names, }, scenario_create_params.ScenarioCreateParams, ), @@ -633,7 +649,8 @@ async def update( metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN, name: Optional[str] | NotGiven = NOT_GIVEN, reference_output: Optional[str] | NotGiven = NOT_GIVEN, - required_env_vars: Optional[List[str]] | NotGiven = NOT_GIVEN, + required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN, + required_secrets: Optional[List[str]] | NotGiven = NOT_GIVEN, scoring_contract: Optional[ScoringContractUpdateParam] | 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. @@ -661,7 +678,9 @@ async def update( can be the result of a git diff or a sequence of command actions to apply to the environment. - required_env_vars: Environment variables required to run the benchmark. + required_environment_variables: Environment variables required to run the scenario. + + required_secrets: Secrets required to run the scenario. scoring_contract: The scoring contract for the Scenario. @@ -686,7 +705,8 @@ async def update( "metadata": metadata, "name": name, "reference_output": reference_output, - "required_env_vars": required_env_vars, + "required_environment_variables": required_environment_variables, + "required_secrets": required_secrets, "scoring_contract": scoring_contract, }, scenario_update_params.ScenarioUpdateParams, diff --git a/src/runloop_api_client/types/benchmark_create_params.py b/src/runloop_api_client/types/benchmark_create_params.py index 7906b0e91..2025bc52c 100644 --- a/src/runloop_api_client/types/benchmark_create_params.py +++ b/src/runloop_api_client/types/benchmark_create_params.py @@ -18,7 +18,14 @@ class BenchmarkCreateParams(TypedDict, total=False): required_environment_variables: Optional[List[str]] """Environment variables required to run the benchmark. - If these variables are not supplied, the benchmark will fail to start + If any required variables are not supplied, the benchmark will fail to start + """ + + required_secrets: List[str] + """ + Secrets required to run the benchmark with (user secret name will be mapped to + benchmark required secret name). If any of these secrets are not provided or the + mapping is incorrect, the benchmark will fail to start. """ scenario_ids: Optional[List[str]] diff --git a/src/runloop_api_client/types/benchmark_run_view.py b/src/runloop_api_client/types/benchmark_run_view.py index aad3cd68b..140122ecd 100644 --- a/src/runloop_api_client/types/benchmark_run_view.py +++ b/src/runloop_api_client/types/benchmark_run_view.py @@ -41,3 +41,6 @@ class BenchmarkRunView(BaseModel): Calculated as sum of scenario scores / number of scenario runs. """ + + secrets_provided: Optional[Dict[str, str]] = None + """User secrets used to run the benchmark.""" diff --git a/src/runloop_api_client/types/benchmark_start_run_params.py b/src/runloop_api_client/types/benchmark_start_run_params.py index 1a5ca1d54..caa2e1927 100644 --- a/src/runloop_api_client/types/benchmark_start_run_params.py +++ b/src/runloop_api_client/types/benchmark_start_run_params.py @@ -26,7 +26,10 @@ class BenchmarkStartRunParams(TypedDict, total=False): class RunProfile(TypedDict, total=False): env_vars: Annotated[Optional[Dict[str, str]], PropertyInfo(alias="envVars")] - """Environment variables.""" + """Environment Variables: Environment Variable to Value.""" purpose: Optional[str] """Purpose of the run.""" + + secrets: Optional[Dict[str, str]] + """Secrets: Environment Variable to User Secret Name.""" diff --git a/src/runloop_api_client/types/benchmark_update_params.py b/src/runloop_api_client/types/benchmark_update_params.py index b4cb08dc2..d3b2a1276 100644 --- a/src/runloop_api_client/types/benchmark_update_params.py +++ b/src/runloop_api_client/types/benchmark_update_params.py @@ -18,7 +18,14 @@ class BenchmarkUpdateParams(TypedDict, total=False): required_environment_variables: Optional[List[str]] """Environment variables required to run the benchmark. - If these variables are not supplied, the benchmark will fail to start + If any required variables are not supplied, the benchmark will fail to start + """ + + required_secrets: List[str] + """ + Secrets required to run the benchmark with (user secret name will be mapped to + benchmark required secret name). If any of these secrets are not provided or the + mapping is incorrect, the benchmark will fail to start. """ scenario_ids: Optional[List[str]] diff --git a/src/runloop_api_client/types/benchmark_view.py b/src/runloop_api_client/types/benchmark_view.py index 777aab50a..1b8753c1f 100644 --- a/src/runloop_api_client/types/benchmark_view.py +++ b/src/runloop_api_client/types/benchmark_view.py @@ -28,5 +28,12 @@ class BenchmarkView(BaseModel): required_environment_variables: Optional[List[str]] = None """Required environment variables used to run the benchmark. - If any required environment are missing, the benchmark will fail to start. + If any required environment variables are missing, the benchmark will fail to + start. + """ + + required_secret_names: Optional[List[str]] = None + """Required secrets used to run the benchmark. + + If any required secrets are missing, the benchmark will fail to start. """ diff --git a/src/runloop_api_client/types/blueprint_view.py b/src/runloop_api_client/types/blueprint_view.py index 971c6e636..7ea201c55 100644 --- a/src/runloop_api_client/types/blueprint_view.py +++ b/src/runloop_api_client/types/blueprint_view.py @@ -1,12 +1,45 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import Optional +from typing import Dict, List, Optional from typing_extensions import Literal +from pydantic import Field as FieldInfo + from .._models import BaseModel from .blueprint_build_parameters import BlueprintBuildParameters -__all__ = ["BlueprintView"] +__all__ = ["BlueprintView", "ContainerizedService", "ContainerizedServiceCredentials"] + + +class ContainerizedServiceCredentials(BaseModel): + password: str + """The password of the container service.""" + + username: str + """The username of the container service.""" + + +class ContainerizedService(BaseModel): + image: str + """The image of the container service.""" + + name: str + """The name of the container service.""" + + credentials: Optional[ContainerizedServiceCredentials] = None + """The credentials of the container service.""" + + env: Optional[Dict[str, str]] = None + """The environment variables of the container service.""" + + options: Optional[str] = None + """Additional Docker container create options.""" + + port_mappings: Optional[List[str]] = None + """The port mappings of the container service. + + Port mappings are in the format of :. + """ class BlueprintView(BaseModel): @@ -31,5 +64,13 @@ class BlueprintView(BaseModel): base_blueprint_id: Optional[str] = None """The ID of the base Blueprint.""" + containerized_services: Optional[List[ContainerizedService]] = FieldInfo( + alias="containerizedServices", default=None + ) + """List of ContainerizedServices available in the Blueprint. + + Services can be explicitly started when creating a Devbox. + """ + failure_reason: Optional[Literal["out_of_memory", "out_of_disk", "build_failed"]] = None """The failure reason if the Blueprint build failed, if any.""" diff --git a/src/runloop_api_client/types/scenario_create_params.py b/src/runloop_api_client/types/scenario_create_params.py index 37438bc02..71f402aa9 100644 --- a/src/runloop_api_client/types/scenario_create_params.py +++ b/src/runloop_api_client/types/scenario_create_params.py @@ -40,3 +40,10 @@ class ScenarioCreateParams(TypedDict, total=False): If these variables are not provided, the scenario will fail to start. """ + + required_secret_names: Optional[List[str]] + """ + Secrets required to run the scenario (user secret name to scenario required + secret name). If these secrets are not provided or the mapping is incorrect, the + scenario will fail to start. + """ diff --git a/src/runloop_api_client/types/scenario_run_view.py b/src/runloop_api_client/types/scenario_run_view.py index 1b667865d..225e90a89 100644 --- a/src/runloop_api_client/types/scenario_run_view.py +++ b/src/runloop_api_client/types/scenario_run_view.py @@ -32,7 +32,7 @@ class ScenarioRunView(BaseModel): """Duration scenario took to run.""" environment_variables: Optional[Dict[str, str]] = None - """Environment variables used to run the Scenario.""" + """Environment variables used to run the scenario.""" name: Optional[str] = None """Optional name of ScenarioRun.""" @@ -43,5 +43,8 @@ class ScenarioRunView(BaseModel): scoring_contract_result: Optional[ScoringContractResultView] = None """The scoring result of the ScenarioRun.""" + secrets_provided: Optional[Dict[str, str]] = None + """User secrets used to run the scenario.""" + start_time_ms: Optional[int] = None """The time that the scenario started""" diff --git a/src/runloop_api_client/types/scenario_start_run_params.py b/src/runloop_api_client/types/scenario_start_run_params.py index 3a7fb80c5..ea3871193 100644 --- a/src/runloop_api_client/types/scenario_start_run_params.py +++ b/src/runloop_api_client/types/scenario_start_run_params.py @@ -29,7 +29,10 @@ class ScenarioStartRunParams(TypedDict, total=False): class RunProfile(TypedDict, total=False): env_vars: Annotated[Optional[Dict[str, str]], PropertyInfo(alias="envVars")] - """Environment variables.""" + """Environment Variables: Environment Variable to Value.""" purpose: Optional[str] """Purpose of the run.""" + + secrets: Optional[Dict[str, str]] + """Secrets: Environment Variable to User Secret Name.""" diff --git a/src/runloop_api_client/types/scenario_update_params.py b/src/runloop_api_client/types/scenario_update_params.py index 6007bf844..81608552d 100644 --- a/src/runloop_api_client/types/scenario_update_params.py +++ b/src/runloop_api_client/types/scenario_update_params.py @@ -3,9 +3,8 @@ from __future__ import annotations from typing import Dict, List, Optional -from typing_extensions import Annotated, TypedDict +from typing_extensions import TypedDict -from .._utils import PropertyInfo from .input_context_update_param import InputContextUpdateParam from .scenario_environment_param import ScenarioEnvironmentParam from .scoring_contract_update_param import ScoringContractUpdateParam @@ -33,8 +32,11 @@ class ScenarioUpdateParams(TypedDict, total=False): apply to the environment. """ - required_env_vars: Annotated[Optional[List[str]], PropertyInfo(alias="requiredEnvVars")] - """Environment variables required to run the benchmark.""" + required_environment_variables: Optional[List[str]] + """Environment variables required to run the scenario.""" + + required_secrets: Optional[List[str]] + """Secrets required to run the scenario.""" scoring_contract: Optional[ScoringContractUpdateParam] """The scoring contract for the Scenario.""" diff --git a/src/runloop_api_client/types/scenario_view.py b/src/runloop_api_client/types/scenario_view.py index 816fef1b5..2b608038a 100644 --- a/src/runloop_api_client/types/scenario_view.py +++ b/src/runloop_api_client/types/scenario_view.py @@ -45,3 +45,9 @@ class ScenarioView(BaseModel): If any required environment variables are missing, the scenario will fail to start. """ + + required_secret_names: Optional[List[str]] = None + """Environment variables required to run the scenario. + + If any required secrets are missing, the scenario will fail to start. + """ diff --git a/src/runloop_api_client/types/shared/launch_parameters.py b/src/runloop_api_client/types/shared/launch_parameters.py index fdc18c6b0..ccc3d725a 100644 --- a/src/runloop_api_client/types/shared/launch_parameters.py +++ b/src/runloop_api_client/types/shared/launch_parameters.py @@ -61,6 +61,12 @@ class LaunchParameters(BaseModel): launch_commands: Optional[List[str]] = None """Set of commands to be run at launch time, before the entrypoint process is run.""" + required_services: Optional[List[str]] = None + """A list of ContainerizedService names to be started when a Devbox is created. + + A valid ContainerizedService must be specified in Blueprint to be started. + """ + resource_size_request: Optional[ Literal["X_SMALL", "SMALL", "MEDIUM", "LARGE", "X_LARGE", "XX_LARGE", "CUSTOM_SIZE"] ] = None diff --git a/src/runloop_api_client/types/shared_params/launch_parameters.py b/src/runloop_api_client/types/shared_params/launch_parameters.py index 0ed9e4f71..000d52c11 100644 --- a/src/runloop_api_client/types/shared_params/launch_parameters.py +++ b/src/runloop_api_client/types/shared_params/launch_parameters.py @@ -62,6 +62,12 @@ class LaunchParameters(TypedDict, total=False): launch_commands: Optional[List[str]] """Set of commands to be run at launch time, before the entrypoint process is run.""" + required_services: Optional[List[str]] + """A list of ContainerizedService names to be started when a Devbox is created. + + A valid ContainerizedService must be specified in Blueprint to be started. + """ + resource_size_request: Optional[ Literal["X_SMALL", "SMALL", "MEDIUM", "LARGE", "X_LARGE", "XX_LARGE", "CUSTOM_SIZE"] ] diff --git a/tests/api_resources/scenarios/test_scorers.py b/tests/api_resources/scenarios/test_scorers.py index bff5423a9..415693ada 100644 --- a/tests/api_resources/scenarios/test_scorers.py +++ b/tests/api_resources/scenarios/test_scorers.py @@ -202,6 +202,7 @@ def test_method_validate_with_all_params(self, client: Runloop) -> None: "custom_gb_memory": 0, "keep_alive_time_seconds": 0, "launch_commands": ["string"], + "required_services": ["string"], "resource_size_request": "X_SMALL", "user_parameters": { "uid": 0, @@ -433,6 +434,7 @@ async def test_method_validate_with_all_params(self, async_client: AsyncRunloop) "custom_gb_memory": 0, "keep_alive_time_seconds": 0, "launch_commands": ["string"], + "required_services": ["string"], "resource_size_request": "X_SMALL", "user_parameters": { "uid": 0, diff --git a/tests/api_resources/test_benchmarks.py b/tests/api_resources/test_benchmarks.py index bbbbd0e05..bf4e4921c 100644 --- a/tests/api_resources/test_benchmarks.py +++ b/tests/api_resources/test_benchmarks.py @@ -35,6 +35,7 @@ def test_method_create_with_all_params(self, client: Runloop) -> None: name="name", metadata={"foo": "string"}, required_environment_variables=["string"], + required_secrets=["string"], scenario_ids=["string"], ) assert_matches_type(BenchmarkView, benchmark, path=["response"]) @@ -116,6 +117,7 @@ def test_method_update_with_all_params(self, client: Runloop) -> None: name="name", metadata={"foo": "string"}, required_environment_variables=["string"], + required_secrets=["string"], scenario_ids=["string"], ) assert_matches_type(BenchmarkView, benchmark, path=["response"]) @@ -283,6 +285,7 @@ def test_method_start_run_with_all_params(self, client: Runloop) -> None: run_profile={ "env_vars": {"foo": "string"}, "purpose": "purpose", + "secrets": {"foo": "string"}, }, ) assert_matches_type(BenchmarkRunView, benchmark, path=["response"]) @@ -330,6 +333,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncRunloop) - name="name", metadata={"foo": "string"}, required_environment_variables=["string"], + required_secrets=["string"], scenario_ids=["string"], ) assert_matches_type(BenchmarkView, benchmark, path=["response"]) @@ -411,6 +415,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncRunloop) - name="name", metadata={"foo": "string"}, required_environment_variables=["string"], + required_secrets=["string"], scenario_ids=["string"], ) assert_matches_type(BenchmarkView, benchmark, path=["response"]) @@ -578,6 +583,7 @@ async def test_method_start_run_with_all_params(self, async_client: AsyncRunloop run_profile={ "env_vars": {"foo": "string"}, "purpose": "purpose", + "secrets": {"foo": "string"}, }, ) assert_matches_type(BenchmarkRunView, benchmark, path=["response"]) diff --git a/tests/api_resources/test_blueprints.py b/tests/api_resources/test_blueprints.py index 25871a9e0..1ef1edb90 100644 --- a/tests/api_resources/test_blueprints.py +++ b/tests/api_resources/test_blueprints.py @@ -56,6 +56,7 @@ def test_method_create_with_all_params(self, client: Runloop) -> None: "custom_gb_memory": 0, "keep_alive_time_seconds": 0, "launch_commands": ["string"], + "required_services": ["string"], "resource_size_request": "X_SMALL", "user_parameters": { "uid": 0, @@ -272,6 +273,7 @@ def test_method_preview_with_all_params(self, client: Runloop) -> None: "custom_gb_memory": 0, "keep_alive_time_seconds": 0, "launch_commands": ["string"], + "required_services": ["string"], "resource_size_request": "X_SMALL", "user_parameters": { "uid": 0, @@ -346,6 +348,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncRunloop) - "custom_gb_memory": 0, "keep_alive_time_seconds": 0, "launch_commands": ["string"], + "required_services": ["string"], "resource_size_request": "X_SMALL", "user_parameters": { "uid": 0, @@ -562,6 +565,7 @@ async def test_method_preview_with_all_params(self, async_client: AsyncRunloop) "custom_gb_memory": 0, "keep_alive_time_seconds": 0, "launch_commands": ["string"], + "required_services": ["string"], "resource_size_request": "X_SMALL", "user_parameters": { "uid": 0, diff --git a/tests/api_resources/test_devboxes.py b/tests/api_resources/test_devboxes.py index 0cf7d8b2c..b98989d0f 100644 --- a/tests/api_resources/test_devboxes.py +++ b/tests/api_resources/test_devboxes.py @@ -75,6 +75,7 @@ def test_method_create_with_all_params(self, client: Runloop) -> None: "custom_gb_memory": 0, "keep_alive_time_seconds": 0, "launch_commands": ["string"], + "required_services": ["string"], "resource_size_request": "X_SMALL", "user_parameters": { "uid": 0, @@ -1299,6 +1300,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncRunloop) - "custom_gb_memory": 0, "keep_alive_time_seconds": 0, "launch_commands": ["string"], + "required_services": ["string"], "resource_size_request": "X_SMALL", "user_parameters": { "uid": 0, diff --git a/tests/api_resources/test_scenarios.py b/tests/api_resources/test_scenarios.py index 5c5ae84c8..69c75072f 100644 --- a/tests/api_resources/test_scenarios.py +++ b/tests/api_resources/test_scenarios.py @@ -78,6 +78,7 @@ def test_method_create_with_all_params(self, client: Runloop) -> None: "custom_gb_memory": 0, "keep_alive_time_seconds": 0, "launch_commands": ["string"], + "required_services": ["string"], "resource_size_request": "X_SMALL", "user_parameters": { "uid": 0, @@ -91,6 +92,7 @@ def test_method_create_with_all_params(self, client: Runloop) -> None: metadata={"foo": "string"}, reference_output="reference_output", required_environment_variables=["string"], + required_secret_names=["string"], ) assert_matches_type(ScenarioView, scenario, path=["response"]) @@ -209,6 +211,7 @@ def test_method_update_with_all_params(self, client: Runloop) -> None: "custom_gb_memory": 0, "keep_alive_time_seconds": 0, "launch_commands": ["string"], + "required_services": ["string"], "resource_size_request": "X_SMALL", "user_parameters": { "uid": 0, @@ -226,7 +229,8 @@ def test_method_update_with_all_params(self, client: Runloop) -> None: metadata={"foo": "string"}, name="name", reference_output="reference_output", - required_env_vars=["string"], + required_environment_variables=["string"], + required_secrets=["string"], scoring_contract={ "scoring_function_parameters": [ { @@ -361,6 +365,7 @@ def test_method_start_run_with_all_params(self, client: Runloop) -> None: run_profile={ "env_vars": {"foo": "string"}, "purpose": "purpose", + "secrets": {"foo": "string"}, }, ) assert_matches_type(ScenarioRunView, scenario, path=["response"]) @@ -452,6 +457,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncRunloop) - "custom_gb_memory": 0, "keep_alive_time_seconds": 0, "launch_commands": ["string"], + "required_services": ["string"], "resource_size_request": "X_SMALL", "user_parameters": { "uid": 0, @@ -465,6 +471,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncRunloop) - metadata={"foo": "string"}, reference_output="reference_output", required_environment_variables=["string"], + required_secret_names=["string"], ) assert_matches_type(ScenarioView, scenario, path=["response"]) @@ -583,6 +590,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncRunloop) - "custom_gb_memory": 0, "keep_alive_time_seconds": 0, "launch_commands": ["string"], + "required_services": ["string"], "resource_size_request": "X_SMALL", "user_parameters": { "uid": 0, @@ -600,7 +608,8 @@ async def test_method_update_with_all_params(self, async_client: AsyncRunloop) - metadata={"foo": "string"}, name="name", reference_output="reference_output", - required_env_vars=["string"], + required_environment_variables=["string"], + required_secrets=["string"], scoring_contract={ "scoring_function_parameters": [ { @@ -735,6 +744,7 @@ async def test_method_start_run_with_all_params(self, async_client: AsyncRunloop run_profile={ "env_vars": {"foo": "string"}, "purpose": "purpose", + "secrets": {"foo": "string"}, }, ) assert_matches_type(ScenarioRunView, scenario, path=["response"]) From 73e9c172a4fcba705988df9fea4a1a7ed57f567b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 30 Jul 2025 18:09:28 +0000 Subject: [PATCH 2/2] release: 0.52.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ pyproject.toml | 2 +- src/runloop_api_client/_version.py | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 2b2b4fa9e..fed4b17fa 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.51.0" + ".": "0.52.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 21920e4fc..bcec25626 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.52.0 (2025-07-30) + +Full Changelog: [v0.51.0...v0.52.0](https://github.com/runloopai/api-client-python/compare/v0.51.0...v0.52.0) + +### Features + +* **api:** api update ([49a39e1](https://github.com/runloopai/api-client-python/commit/49a39e15cdb131567da55c689033b94affba85f2)) + ## 0.51.0 (2025-07-29) Full Changelog: [v0.50.0...v0.51.0](https://github.com/runloopai/api-client-python/compare/v0.50.0...v0.51.0) diff --git a/pyproject.toml b/pyproject.toml index bc46a146d..24ba2e86c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "runloop_api_client" -version = "0.51.0" +version = "0.52.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 fd4eb3432..d274d886e 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.51.0" # x-release-please-version +__version__ = "0.52.0" # x-release-please-version