runloop-api-client 0.1.0a18__tar.gz → 0.1.0a19__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 (128) hide show
  1. runloop_api_client-0.1.0a19/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/CHANGELOG.md +9 -0
  3. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/PKG-INFO +1 -1
  4. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/api.md +3 -2
  5. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/pyproject.toml +1 -1
  6. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_version.py +1 -1
  7. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/resources/devboxes/devboxes.py +2 -2
  8. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/resources/devboxes/executions.py +89 -1
  9. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/resources/devboxes/logs.py +21 -2
  10. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devboxes/__init__.py +2 -0
  11. runloop_api_client-0.1.0a19/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +12 -0
  12. runloop_api_client-0.1.0a19/src/runloop_api_client/types/devboxes/log_list_params.py +12 -0
  13. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/api_resources/devboxes/test_executions.py +92 -0
  14. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/api_resources/devboxes/test_logs.py +24 -8
  15. runloop_api_client-0.1.0a18/.release-please-manifest.json +0 -3
  16. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/.gitignore +0 -0
  17. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/CONTRIBUTING.md +0 -0
  18. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/LICENSE +0 -0
  19. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/README.md +0 -0
  20. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/SECURITY.md +0 -0
  21. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/bin/check-release-environment +0 -0
  22. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/bin/publish-pypi +0 -0
  23. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/examples/.keep +0 -0
  24. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/mypy.ini +0 -0
  25. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/noxfile.py +0 -0
  26. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/release-please-config.json +0 -0
  27. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/requirements-dev.lock +0 -0
  28. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/requirements.lock +0 -0
  29. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop/lib/.keep +0 -0
  30. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/__init__.py +0 -0
  31. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_base_client.py +0 -0
  32. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_client.py +0 -0
  33. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_compat.py +0 -0
  34. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_constants.py +0 -0
  35. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_exceptions.py +0 -0
  36. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_files.py +0 -0
  37. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_models.py +0 -0
  38. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_qs.py +0 -0
  39. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_resource.py +0 -0
  40. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_response.py +0 -0
  41. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_streaming.py +0 -0
  42. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_types.py +0 -0
  43. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_utils/__init__.py +0 -0
  44. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_utils/_logs.py +0 -0
  45. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_utils/_proxy.py +0 -0
  46. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_utils/_reflection.py +0 -0
  47. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_utils/_streams.py +0 -0
  48. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_utils/_sync.py +0 -0
  49. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_utils/_transform.py +0 -0
  50. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_utils/_typing.py +0 -0
  51. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/_utils/_utils.py +0 -0
  52. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/lib/.keep +0 -0
  53. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/py.typed +0 -0
  54. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/resources/__init__.py +0 -0
  55. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/resources/blueprints.py +0 -0
  56. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  57. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/resources/functions/__init__.py +0 -0
  58. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/resources/functions/functions.py +0 -0
  59. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/resources/functions/invocations.py +0 -0
  60. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/resources/projects/__init__.py +0 -0
  61. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/resources/projects/logs.py +0 -0
  62. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/resources/projects/projects.py +0 -0
  63. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/__init__.py +0 -0
  64. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  65. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  66. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  67. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  68. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  69. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  70. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  71. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  72. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/blueprint_view.py +0 -0
  73. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/code_mount_parameters.py +0 -0
  74. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/code_mount_parameters_param.py +0 -0
  75. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  76. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  77. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  78. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  79. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  80. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  81. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  82. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  83. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  84. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  85. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  86. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devbox_view.py +0 -0
  87. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devbox_write_file_params.py +0 -0
  88. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  89. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  90. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  91. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/function_invoke_async_params.py +0 -0
  92. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/function_invoke_sync_params.py +0 -0
  93. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/function_list_view.py +0 -0
  94. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/functions/__init__.py +0 -0
  95. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/functions/function_invocation_list_view.py +0 -0
  96. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/functions/invocation_list_params.py +0 -0
  97. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/project_list_view.py +0 -0
  98. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/projects/__init__.py +0 -0
  99. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/resource_size.py +0 -0
  100. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/shared/__init__.py +0 -0
  101. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/shared/function_invocation_execution_detail_view.py +0 -0
  102. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/src/runloop_api_client/types/shared/project_logs_view.py +0 -0
  103. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/__init__.py +0 -0
  104. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/api_resources/__init__.py +0 -0
  105. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/api_resources/devboxes/__init__.py +0 -0
  106. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/api_resources/functions/__init__.py +0 -0
  107. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/api_resources/functions/test_invocations.py +0 -0
  108. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/api_resources/projects/__init__.py +0 -0
  109. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/api_resources/projects/test_logs.py +0 -0
  110. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/api_resources/test_blueprints.py +0 -0
  111. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/api_resources/test_devboxes.py +0 -0
  112. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/api_resources/test_functions.py +0 -0
  113. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/api_resources/test_projects.py +0 -0
  114. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/conftest.py +0 -0
  115. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/sample_file.txt +0 -0
  116. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/test_client.py +0 -0
  117. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/test_deepcopy.py +0 -0
  118. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/test_extract_files.py +0 -0
  119. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/test_files.py +0 -0
  120. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/test_models.py +0 -0
  121. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/test_qs.py +0 -0
  122. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/test_required_args.py +0 -0
  123. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/test_response.py +0 -0
  124. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/test_streaming.py +0 -0
  125. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/test_transform.py +0 -0
  126. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/test_utils/test_proxy.py +0 -0
  127. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/test_utils/test_typing.py +0 -0
  128. {runloop_api_client-0.1.0a18 → runloop_api_client-0.1.0a19}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.1.0-alpha.19"
3
+ }
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.19 (2024-08-28)
4
+
5
+ Full Changelog: [v0.1.0-alpha.18...v0.1.0-alpha.19](https://github.com/runloopai/api-client-python/compare/v0.1.0-alpha.18...v0.1.0-alpha.19)
6
+
7
+ ### Features
8
+
9
+ * **api:** OpenAPI spec update via Stainless API ([#139](https://github.com/runloopai/api-client-python/issues/139)) ([f359981](https://github.com/runloopai/api-client-python/commit/f359981163f1358b9556c53a5f72e9cbe5a56a81))
10
+ * **api:** OpenAPI spec update via Stainless API ([#141](https://github.com/runloopai/api-client-python/issues/141)) ([ebd75f4](https://github.com/runloopai/api-client-python/commit/ebd75f4c3e4348e01cb107a77d92477d0906329a))
11
+
3
12
  ## 0.1.0-alpha.18 (2024-08-28)
4
13
 
5
14
  Full Changelog: [v0.1.0-alpha.17...v0.1.0-alpha.18](https://github.com/runloopai/api-client-python/compare/v0.1.0-alpha.17...v0.1.0-alpha.18)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 0.1.0a18
3
+ Version: 0.1.0a19
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
@@ -65,7 +65,7 @@ Methods:
65
65
  - <code title="get /v1/devboxes/{id}">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
66
66
  - <code title="get /v1/devboxes">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">list</a>(\*\*<a href="src/runloop_api_client/types/devbox_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_list_view.py">DevboxListView</a></code>
67
67
  - <code title="post /v1/devboxes/{id}/create_ssh_key">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">create_ssh_key</a>(id) -> <a href="./src/runloop_api_client/types/devbox_create_ssh_key_response.py">DevboxCreateSSHKeyResponse</a></code>
68
- - <code title="post /v1/devboxes/{id}/executions/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>
68
+ - <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>
69
69
  - <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>
70
70
  - <code title="post /v1/devboxes/{id}/read_file_contents">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">read_file_contents</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_read_file_contents_params.py">params</a>) -> str</code>
71
71
  - <code title="post /v1/devboxes/{id}/shutdown">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">shutdown</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
@@ -82,13 +82,14 @@ from runloop_api_client.types.devboxes import DevboxLogsListView
82
82
 
83
83
  Methods:
84
84
 
85
- - <code title="get /v1/devboxes/{id}/logs">client.devboxes.logs.<a href="./src/runloop_api_client/resources/devboxes/logs.py">list</a>(id) -> <a href="./src/runloop_api_client/types/devboxes/devbox_logs_list_view.py">DevboxLogsListView</a></code>
85
+ - <code title="get /v1/devboxes/{id}/logs">client.devboxes.logs.<a href="./src/runloop_api_client/resources/devboxes/logs.py">list</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/log_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/devbox_logs_list_view.py">DevboxLogsListView</a></code>
86
86
 
87
87
  ## Executions
88
88
 
89
89
  Methods:
90
90
 
91
91
  - <code title="get /v1/devboxes/{id}/executions/{execution_id}">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">retrieve</a>(execution_id, \*, id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_retrieve_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
92
+ - <code title="post /v1/devboxes/{id}/execute_async">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">execute_async</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_execute_async_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
92
93
  - <code title="post /v1/devboxes/{id}/execute_sync">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">execute_sync</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_execute_sync_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
93
94
  - <code title="post /v1/devboxes/{id}/executions/{execution_id}/kill">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">kill</a>(execution_id, \*, id) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
94
95
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.1.0-alpha.18"
3
+ version = "0.1.0-alpha.19"
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__ = "0.1.0-alpha.18" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.19" # x-release-please-version
@@ -300,7 +300,7 @@ class DevboxesResource(SyncAPIResource):
300
300
  if not id:
301
301
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
302
302
  return self._post(
303
- f"/v1/devboxes/{id}/executions/execute_async",
303
+ f"/v1/devboxes/{id}/execute_async",
304
304
  body=maybe_transform({"command": command}, devbox_execute_async_params.DevboxExecuteAsyncParams),
305
305
  options=make_request_options(
306
306
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
@@ -758,7 +758,7 @@ class AsyncDevboxesResource(AsyncAPIResource):
758
758
  if not id:
759
759
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
760
760
  return await self._post(
761
- f"/v1/devboxes/{id}/executions/execute_async",
761
+ f"/v1/devboxes/{id}/execute_async",
762
762
  body=await async_maybe_transform(
763
763
  {"command": command}, devbox_execute_async_params.DevboxExecuteAsyncParams
764
764
  ),
@@ -18,7 +18,7 @@ from ..._response import (
18
18
  async_to_streamed_response_wrapper,
19
19
  )
20
20
  from ..._base_client import make_request_options
21
- from ...types.devboxes import execution_retrieve_params, execution_execute_sync_params
21
+ from ...types.devboxes import execution_retrieve_params, execution_execute_sync_params, execution_execute_async_params
22
22
  from ...types.devbox_execution_detail_view import DevboxExecutionDetailView
23
23
  from ...types.devbox_async_execution_detail_view import DevboxAsyncExecutionDetailView
24
24
 
@@ -77,6 +77,43 @@ class ExecutionsResource(SyncAPIResource):
77
77
  cast_to=DevboxAsyncExecutionDetailView,
78
78
  )
79
79
 
80
+ def execute_async(
81
+ self,
82
+ id: str,
83
+ *,
84
+ command: str | NotGiven = NOT_GIVEN,
85
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
86
+ # The extra values given here take precedence over values defined on the client or passed to this method.
87
+ extra_headers: Headers | None = None,
88
+ extra_query: Query | None = None,
89
+ extra_body: Body | None = None,
90
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
91
+ ) -> DevboxAsyncExecutionDetailView:
92
+ """
93
+ Asynchronously execute a command on a devbox
94
+
95
+ Args:
96
+ command: The command to execute on the Devbox.
97
+
98
+ extra_headers: Send extra headers
99
+
100
+ extra_query: Add additional query parameters to the request
101
+
102
+ extra_body: Add additional JSON properties to the request
103
+
104
+ timeout: Override the client-level default timeout for this request, in seconds
105
+ """
106
+ if not id:
107
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
108
+ return self._post(
109
+ f"/v1/devboxes/{id}/execute_async",
110
+ body=maybe_transform({"command": command}, execution_execute_async_params.ExecutionExecuteAsyncParams),
111
+ options=make_request_options(
112
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
113
+ ),
114
+ cast_to=DevboxAsyncExecutionDetailView,
115
+ )
116
+
80
117
  def execute_sync(
81
118
  self,
82
119
  id: str,
@@ -205,6 +242,45 @@ class AsyncExecutionsResource(AsyncAPIResource):
205
242
  cast_to=DevboxAsyncExecutionDetailView,
206
243
  )
207
244
 
245
+ async def execute_async(
246
+ self,
247
+ id: str,
248
+ *,
249
+ command: str | NotGiven = NOT_GIVEN,
250
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
251
+ # The extra values given here take precedence over values defined on the client or passed to this method.
252
+ extra_headers: Headers | None = None,
253
+ extra_query: Query | None = None,
254
+ extra_body: Body | None = None,
255
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
256
+ ) -> DevboxAsyncExecutionDetailView:
257
+ """
258
+ Asynchronously execute a command on a devbox
259
+
260
+ Args:
261
+ command: The command to execute on the Devbox.
262
+
263
+ extra_headers: Send extra headers
264
+
265
+ extra_query: Add additional query parameters to the request
266
+
267
+ extra_body: Add additional JSON properties to the request
268
+
269
+ timeout: Override the client-level default timeout for this request, in seconds
270
+ """
271
+ if not id:
272
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
273
+ return await self._post(
274
+ f"/v1/devboxes/{id}/execute_async",
275
+ body=await async_maybe_transform(
276
+ {"command": command}, execution_execute_async_params.ExecutionExecuteAsyncParams
277
+ ),
278
+ options=make_request_options(
279
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
280
+ ),
281
+ cast_to=DevboxAsyncExecutionDetailView,
282
+ )
283
+
208
284
  async def execute_sync(
209
285
  self,
210
286
  id: str,
@@ -288,6 +364,9 @@ class ExecutionsResourceWithRawResponse:
288
364
  self.retrieve = to_raw_response_wrapper(
289
365
  executions.retrieve,
290
366
  )
367
+ self.execute_async = to_raw_response_wrapper(
368
+ executions.execute_async,
369
+ )
291
370
  self.execute_sync = to_raw_response_wrapper(
292
371
  executions.execute_sync,
293
372
  )
@@ -303,6 +382,9 @@ class AsyncExecutionsResourceWithRawResponse:
303
382
  self.retrieve = async_to_raw_response_wrapper(
304
383
  executions.retrieve,
305
384
  )
385
+ self.execute_async = async_to_raw_response_wrapper(
386
+ executions.execute_async,
387
+ )
306
388
  self.execute_sync = async_to_raw_response_wrapper(
307
389
  executions.execute_sync,
308
390
  )
@@ -318,6 +400,9 @@ class ExecutionsResourceWithStreamingResponse:
318
400
  self.retrieve = to_streamed_response_wrapper(
319
401
  executions.retrieve,
320
402
  )
403
+ self.execute_async = to_streamed_response_wrapper(
404
+ executions.execute_async,
405
+ )
321
406
  self.execute_sync = to_streamed_response_wrapper(
322
407
  executions.execute_sync,
323
408
  )
@@ -333,6 +418,9 @@ class AsyncExecutionsResourceWithStreamingResponse:
333
418
  self.retrieve = async_to_streamed_response_wrapper(
334
419
  executions.retrieve,
335
420
  )
421
+ self.execute_async = async_to_streamed_response_wrapper(
422
+ executions.execute_async,
423
+ )
336
424
  self.execute_sync = async_to_streamed_response_wrapper(
337
425
  executions.execute_sync,
338
426
  )
@@ -5,6 +5,10 @@ from __future__ import annotations
5
5
  import httpx
6
6
 
7
7
  from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
8
+ from ..._utils import (
9
+ maybe_transform,
10
+ async_maybe_transform,
11
+ )
8
12
  from ..._compat import cached_property
9
13
  from ..._resource import SyncAPIResource, AsyncAPIResource
10
14
  from ..._response import (
@@ -14,6 +18,7 @@ from ..._response import (
14
18
  async_to_streamed_response_wrapper,
15
19
  )
16
20
  from ..._base_client import make_request_options
21
+ from ...types.devboxes import log_list_params
17
22
  from ...types.devboxes.devbox_logs_list_view import DevboxLogsListView
18
23
 
19
24
  __all__ = ["LogsResource", "AsyncLogsResource"]
@@ -32,6 +37,7 @@ class LogsResource(SyncAPIResource):
32
37
  self,
33
38
  id: str,
34
39
  *,
40
+ execution_id: str | NotGiven = NOT_GIVEN,
35
41
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
36
42
  # The extra values given here take precedence over values defined on the client or passed to this method.
37
43
  extra_headers: Headers | None = None,
@@ -43,6 +49,8 @@ class LogsResource(SyncAPIResource):
43
49
  Get all logs from a Devbox by id.
44
50
 
45
51
  Args:
52
+ execution_id: Id of execution to filter logs by.
53
+
46
54
  extra_headers: Send extra headers
47
55
 
48
56
  extra_query: Add additional query parameters to the request
@@ -56,7 +64,11 @@ class LogsResource(SyncAPIResource):
56
64
  return self._get(
57
65
  f"/v1/devboxes/{id}/logs",
58
66
  options=make_request_options(
59
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
67
+ extra_headers=extra_headers,
68
+ extra_query=extra_query,
69
+ extra_body=extra_body,
70
+ timeout=timeout,
71
+ query=maybe_transform({"execution_id": execution_id}, log_list_params.LogListParams),
60
72
  ),
61
73
  cast_to=DevboxLogsListView,
62
74
  )
@@ -75,6 +87,7 @@ class AsyncLogsResource(AsyncAPIResource):
75
87
  self,
76
88
  id: str,
77
89
  *,
90
+ execution_id: str | NotGiven = NOT_GIVEN,
78
91
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
79
92
  # The extra values given here take precedence over values defined on the client or passed to this method.
80
93
  extra_headers: Headers | None = None,
@@ -86,6 +99,8 @@ class AsyncLogsResource(AsyncAPIResource):
86
99
  Get all logs from a Devbox by id.
87
100
 
88
101
  Args:
102
+ execution_id: Id of execution to filter logs by.
103
+
89
104
  extra_headers: Send extra headers
90
105
 
91
106
  extra_query: Add additional query parameters to the request
@@ -99,7 +114,11 @@ class AsyncLogsResource(AsyncAPIResource):
99
114
  return await self._get(
100
115
  f"/v1/devboxes/{id}/logs",
101
116
  options=make_request_options(
102
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
117
+ extra_headers=extra_headers,
118
+ extra_query=extra_query,
119
+ extra_body=extra_body,
120
+ timeout=timeout,
121
+ query=await async_maybe_transform({"execution_id": execution_id}, log_list_params.LogListParams),
103
122
  ),
104
123
  cast_to=DevboxLogsListView,
105
124
  )
@@ -2,6 +2,8 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from .log_list_params import LogListParams as LogListParams
5
6
  from .devbox_logs_list_view import DevboxLogsListView as DevboxLogsListView
6
7
  from .execution_retrieve_params import ExecutionRetrieveParams as ExecutionRetrieveParams
7
8
  from .execution_execute_sync_params import ExecutionExecuteSyncParams as ExecutionExecuteSyncParams
9
+ from .execution_execute_async_params import ExecutionExecuteAsyncParams as ExecutionExecuteAsyncParams
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ __all__ = ["ExecutionExecuteAsyncParams"]
8
+
9
+
10
+ class ExecutionExecuteAsyncParams(TypedDict, total=False):
11
+ command: str
12
+ """The command to execute on the Devbox."""
@@ -0,0 +1,12 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ __all__ = ["LogListParams"]
8
+
9
+
10
+ class LogListParams(TypedDict, total=False):
11
+ execution_id: str
12
+ """Id of execution to filter logs by."""
@@ -74,6 +74,52 @@ class TestExecutions:
74
74
  id="id",
75
75
  )
76
76
 
77
+ @parametrize
78
+ def test_method_execute_async(self, client: Runloop) -> None:
79
+ execution = client.devboxes.executions.execute_async(
80
+ id="id",
81
+ )
82
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
83
+
84
+ @parametrize
85
+ def test_method_execute_async_with_all_params(self, client: Runloop) -> None:
86
+ execution = client.devboxes.executions.execute_async(
87
+ id="id",
88
+ command="command",
89
+ )
90
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
91
+
92
+ @parametrize
93
+ def test_raw_response_execute_async(self, client: Runloop) -> None:
94
+ response = client.devboxes.executions.with_raw_response.execute_async(
95
+ id="id",
96
+ )
97
+
98
+ assert response.is_closed is True
99
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
100
+ execution = response.parse()
101
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
102
+
103
+ @parametrize
104
+ def test_streaming_response_execute_async(self, client: Runloop) -> None:
105
+ with client.devboxes.executions.with_streaming_response.execute_async(
106
+ id="id",
107
+ ) as response:
108
+ assert not response.is_closed
109
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
110
+
111
+ execution = response.parse()
112
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
113
+
114
+ assert cast(Any, response.is_closed) is True
115
+
116
+ @parametrize
117
+ def test_path_params_execute_async(self, client: Runloop) -> None:
118
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
119
+ client.devboxes.executions.with_raw_response.execute_async(
120
+ id="",
121
+ )
122
+
77
123
  @parametrize
78
124
  def test_method_execute_sync(self, client: Runloop) -> None:
79
125
  execution = client.devboxes.executions.execute_sync(
@@ -229,6 +275,52 @@ class TestAsyncExecutions:
229
275
  id="id",
230
276
  )
231
277
 
278
+ @parametrize
279
+ async def test_method_execute_async(self, async_client: AsyncRunloop) -> None:
280
+ execution = await async_client.devboxes.executions.execute_async(
281
+ id="id",
282
+ )
283
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
284
+
285
+ @parametrize
286
+ async def test_method_execute_async_with_all_params(self, async_client: AsyncRunloop) -> None:
287
+ execution = await async_client.devboxes.executions.execute_async(
288
+ id="id",
289
+ command="command",
290
+ )
291
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
292
+
293
+ @parametrize
294
+ async def test_raw_response_execute_async(self, async_client: AsyncRunloop) -> None:
295
+ response = await async_client.devboxes.executions.with_raw_response.execute_async(
296
+ id="id",
297
+ )
298
+
299
+ assert response.is_closed is True
300
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
301
+ execution = await response.parse()
302
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
303
+
304
+ @parametrize
305
+ async def test_streaming_response_execute_async(self, async_client: AsyncRunloop) -> None:
306
+ async with async_client.devboxes.executions.with_streaming_response.execute_async(
307
+ id="id",
308
+ ) as response:
309
+ assert not response.is_closed
310
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
311
+
312
+ execution = await response.parse()
313
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
314
+
315
+ assert cast(Any, response.is_closed) is True
316
+
317
+ @parametrize
318
+ async def test_path_params_execute_async(self, async_client: AsyncRunloop) -> None:
319
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
320
+ await async_client.devboxes.executions.with_raw_response.execute_async(
321
+ id="",
322
+ )
323
+
232
324
  @parametrize
233
325
  async def test_method_execute_sync(self, async_client: AsyncRunloop) -> None:
234
326
  execution = await async_client.devboxes.executions.execute_sync(
@@ -20,14 +20,22 @@ class TestLogs:
20
20
  @parametrize
21
21
  def test_method_list(self, client: Runloop) -> None:
22
22
  log = client.devboxes.logs.list(
23
- "id",
23
+ id="id",
24
+ )
25
+ assert_matches_type(DevboxLogsListView, log, path=["response"])
26
+
27
+ @parametrize
28
+ def test_method_list_with_all_params(self, client: Runloop) -> None:
29
+ log = client.devboxes.logs.list(
30
+ id="id",
31
+ execution_id="execution_id",
24
32
  )
25
33
  assert_matches_type(DevboxLogsListView, log, path=["response"])
26
34
 
27
35
  @parametrize
28
36
  def test_raw_response_list(self, client: Runloop) -> None:
29
37
  response = client.devboxes.logs.with_raw_response.list(
30
- "id",
38
+ id="id",
31
39
  )
32
40
 
33
41
  assert response.is_closed is True
@@ -38,7 +46,7 @@ class TestLogs:
38
46
  @parametrize
39
47
  def test_streaming_response_list(self, client: Runloop) -> None:
40
48
  with client.devboxes.logs.with_streaming_response.list(
41
- "id",
49
+ id="id",
42
50
  ) as response:
43
51
  assert not response.is_closed
44
52
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -52,7 +60,7 @@ class TestLogs:
52
60
  def test_path_params_list(self, client: Runloop) -> None:
53
61
  with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
54
62
  client.devboxes.logs.with_raw_response.list(
55
- "",
63
+ id="",
56
64
  )
57
65
 
58
66
 
@@ -62,14 +70,22 @@ class TestAsyncLogs:
62
70
  @parametrize
63
71
  async def test_method_list(self, async_client: AsyncRunloop) -> None:
64
72
  log = await async_client.devboxes.logs.list(
65
- "id",
73
+ id="id",
74
+ )
75
+ assert_matches_type(DevboxLogsListView, log, path=["response"])
76
+
77
+ @parametrize
78
+ async def test_method_list_with_all_params(self, async_client: AsyncRunloop) -> None:
79
+ log = await async_client.devboxes.logs.list(
80
+ id="id",
81
+ execution_id="execution_id",
66
82
  )
67
83
  assert_matches_type(DevboxLogsListView, log, path=["response"])
68
84
 
69
85
  @parametrize
70
86
  async def test_raw_response_list(self, async_client: AsyncRunloop) -> None:
71
87
  response = await async_client.devboxes.logs.with_raw_response.list(
72
- "id",
88
+ id="id",
73
89
  )
74
90
 
75
91
  assert response.is_closed is True
@@ -80,7 +96,7 @@ class TestAsyncLogs:
80
96
  @parametrize
81
97
  async def test_streaming_response_list(self, async_client: AsyncRunloop) -> None:
82
98
  async with async_client.devboxes.logs.with_streaming_response.list(
83
- "id",
99
+ id="id",
84
100
  ) as response:
85
101
  assert not response.is_closed
86
102
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -94,5 +110,5 @@ class TestAsyncLogs:
94
110
  async def test_path_params_list(self, async_client: AsyncRunloop) -> None:
95
111
  with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
96
112
  await async_client.devboxes.logs.with_raw_response.list(
97
- "",
113
+ id="",
98
114
  )
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.1.0-alpha.18"
3
- }