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.
Files changed (393) hide show
  1. runloop_api_client-1.5.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/CHANGELOG.md +8 -0
  3. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/PKG-INFO +1 -1
  4. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/api.md +2 -0
  5. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/pyproject.toml +1 -1
  6. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_version.py +1 -1
  7. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/devboxes/devboxes.py +114 -0
  8. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/__init__.py +2 -0
  9. runloop_api_client-1.5.0/src/runloop_api_client/types/devbox_enable_tunnel_params.py +13 -0
  10. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_view.py +3 -26
  11. runloop_api_client-1.5.0/src/runloop_api_client/types/tunnel_view.py +34 -0
  12. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_devboxes.py +93 -0
  13. runloop_api_client-1.4.0/.release-please-manifest.json +0 -3
  14. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/.gitignore +0 -0
  15. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/CONTRIBUTING.md +0 -0
  16. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/LICENSE +0 -0
  17. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/README-SDK.md +0 -0
  18. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/README.md +0 -0
  19. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/SECURITY.md +0 -0
  20. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/bin/check-release-environment +0 -0
  21. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/bin/publish-pypi +0 -0
  22. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/examples/.keep +0 -0
  23. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/release-please-config.json +0 -0
  24. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/requirements-dev.lock +0 -0
  25. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop/lib/.keep +0 -0
  26. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/__init__.py +0 -0
  27. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_base_client.py +0 -0
  28. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_client.py +0 -0
  29. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_compat.py +0 -0
  30. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_constants.py +0 -0
  31. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_exceptions.py +0 -0
  32. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_files.py +0 -0
  33. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_models.py +0 -0
  34. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_qs.py +0 -0
  35. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_resource.py +0 -0
  36. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_response.py +0 -0
  37. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_streaming.py +0 -0
  38. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_types.py +0 -0
  39. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  40. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_compat.py +0 -0
  41. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
  42. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_json.py +0 -0
  43. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  44. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  45. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  46. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  47. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  48. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  49. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  50. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  51. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  52. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/_utils/_validation.py +0 -0
  53. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/.keep +0 -0
  54. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/__init__.py +0 -0
  55. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/_ignore.py +0 -0
  56. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/context_loader.py +0 -0
  57. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/polling.py +0 -0
  58. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  59. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/pagination.py +0 -0
  60. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/py.typed +0 -0
  61. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/__init__.py +0 -0
  62. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/agents.py +0 -0
  63. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/benchmark_jobs.py +0 -0
  64. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/benchmark_runs.py +0 -0
  65. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/benchmarks.py +0 -0
  66. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/blueprints.py +0 -0
  67. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  68. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  69. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  70. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  71. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  72. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  73. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/gateway_configs.py +0 -0
  74. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/network_policies.py +0 -0
  75. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/objects.py +0 -0
  76. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/repositories.py +0 -0
  77. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  78. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  79. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
  80. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  81. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/resources/secrets.py +0 -0
  82. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/__init__.py +0 -0
  83. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/_helpers.py +0 -0
  84. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/_types.py +0 -0
  85. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/agent.py +0 -0
  86. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_.py +0 -0
  87. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_agent.py +0 -0
  88. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_benchmark.py +0 -0
  89. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_benchmark_run.py +0 -0
  90. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_blueprint.py +0 -0
  91. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_devbox.py +0 -0
  92. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_execution.py +0 -0
  93. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_execution_result.py +0 -0
  94. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_network_policy.py +0 -0
  95. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_scenario.py +0 -0
  96. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_scenario_builder.py +0 -0
  97. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_scenario_run.py +0 -0
  98. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_scorer.py +0 -0
  99. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_snapshot.py +0 -0
  100. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/async_storage_object.py +0 -0
  101. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/benchmark.py +0 -0
  102. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/benchmark_run.py +0 -0
  103. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/blueprint.py +0 -0
  104. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/devbox.py +0 -0
  105. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/execution.py +0 -0
  106. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/execution_result.py +0 -0
  107. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/network_policy.py +0 -0
  108. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/scenario.py +0 -0
  109. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/scenario_builder.py +0 -0
  110. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/scenario_run.py +0 -0
  111. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/scorer.py +0 -0
  112. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/snapshot.py +0 -0
  113. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/storage_object.py +0 -0
  114. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/sdk/sync.py +0 -0
  115. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/agent_create_params.py +0 -0
  116. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/agent_list_params.py +0 -0
  117. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/agent_list_view.py +0 -0
  118. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/agent_view.py +0 -0
  119. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  120. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  121. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_job_create_params.py +0 -0
  122. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_job_list_params.py +0 -0
  123. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_job_list_view.py +0 -0
  124. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_job_view.py +0 -0
  125. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  126. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  127. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_run_list_params.py +0 -0
  128. {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
  129. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  130. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  131. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  132. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
  133. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_update_scenarios_params.py +0 -0
  134. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  135. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  136. {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
  137. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  138. {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
  139. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  140. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  141. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
  142. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  143. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  144. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  145. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  146. {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
  147. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  148. {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
  149. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  150. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  151. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  152. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
  153. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  154. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  155. {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
  156. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  157. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  158. {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
  159. {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
  160. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  161. {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
  162. {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
  163. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  164. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  165. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  166. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  167. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  168. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  169. {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
  170. {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
  171. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  172. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  173. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  174. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  175. {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
  176. {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
  177. {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
  178. {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
  179. {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
  180. {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
  181. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  182. {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
  183. {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
  184. {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
  185. {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
  186. {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
  187. {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
  188. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
  189. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  190. {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
  191. {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
  192. {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
  193. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
  194. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  195. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/gateway_config_create_params.py +0 -0
  196. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/gateway_config_list_params.py +0 -0
  197. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/gateway_config_list_view.py +0 -0
  198. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/gateway_config_update_params.py +0 -0
  199. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/gateway_config_view.py +0 -0
  200. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/input_context.py +0 -0
  201. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  202. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  203. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/inspection_source_param.py +0 -0
  204. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/network_policy_create_params.py +0 -0
  205. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/network_policy_list_params.py +0 -0
  206. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/network_policy_list_view.py +0 -0
  207. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/network_policy_update_params.py +0 -0
  208. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/network_policy_view.py +0 -0
  209. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/object_create_params.py +0 -0
  210. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/object_download_params.py +0 -0
  211. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/object_download_url_view.py +0 -0
  212. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/object_list_params.py +0 -0
  213. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/object_list_public_params.py +0 -0
  214. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/object_list_view.py +0 -0
  215. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/object_view.py +0 -0
  216. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  217. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  218. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  219. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_inspect_params.py +0 -0
  220. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
  221. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
  222. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  223. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
  224. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
  225. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  226. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
  227. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  228. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  229. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  230. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  231. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  232. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  233. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  234. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_update_params.py +0 -0
  235. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenario_view.py +0 -0
  236. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  237. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  238. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  239. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  240. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  241. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  242. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  243. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  244. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  245. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
  246. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
  247. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  248. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  249. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  250. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  251. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scoring_function.py +0 -0
  252. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  253. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  254. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
  255. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/secret_list_params.py +0 -0
  256. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
  257. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
  258. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/secret_view.py +0 -0
  259. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  260. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  261. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/agent_mount.py +0 -0
  262. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/agent_source.py +0 -0
  263. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  264. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  265. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/mount.py +0 -0
  266. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/object_mount.py +0 -0
  267. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared/run_profile.py +0 -0
  268. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  269. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  270. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/agent_mount.py +0 -0
  271. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
  272. {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
  273. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  274. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/mount.py +0 -0
  275. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/object_mount.py +0 -0
  276. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
  277. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/__init__.py +0 -0
  278. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/__init__.py +0 -0
  279. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/devboxes/__init__.py +0 -0
  280. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  281. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  282. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  283. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  284. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  285. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/scenarios/__init__.py +0 -0
  286. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  287. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
  288. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_agents.py +0 -0
  289. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_benchmark_jobs.py +0 -0
  290. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_benchmark_runs.py +0 -0
  291. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_benchmarks.py +0 -0
  292. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_blueprints.py +0 -0
  293. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_gateway_configs.py +0 -0
  294. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_network_policies.py +0 -0
  295. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_objects.py +0 -0
  296. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_repositories.py +0 -0
  297. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_scenarios.py +0 -0
  298. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/api_resources/test_secrets.py +0 -0
  299. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/conftest.py +0 -0
  300. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sample_file.txt +0 -0
  301. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/__init__.py +0 -0
  302. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/async_devbox/__init__.py +0 -0
  303. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/async_devbox/conftest.py +0 -0
  304. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/async_devbox/test_core.py +0 -0
  305. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
  306. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/async_devbox/test_interfaces.py +0 -0
  307. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/async_devbox/test_streaming.py +0 -0
  308. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/conftest.py +0 -0
  309. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/devbox/__init__.py +0 -0
  310. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/devbox/conftest.py +0 -0
  311. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/devbox/test_core.py +0 -0
  312. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/devbox/test_edge_cases.py +0 -0
  313. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/devbox/test_interfaces.py +0 -0
  314. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/devbox/test_streaming.py +0 -0
  315. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_agent.py +0 -0
  316. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_agent.py +0 -0
  317. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_benchmark.py +0 -0
  318. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_benchmark_run.py +0 -0
  319. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_blueprint.py +0 -0
  320. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_execution.py +0 -0
  321. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_execution_result.py +0 -0
  322. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_network_policy.py +0 -0
  323. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_ops.py +0 -0
  324. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_scenario.py +0 -0
  325. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_scenario_builder.py +0 -0
  326. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_scenario_run.py +0 -0
  327. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_scorer.py +0 -0
  328. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_snapshot.py +0 -0
  329. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_async_storage_object.py +0 -0
  330. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_benchmark.py +0 -0
  331. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_benchmark_run.py +0 -0
  332. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_blueprint.py +0 -0
  333. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_execution.py +0 -0
  334. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_execution_result.py +0 -0
  335. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_helpers.py +0 -0
  336. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_network_policy.py +0 -0
  337. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_ops.py +0 -0
  338. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_scenario.py +0 -0
  339. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_scenario_builder.py +0 -0
  340. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_scenario_run.py +0 -0
  341. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_scorer.py +0 -0
  342. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_snapshot.py +0 -0
  343. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/sdk/test_storage_object.py +0 -0
  344. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/README.md +0 -0
  345. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/__init__.py +0 -0
  346. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/conftest.py +0 -0
  347. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/README.md +0 -0
  348. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/__init__.py +0 -0
  349. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/conftest.py +0 -0
  350. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_agent.py +0 -0
  351. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_agent.py +0 -0
  352. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_benchmark.py +0 -0
  353. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_blueprint.py +0 -0
  354. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_devbox.py +0 -0
  355. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_network_policy.py +0 -0
  356. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_scenario.py +0 -0
  357. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_scorer.py +0 -0
  358. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_sdk.py +0 -0
  359. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
  360. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_async_storage_object.py +0 -0
  361. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_benchmark.py +0 -0
  362. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_blueprint.py +0 -0
  363. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_devbox.py +0 -0
  364. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_network_policy.py +0 -0
  365. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_scenario.py +0 -0
  366. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_scorer.py +0 -0
  367. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_sdk.py +0 -0
  368. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_snapshot.py +0 -0
  369. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/sdk/test_storage_object.py +0 -0
  370. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/test_blueprints.py +0 -0
  371. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/test_devboxes.py +0 -0
  372. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/test_executions.py +0 -0
  373. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
  374. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/test_snapshots.py +0 -0
  375. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/smoketests/utils.py +0 -0
  376. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_client.py +0 -0
  377. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_deepcopy.py +0 -0
  378. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_extract_files.py +0 -0
  379. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_files.py +0 -0
  380. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_models.py +0 -0
  381. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_polling.py +0 -0
  382. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_qs.py +0 -0
  383. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_required_args.py +0 -0
  384. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_response.py +0 -0
  385. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_streaming.py +0 -0
  386. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_transform.py +0 -0
  387. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_utils/test_context_loader.py +0 -0
  388. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_utils/test_datetime_parse.py +0 -0
  389. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_utils/test_json.py +0 -0
  390. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_utils/test_proxy.py +0 -0
  391. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/test_utils/test_typing.py +0 -0
  392. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/tests/utils.py +0 -0
  393. {runloop_api_client-1.4.0 → runloop_api_client-1.5.0}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.5.0"
3
+ }
@@ -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.4.0
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>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "1.4.0"
3
+ version = "1.5.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "runloop_api_client"
4
- __version__ = "1.4.0" # x-release-please-version
4
+ __version__ = "1.5.0" # x-release-please-version
@@ -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
  )
@@ -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."""
@@ -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", "Tunnel"]
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[Tunnel] = None
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(
@@ -1,3 +0,0 @@
1
- {
2
- ".": "1.4.0"
3
- }