runloop_api_client 1.4.0__tar.gz → 1.5.0__tar.gz
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-1.5.0/.release-please-manifest.json +3 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/CHANGELOG.md +8 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/PKG-INFO +1 -1
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/api.md +2 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/pyproject.toml +1 -1
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_version.py +1 -1
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/devboxes/devboxes.py +114 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/__init__.py +2 -0
- runloop_api_client-1.5.0/src/runloop_api_client/types/devbox_enable_tunnel_params.py +13 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_view.py +3 -26
- runloop_api_client-1.5.0/src/runloop_api_client/types/tunnel_view.py +34 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_devboxes.py +93 -0
- runloop_api_client-1.4.0/.release-please-manifest.json +0 -3
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/.gitignore +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/CONTRIBUTING.md +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/LICENSE +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/README-SDK.md +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/README.md +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/SECURITY.md +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/bin/check-release-environment +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/bin/publish-pypi +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/examples/.keep +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/release-please-config.json +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/requirements-dev.lock +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop/lib/.keep +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_base_client.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_client.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_compat.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_constants.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_exceptions.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_files.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_models.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_qs.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_resource.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_response.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_streaming.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_types.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_compat.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_json.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_logs.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_streams.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_sync.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_transform.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_typing.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_utils.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_validation.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/.keep +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/_ignore.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/context_loader.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/polling.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/polling_async.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/pagination.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/py.typed +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/agents.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/benchmark_jobs.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/benchmark_runs.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/benchmarks.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/blueprints.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/gateway_configs.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/network_policies.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/objects.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/repositories.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/secrets.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/_helpers.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/_types.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/agent.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_agent.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_benchmark.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_benchmark_run.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_blueprint.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_devbox.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_execution.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_execution_result.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_network_policy.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_scenario.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_scenario_builder.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_scenario_run.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_scorer.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_snapshot.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_storage_object.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/benchmark.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/benchmark_run.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/blueprint.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/devbox.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/execution.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/execution_result.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/network_policy.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/scenario.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/scenario_builder.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/scenario_run.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/scorer.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/snapshot.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/storage_object.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/sync.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/agent_create_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/agent_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/agent_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/agent_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_job_create_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_job_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_job_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_job_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_run_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_run_list_scenario_runs_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_update_scenarios_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_create_from_inspection_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/gateway_config_create_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/gateway_config_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/gateway_config_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/gateway_config_update_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/gateway_config_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/input_context.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/input_context_param.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/inspection_source_param.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/network_policy_create_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/network_policy_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/network_policy_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/network_policy_update_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/network_policy_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/object_create_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/object_download_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/object_download_url_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/object_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/object_list_public_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/object_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/object_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_inspect_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_update_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scoring_function.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/secret_list_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/secret_view.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/agent_mount.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/agent_source.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/mount.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/object_mount.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/run_profile.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/agent_mount.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/mount.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/object_mount.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/devboxes/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/devboxes/test_computers.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/devboxes/test_executions.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/devboxes/test_logs.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/scenarios/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/scenarios/test_runs.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_agents.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_benchmark_jobs.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_benchmark_runs.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_benchmarks.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_blueprints.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_gateway_configs.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_network_policies.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_objects.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_repositories.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_scenarios.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_secrets.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/conftest.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sample_file.txt +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/async_devbox/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/async_devbox/conftest.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/async_devbox/test_core.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/async_devbox/test_interfaces.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/async_devbox/test_streaming.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/conftest.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/devbox/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/devbox/conftest.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/devbox/test_core.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/devbox/test_edge_cases.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/devbox/test_interfaces.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/devbox/test_streaming.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_agent.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_agent.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_benchmark.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_benchmark_run.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_blueprint.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_execution.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_execution_result.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_network_policy.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_ops.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_scenario.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_scenario_builder.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_scenario_run.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_scorer.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_snapshot.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_storage_object.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_benchmark.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_benchmark_run.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_blueprint.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_execution.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_execution_result.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_helpers.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_network_policy.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_ops.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_scenario.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_scenario_builder.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_scenario_run.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_scorer.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_snapshot.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_storage_object.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/README.md +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/conftest.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/README.md +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/__init__.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/conftest.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_agent.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_agent.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_benchmark.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_blueprint.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_devbox.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_network_policy.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_scenario.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_scorer.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_sdk.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_storage_object.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_benchmark.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_blueprint.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_devbox.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_network_policy.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_scenario.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_scorer.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_sdk.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_snapshot.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_storage_object.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/test_blueprints.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/test_devboxes.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/test_executions.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/test_snapshots.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/utils.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_client.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_deepcopy.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_extract_files.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_files.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_models.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_polling.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_qs.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_required_args.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_response.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_streaming.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_transform.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_utils/test_context_loader.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_utils/test_json.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_utils/test_proxy.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_utils/test_typing.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/utils.py +0 -0
- {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/uv.lock +0 -0
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.5.0 (2026-01-30)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v1.4.0...v1.5.0](https://github.com/runloopai/api-client-python/compare/v1.4.0...v1.5.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **devbox:** add enable_tunnel API ([#7236](https://github.com/runloopai/api-client-python/issues/7236)) ([bb58bfc](https://github.com/runloopai/api-client-python/commit/bb58bfc40c93c5832634ddb82c255ada7214c7f4))
|
|
10
|
+
|
|
3
11
|
## 1.4.0 (2026-01-30)
|
|
4
12
|
|
|
5
13
|
Full Changelog: [v1.3.2...v1.4.0](https://github.com/runloopai/api-client-python/compare/v1.3.2...v1.4.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: runloop_api_client
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.5.0
|
|
4
4
|
Summary: The official Python library for the runloop API
|
|
5
5
|
Project-URL: Homepage, https://github.com/runloopai/api-client-python
|
|
6
6
|
Project-URL: Repository, https://github.com/runloopai/api-client-python
|
|
@@ -132,6 +132,7 @@ from runloop_api_client.types import (
|
|
|
132
132
|
DevboxSnapshotView,
|
|
133
133
|
DevboxTunnelView,
|
|
134
134
|
DevboxView,
|
|
135
|
+
TunnelView,
|
|
135
136
|
DevboxCreateSSHKeyResponse,
|
|
136
137
|
DevboxReadFileContentsResponse,
|
|
137
138
|
)
|
|
@@ -148,6 +149,7 @@ Methods:
|
|
|
148
149
|
- <code title="post /v1/devboxes/{id}/create_tunnel">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">create_tunnel</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_create_tunnel_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_tunnel_view.py">DevboxTunnelView</a></code>
|
|
149
150
|
- <code title="post /v1/devboxes/disk_snapshots/{id}/delete">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">delete_disk_snapshot</a>(id) -> object</code>
|
|
150
151
|
- <code title="post /v1/devboxes/{id}/download_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">download_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_download_file_params.py">params</a>) -> BinaryAPIResponse</code>
|
|
152
|
+
- <code title="post /v1/devboxes/{id}/enable_tunnel">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">enable_tunnel</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_enable_tunnel_params.py">params</a>) -> <a href="./src/runloop_api_client/types/tunnel_view.py">TunnelView</a></code>
|
|
151
153
|
- <code title="post /v1/devboxes/{id}/execute">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">execute</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_execute_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
|
|
152
154
|
- <code title="post /v1/devboxes/{id}/execute_async">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">execute_async</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_execute_async_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
|
|
153
155
|
- <code title="post /v1/devboxes/{id}/execute_sync">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">execute_sync</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_execute_sync_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
|
|
@@ -28,6 +28,7 @@ from ...types import (
|
|
|
28
28
|
devbox_execute_sync_params,
|
|
29
29
|
devbox_create_tunnel_params,
|
|
30
30
|
devbox_download_file_params,
|
|
31
|
+
devbox_enable_tunnel_params,
|
|
31
32
|
devbox_execute_async_params,
|
|
32
33
|
devbox_remove_tunnel_params,
|
|
33
34
|
devbox_snapshot_disk_params,
|
|
@@ -99,6 +100,7 @@ from .disk_snapshots import (
|
|
|
99
100
|
)
|
|
100
101
|
from ...lib.polling_async import async_poll_until
|
|
101
102
|
from ...types.devbox_view import DevboxView
|
|
103
|
+
from ...types.tunnel_view import TunnelView
|
|
102
104
|
from ...types.devbox_tunnel_view import DevboxTunnelView
|
|
103
105
|
from ...types.shared_params.mount import Mount
|
|
104
106
|
from ...types.devbox_snapshot_view import DevboxSnapshotView
|
|
@@ -787,6 +789,55 @@ class DevboxesResource(SyncAPIResource):
|
|
|
787
789
|
cast_to=BinaryAPIResponse,
|
|
788
790
|
)
|
|
789
791
|
|
|
792
|
+
def enable_tunnel(
|
|
793
|
+
self,
|
|
794
|
+
id: str,
|
|
795
|
+
*,
|
|
796
|
+
auth_mode: Optional[Literal["open", "authenticated"]] | Omit = omit,
|
|
797
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
798
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
799
|
+
extra_headers: Headers | None = None,
|
|
800
|
+
extra_query: Query | None = None,
|
|
801
|
+
extra_body: Body | None = None,
|
|
802
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
803
|
+
idempotency_key: str | None = None,
|
|
804
|
+
) -> TunnelView:
|
|
805
|
+
"""Create a V2 tunnel for an existing running Devbox.
|
|
806
|
+
|
|
807
|
+
Tunnels provide encrypted
|
|
808
|
+
URL-based access to the Devbox without exposing internal IDs. The tunnel URL
|
|
809
|
+
format is: https://{port}-{tunnel_key}.tunnel.runloop.ai
|
|
810
|
+
|
|
811
|
+
Each Devbox can have one tunnel.
|
|
812
|
+
|
|
813
|
+
Args:
|
|
814
|
+
auth_mode: Authentication mode for the tunnel. Defaults to 'public' if not specified.
|
|
815
|
+
|
|
816
|
+
extra_headers: Send extra headers
|
|
817
|
+
|
|
818
|
+
extra_query: Add additional query parameters to the request
|
|
819
|
+
|
|
820
|
+
extra_body: Add additional JSON properties to the request
|
|
821
|
+
|
|
822
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
823
|
+
|
|
824
|
+
idempotency_key: Specify a custom idempotency key for this request
|
|
825
|
+
"""
|
|
826
|
+
if not id:
|
|
827
|
+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
828
|
+
return self._post(
|
|
829
|
+
f"/v1/devboxes/{id}/enable_tunnel",
|
|
830
|
+
body=maybe_transform({"auth_mode": auth_mode}, devbox_enable_tunnel_params.DevboxEnableTunnelParams),
|
|
831
|
+
options=make_request_options(
|
|
832
|
+
extra_headers=extra_headers,
|
|
833
|
+
extra_query=extra_query,
|
|
834
|
+
extra_body=extra_body,
|
|
835
|
+
timeout=timeout,
|
|
836
|
+
idempotency_key=idempotency_key,
|
|
837
|
+
),
|
|
838
|
+
cast_to=TunnelView,
|
|
839
|
+
)
|
|
840
|
+
|
|
790
841
|
def execute(
|
|
791
842
|
self,
|
|
792
843
|
id: str,
|
|
@@ -2347,6 +2398,57 @@ class AsyncDevboxesResource(AsyncAPIResource):
|
|
|
2347
2398
|
cast_to=AsyncBinaryAPIResponse,
|
|
2348
2399
|
)
|
|
2349
2400
|
|
|
2401
|
+
async def enable_tunnel(
|
|
2402
|
+
self,
|
|
2403
|
+
id: str,
|
|
2404
|
+
*,
|
|
2405
|
+
auth_mode: Optional[Literal["open", "authenticated"]] | Omit = omit,
|
|
2406
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
2407
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
2408
|
+
extra_headers: Headers | None = None,
|
|
2409
|
+
extra_query: Query | None = None,
|
|
2410
|
+
extra_body: Body | None = None,
|
|
2411
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
2412
|
+
idempotency_key: str | None = None,
|
|
2413
|
+
) -> TunnelView:
|
|
2414
|
+
"""Create a V2 tunnel for an existing running Devbox.
|
|
2415
|
+
|
|
2416
|
+
Tunnels provide encrypted
|
|
2417
|
+
URL-based access to the Devbox without exposing internal IDs. The tunnel URL
|
|
2418
|
+
format is: https://{port}-{tunnel_key}.tunnel.runloop.ai
|
|
2419
|
+
|
|
2420
|
+
Each Devbox can have one tunnel.
|
|
2421
|
+
|
|
2422
|
+
Args:
|
|
2423
|
+
auth_mode: Authentication mode for the tunnel. Defaults to 'public' if not specified.
|
|
2424
|
+
|
|
2425
|
+
extra_headers: Send extra headers
|
|
2426
|
+
|
|
2427
|
+
extra_query: Add additional query parameters to the request
|
|
2428
|
+
|
|
2429
|
+
extra_body: Add additional JSON properties to the request
|
|
2430
|
+
|
|
2431
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
2432
|
+
|
|
2433
|
+
idempotency_key: Specify a custom idempotency key for this request
|
|
2434
|
+
"""
|
|
2435
|
+
if not id:
|
|
2436
|
+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
2437
|
+
return await self._post(
|
|
2438
|
+
f"/v1/devboxes/{id}/enable_tunnel",
|
|
2439
|
+
body=await async_maybe_transform(
|
|
2440
|
+
{"auth_mode": auth_mode}, devbox_enable_tunnel_params.DevboxEnableTunnelParams
|
|
2441
|
+
),
|
|
2442
|
+
options=make_request_options(
|
|
2443
|
+
extra_headers=extra_headers,
|
|
2444
|
+
extra_query=extra_query,
|
|
2445
|
+
extra_body=extra_body,
|
|
2446
|
+
timeout=timeout,
|
|
2447
|
+
idempotency_key=idempotency_key,
|
|
2448
|
+
),
|
|
2449
|
+
cast_to=TunnelView,
|
|
2450
|
+
)
|
|
2451
|
+
|
|
2350
2452
|
async def execute(
|
|
2351
2453
|
self,
|
|
2352
2454
|
id: str,
|
|
@@ -3293,6 +3395,9 @@ class DevboxesResourceWithRawResponse:
|
|
|
3293
3395
|
devboxes.download_file,
|
|
3294
3396
|
BinaryAPIResponse,
|
|
3295
3397
|
)
|
|
3398
|
+
self.enable_tunnel = to_raw_response_wrapper(
|
|
3399
|
+
devboxes.enable_tunnel,
|
|
3400
|
+
)
|
|
3296
3401
|
self.execute = to_raw_response_wrapper(
|
|
3297
3402
|
devboxes.execute,
|
|
3298
3403
|
)
|
|
@@ -3395,6 +3500,9 @@ class AsyncDevboxesResourceWithRawResponse:
|
|
|
3395
3500
|
devboxes.download_file,
|
|
3396
3501
|
AsyncBinaryAPIResponse,
|
|
3397
3502
|
)
|
|
3503
|
+
self.enable_tunnel = async_to_raw_response_wrapper(
|
|
3504
|
+
devboxes.enable_tunnel,
|
|
3505
|
+
)
|
|
3398
3506
|
self.execute = async_to_raw_response_wrapper(
|
|
3399
3507
|
devboxes.execute,
|
|
3400
3508
|
)
|
|
@@ -3497,6 +3605,9 @@ class DevboxesResourceWithStreamingResponse:
|
|
|
3497
3605
|
devboxes.download_file,
|
|
3498
3606
|
StreamedBinaryAPIResponse,
|
|
3499
3607
|
)
|
|
3608
|
+
self.enable_tunnel = to_streamed_response_wrapper(
|
|
3609
|
+
devboxes.enable_tunnel,
|
|
3610
|
+
)
|
|
3500
3611
|
self.execute = to_streamed_response_wrapper(
|
|
3501
3612
|
devboxes.execute,
|
|
3502
3613
|
)
|
|
@@ -3599,6 +3710,9 @@ class AsyncDevboxesResourceWithStreamingResponse:
|
|
|
3599
3710
|
devboxes.download_file,
|
|
3600
3711
|
AsyncStreamedBinaryAPIResponse,
|
|
3601
3712
|
)
|
|
3713
|
+
self.enable_tunnel = async_to_streamed_response_wrapper(
|
|
3714
|
+
devboxes.enable_tunnel,
|
|
3715
|
+
)
|
|
3602
3716
|
self.execute = async_to_streamed_response_wrapper(
|
|
3603
3717
|
devboxes.execute,
|
|
3604
3718
|
)
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/__init__.py
RENAMED
|
@@ -16,6 +16,7 @@ from .agent_view import AgentView as AgentView
|
|
|
16
16
|
from .devbox_view import DevboxView as DevboxView
|
|
17
17
|
from .object_view import ObjectView as ObjectView
|
|
18
18
|
from .secret_view import SecretView as SecretView
|
|
19
|
+
from .tunnel_view import TunnelView as TunnelView
|
|
19
20
|
from .input_context import InputContext as InputContext
|
|
20
21
|
from .scenario_view import ScenarioView as ScenarioView
|
|
21
22
|
from .benchmark_view import BenchmarkView as BenchmarkView
|
|
@@ -91,6 +92,7 @@ from .scenario_environment_param import ScenarioEnvironmentParam as ScenarioEnvi
|
|
|
91
92
|
from .benchmark_job_create_params import BenchmarkJobCreateParams as BenchmarkJobCreateParams
|
|
92
93
|
from .devbox_create_tunnel_params import DevboxCreateTunnelParams as DevboxCreateTunnelParams
|
|
93
94
|
from .devbox_download_file_params import DevboxDownloadFileParams as DevboxDownloadFileParams
|
|
95
|
+
from .devbox_enable_tunnel_params import DevboxEnableTunnelParams as DevboxEnableTunnelParams
|
|
94
96
|
from .devbox_execute_async_params import DevboxExecuteAsyncParams as DevboxExecuteAsyncParams
|
|
95
97
|
from .devbox_remove_tunnel_params import DevboxRemoveTunnelParams as DevboxRemoveTunnelParams
|
|
96
98
|
from .devbox_snapshot_disk_params import DevboxSnapshotDiskParams as DevboxSnapshotDiskParams
|
|
@@ -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 Literal, TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["DevboxEnableTunnelParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class DevboxEnableTunnelParams(TypedDict, total=False):
|
|
12
|
+
auth_mode: Optional[Literal["open", "authenticated"]]
|
|
13
|
+
"""Authentication mode for the tunnel. Defaults to 'public' if not specified."""
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_view.py
RENAMED
|
@@ -4,9 +4,10 @@ from typing import Dict, List, Optional
|
|
|
4
4
|
from typing_extensions import Literal
|
|
5
5
|
|
|
6
6
|
from .._models import BaseModel
|
|
7
|
+
from .tunnel_view import TunnelView
|
|
7
8
|
from .shared.launch_parameters import LaunchParameters
|
|
8
9
|
|
|
9
|
-
__all__ = ["DevboxView", "StateTransition", "GatewaySpecs"
|
|
10
|
+
__all__ = ["DevboxView", "StateTransition", "GatewaySpecs"]
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
class StateTransition(BaseModel):
|
|
@@ -38,30 +39,6 @@ class GatewaySpecs(BaseModel):
|
|
|
38
39
|
"""The ID of the secret containing the credential."""
|
|
39
40
|
|
|
40
41
|
|
|
41
|
-
class Tunnel(BaseModel):
|
|
42
|
-
"""
|
|
43
|
-
V2 tunnel information if a tunnel was created at launch time or via the createTunnel API.
|
|
44
|
-
"""
|
|
45
|
-
|
|
46
|
-
auth_mode: Literal["public_", "authenticated"]
|
|
47
|
-
"""The authentication mode for the tunnel."""
|
|
48
|
-
|
|
49
|
-
create_time_ms: int
|
|
50
|
-
"""Creation time of the tunnel (Unix timestamp milliseconds)."""
|
|
51
|
-
|
|
52
|
-
tunnel_key: str
|
|
53
|
-
"""The encrypted tunnel key used to construct the tunnel URL.
|
|
54
|
-
|
|
55
|
-
URL format: https://{port}-{tunnel_key}.tunnel.runloop.{domain}
|
|
56
|
-
"""
|
|
57
|
-
|
|
58
|
-
auth_token: Optional[str] = None
|
|
59
|
-
"""Bearer token for tunnel authentication.
|
|
60
|
-
|
|
61
|
-
Only present when auth_mode is 'authenticated'.
|
|
62
|
-
"""
|
|
63
|
-
|
|
64
|
-
|
|
65
42
|
class DevboxView(BaseModel):
|
|
66
43
|
"""A Devbox represents a virtual development environment.
|
|
67
44
|
|
|
@@ -137,7 +114,7 @@ class DevboxView(BaseModel):
|
|
|
137
114
|
Snapshot.
|
|
138
115
|
"""
|
|
139
116
|
|
|
140
|
-
tunnel: Optional[
|
|
117
|
+
tunnel: Optional[TunnelView] = None
|
|
141
118
|
"""
|
|
142
119
|
V2 tunnel information if a tunnel was created at launch time or via the
|
|
143
120
|
createTunnel API.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from .._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = ["TunnelView"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TunnelView(BaseModel):
|
|
12
|
+
"""A V2 tunnel provides secure HTTP access to services running on a Devbox.
|
|
13
|
+
|
|
14
|
+
Tunnels allow external clients to reach web servers, APIs, or other HTTP services running inside a Devbox without requiring direct network access. Each tunnel is uniquely identified by an encrypted tunnel_key and can be configured for either open (public) or authenticated access.
|
|
15
|
+
Usage: https://{port}-{tunnel_key}.tunnel.runloop.ai
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
auth_mode: Literal["public_", "authenticated"]
|
|
19
|
+
"""The authentication mode for the tunnel."""
|
|
20
|
+
|
|
21
|
+
create_time_ms: int
|
|
22
|
+
"""Creation time of the tunnel (Unix timestamp milliseconds)."""
|
|
23
|
+
|
|
24
|
+
tunnel_key: str
|
|
25
|
+
"""The encrypted tunnel key used to construct the tunnel URL.
|
|
26
|
+
|
|
27
|
+
URL format: https://{port}-{tunnel_key}.tunnel.runloop.{domain}
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
auth_token: Optional[str] = None
|
|
31
|
+
"""Bearer token for tunnel authentication.
|
|
32
|
+
|
|
33
|
+
Only present when auth_mode is 'authenticated'.
|
|
34
|
+
"""
|
|
@@ -14,6 +14,7 @@ from tests.utils import assert_matches_type
|
|
|
14
14
|
from runloop_api_client import Runloop, AsyncRunloop
|
|
15
15
|
from runloop_api_client.types import (
|
|
16
16
|
DevboxView,
|
|
17
|
+
TunnelView,
|
|
17
18
|
DevboxTunnelView,
|
|
18
19
|
DevboxSnapshotView,
|
|
19
20
|
DevboxExecutionDetailView,
|
|
@@ -427,6 +428,52 @@ class TestDevboxes:
|
|
|
427
428
|
path="path",
|
|
428
429
|
)
|
|
429
430
|
|
|
431
|
+
@parametrize
|
|
432
|
+
def test_method_enable_tunnel(self, client: Runloop) -> None:
|
|
433
|
+
devbox = client.devboxes.enable_tunnel(
|
|
434
|
+
id="id",
|
|
435
|
+
)
|
|
436
|
+
assert_matches_type(TunnelView, devbox, path=["response"])
|
|
437
|
+
|
|
438
|
+
@parametrize
|
|
439
|
+
def test_method_enable_tunnel_with_all_params(self, client: Runloop) -> None:
|
|
440
|
+
devbox = client.devboxes.enable_tunnel(
|
|
441
|
+
id="id",
|
|
442
|
+
auth_mode="open",
|
|
443
|
+
)
|
|
444
|
+
assert_matches_type(TunnelView, devbox, path=["response"])
|
|
445
|
+
|
|
446
|
+
@parametrize
|
|
447
|
+
def test_raw_response_enable_tunnel(self, client: Runloop) -> None:
|
|
448
|
+
response = client.devboxes.with_raw_response.enable_tunnel(
|
|
449
|
+
id="id",
|
|
450
|
+
)
|
|
451
|
+
|
|
452
|
+
assert response.is_closed is True
|
|
453
|
+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
|
|
454
|
+
devbox = response.parse()
|
|
455
|
+
assert_matches_type(TunnelView, devbox, path=["response"])
|
|
456
|
+
|
|
457
|
+
@parametrize
|
|
458
|
+
def test_streaming_response_enable_tunnel(self, client: Runloop) -> None:
|
|
459
|
+
with client.devboxes.with_streaming_response.enable_tunnel(
|
|
460
|
+
id="id",
|
|
461
|
+
) as response:
|
|
462
|
+
assert not response.is_closed
|
|
463
|
+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
|
|
464
|
+
|
|
465
|
+
devbox = response.parse()
|
|
466
|
+
assert_matches_type(TunnelView, devbox, path=["response"])
|
|
467
|
+
|
|
468
|
+
assert cast(Any, response.is_closed) is True
|
|
469
|
+
|
|
470
|
+
@parametrize
|
|
471
|
+
def test_path_params_enable_tunnel(self, client: Runloop) -> None:
|
|
472
|
+
with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
|
|
473
|
+
client.devboxes.with_raw_response.enable_tunnel(
|
|
474
|
+
id="",
|
|
475
|
+
)
|
|
476
|
+
|
|
430
477
|
@parametrize
|
|
431
478
|
def test_method_execute(self, client: Runloop) -> None:
|
|
432
479
|
devbox = client.devboxes.execute(
|
|
@@ -1993,6 +2040,52 @@ class TestAsyncDevboxes:
|
|
|
1993
2040
|
path="path",
|
|
1994
2041
|
)
|
|
1995
2042
|
|
|
2043
|
+
@parametrize
|
|
2044
|
+
async def test_method_enable_tunnel(self, async_client: AsyncRunloop) -> None:
|
|
2045
|
+
devbox = await async_client.devboxes.enable_tunnel(
|
|
2046
|
+
id="id",
|
|
2047
|
+
)
|
|
2048
|
+
assert_matches_type(TunnelView, devbox, path=["response"])
|
|
2049
|
+
|
|
2050
|
+
@parametrize
|
|
2051
|
+
async def test_method_enable_tunnel_with_all_params(self, async_client: AsyncRunloop) -> None:
|
|
2052
|
+
devbox = await async_client.devboxes.enable_tunnel(
|
|
2053
|
+
id="id",
|
|
2054
|
+
auth_mode="open",
|
|
2055
|
+
)
|
|
2056
|
+
assert_matches_type(TunnelView, devbox, path=["response"])
|
|
2057
|
+
|
|
2058
|
+
@parametrize
|
|
2059
|
+
async def test_raw_response_enable_tunnel(self, async_client: AsyncRunloop) -> None:
|
|
2060
|
+
response = await async_client.devboxes.with_raw_response.enable_tunnel(
|
|
2061
|
+
id="id",
|
|
2062
|
+
)
|
|
2063
|
+
|
|
2064
|
+
assert response.is_closed is True
|
|
2065
|
+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
|
|
2066
|
+
devbox = await response.parse()
|
|
2067
|
+
assert_matches_type(TunnelView, devbox, path=["response"])
|
|
2068
|
+
|
|
2069
|
+
@parametrize
|
|
2070
|
+
async def test_streaming_response_enable_tunnel(self, async_client: AsyncRunloop) -> None:
|
|
2071
|
+
async with async_client.devboxes.with_streaming_response.enable_tunnel(
|
|
2072
|
+
id="id",
|
|
2073
|
+
) as response:
|
|
2074
|
+
assert not response.is_closed
|
|
2075
|
+
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
|
|
2076
|
+
|
|
2077
|
+
devbox = await response.parse()
|
|
2078
|
+
assert_matches_type(TunnelView, devbox, path=["response"])
|
|
2079
|
+
|
|
2080
|
+
assert cast(Any, response.is_closed) is True
|
|
2081
|
+
|
|
2082
|
+
@parametrize
|
|
2083
|
+
async def test_path_params_enable_tunnel(self, async_client: AsyncRunloop) -> None:
|
|
2084
|
+
with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
|
|
2085
|
+
await async_client.devboxes.with_raw_response.enable_tunnel(
|
|
2086
|
+
id="",
|
|
2087
|
+
)
|
|
2088
|
+
|
|
1996
2089
|
@parametrize
|
|
1997
2090
|
async def test_method_execute(self, async_client: AsyncRunloop) -> None:
|
|
1998
2091
|
devbox = await async_client.devboxes.execute(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_base_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/__init__.py
RENAMED
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_compat.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_json.py
RENAMED
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_logs.py
RENAMED
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_proxy.py
RENAMED
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_reflection.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_streams.py
RENAMED
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_sync.py
RENAMED
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_transform.py
RENAMED
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_typing.py
RENAMED
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_utils.py
RENAMED
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_validation.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/context_loader.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/polling_async.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/__init__.py
RENAMED
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/agents.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/benchmarks.py
RENAMED
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/blueprints.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/objects.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|