runloop_api_client 1.5.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- runloop_api_client/__init__.py +95 -0
- runloop_api_client/_base_client.py +2127 -0
- runloop_api_client/_client.py +866 -0
- runloop_api_client/_compat.py +219 -0
- runloop_api_client/_constants.py +23 -0
- runloop_api_client/_exceptions.py +108 -0
- runloop_api_client/_files.py +123 -0
- runloop_api_client/_models.py +872 -0
- runloop_api_client/_qs.py +150 -0
- runloop_api_client/_resource.py +43 -0
- runloop_api_client/_response.py +832 -0
- runloop_api_client/_streaming.py +518 -0
- runloop_api_client/_types.py +270 -0
- runloop_api_client/_utils/__init__.py +65 -0
- runloop_api_client/_utils/_compat.py +45 -0
- runloop_api_client/_utils/_datetime_parse.py +136 -0
- runloop_api_client/_utils/_json.py +35 -0
- runloop_api_client/_utils/_logs.py +25 -0
- runloop_api_client/_utils/_proxy.py +65 -0
- runloop_api_client/_utils/_reflection.py +42 -0
- runloop_api_client/_utils/_resources_proxy.py +24 -0
- runloop_api_client/_utils/_streams.py +12 -0
- runloop_api_client/_utils/_sync.py +58 -0
- runloop_api_client/_utils/_transform.py +457 -0
- runloop_api_client/_utils/_typing.py +156 -0
- runloop_api_client/_utils/_utils.py +421 -0
- runloop_api_client/_utils/_validation.py +31 -0
- runloop_api_client/_version.py +4 -0
- runloop_api_client/lib/.keep +4 -0
- runloop_api_client/lib/__init__.py +3 -0
- runloop_api_client/lib/_ignore.py +496 -0
- runloop_api_client/lib/context_loader.py +78 -0
- runloop_api_client/lib/polling.py +75 -0
- runloop_api_client/lib/polling_async.py +60 -0
- runloop_api_client/pagination.py +986 -0
- runloop_api_client/py.typed +0 -0
- runloop_api_client/resources/__init__.py +173 -0
- runloop_api_client/resources/agents.py +431 -0
- runloop_api_client/resources/benchmark_jobs.py +394 -0
- runloop_api_client/resources/benchmark_runs.py +595 -0
- runloop_api_client/resources/benchmarks.py +1085 -0
- runloop_api_client/resources/blueprints.py +1563 -0
- runloop_api_client/resources/devboxes/__init__.py +89 -0
- runloop_api_client/resources/devboxes/browsers.py +267 -0
- runloop_api_client/resources/devboxes/computers.py +648 -0
- runloop_api_client/resources/devboxes/devboxes.py +3784 -0
- runloop_api_client/resources/devboxes/disk_snapshots.py +602 -0
- runloop_api_client/resources/devboxes/executions.py +1212 -0
- runloop_api_client/resources/devboxes/logs.py +197 -0
- runloop_api_client/resources/gateway_configs.py +658 -0
- runloop_api_client/resources/network_policies.py +680 -0
- runloop_api_client/resources/objects.py +870 -0
- runloop_api_client/resources/repositories.py +918 -0
- runloop_api_client/resources/scenarios/__init__.py +47 -0
- runloop_api_client/resources/scenarios/runs.py +973 -0
- runloop_api_client/resources/scenarios/scenarios.py +1101 -0
- runloop_api_client/resources/scenarios/scorers.py +629 -0
- runloop_api_client/resources/secrets.py +500 -0
- runloop_api_client/sdk/__init__.py +117 -0
- runloop_api_client/sdk/_helpers.py +49 -0
- runloop_api_client/sdk/_types.py +264 -0
- runloop_api_client/sdk/agent.py +70 -0
- runloop_api_client/sdk/async_.py +1036 -0
- runloop_api_client/sdk/async_agent.py +70 -0
- runloop_api_client/sdk/async_benchmark.py +169 -0
- runloop_api_client/sdk/async_benchmark_run.py +127 -0
- runloop_api_client/sdk/async_blueprint.py +104 -0
- runloop_api_client/sdk/async_devbox.py +797 -0
- runloop_api_client/sdk/async_execution.py +144 -0
- runloop_api_client/sdk/async_execution_result.py +175 -0
- runloop_api_client/sdk/async_network_policy.py +80 -0
- runloop_api_client/sdk/async_scenario.py +118 -0
- runloop_api_client/sdk/async_scenario_builder.py +480 -0
- runloop_api_client/sdk/async_scenario_run.py +242 -0
- runloop_api_client/sdk/async_scorer.py +77 -0
- runloop_api_client/sdk/async_snapshot.py +125 -0
- runloop_api_client/sdk/async_storage_object.py +188 -0
- runloop_api_client/sdk/benchmark.py +167 -0
- runloop_api_client/sdk/benchmark_run.py +127 -0
- runloop_api_client/sdk/blueprint.py +104 -0
- runloop_api_client/sdk/devbox.py +800 -0
- runloop_api_client/sdk/execution.py +132 -0
- runloop_api_client/sdk/execution_result.py +173 -0
- runloop_api_client/sdk/network_policy.py +80 -0
- runloop_api_client/sdk/scenario.py +118 -0
- runloop_api_client/sdk/scenario_builder.py +480 -0
- runloop_api_client/sdk/scenario_run.py +242 -0
- runloop_api_client/sdk/scorer.py +77 -0
- runloop_api_client/sdk/snapshot.py +125 -0
- runloop_api_client/sdk/storage_object.py +188 -0
- runloop_api_client/sdk/sync.py +1061 -0
- runloop_api_client/types/__init__.py +130 -0
- runloop_api_client/types/agent_create_params.py +21 -0
- runloop_api_client/types/agent_list_params.py +27 -0
- runloop_api_client/types/agent_list_view.py +24 -0
- runloop_api_client/types/agent_view.py +30 -0
- runloop_api_client/types/benchmark_create_params.py +40 -0
- runloop_api_client/types/benchmark_definitions_params.py +15 -0
- runloop_api_client/types/benchmark_job_create_params.py +220 -0
- runloop_api_client/types/benchmark_job_list_params.py +18 -0
- runloop_api_client/types/benchmark_job_list_view.py +19 -0
- runloop_api_client/types/benchmark_job_view.py +344 -0
- runloop_api_client/types/benchmark_list_params.py +18 -0
- runloop_api_client/types/benchmark_list_public_params.py +15 -0
- runloop_api_client/types/benchmark_run_list_params.py +21 -0
- runloop_api_client/types/benchmark_run_list_scenario_runs_params.py +18 -0
- runloop_api_client/types/benchmark_run_list_view.py +19 -0
- runloop_api_client/types/benchmark_run_view.py +58 -0
- runloop_api_client/types/benchmark_start_run_params.py +29 -0
- runloop_api_client/types/benchmark_update_params.py +42 -0
- runloop_api_client/types/benchmark_update_scenarios_params.py +18 -0
- runloop_api_client/types/benchmark_view.py +49 -0
- runloop_api_client/types/blueprint_build_log.py +16 -0
- runloop_api_client/types/blueprint_build_logs_list_view.py +16 -0
- runloop_api_client/types/blueprint_build_parameters.py +119 -0
- runloop_api_client/types/blueprint_create_from_inspection_params.py +49 -0
- runloop_api_client/types/blueprint_create_params.py +121 -0
- runloop_api_client/types/blueprint_list_params.py +21 -0
- runloop_api_client/types/blueprint_list_public_params.py +21 -0
- runloop_api_client/types/blueprint_list_view.py +19 -0
- runloop_api_client/types/blueprint_preview_params.py +121 -0
- runloop_api_client/types/blueprint_preview_view.py +10 -0
- runloop_api_client/types/blueprint_view.py +93 -0
- runloop_api_client/types/devbox_async_execution_detail_view.py +46 -0
- runloop_api_client/types/devbox_create_params.py +124 -0
- runloop_api_client/types/devbox_create_ssh_key_response.py +19 -0
- runloop_api_client/types/devbox_create_tunnel_params.py +12 -0
- runloop_api_client/types/devbox_download_file_params.py +15 -0
- runloop_api_client/types/devbox_enable_tunnel_params.py +13 -0
- runloop_api_client/types/devbox_execute_async_params.py +33 -0
- runloop_api_client/types/devbox_execute_params.py +37 -0
- runloop_api_client/types/devbox_execute_sync_params.py +31 -0
- runloop_api_client/types/devbox_execution_detail_view.py +24 -0
- runloop_api_client/types/devbox_list_disk_snapshots_params.py +32 -0
- runloop_api_client/types/devbox_list_params.py +20 -0
- runloop_api_client/types/devbox_list_view.py +19 -0
- runloop_api_client/types/devbox_read_file_contents_params.py +15 -0
- runloop_api_client/types/devbox_read_file_contents_response.py +7 -0
- runloop_api_client/types/devbox_remove_tunnel_params.py +12 -0
- runloop_api_client/types/devbox_send_std_in_result.py +16 -0
- runloop_api_client/types/devbox_snapshot_disk_async_params.py +19 -0
- runloop_api_client/types/devbox_snapshot_disk_params.py +19 -0
- runloop_api_client/types/devbox_snapshot_list_view.py +19 -0
- runloop_api_client/types/devbox_snapshot_view.py +30 -0
- runloop_api_client/types/devbox_tunnel_view.py +16 -0
- runloop_api_client/types/devbox_update_params.py +16 -0
- runloop_api_client/types/devbox_upload_file_params.py +19 -0
- runloop_api_client/types/devbox_view.py +121 -0
- runloop_api_client/types/devbox_wait_for_command_params.py +28 -0
- runloop_api_client/types/devbox_write_file_contents_params.py +18 -0
- runloop_api_client/types/devboxes/__init__.py +33 -0
- runloop_api_client/types/devboxes/browser_create_params.py +13 -0
- runloop_api_client/types/devboxes/browser_view.py +29 -0
- runloop_api_client/types/devboxes/computer_create_params.py +26 -0
- runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +16 -0
- runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +15 -0
- runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +35 -0
- runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +15 -0
- runloop_api_client/types/devboxes/computer_screen_interaction_params.py +12 -0
- runloop_api_client/types/devboxes/computer_screen_interaction_response.py +15 -0
- runloop_api_client/types/devboxes/computer_view.py +23 -0
- runloop_api_client/types/devboxes/devbox_logs_list_view.py +39 -0
- runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +20 -0
- runloop_api_client/types/devboxes/disk_snapshot_list_params.py +32 -0
- runloop_api_client/types/devboxes/disk_snapshot_update_params.py +19 -0
- runloop_api_client/types/devboxes/execution_execute_async_params.py +31 -0
- runloop_api_client/types/devboxes/execution_execute_sync_params.py +31 -0
- runloop_api_client/types/devboxes/execution_kill_params.py +18 -0
- runloop_api_client/types/devboxes/execution_retrieve_params.py +14 -0
- runloop_api_client/types/devboxes/execution_send_std_in_params.py +18 -0
- runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +17 -0
- runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +17 -0
- runloop_api_client/types/devboxes/execution_update_chunk.py +15 -0
- runloop_api_client/types/devboxes/log_list_params.py +15 -0
- runloop_api_client/types/gateway_config_create_params.py +41 -0
- runloop_api_client/types/gateway_config_list_params.py +21 -0
- runloop_api_client/types/gateway_config_list_view.py +21 -0
- runloop_api_client/types/gateway_config_update_params.py +32 -0
- runloop_api_client/types/gateway_config_view.py +47 -0
- runloop_api_client/types/input_context.py +19 -0
- runloop_api_client/types/input_context_param.py +20 -0
- runloop_api_client/types/input_context_update_param.py +16 -0
- runloop_api_client/types/inspection_source_param.py +18 -0
- runloop_api_client/types/network_policy_create_params.py +40 -0
- runloop_api_client/types/network_policy_list_params.py +21 -0
- runloop_api_client/types/network_policy_list_view.py +21 -0
- runloop_api_client/types/network_policy_update_params.py +30 -0
- runloop_api_client/types/network_policy_view.py +52 -0
- runloop_api_client/types/object_create_params.py +30 -0
- runloop_api_client/types/object_download_params.py +12 -0
- runloop_api_client/types/object_download_url_view.py +12 -0
- runloop_api_client/types/object_list_params.py +27 -0
- runloop_api_client/types/object_list_public_params.py +27 -0
- runloop_api_client/types/object_list_view.py +24 -0
- runloop_api_client/types/object_view.py +36 -0
- runloop_api_client/types/repository_connection_list_view.py +19 -0
- runloop_api_client/types/repository_connection_view.py +18 -0
- runloop_api_client/types/repository_create_params.py +22 -0
- runloop_api_client/types/repository_inspect_params.py +13 -0
- runloop_api_client/types/repository_inspection_details.py +83 -0
- runloop_api_client/types/repository_inspection_list_view.py +13 -0
- runloop_api_client/types/repository_list_params.py +21 -0
- runloop_api_client/types/repository_manifest_view.py +174 -0
- runloop_api_client/types/repository_refresh_params.py +16 -0
- runloop_api_client/types/scenario_create_params.py +53 -0
- runloop_api_client/types/scenario_definition_list_view.py +19 -0
- runloop_api_client/types/scenario_environment.py +29 -0
- runloop_api_client/types/scenario_environment_param.py +31 -0
- runloop_api_client/types/scenario_list_params.py +24 -0
- runloop_api_client/types/scenario_list_public_params.py +18 -0
- runloop_api_client/types/scenario_run_list_view.py +19 -0
- runloop_api_client/types/scenario_run_view.py +55 -0
- runloop_api_client/types/scenario_start_run_params.py +30 -0
- runloop_api_client/types/scenario_update_params.py +49 -0
- runloop_api_client/types/scenario_view.py +61 -0
- runloop_api_client/types/scenarios/__init__.py +14 -0
- runloop_api_client/types/scenarios/run_list_params.py +27 -0
- runloop_api_client/types/scenarios/scorer_create_params.py +18 -0
- runloop_api_client/types/scenarios/scorer_create_response.py +18 -0
- runloop_api_client/types/scenarios/scorer_list_params.py +15 -0
- runloop_api_client/types/scenarios/scorer_list_response.py +18 -0
- runloop_api_client/types/scenarios/scorer_retrieve_response.py +18 -0
- runloop_api_client/types/scenarios/scorer_update_params.py +18 -0
- runloop_api_client/types/scenarios/scorer_update_response.py +18 -0
- runloop_api_client/types/scenarios/scorer_validate_params.py +17 -0
- runloop_api_client/types/scenarios/scorer_validate_response.py +23 -0
- runloop_api_client/types/scoring_contract.py +17 -0
- runloop_api_client/types/scoring_contract_param.py +19 -0
- runloop_api_client/types/scoring_contract_result_view.py +20 -0
- runloop_api_client/types/scoring_contract_update_param.py +15 -0
- runloop_api_client/types/scoring_function.py +157 -0
- runloop_api_client/types/scoring_function_param.py +153 -0
- runloop_api_client/types/scoring_function_result_view.py +25 -0
- runloop_api_client/types/secret_create_params.py +23 -0
- runloop_api_client/types/secret_list_params.py +12 -0
- runloop_api_client/types/secret_list_view.py +24 -0
- runloop_api_client/types/secret_update_params.py +16 -0
- runloop_api_client/types/secret_view.py +26 -0
- runloop_api_client/types/shared/__init__.py +10 -0
- runloop_api_client/types/shared/after_idle.py +15 -0
- runloop_api_client/types/shared/agent_mount.py +31 -0
- runloop_api_client/types/shared/agent_source.py +75 -0
- runloop_api_client/types/shared/code_mount_parameters.py +24 -0
- runloop_api_client/types/shared/launch_parameters.py +86 -0
- runloop_api_client/types/shared/mount.py +43 -0
- runloop_api_client/types/shared/object_mount.py +21 -0
- runloop_api_client/types/shared/run_profile.py +37 -0
- runloop_api_client/types/shared_params/__init__.py +10 -0
- runloop_api_client/types/shared_params/after_idle.py +15 -0
- runloop_api_client/types/shared_params/agent_mount.py +31 -0
- runloop_api_client/types/shared_params/agent_source.py +78 -0
- runloop_api_client/types/shared_params/code_mount_parameters.py +25 -0
- runloop_api_client/types/shared_params/launch_parameters.py +88 -0
- runloop_api_client/types/shared_params/mount.py +43 -0
- runloop_api_client/types/shared_params/object_mount.py +21 -0
- runloop_api_client/types/shared_params/run_profile.py +38 -0
- runloop_api_client/types/tunnel_view.py +34 -0
- runloop_api_client-1.5.1.dist-info/METADATA +522 -0
- runloop_api_client-1.5.1.dist-info/RECORD +261 -0
- runloop_api_client-1.5.1.dist-info/WHEEL +4 -0
- runloop_api_client-1.5.1.dist-info/licenses/LICENSE +7 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from .._models import BaseModel
|
|
4
|
+
|
|
5
|
+
__all__ = ["RepositoryConnectionView"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class RepositoryConnectionView(BaseModel):
|
|
9
|
+
"""The ID of the Repository."""
|
|
10
|
+
|
|
11
|
+
id: str
|
|
12
|
+
"""The ID of the Repository."""
|
|
13
|
+
|
|
14
|
+
name: str
|
|
15
|
+
"""The name of the Repository."""
|
|
16
|
+
|
|
17
|
+
owner: str
|
|
18
|
+
"""The account owner of the Repository."""
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from typing_extensions import Required, TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["RepositoryCreateParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class RepositoryCreateParams(TypedDict, total=False):
|
|
12
|
+
name: Required[str]
|
|
13
|
+
"""Name of the repository."""
|
|
14
|
+
|
|
15
|
+
owner: Required[str]
|
|
16
|
+
"""Account owner of the repository."""
|
|
17
|
+
|
|
18
|
+
blueprint_id: Optional[str]
|
|
19
|
+
"""ID of blueprint to use as base for resulting RepositoryVersion blueprint."""
|
|
20
|
+
|
|
21
|
+
github_auth_token: Optional[str]
|
|
22
|
+
"""GitHub authentication token for accessing private repositories."""
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from typing_extensions import TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["RepositoryInspectParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class RepositoryInspectParams(TypedDict, total=False):
|
|
12
|
+
github_auth_token: Optional[str]
|
|
13
|
+
"""GitHub authentication token for accessing private repositories."""
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Dict, List, Optional
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
from .repository_manifest_view import RepositoryManifestView
|
|
8
|
+
|
|
9
|
+
__all__ = ["RepositoryInspectionDetails", "WorkflowContexts", "WorkflowContextsActionsContext"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class WorkflowContextsActionsContext(BaseModel):
|
|
13
|
+
"""Details about actions processing for this workflow."""
|
|
14
|
+
|
|
15
|
+
actions_skipped_unnecessary: List[str]
|
|
16
|
+
"""
|
|
17
|
+
Actions that were skipped because they were unnecessary (e.g., upload
|
|
18
|
+
artifacts).
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
actions_taken: List[str]
|
|
22
|
+
"""Actions that were translated into commands and executed."""
|
|
23
|
+
|
|
24
|
+
actions_unknown: List[str]
|
|
25
|
+
"""
|
|
26
|
+
Actions that were not understood and skipped because we did not know what to do.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class WorkflowContexts(BaseModel):
|
|
31
|
+
"""
|
|
32
|
+
Workflow context containing file name and details about actions processing during inspection.
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
actions_context: WorkflowContextsActionsContext
|
|
36
|
+
"""Details about actions processing for this workflow."""
|
|
37
|
+
|
|
38
|
+
file_name: str
|
|
39
|
+
"""The file name of the workflow."""
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class RepositoryInspectionDetails(BaseModel):
|
|
43
|
+
id: str
|
|
44
|
+
"""The ID of the inspection."""
|
|
45
|
+
|
|
46
|
+
commit_sha: str
|
|
47
|
+
"""The sha of the inspected version of the Repository."""
|
|
48
|
+
|
|
49
|
+
inspected_at: int
|
|
50
|
+
"""Inspection time of the Repository Version (Unix timestamp milliseconds)."""
|
|
51
|
+
|
|
52
|
+
repository_manifest: RepositoryManifestView
|
|
53
|
+
"""Repository manifest containing container config and workspace details."""
|
|
54
|
+
|
|
55
|
+
status: Literal[
|
|
56
|
+
"invalid",
|
|
57
|
+
"repo_auth_pending",
|
|
58
|
+
"repo_authentication_failure",
|
|
59
|
+
"repo_access_failure",
|
|
60
|
+
"inspection_pending",
|
|
61
|
+
"inspection_failed",
|
|
62
|
+
"inspection_success",
|
|
63
|
+
"inspection_user_manifest_added",
|
|
64
|
+
]
|
|
65
|
+
"""The status of the repository inspection."""
|
|
66
|
+
|
|
67
|
+
blueprint_id: Optional[str] = None
|
|
68
|
+
"""The blueprint ID associated with this inspection if successful."""
|
|
69
|
+
|
|
70
|
+
blueprint_name: Optional[str] = None
|
|
71
|
+
"""The blueprint name associated with this inspection if successful."""
|
|
72
|
+
|
|
73
|
+
build_status: Optional[Literal["image_building", "image_build_success", "image_build_failure"]] = None
|
|
74
|
+
"""The status of the linked Blueprint build."""
|
|
75
|
+
|
|
76
|
+
user_manifest: Optional[RepositoryManifestView] = None
|
|
77
|
+
"""
|
|
78
|
+
User uploaded repository manifest containing container config and workspace
|
|
79
|
+
details.
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
workflow_contexts: Optional[Dict[str, WorkflowContexts]] = None
|
|
83
|
+
"""Workflow contexts mapping workflow names to their processing details."""
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List
|
|
4
|
+
|
|
5
|
+
from .._models import BaseModel
|
|
6
|
+
from .repository_inspection_details import RepositoryInspectionDetails
|
|
7
|
+
|
|
8
|
+
__all__ = ["RepositoryInspectionListView"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class RepositoryInspectionListView(BaseModel):
|
|
12
|
+
inspections: List[RepositoryInspectionDetails]
|
|
13
|
+
"""List of inspections for this repository."""
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["RepositoryListParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class RepositoryListParams(TypedDict, total=False):
|
|
11
|
+
limit: int
|
|
12
|
+
"""The limit of items to return. Default is 20. Max is 5000."""
|
|
13
|
+
|
|
14
|
+
name: str
|
|
15
|
+
"""Filter by repository name"""
|
|
16
|
+
|
|
17
|
+
owner: str
|
|
18
|
+
"""Filter by repository owner"""
|
|
19
|
+
|
|
20
|
+
starting_after: str
|
|
21
|
+
"""Load the next page of data starting after the item with the given ID."""
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Dict, List, Optional
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = [
|
|
9
|
+
"RepositoryManifestView",
|
|
10
|
+
"ContainerConfig",
|
|
11
|
+
"Language",
|
|
12
|
+
"Workspace",
|
|
13
|
+
"WorkspaceDevCommands",
|
|
14
|
+
"ContainerizedService",
|
|
15
|
+
"ContainerizedServiceCredentials",
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class ContainerConfig(BaseModel):
|
|
20
|
+
"""Container configuration specifying the base image and setup commands."""
|
|
21
|
+
|
|
22
|
+
base_image_name: str
|
|
23
|
+
"""The name of the base image.
|
|
24
|
+
|
|
25
|
+
Should be one of the GitHub public images like ubuntu-latest, ubuntu-24.04,
|
|
26
|
+
ubuntu-22.04, windows-latest, windows-2022, macos-latest etc.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
architecture: Optional[Literal["x86_64", "arm64"]] = None
|
|
30
|
+
"""The target architecture for the Repository Container."""
|
|
31
|
+
|
|
32
|
+
setup_commands: Optional[List[str]] = None
|
|
33
|
+
"""
|
|
34
|
+
Commands to run to setup the base container such as installing necessary
|
|
35
|
+
toolchains (e.g. apt install).
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class Language(BaseModel):
|
|
40
|
+
language: Optional[str] = None
|
|
41
|
+
|
|
42
|
+
version: Optional[str] = None
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class WorkspaceDevCommands(BaseModel):
|
|
46
|
+
"""
|
|
47
|
+
Extracted common commands important to the developer life cycle like linting, testing, building, etc.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
build: Optional[List[str]] = None
|
|
51
|
+
"""Build command (e.g. npm run build)."""
|
|
52
|
+
|
|
53
|
+
install: Optional[List[str]] = None
|
|
54
|
+
"""Installation command (e.g. pip install -r requirements.txt)."""
|
|
55
|
+
|
|
56
|
+
lint: Optional[List[str]] = None
|
|
57
|
+
"""Lint command (e.g. flake8)."""
|
|
58
|
+
|
|
59
|
+
scripts: Optional[List[str]] = None
|
|
60
|
+
"""Script commands."""
|
|
61
|
+
|
|
62
|
+
test: Optional[List[str]] = None
|
|
63
|
+
"""Test command (e.g. pytest)."""
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class Workspace(BaseModel):
|
|
67
|
+
"""
|
|
68
|
+
A workspace is a buildable unit of code within a repository and often represents a deployable unit of code like a backend service or a frontend app.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
build_tool: List[str]
|
|
72
|
+
"""Name of the build tool used (e.g. pip, npm)."""
|
|
73
|
+
|
|
74
|
+
dev_commands: Optional[WorkspaceDevCommands] = None
|
|
75
|
+
"""
|
|
76
|
+
Extracted common commands important to the developer life cycle like linting,
|
|
77
|
+
testing, building, etc.
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
name: Optional[str] = None
|
|
81
|
+
"""Name of the workspace.
|
|
82
|
+
|
|
83
|
+
Can be empty if the workspace is the root of the repository. Only necessary for
|
|
84
|
+
monorepo style repositories.
|
|
85
|
+
"""
|
|
86
|
+
|
|
87
|
+
path: Optional[str] = None
|
|
88
|
+
"""Path to the workspace from the root of the repository.
|
|
89
|
+
|
|
90
|
+
Can be empty if the workspace is the root of the repository. Only necessary for
|
|
91
|
+
monorepo style repositories.
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
workspace_refresh_commands: Optional[List[str]] = None
|
|
95
|
+
"""
|
|
96
|
+
Commands to run to refresh this workspace after pulling the latest changes to
|
|
97
|
+
the repository via git (e.g. npm install).
|
|
98
|
+
"""
|
|
99
|
+
|
|
100
|
+
workspace_setup_commands: Optional[List[str]] = None
|
|
101
|
+
"""
|
|
102
|
+
Commands to run to setup this workspace after a fresh clone of the repository on
|
|
103
|
+
a new container such as installing necessary toolchains and dependencies (e.g.
|
|
104
|
+
npm install).
|
|
105
|
+
"""
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
class ContainerizedServiceCredentials(BaseModel):
|
|
109
|
+
"""The credentials of the container service."""
|
|
110
|
+
|
|
111
|
+
password: str
|
|
112
|
+
"""The password of the container service."""
|
|
113
|
+
|
|
114
|
+
username: str
|
|
115
|
+
"""The username of the container service."""
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
class ContainerizedService(BaseModel):
|
|
119
|
+
image: str
|
|
120
|
+
"""The image of the container service."""
|
|
121
|
+
|
|
122
|
+
name: str
|
|
123
|
+
"""The name of the container service."""
|
|
124
|
+
|
|
125
|
+
credentials: Optional[ContainerizedServiceCredentials] = None
|
|
126
|
+
"""The credentials of the container service."""
|
|
127
|
+
|
|
128
|
+
env: Optional[Dict[str, str]] = None
|
|
129
|
+
"""The environment variables of the container service."""
|
|
130
|
+
|
|
131
|
+
options: Optional[str] = None
|
|
132
|
+
"""Additional Docker container create options."""
|
|
133
|
+
|
|
134
|
+
port_mappings: Optional[List[str]] = None
|
|
135
|
+
"""The port mappings of the container service.
|
|
136
|
+
|
|
137
|
+
Port mappings are in the format of <host_port>:<container_port>.
|
|
138
|
+
"""
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
class RepositoryManifestView(BaseModel):
|
|
142
|
+
"""
|
|
143
|
+
The repository manifest contains container configuration and workspace definitions for a repository.
|
|
144
|
+
"""
|
|
145
|
+
|
|
146
|
+
container_config: ContainerConfig
|
|
147
|
+
"""Container configuration specifying the base image and setup commands."""
|
|
148
|
+
|
|
149
|
+
languages: List[Language]
|
|
150
|
+
"""List of required languages found in Repository."""
|
|
151
|
+
|
|
152
|
+
workspaces: List[Workspace]
|
|
153
|
+
"""List of workspaces within the repository.
|
|
154
|
+
|
|
155
|
+
Each workspace represents a buildable unit of code.
|
|
156
|
+
"""
|
|
157
|
+
|
|
158
|
+
containerized_services: Optional[List[ContainerizedService]] = None
|
|
159
|
+
"""List of discovered ContainerizedServices.
|
|
160
|
+
|
|
161
|
+
Services can be explicitly started when creating a Devbox.
|
|
162
|
+
"""
|
|
163
|
+
|
|
164
|
+
env_vars: Optional[Dict[str, str]] = None
|
|
165
|
+
"""
|
|
166
|
+
Qualified environment variables and values that should be set for this
|
|
167
|
+
repository to run correctly.
|
|
168
|
+
"""
|
|
169
|
+
|
|
170
|
+
required_env_vars: Optional[List[str]] = None
|
|
171
|
+
"""
|
|
172
|
+
Missing environment variables that (may) be required for this repository to run
|
|
173
|
+
correctly.
|
|
174
|
+
"""
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from typing_extensions import TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["RepositoryRefreshParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class RepositoryRefreshParams(TypedDict, total=False):
|
|
12
|
+
blueprint_id: Optional[str]
|
|
13
|
+
"""ID of blueprint to use as base for resulting RepositoryVersion blueprint."""
|
|
14
|
+
|
|
15
|
+
github_auth_token: Optional[str]
|
|
16
|
+
"""GitHub authentication token for accessing private repositories."""
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Dict, Optional
|
|
6
|
+
from typing_extensions import Literal, Required, TypedDict
|
|
7
|
+
|
|
8
|
+
from .._types import SequenceNotStr
|
|
9
|
+
from .input_context_param import InputContextParam
|
|
10
|
+
from .scoring_contract_param import ScoringContractParam
|
|
11
|
+
from .scenario_environment_param import ScenarioEnvironmentParam
|
|
12
|
+
|
|
13
|
+
__all__ = ["ScenarioCreateParams"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class ScenarioCreateParams(TypedDict, total=False):
|
|
17
|
+
input_context: Required[InputContextParam]
|
|
18
|
+
"""The input context for the Scenario."""
|
|
19
|
+
|
|
20
|
+
name: Required[str]
|
|
21
|
+
"""Name of the scenario."""
|
|
22
|
+
|
|
23
|
+
scoring_contract: Required[ScoringContractParam]
|
|
24
|
+
"""The scoring contract for the Scenario."""
|
|
25
|
+
|
|
26
|
+
environment_parameters: Optional[ScenarioEnvironmentParam]
|
|
27
|
+
"""The Environment in which the Scenario will run."""
|
|
28
|
+
|
|
29
|
+
metadata: Optional[Dict[str, str]]
|
|
30
|
+
"""User defined metadata to attach to the scenario for organization."""
|
|
31
|
+
|
|
32
|
+
reference_output: Optional[str]
|
|
33
|
+
"""A string representation of the reference output to solve the scenario.
|
|
34
|
+
|
|
35
|
+
Commonly can be the result of a git diff or a sequence of command actions to
|
|
36
|
+
apply to the environment.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
required_environment_variables: Optional[SequenceNotStr[str]]
|
|
40
|
+
"""Environment variables required to run the scenario.
|
|
41
|
+
|
|
42
|
+
If these variables are not provided, the scenario will fail to start.
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
required_secret_names: Optional[SequenceNotStr[str]]
|
|
46
|
+
"""
|
|
47
|
+
Secrets required to run the scenario (user secret name to scenario required
|
|
48
|
+
secret name). If these secrets are not provided or the mapping is incorrect, the
|
|
49
|
+
scenario will fail to start.
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
validation_type: Optional[Literal["UNSPECIFIED", "FORWARD", "REVERSE", "EVALUATION"]]
|
|
53
|
+
"""Validation strategy."""
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List
|
|
4
|
+
|
|
5
|
+
from .._models import BaseModel
|
|
6
|
+
from .scenario_view import ScenarioView
|
|
7
|
+
|
|
8
|
+
__all__ = ["ScenarioDefinitionListView"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ScenarioDefinitionListView(BaseModel):
|
|
12
|
+
has_more: bool
|
|
13
|
+
|
|
14
|
+
remaining_count: int
|
|
15
|
+
|
|
16
|
+
scenarios: List[ScenarioView]
|
|
17
|
+
"""List of Scenarios matching filter."""
|
|
18
|
+
|
|
19
|
+
total_count: int
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from .._models import BaseModel
|
|
6
|
+
from .shared.launch_parameters import LaunchParameters
|
|
7
|
+
|
|
8
|
+
__all__ = ["ScenarioEnvironment"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ScenarioEnvironment(BaseModel):
|
|
12
|
+
"""
|
|
13
|
+
ScenarioEnvironmentParameters specify the environment in which a Scenario will be run.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
blueprint_id: Optional[str] = None
|
|
17
|
+
"""Use the blueprint with matching ID."""
|
|
18
|
+
|
|
19
|
+
launch_parameters: Optional[LaunchParameters] = None
|
|
20
|
+
"""Optional launch parameters to apply to the devbox environment at launch."""
|
|
21
|
+
|
|
22
|
+
snapshot_id: Optional[str] = None
|
|
23
|
+
"""Use the snapshot with matching ID."""
|
|
24
|
+
|
|
25
|
+
working_directory: Optional[str] = None
|
|
26
|
+
"""The working directory where the agent is expected to fulfill the scenario.
|
|
27
|
+
|
|
28
|
+
Scoring functions also run from the working directory.
|
|
29
|
+
"""
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from typing_extensions import TypedDict
|
|
7
|
+
|
|
8
|
+
from .shared_params.launch_parameters import LaunchParameters
|
|
9
|
+
|
|
10
|
+
__all__ = ["ScenarioEnvironmentParam"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ScenarioEnvironmentParam(TypedDict, total=False):
|
|
14
|
+
"""
|
|
15
|
+
ScenarioEnvironmentParameters specify the environment in which a Scenario will be run.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
blueprint_id: Optional[str]
|
|
19
|
+
"""Use the blueprint with matching ID."""
|
|
20
|
+
|
|
21
|
+
launch_parameters: Optional[LaunchParameters]
|
|
22
|
+
"""Optional launch parameters to apply to the devbox environment at launch."""
|
|
23
|
+
|
|
24
|
+
snapshot_id: Optional[str]
|
|
25
|
+
"""Use the snapshot with matching ID."""
|
|
26
|
+
|
|
27
|
+
working_directory: Optional[str]
|
|
28
|
+
"""The working directory where the agent is expected to fulfill the scenario.
|
|
29
|
+
|
|
30
|
+
Scoring functions also run from the working directory.
|
|
31
|
+
"""
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["ScenarioListParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ScenarioListParams(TypedDict, total=False):
|
|
11
|
+
benchmark_id: str
|
|
12
|
+
"""Filter scenarios by benchmark ID."""
|
|
13
|
+
|
|
14
|
+
limit: int
|
|
15
|
+
"""The limit of items to return. Default is 20. Max is 5000."""
|
|
16
|
+
|
|
17
|
+
name: str
|
|
18
|
+
"""Query for Scenarios with a given name."""
|
|
19
|
+
|
|
20
|
+
starting_after: str
|
|
21
|
+
"""Load the next page of data starting after the item with the given ID."""
|
|
22
|
+
|
|
23
|
+
validation_type: str
|
|
24
|
+
"""Filter by validation type"""
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing_extensions import TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["ScenarioListPublicParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ScenarioListPublicParams(TypedDict, total=False):
|
|
11
|
+
limit: int
|
|
12
|
+
"""The limit of items to return. Default is 20. Max is 5000."""
|
|
13
|
+
|
|
14
|
+
name: str
|
|
15
|
+
"""Query for Scenarios with a given name."""
|
|
16
|
+
|
|
17
|
+
starting_after: str
|
|
18
|
+
"""Load the next page of data starting after the item with the given ID."""
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List
|
|
4
|
+
|
|
5
|
+
from .._models import BaseModel
|
|
6
|
+
from .scenario_run_view import ScenarioRunView
|
|
7
|
+
|
|
8
|
+
__all__ = ["ScenarioRunListView"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ScenarioRunListView(BaseModel):
|
|
12
|
+
has_more: bool
|
|
13
|
+
|
|
14
|
+
remaining_count: int
|
|
15
|
+
|
|
16
|
+
runs: List[ScenarioRunView]
|
|
17
|
+
"""List of ScenarioRuns matching filter."""
|
|
18
|
+
|
|
19
|
+
total_count: int
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Dict, Optional
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
from .scoring_contract_result_view import ScoringContractResultView
|
|
8
|
+
|
|
9
|
+
__all__ = ["ScenarioRunView"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ScenarioRunView(BaseModel):
|
|
13
|
+
"""A ScenarioRunView represents a single run of a Scenario on a Devbox.
|
|
14
|
+
|
|
15
|
+
When completed, the ScenarioRun will contain the final score and output of the run.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
id: str
|
|
19
|
+
"""ID of the ScenarioRun."""
|
|
20
|
+
|
|
21
|
+
devbox_id: str
|
|
22
|
+
"""ID of the Devbox on which the Scenario is running."""
|
|
23
|
+
|
|
24
|
+
metadata: Dict[str, str]
|
|
25
|
+
"""User defined metadata to attach to the scenario run for organization."""
|
|
26
|
+
|
|
27
|
+
scenario_id: str
|
|
28
|
+
"""ID of the Scenario that has been run."""
|
|
29
|
+
|
|
30
|
+
state: Literal["running", "scoring", "scored", "completed", "canceled", "timeout", "failed"]
|
|
31
|
+
"""The state of the ScenarioRun."""
|
|
32
|
+
|
|
33
|
+
benchmark_run_id: Optional[str] = None
|
|
34
|
+
"""ID of the BenchmarkRun that this Scenario is associated with, if any."""
|
|
35
|
+
|
|
36
|
+
duration_ms: Optional[int] = None
|
|
37
|
+
"""Duration scenario took to run."""
|
|
38
|
+
|
|
39
|
+
environment_variables: Optional[Dict[str, str]] = None
|
|
40
|
+
"""Environment variables used to run the scenario."""
|
|
41
|
+
|
|
42
|
+
name: Optional[str] = None
|
|
43
|
+
"""Optional name of ScenarioRun."""
|
|
44
|
+
|
|
45
|
+
purpose: Optional[str] = None
|
|
46
|
+
"""Purpose of the ScenarioRun."""
|
|
47
|
+
|
|
48
|
+
scoring_contract_result: Optional[ScoringContractResultView] = None
|
|
49
|
+
"""The scoring result of the ScenarioRun."""
|
|
50
|
+
|
|
51
|
+
secrets_provided: Optional[Dict[str, str]] = None
|
|
52
|
+
"""User secrets used to run the scenario."""
|
|
53
|
+
|
|
54
|
+
start_time_ms: Optional[int] = None
|
|
55
|
+
"""The time that the scenario started"""
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Dict, Optional
|
|
6
|
+
from typing_extensions import Required, Annotated, TypedDict
|
|
7
|
+
|
|
8
|
+
from .._utils import PropertyInfo
|
|
9
|
+
from .shared_params.run_profile import RunProfile
|
|
10
|
+
|
|
11
|
+
__all__ = ["ScenarioStartRunParams"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ScenarioStartRunBaseParams(TypedDict, total=False):
|
|
15
|
+
benchmark_run_id: Optional[str]
|
|
16
|
+
"""Benchmark to associate the run."""
|
|
17
|
+
|
|
18
|
+
metadata: Optional[Dict[str, str]]
|
|
19
|
+
"""User defined metadata to attach to the run for organization."""
|
|
20
|
+
|
|
21
|
+
run_name: Optional[str]
|
|
22
|
+
"""Display name of the run."""
|
|
23
|
+
|
|
24
|
+
run_profile: Annotated[Optional[RunProfile], PropertyInfo(alias="runProfile")]
|
|
25
|
+
"""Runtime configuration to use for this benchmark run"""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class ScenarioStartRunParams(ScenarioStartRunBaseParams):
|
|
29
|
+
scenario_id: Required[str]
|
|
30
|
+
"""ID of the Scenario to run."""
|