runloop-api-client 0.48.1__tar.gz → 0.49.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 (290) hide show
  1. runloop_api_client-0.49.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/CHANGELOG.md +23 -0
  3. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/PKG-INFO +5 -5
  4. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/README.md +3 -3
  5. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/pyproject.toml +2 -2
  6. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_base_client.py +9 -2
  7. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_version.py +1 -1
  8. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +28 -0
  9. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/blueprints.py +24 -4
  10. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/devboxes.py +31 -56
  11. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/executions.py +27 -43
  12. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/scenarios/scenarios.py +27 -5
  13. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_create_params.py +6 -0
  14. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_run_view.py +6 -0
  15. runloop_api_client-0.49.0/src/runloop_api_client/types/benchmark_start_run_params.py +32 -0
  16. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_update_params.py +6 -0
  17. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_view.py +6 -0
  18. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_build_parameters.py +7 -1
  19. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_create_params.py +7 -1
  20. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_preview_params.py +7 -1
  21. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_view.py +3 -0
  22. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_inspection_details.py +3 -2
  23. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_create_params.py +7 -1
  24. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_run_view.py +6 -0
  25. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_start_run_params.py +15 -2
  26. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_update_params.py +6 -2
  27. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_view.py +8 -1
  28. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared/launch_parameters.py +3 -0
  29. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +3 -0
  30. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/devboxes/test_executions.py +4 -4
  31. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/scenarios/test_scorers.py +2 -0
  32. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/test_benchmarks.py +12 -0
  33. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/test_blueprints.py +8 -0
  34. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/test_devboxes.py +5 -7
  35. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/test_scenarios.py +16 -0
  36. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_client.py +2 -2
  37. runloop_api_client-0.48.1/.release-please-manifest.json +0 -3
  38. runloop_api_client-0.48.1/src/runloop_api_client/types/benchmark_start_run_params.py +0 -19
  39. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/.gitignore +0 -0
  40. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/CONTRIBUTING.md +0 -0
  41. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/LICENSE +0 -0
  42. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/SECURITY.md +0 -0
  43. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/api.md +0 -0
  44. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/bin/check-release-environment +0 -0
  45. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/bin/publish-pypi +0 -0
  46. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/examples/.keep +0 -0
  47. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/mypy.ini +0 -0
  48. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/noxfile.py +0 -0
  49. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/release-please-config.json +0 -0
  50. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/requirements-dev.lock +0 -0
  51. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/requirements.lock +0 -0
  52. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop/lib/.keep +0 -0
  53. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/__init__.py +0 -0
  54. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_client.py +0 -0
  55. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_compat.py +0 -0
  56. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_constants.py +0 -0
  57. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_exceptions.py +0 -0
  58. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_files.py +0 -0
  59. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_models.py +0 -0
  60. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_qs.py +0 -0
  61. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_resource.py +0 -0
  62. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_response.py +0 -0
  63. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_streaming.py +0 -0
  64. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_types.py +0 -0
  65. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  66. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  67. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  68. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  69. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  70. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  71. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  72. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  73. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  74. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  75. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/lib/.keep +0 -0
  76. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/lib/polling.py +0 -0
  77. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  78. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/pagination.py +0 -0
  79. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/py.typed +0 -0
  80. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/__init__.py +0 -0
  81. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
  82. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
  83. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  84. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  85. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  86. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  87. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  88. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/lsp.py +0 -0
  89. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/repositories.py +0 -0
  90. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  91. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  92. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  93. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/secrets.py +0 -0
  94. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/__init__.py +0 -0
  95. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  96. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  97. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  98. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  99. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
  100. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
  101. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmarks/run_list_scenario_runs_params.py +0 -0
  102. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  103. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  104. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  105. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  106. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  107. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  108. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  109. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  110. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  111. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  112. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  113. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  114. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  115. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  116. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  117. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  118. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  119. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  120. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  121. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  122. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  123. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  124. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  125. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  126. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  127. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  128. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  129. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  130. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  131. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_code_action.py +0 -0
  132. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
  133. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
  134. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
  135. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
  136. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
  137. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
  138. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
  139. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
  140. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
  141. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
  142. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
  143. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
  144. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  145. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  146. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
  147. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/code_action_context_param.py +0 -0
  148. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
  149. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
  150. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/code_actions_response.py +0 -0
  151. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/code_description_param.py +0 -0
  152. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +0 -0
  153. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  154. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  155. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  156. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  157. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  158. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  159. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  160. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  161. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  162. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
  163. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/diagnostic_param.py +0 -0
  164. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +0 -0
  165. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
  166. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
  167. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
  168. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  169. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  170. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/document_symbol.py +0 -0
  171. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/document_symbol_response.py +0 -0
  172. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
  173. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  174. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  175. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  176. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
  177. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/file_definition_response.py +0 -0
  178. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
  179. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
  180. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/formatting_response.py +0 -0
  181. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
  182. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/integer.py +0 -0
  183. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
  184. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/location_param.py +0 -0
  185. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  186. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +0 -0
  187. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
  188. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
  189. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
  190. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
  191. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
  192. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
  193. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
  194. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
  195. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
  196. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
  197. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
  198. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
  199. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
  200. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
  201. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/position.py +0 -0
  202. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/position_param.py +0 -0
  203. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/range.py +0 -0
  204. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/range_param.py +0 -0
  205. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
  206. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
  207. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/references_response.py +0 -0
  208. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
  209. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
  210. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
  211. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
  212. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/text_edit.py +0 -0
  213. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/text_edit_param.py +0 -0
  214. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
  215. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
  216. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
  217. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/input_context.py +0 -0
  218. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  219. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  220. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  221. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  222. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  223. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
  224. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  225. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
  226. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
  227. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
  228. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  229. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  230. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  231. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  232. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  233. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  234. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  235. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  236. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  237. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  238. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  239. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  240. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  241. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  242. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
  243. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
  244. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  245. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  246. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  247. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  248. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scoring_function.py +0 -0
  249. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  250. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  251. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
  252. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
  253. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
  254. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/secret_view.py +0 -0
  255. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  256. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  257. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  258. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  259. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  260. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  261. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/__init__.py +0 -0
  262. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/__init__.py +0 -0
  263. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/benchmarks/__init__.py +0 -0
  264. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
  265. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/devboxes/__init__.py +0 -0
  266. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  267. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  268. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  269. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  270. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/devboxes/test_lsp.py +0 -0
  271. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/scenarios/__init__.py +0 -0
  272. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  273. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/test_repositories.py +0 -0
  274. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/test_secrets.py +0 -0
  275. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/conftest.py +0 -0
  276. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/sample_file.txt +0 -0
  277. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_deepcopy.py +0 -0
  278. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_extract_files.py +0 -0
  279. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_files.py +0 -0
  280. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_models.py +0 -0
  281. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_polling.py +0 -0
  282. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_qs.py +0 -0
  283. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_required_args.py +0 -0
  284. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_response.py +0 -0
  285. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_streaming.py +0 -0
  286. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_transform.py +0 -0
  287. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_utils/test_proxy.py +0 -0
  288. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_utils/test_typing.py +0 -0
  289. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/utils.py +0 -0
  290. {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.49.0"
3
+ }
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.49.0 (2025-07-15)
4
+
5
+ Full Changelog: [v0.48.2...v0.49.0](https://github.com/runloopai/api-client-python/compare/v0.48.2...v0.49.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([6022768](https://github.com/runloopai/api-client-python/commit/60227681f91e9eabc2b8da030fc6ef61834ce761))
10
+ * **api:** api update ([27c4579](https://github.com/runloopai/api-client-python/commit/27c4579ac003a2e211c5b421a1cc4714f86c6e57))
11
+ * clean up environment call outs ([e3a125d](https://github.com/runloopai/api-client-python/commit/e3a125d0bde927ff142d1817ce4c40489a3217c0))
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * **client:** don't send Content-Type header on GET requests ([5d9b833](https://github.com/runloopai/api-client-python/commit/5d9b8330d37d53bb5c1e8393c5d9798323a0a2ca))
17
+
18
+ ## 0.48.2 (2025-07-11)
19
+
20
+ Full Changelog: [v0.48.1...v0.48.2](https://github.com/runloopai/api-client-python/compare/v0.48.1...v0.48.2)
21
+
22
+ ### Chores
23
+
24
+ * **readme:** fix version rendering on pypi ([73af53e](https://github.com/runloopai/api-client-python/commit/73af53e19889262ac445fc0789999873c411c35a))
25
+
3
26
  ## 0.48.1 (2025-07-10)
4
27
 
5
28
  Full Changelog: [v0.48.0...v0.48.1](https://github.com/runloopai/api-client-python/compare/v0.48.0...v0.48.1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 0.48.1
3
+ Version: 0.49.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
@@ -30,12 +30,13 @@ Requires-Dist: sniffio
30
30
  Requires-Dist: typing-extensions<5,>=4.10
31
31
  Provides-Extra: aiohttp
32
32
  Requires-Dist: aiohttp; extra == 'aiohttp'
33
- Requires-Dist: httpx-aiohttp>=0.1.6; extra == 'aiohttp'
33
+ Requires-Dist: httpx-aiohttp>=0.1.8; extra == 'aiohttp'
34
34
  Description-Content-Type: text/markdown
35
35
 
36
36
  # Runloop Python API library
37
37
 
38
- [![PyPI version](https://github.com/runloopai/api-client-python/tree/main/<https://img.shields.io/pypi/v/runloop_api_client.svg?label=pypi%20(stable)>)](https://pypi.org/project/runloop_api_client/)
38
+ <!-- prettier-ignore -->
39
+ [![PyPI version](https://img.shields.io/pypi/v/runloop_api_client.svg?label=pypi%20(stable))](https://pypi.org/project/runloop_api_client/)
39
40
 
40
41
  The Runloop Python library provides convenient access to the Runloop REST API from any Python 3.8+
41
42
  application. The library includes type definitions for all request params and response fields,
@@ -113,7 +114,6 @@ pip install runloop_api_client[aiohttp]
113
114
  Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
114
115
 
115
116
  ```python
116
- import os
117
117
  import asyncio
118
118
  from runloop_api_client import DefaultAioHttpClient
119
119
  from runloop_api_client import AsyncRunloop
@@ -121,7 +121,7 @@ from runloop_api_client import AsyncRunloop
121
121
 
122
122
  async def main() -> None:
123
123
  async with AsyncRunloop(
124
- bearer_token=os.environ.get("RUNLOOP_API_KEY"), # This is the default and can be omitted
124
+ bearer_token="My Bearer Token",
125
125
  http_client=DefaultAioHttpClient(),
126
126
  ) as client:
127
127
  devbox_view = await client.devboxes.create()
@@ -1,6 +1,7 @@
1
1
  # Runloop Python API library
2
2
 
3
- [![PyPI version](<https://img.shields.io/pypi/v/runloop_api_client.svg?label=pypi%20(stable)>)](https://pypi.org/project/runloop_api_client/)
3
+ <!-- prettier-ignore -->
4
+ [![PyPI version](https://img.shields.io/pypi/v/runloop_api_client.svg?label=pypi%20(stable))](https://pypi.org/project/runloop_api_client/)
4
5
 
5
6
  The Runloop Python library provides convenient access to the Runloop REST API from any Python 3.8+
6
7
  application. The library includes type definitions for all request params and response fields,
@@ -78,7 +79,6 @@ pip install runloop_api_client[aiohttp]
78
79
  Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
79
80
 
80
81
  ```python
81
- import os
82
82
  import asyncio
83
83
  from runloop_api_client import DefaultAioHttpClient
84
84
  from runloop_api_client import AsyncRunloop
@@ -86,7 +86,7 @@ from runloop_api_client import AsyncRunloop
86
86
 
87
87
  async def main() -> None:
88
88
  async with AsyncRunloop(
89
- bearer_token=os.environ.get("RUNLOOP_API_KEY"), # This is the default and can be omitted
89
+ bearer_token="My Bearer Token",
90
90
  http_client=DefaultAioHttpClient(),
91
91
  ) as client:
92
92
  devbox_view = await client.devboxes.create()
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.48.1"
3
+ version = "0.49.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -39,7 +39,7 @@ Homepage = "https://github.com/runloopai/api-client-python"
39
39
  Repository = "https://github.com/runloopai/api-client-python"
40
40
 
41
41
  [project.optional-dependencies]
42
- aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.6"]
42
+ aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.8"]
43
43
 
44
44
  [tool.rye]
45
45
  managed = true
@@ -529,6 +529,15 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
529
529
  # work around https://github.com/encode/httpx/discussions/2880
530
530
  kwargs["extensions"] = {"sni_hostname": prepared_url.host.replace("_", "-")}
531
531
 
532
+ is_body_allowed = options.method.lower() != "get"
533
+
534
+ if is_body_allowed:
535
+ kwargs["json"] = json_data if is_given(json_data) else None
536
+ kwargs["files"] = files
537
+ else:
538
+ headers.pop("Content-Type", None)
539
+ kwargs.pop("data", None)
540
+
532
541
  # TODO: report this error to httpx
533
542
  return self._client.build_request( # pyright: ignore[reportUnknownMemberType]
534
543
  headers=headers,
@@ -540,8 +549,6 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
540
549
  # so that passing a `TypedDict` doesn't cause an error.
541
550
  # https://github.com/microsoft/pyright/issues/3526#event-6715453066
542
551
  params=self.qs.stringify(cast(Mapping[str, Any], params)) if params else None,
543
- json=json_data if is_given(json_data) else None,
544
- files=files,
545
552
  **kwargs,
546
553
  )
547
554
 
@@ -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__ = "0.48.1" # x-release-please-version
4
+ __version__ = "0.49.0" # x-release-please-version
@@ -70,6 +70,7 @@ class BenchmarksResource(SyncAPIResource):
70
70
  *,
71
71
  name: str,
72
72
  metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
73
+ required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN,
73
74
  scenario_ids: Optional[List[str]] | NotGiven = NOT_GIVEN,
74
75
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
75
76
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -87,6 +88,9 @@ class BenchmarksResource(SyncAPIResource):
87
88
 
88
89
  metadata: User defined metadata to attach to the benchmark for organization.
89
90
 
91
+ required_environment_variables: Environment variables required to run the benchmark. If these variables are not
92
+ supplied, the benchmark will fail to start
93
+
90
94
  scenario_ids: The Scenario IDs that make up the Benchmark.
91
95
 
92
96
  extra_headers: Send extra headers
@@ -105,6 +109,7 @@ class BenchmarksResource(SyncAPIResource):
105
109
  {
106
110
  "name": name,
107
111
  "metadata": metadata,
112
+ "required_environment_variables": required_environment_variables,
108
113
  "scenario_ids": scenario_ids,
109
114
  },
110
115
  benchmark_create_params.BenchmarkCreateParams,
@@ -158,6 +163,7 @@ class BenchmarksResource(SyncAPIResource):
158
163
  *,
159
164
  name: str,
160
165
  metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
166
+ required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN,
161
167
  scenario_ids: Optional[List[str]] | NotGiven = NOT_GIVEN,
162
168
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
163
169
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -175,6 +181,9 @@ class BenchmarksResource(SyncAPIResource):
175
181
 
176
182
  metadata: User defined metadata to attach to the benchmark for organization.
177
183
 
184
+ required_environment_variables: Environment variables required to run the benchmark. If these variables are not
185
+ supplied, the benchmark will fail to start
186
+
178
187
  scenario_ids: The Scenario IDs that make up the Benchmark.
179
188
 
180
189
  extra_headers: Send extra headers
@@ -195,6 +204,7 @@ class BenchmarksResource(SyncAPIResource):
195
204
  {
196
205
  "name": name,
197
206
  "metadata": metadata,
207
+ "required_environment_variables": required_environment_variables,
198
208
  "scenario_ids": scenario_ids,
199
209
  },
200
210
  benchmark_update_params.BenchmarkUpdateParams,
@@ -358,6 +368,7 @@ class BenchmarksResource(SyncAPIResource):
358
368
  benchmark_id: str,
359
369
  metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
360
370
  run_name: Optional[str] | NotGiven = NOT_GIVEN,
371
+ run_profile: Optional[benchmark_start_run_params.RunProfile] | NotGiven = NOT_GIVEN,
361
372
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
362
373
  # The extra values given here take precedence over values defined on the client or passed to this method.
363
374
  extra_headers: Headers | None = None,
@@ -376,6 +387,8 @@ class BenchmarksResource(SyncAPIResource):
376
387
 
377
388
  run_name: Display name of the run.
378
389
 
390
+ run_profile: Runtime configuration to use for this benchmark run
391
+
379
392
  extra_headers: Send extra headers
380
393
 
381
394
  extra_query: Add additional query parameters to the request
@@ -393,6 +406,7 @@ class BenchmarksResource(SyncAPIResource):
393
406
  "benchmark_id": benchmark_id,
394
407
  "metadata": metadata,
395
408
  "run_name": run_name,
409
+ "run_profile": run_profile,
396
410
  },
397
411
  benchmark_start_run_params.BenchmarkStartRunParams,
398
412
  ),
@@ -436,6 +450,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
436
450
  *,
437
451
  name: str,
438
452
  metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
453
+ required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN,
439
454
  scenario_ids: Optional[List[str]] | NotGiven = NOT_GIVEN,
440
455
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
441
456
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -453,6 +468,9 @@ class AsyncBenchmarksResource(AsyncAPIResource):
453
468
 
454
469
  metadata: User defined metadata to attach to the benchmark for organization.
455
470
 
471
+ required_environment_variables: Environment variables required to run the benchmark. If these variables are not
472
+ supplied, the benchmark will fail to start
473
+
456
474
  scenario_ids: The Scenario IDs that make up the Benchmark.
457
475
 
458
476
  extra_headers: Send extra headers
@@ -471,6 +489,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
471
489
  {
472
490
  "name": name,
473
491
  "metadata": metadata,
492
+ "required_environment_variables": required_environment_variables,
474
493
  "scenario_ids": scenario_ids,
475
494
  },
476
495
  benchmark_create_params.BenchmarkCreateParams,
@@ -524,6 +543,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
524
543
  *,
525
544
  name: str,
526
545
  metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
546
+ required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN,
527
547
  scenario_ids: Optional[List[str]] | NotGiven = NOT_GIVEN,
528
548
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
529
549
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -541,6 +561,9 @@ class AsyncBenchmarksResource(AsyncAPIResource):
541
561
 
542
562
  metadata: User defined metadata to attach to the benchmark for organization.
543
563
 
564
+ required_environment_variables: Environment variables required to run the benchmark. If these variables are not
565
+ supplied, the benchmark will fail to start
566
+
544
567
  scenario_ids: The Scenario IDs that make up the Benchmark.
545
568
 
546
569
  extra_headers: Send extra headers
@@ -561,6 +584,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
561
584
  {
562
585
  "name": name,
563
586
  "metadata": metadata,
587
+ "required_environment_variables": required_environment_variables,
564
588
  "scenario_ids": scenario_ids,
565
589
  },
566
590
  benchmark_update_params.BenchmarkUpdateParams,
@@ -724,6 +748,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
724
748
  benchmark_id: str,
725
749
  metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
726
750
  run_name: Optional[str] | NotGiven = NOT_GIVEN,
751
+ run_profile: Optional[benchmark_start_run_params.RunProfile] | NotGiven = NOT_GIVEN,
727
752
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
728
753
  # The extra values given here take precedence over values defined on the client or passed to this method.
729
754
  extra_headers: Headers | None = None,
@@ -742,6 +767,8 @@ class AsyncBenchmarksResource(AsyncAPIResource):
742
767
 
743
768
  run_name: Display name of the run.
744
769
 
770
+ run_profile: Runtime configuration to use for this benchmark run
771
+
745
772
  extra_headers: Send extra headers
746
773
 
747
774
  extra_query: Add additional query parameters to the request
@@ -759,6 +786,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
759
786
  "benchmark_id": benchmark_id,
760
787
  "metadata": metadata,
761
788
  "run_name": run_name,
789
+ "run_profile": run_profile,
762
790
  },
763
791
  benchmark_start_run_params.BenchmarkStartRunParams,
764
792
  ),
@@ -55,6 +55,7 @@ class BlueprintsResource(SyncAPIResource):
55
55
  self,
56
56
  *,
57
57
  name: str,
58
+ base_blueprint_id: Optional[str] | NotGiven = NOT_GIVEN,
58
59
  code_mounts: Optional[Iterable[CodeMountParameters]] | NotGiven = NOT_GIVEN,
59
60
  dockerfile: Optional[str] | NotGiven = NOT_GIVEN,
60
61
  file_mounts: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
@@ -78,11 +79,14 @@ class BlueprintsResource(SyncAPIResource):
78
79
  Args:
79
80
  name: Name of the Blueprint.
80
81
 
82
+ base_blueprint_id: (Optional) ID of previously built blueprint to use as a base blueprint for this
83
+ build.
84
+
81
85
  code_mounts: A list of code mounts to be included in the Blueprint.
82
86
 
83
87
  dockerfile: Dockerfile contents to be used to build the Blueprint.
84
88
 
85
- file_mounts: (Optional) Map of paths and file contents to write before setup..
89
+ file_mounts: (Optional) Map of paths and file contents to write before setup.
86
90
 
87
91
  launch_parameters: Parameters to configure your Devbox at launch time.
88
92
 
@@ -103,6 +107,7 @@ class BlueprintsResource(SyncAPIResource):
103
107
  body=maybe_transform(
104
108
  {
105
109
  "name": name,
110
+ "base_blueprint_id": base_blueprint_id,
106
111
  "code_mounts": code_mounts,
107
112
  "dockerfile": dockerfile,
108
113
  "file_mounts": file_mounts,
@@ -395,6 +400,7 @@ class BlueprintsResource(SyncAPIResource):
395
400
  self,
396
401
  *,
397
402
  name: str,
403
+ base_blueprint_id: Optional[str] | NotGiven = NOT_GIVEN,
398
404
  code_mounts: Optional[Iterable[CodeMountParameters]] | NotGiven = NOT_GIVEN,
399
405
  dockerfile: Optional[str] | NotGiven = NOT_GIVEN,
400
406
  file_mounts: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
@@ -416,11 +422,14 @@ class BlueprintsResource(SyncAPIResource):
416
422
  Args:
417
423
  name: Name of the Blueprint.
418
424
 
425
+ base_blueprint_id: (Optional) ID of previously built blueprint to use as a base blueprint for this
426
+ build.
427
+
419
428
  code_mounts: A list of code mounts to be included in the Blueprint.
420
429
 
421
430
  dockerfile: Dockerfile contents to be used to build the Blueprint.
422
431
 
423
- file_mounts: (Optional) Map of paths and file contents to write before setup..
432
+ file_mounts: (Optional) Map of paths and file contents to write before setup.
424
433
 
425
434
  launch_parameters: Parameters to configure your Devbox at launch time.
426
435
 
@@ -441,6 +450,7 @@ class BlueprintsResource(SyncAPIResource):
441
450
  body=maybe_transform(
442
451
  {
443
452
  "name": name,
453
+ "base_blueprint_id": base_blueprint_id,
444
454
  "code_mounts": code_mounts,
445
455
  "dockerfile": dockerfile,
446
456
  "file_mounts": file_mounts,
@@ -484,6 +494,7 @@ class AsyncBlueprintsResource(AsyncAPIResource):
484
494
  self,
485
495
  *,
486
496
  name: str,
497
+ base_blueprint_id: Optional[str] | NotGiven = NOT_GIVEN,
487
498
  code_mounts: Optional[Iterable[CodeMountParameters]] | NotGiven = NOT_GIVEN,
488
499
  dockerfile: Optional[str] | NotGiven = NOT_GIVEN,
489
500
  file_mounts: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
@@ -507,11 +518,14 @@ class AsyncBlueprintsResource(AsyncAPIResource):
507
518
  Args:
508
519
  name: Name of the Blueprint.
509
520
 
521
+ base_blueprint_id: (Optional) ID of previously built blueprint to use as a base blueprint for this
522
+ build.
523
+
510
524
  code_mounts: A list of code mounts to be included in the Blueprint.
511
525
 
512
526
  dockerfile: Dockerfile contents to be used to build the Blueprint.
513
527
 
514
- file_mounts: (Optional) Map of paths and file contents to write before setup..
528
+ file_mounts: (Optional) Map of paths and file contents to write before setup.
515
529
 
516
530
  launch_parameters: Parameters to configure your Devbox at launch time.
517
531
 
@@ -532,6 +546,7 @@ class AsyncBlueprintsResource(AsyncAPIResource):
532
546
  body=await async_maybe_transform(
533
547
  {
534
548
  "name": name,
549
+ "base_blueprint_id": base_blueprint_id,
535
550
  "code_mounts": code_mounts,
536
551
  "dockerfile": dockerfile,
537
552
  "file_mounts": file_mounts,
@@ -824,6 +839,7 @@ class AsyncBlueprintsResource(AsyncAPIResource):
824
839
  self,
825
840
  *,
826
841
  name: str,
842
+ base_blueprint_id: Optional[str] | NotGiven = NOT_GIVEN,
827
843
  code_mounts: Optional[Iterable[CodeMountParameters]] | NotGiven = NOT_GIVEN,
828
844
  dockerfile: Optional[str] | NotGiven = NOT_GIVEN,
829
845
  file_mounts: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
@@ -845,11 +861,14 @@ class AsyncBlueprintsResource(AsyncAPIResource):
845
861
  Args:
846
862
  name: Name of the Blueprint.
847
863
 
864
+ base_blueprint_id: (Optional) ID of previously built blueprint to use as a base blueprint for this
865
+ build.
866
+
848
867
  code_mounts: A list of code mounts to be included in the Blueprint.
849
868
 
850
869
  dockerfile: Dockerfile contents to be used to build the Blueprint.
851
870
 
852
- file_mounts: (Optional) Map of paths and file contents to write before setup..
871
+ file_mounts: (Optional) Map of paths and file contents to write before setup.
853
872
 
854
873
  launch_parameters: Parameters to configure your Devbox at launch time.
855
874
 
@@ -870,6 +889,7 @@ class AsyncBlueprintsResource(AsyncAPIResource):
870
889
  body=await async_maybe_transform(
871
890
  {
872
891
  "name": name,
892
+ "base_blueprint_id": base_blueprint_id,
873
893
  "code_mounts": code_mounts,
874
894
  "dockerfile": dockerfile,
875
895
  "file_mounts": file_mounts,
@@ -88,7 +88,7 @@ from ...pagination import (
88
88
  SyncDiskSnapshotsCursorIDPage,
89
89
  AsyncDiskSnapshotsCursorIDPage,
90
90
  )
91
- from ..._exceptions import RunloopError, APIStatusError
91
+ from ..._exceptions import RunloopError, APIStatusError, APITimeoutError
92
92
  from ...lib.polling import PollingConfig, poll_until
93
93
  from ..._base_client import AsyncPaginator, make_request_options
94
94
  from .disk_snapshots import (
@@ -115,6 +115,18 @@ __all__ = ["DevboxesResource", "AsyncDevboxesResource"]
115
115
  DEVBOX_BOOTING_STATES = frozenset(("provisioning", "initializing"))
116
116
 
117
117
 
118
+ def placeholder_devbox_view(id: str) -> DevboxView:
119
+ return DevboxView(
120
+ id=id,
121
+ status="provisioning",
122
+ capabilities=[],
123
+ create_time_ms=0,
124
+ launch_parameters=SharedLaunchParameters(),
125
+ metadata={},
126
+ state_transitions=[],
127
+ )
128
+
129
+
118
130
  class DevboxesResource(SyncAPIResource):
119
131
  @cached_property
120
132
  def disk_snapshots(self) -> DiskSnapshotsResource:
@@ -360,13 +372,8 @@ class DevboxesResource(SyncAPIResource):
360
372
  self,
361
373
  id: str,
362
374
  *,
375
+ # Use polling_config to configure the "long" polling behavior.
363
376
  polling_config: PollingConfig | None = None,
364
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
365
- # The extra values given here take precedence over values defined on the client or passed to this method.
366
- extra_headers: Headers | None = None,
367
- extra_query: Query | None = None,
368
- extra_body: Body | None = None,
369
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
370
377
  ) -> DevboxView:
371
378
  """Wait for a devbox to be in running state.
372
379
 
@@ -392,28 +399,19 @@ class DevboxesResource(SyncAPIResource):
392
399
  return self._post(
393
400
  f"/v1/devboxes/{id}/wait_for_status",
394
401
  body={"statuses": ["running", "failure"]},
395
- options=make_request_options(
396
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
397
- ),
398
402
  cast_to=DevboxView,
399
403
  )
400
404
 
401
405
  def handle_timeout_error(error: Exception) -> DevboxView:
402
- # Handle 408 timeout errors by returning current devbox state to continue polling
403
- if isinstance(error, APIStatusError) and error.response.status_code == 408:
406
+ # Handle timeout errors by returning current devbox state to continue polling
407
+ if isinstance(error, APITimeoutError) or (
408
+ isinstance(error, APIStatusError) and error.response.status_code == 408
409
+ ):
404
410
  # Return a placeholder result to continue polling
405
- return DevboxView(
406
- id=id,
407
- status="provisioning",
408
- capabilities=[],
409
- create_time_ms=0,
410
- launch_parameters=SharedLaunchParameters(),
411
- metadata={},
412
- state_transitions=[],
413
- )
414
- else:
415
- # Re-raise other errors to stop polling
416
- raise error
411
+ return placeholder_devbox_view(id)
412
+
413
+ # Re-raise other errors to stop polling
414
+ raise error
417
415
 
418
416
  def is_done_booting(devbox: DevboxView) -> bool:
419
417
  return devbox.status not in DEVBOX_BOOTING_STATES
@@ -495,10 +493,6 @@ class DevboxesResource(SyncAPIResource):
495
493
  return self.await_running(
496
494
  devbox.id,
497
495
  polling_config=polling_config,
498
- extra_headers=extra_headers,
499
- extra_query=extra_query,
500
- extra_body=extra_body,
501
- timeout=timeout,
502
496
  )
503
497
 
504
498
  def list(
@@ -1662,23 +1656,14 @@ class AsyncDevboxesResource(AsyncAPIResource):
1662
1656
  return await self.await_running(
1663
1657
  devbox.id,
1664
1658
  polling_config=polling_config,
1665
- extra_headers=extra_headers,
1666
- extra_query=extra_query,
1667
- extra_body=extra_body,
1668
- timeout=timeout,
1669
1659
  )
1670
1660
 
1671
1661
  async def await_running(
1672
1662
  self,
1673
1663
  id: str,
1674
1664
  *,
1665
+ # Use polling_config to configure the "long" polling behavior.
1675
1666
  polling_config: PollingConfig | None = None,
1676
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
1677
- # The extra values given here take precedence over values defined on the client or passed to this method.
1678
- extra_headers: Headers | None = None,
1679
- extra_query: Query | None = None,
1680
- extra_body: Body | None = None,
1681
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
1682
1667
  ) -> DevboxView:
1683
1668
  """Wait for a devbox to be in running state.
1684
1669
 
@@ -1705,26 +1690,16 @@ class AsyncDevboxesResource(AsyncAPIResource):
1705
1690
  return await self._post(
1706
1691
  f"/v1/devboxes/{id}/wait_for_status",
1707
1692
  body={"statuses": ["running", "failure"]},
1708
- options=make_request_options(
1709
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
1710
- ),
1711
1693
  cast_to=DevboxView,
1712
1694
  )
1713
- except APIStatusError as error:
1714
- if error.response.status_code == 408:
1715
- # Handle 408 timeout errors by returning a placeholder result to continue polling
1716
- return DevboxView(
1717
- id=id,
1718
- status="provisioning",
1719
- capabilities=[],
1720
- create_time_ms=0,
1721
- launch_parameters=SharedLaunchParameters(),
1722
- metadata={},
1723
- state_transitions=[],
1724
- )
1725
- else:
1726
- # Re-raise other errors to stop polling
1727
- raise
1695
+ except (APITimeoutError, APIStatusError) as error:
1696
+ # Handle timeout errors by returning current devbox state to continue polling
1697
+ if isinstance(error, APITimeoutError) or error.response.status_code == 408:
1698
+ # Return a placeholder result to continue polling
1699
+ return placeholder_devbox_view(id)
1700
+
1701
+ # Re-raise other errors to stop polling
1702
+ raise
1728
1703
 
1729
1704
  def is_done_booting(devbox: DevboxView) -> bool:
1730
1705
  return devbox.status not in DEVBOX_BOOTING_STATES