runloop-api-client 0.4.0__tar.gz → 0.6.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 (139) hide show
  1. runloop_api_client-0.6.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/CHANGELOG.md +22 -0
  3. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/PKG-INFO +1 -1
  4. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/api.md +4 -0
  5. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/pyproject.toml +1 -1
  6. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_version.py +1 -1
  7. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/resources/devboxes/devboxes.py +237 -0
  8. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/__init__.py +1 -0
  9. runloop_api_client-0.6.0/src/runloop_api_client/types/devbox_tunnel_view.py +17 -0
  10. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/shared/launch_parameters.py +6 -0
  11. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +7 -1
  12. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/api_resources/test_blueprints.py +4 -0
  13. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/api_resources/test_devboxes.py +231 -0
  14. runloop_api_client-0.4.0/.release-please-manifest.json +0 -3
  15. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/.gitignore +0 -0
  16. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/CONTRIBUTING.md +0 -0
  17. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/LICENSE +0 -0
  18. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/README.md +0 -0
  19. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/SECURITY.md +0 -0
  20. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/bin/check-release-environment +0 -0
  21. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/bin/publish-pypi +0 -0
  22. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/examples/.keep +0 -0
  23. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/mypy.ini +0 -0
  24. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/noxfile.py +0 -0
  25. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/release-please-config.json +0 -0
  26. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/requirements-dev.lock +0 -0
  27. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/requirements.lock +0 -0
  28. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop/lib/.keep +0 -0
  29. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/__init__.py +0 -0
  30. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_base_client.py +0 -0
  31. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_client.py +0 -0
  32. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_compat.py +0 -0
  33. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_constants.py +0 -0
  34. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_exceptions.py +0 -0
  35. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_files.py +0 -0
  36. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_models.py +0 -0
  37. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_qs.py +0 -0
  38. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_resource.py +0 -0
  39. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_response.py +0 -0
  40. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_streaming.py +0 -0
  41. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_types.py +0 -0
  42. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  43. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  44. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  45. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  46. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  47. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  48. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  49. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  50. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  51. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/lib/.keep +0 -0
  52. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/py.typed +0 -0
  53. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/resources/__init__.py +0 -0
  54. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/resources/blueprints.py +0 -0
  55. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  56. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  57. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  58. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/resources/functions/__init__.py +0 -0
  59. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/resources/functions/functions.py +0 -0
  60. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/resources/functions/invocations.py +0 -0
  61. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/resources/projects/__init__.py +0 -0
  62. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/resources/projects/logs.py +0 -0
  63. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/resources/projects/projects.py +0 -0
  64. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  65. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  66. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  67. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  68. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  69. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  70. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  71. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  72. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  73. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/code_mount_parameters.py +0 -0
  74. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/code_mount_parameters_param.py +0 -0
  75. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  76. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  77. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  78. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_disk_snapshots_params.py +0 -0
  79. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_disk_snapshots_response.py +0 -0
  80. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  81. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  82. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  83. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  84. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  85. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  86. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  87. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  88. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  89. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  90. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  91. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  92. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  93. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devbox_write_file_params.py +0 -0
  94. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  95. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  96. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  97. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  98. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  99. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  100. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/function_invoke_async_params.py +0 -0
  101. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/function_invoke_sync_params.py +0 -0
  102. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/function_list_view.py +0 -0
  103. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/functions/__init__.py +0 -0
  104. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/functions/function_invocation_list_view.py +0 -0
  105. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/functions/invocation_list_params.py +0 -0
  106. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/project_list_view.py +0 -0
  107. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/projects/__init__.py +0 -0
  108. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/resource_size.py +0 -0
  109. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  110. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/shared/function_invocation_execution_detail_view.py +0 -0
  111. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/shared/project_logs_view.py +0 -0
  112. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/shared/resource_size.py +0 -0
  113. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  114. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/__init__.py +0 -0
  115. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/api_resources/__init__.py +0 -0
  116. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/api_resources/devboxes/__init__.py +0 -0
  117. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  118. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  119. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/api_resources/functions/__init__.py +0 -0
  120. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/api_resources/functions/test_invocations.py +0 -0
  121. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/api_resources/projects/__init__.py +0 -0
  122. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/api_resources/projects/test_logs.py +0 -0
  123. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/api_resources/test_functions.py +0 -0
  124. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/api_resources/test_projects.py +0 -0
  125. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/conftest.py +0 -0
  126. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/sample_file.txt +0 -0
  127. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/test_client.py +0 -0
  128. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/test_deepcopy.py +0 -0
  129. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/test_extract_files.py +0 -0
  130. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/test_files.py +0 -0
  131. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/test_models.py +0 -0
  132. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/test_qs.py +0 -0
  133. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/test_required_args.py +0 -0
  134. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/test_response.py +0 -0
  135. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/test_streaming.py +0 -0
  136. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/test_transform.py +0 -0
  137. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/test_utils/test_proxy.py +0 -0
  138. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/test_utils/test_typing.py +0 -0
  139. {runloop_api_client-0.4.0 → runloop_api_client-0.6.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.6.0"
3
+ }
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.6.0 (2024-10-23)
4
+
5
+ Full Changelog: [v0.5.0...v0.6.0](https://github.com/runloopai/api-client-python/compare/v0.5.0...v0.6.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([#231](https://github.com/runloopai/api-client-python/issues/231)) ([c71e7f5](https://github.com/runloopai/api-client-python/commit/c71e7f5cdc94bd826218c4034abc222b40349e39))
10
+ * **api:** api update ([#233](https://github.com/runloopai/api-client-python/issues/233)) ([5ca0335](https://github.com/runloopai/api-client-python/commit/5ca0335166c5f731fb0fd19909fb7d5605631605))
11
+ * **api:** api update ([#234](https://github.com/runloopai/api-client-python/issues/234)) ([e43ae1a](https://github.com/runloopai/api-client-python/commit/e43ae1abca60530ebd439c454e56b8a2a9116554))
12
+
13
+ ## 0.5.0 (2024-10-22)
14
+
15
+ Full Changelog: [v0.4.0...v0.5.0](https://github.com/runloopai/api-client-python/compare/v0.4.0...v0.5.0)
16
+
17
+ ### Features
18
+
19
+ * **api:** api update ([#224](https://github.com/runloopai/api-client-python/issues/224)) ([f536d22](https://github.com/runloopai/api-client-python/commit/f536d22b28c9c92d08267ae902dafb2e9a825e38))
20
+ * **api:** api update ([#226](https://github.com/runloopai/api-client-python/issues/226)) ([c3f93d1](https://github.com/runloopai/api-client-python/commit/c3f93d1109b5e04afe3c42881b6989e4a940dbf0))
21
+ * **api:** api update ([#227](https://github.com/runloopai/api-client-python/issues/227)) ([ea18fbc](https://github.com/runloopai/api-client-python/commit/ea18fbca67b109d03123effd8b1a5451d041fef5))
22
+ * **api:** api update ([#228](https://github.com/runloopai/api-client-python/issues/228)) ([e5ac996](https://github.com/runloopai/api-client-python/commit/e5ac996e3e4092c2ee513cfe928650f7c3628eb7))
23
+ * **api:** api update ([#229](https://github.com/runloopai/api-client-python/issues/229)) ([df42110](https://github.com/runloopai/api-client-python/commit/df4211097357294424738157119e43f03e9e6da5))
24
+
3
25
  ## 0.4.0 (2024-10-22)
4
26
 
5
27
  Full Changelog: [v0.3.0...v0.4.0](https://github.com/runloopai/api-client-python/compare/v0.3.0...v0.4.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 0.4.0
3
+ Version: 0.6.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
@@ -50,6 +50,7 @@ from runloop_api_client.types import (
50
50
  DevboxListView,
51
51
  DevboxSnapshotListView,
52
52
  DevboxSnapshotView,
53
+ DevboxTunnelView,
53
54
  DevboxView,
54
55
  DevboxCreateSSHKeyResponse,
55
56
  DevboxReadFileContentsResponse,
@@ -63,13 +64,16 @@ Methods:
63
64
  - <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>
64
65
  - <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>
65
66
  - <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>
67
+ - <code title="post /v1/devboxes/{id}/create_tunnel">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">create_tunnel</a>(id) -> <a href="./src/runloop_api_client/types/devbox_tunnel_view.py">DevboxTunnelView</a></code>
66
68
  - <code title="get /v1/devboxes/disk_snapshots">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">disk_snapshots</a>(\*\*<a href="src/runloop_api_client/types/devbox_disk_snapshots_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_snapshot_list_view.py">DevboxSnapshotListView</a></code>
67
69
  - <code title="post /v1/devboxes/{id}/download_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">download_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_download_file_params.py">params</a>) -> BinaryAPIResponse</code>
68
70
  - <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
71
  - <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
72
  - <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>
73
+ - <code title="post /v1/devboxes/{id}/resume">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">resume</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
71
74
  - <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>
72
75
  - <code title="post /v1/devboxes/{id}/snapshot_disk">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">snapshot_disk</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_snapshot_disk_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_snapshot_view.py">DevboxSnapshotView</a></code>
76
+ - <code title="post /v1/devboxes/{id}/suspend">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">suspend</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
73
77
  - <code title="post /v1/devboxes/{id}/upload_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">upload_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_upload_file_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_upload_file_response.py">object</a></code>
74
78
  - <code title="post /v1/devboxes/{id}/write_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">write_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_write_file_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
75
79
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.4.0"
3
+ version = "0.6.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "runloop_api_client"
4
- __version__ = "0.4.0" # x-release-please-version
4
+ __version__ = "0.6.0" # x-release-please-version
@@ -60,6 +60,7 @@ from ..._response import (
60
60
  from ..._base_client import make_request_options
61
61
  from ...types.devbox_view import DevboxView
62
62
  from ...types.devbox_list_view import DevboxListView
63
+ from ...types.devbox_tunnel_view import DevboxTunnelView
63
64
  from ...types.devbox_snapshot_view import DevboxSnapshotView
64
65
  from ...types.devbox_snapshot_list_view import DevboxSnapshotListView
65
66
  from ...types.code_mount_parameters_param import CodeMountParametersParam
@@ -309,6 +310,39 @@ class DevboxesResource(SyncAPIResource):
309
310
  cast_to=DevboxCreateSSHKeyResponse,
310
311
  )
311
312
 
313
+ def create_tunnel(
314
+ self,
315
+ id: str,
316
+ *,
317
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
318
+ # The extra values given here take precedence over values defined on the client or passed to this method.
319
+ extra_headers: Headers | None = None,
320
+ extra_query: Query | None = None,
321
+ extra_body: Body | None = None,
322
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
323
+ ) -> DevboxTunnelView:
324
+ """
325
+ Create a tunnel to an available port on the Devbox.
326
+
327
+ Args:
328
+ extra_headers: Send extra headers
329
+
330
+ extra_query: Add additional query parameters to the request
331
+
332
+ extra_body: Add additional JSON properties to the request
333
+
334
+ timeout: Override the client-level default timeout for this request, in seconds
335
+ """
336
+ if not id:
337
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
338
+ return self._post(
339
+ f"/v1/devboxes/{id}/create_tunnel",
340
+ options=make_request_options(
341
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
342
+ ),
343
+ cast_to=DevboxTunnelView,
344
+ )
345
+
312
346
  def disk_snapshots(
313
347
  self,
314
348
  *,
@@ -525,6 +559,39 @@ class DevboxesResource(SyncAPIResource):
525
559
  cast_to=str,
526
560
  )
527
561
 
562
+ def resume(
563
+ self,
564
+ id: str,
565
+ *,
566
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
567
+ # The extra values given here take precedence over values defined on the client or passed to this method.
568
+ extra_headers: Headers | None = None,
569
+ extra_query: Query | None = None,
570
+ extra_body: Body | None = None,
571
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
572
+ ) -> DevboxView:
573
+ """
574
+ Resume a suspended devbox by id.
575
+
576
+ Args:
577
+ extra_headers: Send extra headers
578
+
579
+ extra_query: Add additional query parameters to the request
580
+
581
+ extra_body: Add additional JSON properties to the request
582
+
583
+ timeout: Override the client-level default timeout for this request, in seconds
584
+ """
585
+ if not id:
586
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
587
+ return self._post(
588
+ f"/v1/devboxes/{id}/resume",
589
+ options=make_request_options(
590
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
591
+ ),
592
+ cast_to=DevboxView,
593
+ )
594
+
528
595
  def shutdown(
529
596
  self,
530
597
  id: str,
@@ -605,6 +672,40 @@ class DevboxesResource(SyncAPIResource):
605
672
  cast_to=DevboxSnapshotView,
606
673
  )
607
674
 
675
+ def suspend(
676
+ self,
677
+ id: str,
678
+ *,
679
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
680
+ # The extra values given here take precedence over values defined on the client or passed to this method.
681
+ extra_headers: Headers | None = None,
682
+ extra_query: Query | None = None,
683
+ extra_body: Body | None = None,
684
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
685
+ ) -> DevboxView:
686
+ """Suspend a devbox by id.
687
+
688
+ This will take the devbox out of service.
689
+
690
+ Args:
691
+ extra_headers: Send extra headers
692
+
693
+ extra_query: Add additional query parameters to the request
694
+
695
+ extra_body: Add additional JSON properties to the request
696
+
697
+ timeout: Override the client-level default timeout for this request, in seconds
698
+ """
699
+ if not id:
700
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
701
+ return self._post(
702
+ f"/v1/devboxes/{id}/suspend",
703
+ options=make_request_options(
704
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
705
+ ),
706
+ cast_to=DevboxView,
707
+ )
708
+
608
709
  def upload_file(
609
710
  self,
610
711
  id: str,
@@ -938,6 +1039,39 @@ class AsyncDevboxesResource(AsyncAPIResource):
938
1039
  cast_to=DevboxCreateSSHKeyResponse,
939
1040
  )
940
1041
 
1042
+ async def create_tunnel(
1043
+ self,
1044
+ id: str,
1045
+ *,
1046
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
1047
+ # The extra values given here take precedence over values defined on the client or passed to this method.
1048
+ extra_headers: Headers | None = None,
1049
+ extra_query: Query | None = None,
1050
+ extra_body: Body | None = None,
1051
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
1052
+ ) -> DevboxTunnelView:
1053
+ """
1054
+ Create a tunnel to an available port on the Devbox.
1055
+
1056
+ Args:
1057
+ extra_headers: Send extra headers
1058
+
1059
+ extra_query: Add additional query parameters to the request
1060
+
1061
+ extra_body: Add additional JSON properties to the request
1062
+
1063
+ timeout: Override the client-level default timeout for this request, in seconds
1064
+ """
1065
+ if not id:
1066
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
1067
+ return await self._post(
1068
+ f"/v1/devboxes/{id}/create_tunnel",
1069
+ options=make_request_options(
1070
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
1071
+ ),
1072
+ cast_to=DevboxTunnelView,
1073
+ )
1074
+
941
1075
  async def disk_snapshots(
942
1076
  self,
943
1077
  *,
@@ -1154,6 +1288,39 @@ class AsyncDevboxesResource(AsyncAPIResource):
1154
1288
  cast_to=str,
1155
1289
  )
1156
1290
 
1291
+ async def resume(
1292
+ self,
1293
+ id: str,
1294
+ *,
1295
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
1296
+ # The extra values given here take precedence over values defined on the client or passed to this method.
1297
+ extra_headers: Headers | None = None,
1298
+ extra_query: Query | None = None,
1299
+ extra_body: Body | None = None,
1300
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
1301
+ ) -> DevboxView:
1302
+ """
1303
+ Resume a suspended devbox by id.
1304
+
1305
+ Args:
1306
+ extra_headers: Send extra headers
1307
+
1308
+ extra_query: Add additional query parameters to the request
1309
+
1310
+ extra_body: Add additional JSON properties to the request
1311
+
1312
+ timeout: Override the client-level default timeout for this request, in seconds
1313
+ """
1314
+ if not id:
1315
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
1316
+ return await self._post(
1317
+ f"/v1/devboxes/{id}/resume",
1318
+ options=make_request_options(
1319
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
1320
+ ),
1321
+ cast_to=DevboxView,
1322
+ )
1323
+
1157
1324
  async def shutdown(
1158
1325
  self,
1159
1326
  id: str,
@@ -1234,6 +1401,40 @@ class AsyncDevboxesResource(AsyncAPIResource):
1234
1401
  cast_to=DevboxSnapshotView,
1235
1402
  )
1236
1403
 
1404
+ async def suspend(
1405
+ self,
1406
+ id: str,
1407
+ *,
1408
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
1409
+ # The extra values given here take precedence over values defined on the client or passed to this method.
1410
+ extra_headers: Headers | None = None,
1411
+ extra_query: Query | None = None,
1412
+ extra_body: Body | None = None,
1413
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
1414
+ ) -> DevboxView:
1415
+ """Suspend a devbox by id.
1416
+
1417
+ This will take the devbox out of service.
1418
+
1419
+ Args:
1420
+ extra_headers: Send extra headers
1421
+
1422
+ extra_query: Add additional query parameters to the request
1423
+
1424
+ extra_body: Add additional JSON properties to the request
1425
+
1426
+ timeout: Override the client-level default timeout for this request, in seconds
1427
+ """
1428
+ if not id:
1429
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
1430
+ return await self._post(
1431
+ f"/v1/devboxes/{id}/suspend",
1432
+ options=make_request_options(
1433
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
1434
+ ),
1435
+ cast_to=DevboxView,
1436
+ )
1437
+
1237
1438
  async def upload_file(
1238
1439
  self,
1239
1440
  id: str,
@@ -1345,6 +1546,9 @@ class DevboxesResourceWithRawResponse:
1345
1546
  self.create_ssh_key = to_raw_response_wrapper(
1346
1547
  devboxes.create_ssh_key,
1347
1548
  )
1549
+ self.create_tunnel = to_raw_response_wrapper(
1550
+ devboxes.create_tunnel,
1551
+ )
1348
1552
  self.disk_snapshots = to_raw_response_wrapper(
1349
1553
  devboxes.disk_snapshots,
1350
1554
  )
@@ -1361,12 +1565,18 @@ class DevboxesResourceWithRawResponse:
1361
1565
  self.read_file_contents = to_raw_response_wrapper(
1362
1566
  devboxes.read_file_contents,
1363
1567
  )
1568
+ self.resume = to_raw_response_wrapper(
1569
+ devboxes.resume,
1570
+ )
1364
1571
  self.shutdown = to_raw_response_wrapper(
1365
1572
  devboxes.shutdown,
1366
1573
  )
1367
1574
  self.snapshot_disk = to_raw_response_wrapper(
1368
1575
  devboxes.snapshot_disk,
1369
1576
  )
1577
+ self.suspend = to_raw_response_wrapper(
1578
+ devboxes.suspend,
1579
+ )
1370
1580
  self.upload_file = to_raw_response_wrapper(
1371
1581
  devboxes.upload_file,
1372
1582
  )
@@ -1399,6 +1609,9 @@ class AsyncDevboxesResourceWithRawResponse:
1399
1609
  self.create_ssh_key = async_to_raw_response_wrapper(
1400
1610
  devboxes.create_ssh_key,
1401
1611
  )
1612
+ self.create_tunnel = async_to_raw_response_wrapper(
1613
+ devboxes.create_tunnel,
1614
+ )
1402
1615
  self.disk_snapshots = async_to_raw_response_wrapper(
1403
1616
  devboxes.disk_snapshots,
1404
1617
  )
@@ -1415,12 +1628,18 @@ class AsyncDevboxesResourceWithRawResponse:
1415
1628
  self.read_file_contents = async_to_raw_response_wrapper(
1416
1629
  devboxes.read_file_contents,
1417
1630
  )
1631
+ self.resume = async_to_raw_response_wrapper(
1632
+ devboxes.resume,
1633
+ )
1418
1634
  self.shutdown = async_to_raw_response_wrapper(
1419
1635
  devboxes.shutdown,
1420
1636
  )
1421
1637
  self.snapshot_disk = async_to_raw_response_wrapper(
1422
1638
  devboxes.snapshot_disk,
1423
1639
  )
1640
+ self.suspend = async_to_raw_response_wrapper(
1641
+ devboxes.suspend,
1642
+ )
1424
1643
  self.upload_file = async_to_raw_response_wrapper(
1425
1644
  devboxes.upload_file,
1426
1645
  )
@@ -1453,6 +1672,9 @@ class DevboxesResourceWithStreamingResponse:
1453
1672
  self.create_ssh_key = to_streamed_response_wrapper(
1454
1673
  devboxes.create_ssh_key,
1455
1674
  )
1675
+ self.create_tunnel = to_streamed_response_wrapper(
1676
+ devboxes.create_tunnel,
1677
+ )
1456
1678
  self.disk_snapshots = to_streamed_response_wrapper(
1457
1679
  devboxes.disk_snapshots,
1458
1680
  )
@@ -1469,12 +1691,18 @@ class DevboxesResourceWithStreamingResponse:
1469
1691
  self.read_file_contents = to_streamed_response_wrapper(
1470
1692
  devboxes.read_file_contents,
1471
1693
  )
1694
+ self.resume = to_streamed_response_wrapper(
1695
+ devboxes.resume,
1696
+ )
1472
1697
  self.shutdown = to_streamed_response_wrapper(
1473
1698
  devboxes.shutdown,
1474
1699
  )
1475
1700
  self.snapshot_disk = to_streamed_response_wrapper(
1476
1701
  devboxes.snapshot_disk,
1477
1702
  )
1703
+ self.suspend = to_streamed_response_wrapper(
1704
+ devboxes.suspend,
1705
+ )
1478
1706
  self.upload_file = to_streamed_response_wrapper(
1479
1707
  devboxes.upload_file,
1480
1708
  )
@@ -1507,6 +1735,9 @@ class AsyncDevboxesResourceWithStreamingResponse:
1507
1735
  self.create_ssh_key = async_to_streamed_response_wrapper(
1508
1736
  devboxes.create_ssh_key,
1509
1737
  )
1738
+ self.create_tunnel = async_to_streamed_response_wrapper(
1739
+ devboxes.create_tunnel,
1740
+ )
1510
1741
  self.disk_snapshots = async_to_streamed_response_wrapper(
1511
1742
  devboxes.disk_snapshots,
1512
1743
  )
@@ -1523,12 +1754,18 @@ class AsyncDevboxesResourceWithStreamingResponse:
1523
1754
  self.read_file_contents = async_to_streamed_response_wrapper(
1524
1755
  devboxes.read_file_contents,
1525
1756
  )
1757
+ self.resume = async_to_streamed_response_wrapper(
1758
+ devboxes.resume,
1759
+ )
1526
1760
  self.shutdown = async_to_streamed_response_wrapper(
1527
1761
  devboxes.shutdown,
1528
1762
  )
1529
1763
  self.snapshot_disk = async_to_streamed_response_wrapper(
1530
1764
  devboxes.snapshot_disk,
1531
1765
  )
1766
+ self.suspend = async_to_streamed_response_wrapper(
1767
+ devboxes.suspend,
1768
+ )
1532
1769
  self.upload_file = async_to_streamed_response_wrapper(
1533
1770
  devboxes.upload_file,
1534
1771
  )
@@ -12,6 +12,7 @@ from .blueprint_view import BlueprintView as BlueprintView
12
12
  from .devbox_list_view import DevboxListView as DevboxListView
13
13
  from .project_list_view import ProjectListView as ProjectListView
14
14
  from .devbox_list_params import DevboxListParams as DevboxListParams
15
+ from .devbox_tunnel_view import DevboxTunnelView as DevboxTunnelView
15
16
  from .function_list_view import FunctionListView as FunctionListView
16
17
  from .blueprint_build_log import BlueprintBuildLog as BlueprintBuildLog
17
18
  from .blueprint_list_view import BlueprintListView as BlueprintListView
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+
4
+ from .._models import BaseModel
5
+
6
+ __all__ = ["DevboxTunnelView"]
7
+
8
+
9
+ class DevboxTunnelView(BaseModel):
10
+ devbox_id: str
11
+ """ID of the Devbox the tunnel routes to."""
12
+
13
+ port: int
14
+ """Port of the Devbox the tunnel routes to."""
15
+
16
+ url: str
17
+ """Public url used to access Devbox."""
@@ -9,6 +9,12 @@ __all__ = ["LaunchParameters"]
9
9
 
10
10
 
11
11
  class LaunchParameters(BaseModel):
12
+ available_ports: Optional[List[int]] = None
13
+ """A list of ports to make available on the Devbox.
14
+
15
+ Call createTunnel to open a tunnel to the port.
16
+ """
17
+
12
18
  keep_alive_time_seconds: Optional[int] = None
13
19
  """Time in seconds after which Devbox will automatically shutdown.
14
20
 
@@ -2,13 +2,19 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import List
5
+ from typing import List, Iterable
6
6
  from typing_extensions import Literal, TypedDict
7
7
 
8
8
  __all__ = ["LaunchParameters"]
9
9
 
10
10
 
11
11
  class LaunchParameters(TypedDict, total=False):
12
+ available_ports: Iterable[int]
13
+ """A list of ports to make available on the Devbox.
14
+
15
+ Call createTunnel to open a tunnel to the port.
16
+ """
17
+
12
18
  keep_alive_time_seconds: int
13
19
  """Time in seconds after which Devbox will automatically shutdown.
14
20
 
@@ -56,6 +56,7 @@ class TestBlueprints:
56
56
  dockerfile="dockerfile",
57
57
  file_mounts={"foo": "string"},
58
58
  launch_parameters={
59
+ "available_ports": [0, 0, 0],
59
60
  "keep_alive_time_seconds": 0,
60
61
  "launch_commands": ["string", "string", "string"],
61
62
  "resource_size_request": "SMALL",
@@ -232,6 +233,7 @@ class TestBlueprints:
232
233
  dockerfile="dockerfile",
233
234
  file_mounts={"foo": "string"},
234
235
  launch_parameters={
236
+ "available_ports": [0, 0, 0],
235
237
  "keep_alive_time_seconds": 0,
236
238
  "launch_commands": ["string", "string", "string"],
237
239
  "resource_size_request": "SMALL",
@@ -302,6 +304,7 @@ class TestAsyncBlueprints:
302
304
  dockerfile="dockerfile",
303
305
  file_mounts={"foo": "string"},
304
306
  launch_parameters={
307
+ "available_ports": [0, 0, 0],
305
308
  "keep_alive_time_seconds": 0,
306
309
  "launch_commands": ["string", "string", "string"],
307
310
  "resource_size_request": "SMALL",
@@ -478,6 +481,7 @@ class TestAsyncBlueprints:
478
481
  dockerfile="dockerfile",
479
482
  file_mounts={"foo": "string"},
480
483
  launch_parameters={
484
+ "available_ports": [0, 0, 0],
481
485
  "keep_alive_time_seconds": 0,
482
486
  "launch_commands": ["string", "string", "string"],
483
487
  "resource_size_request": "SMALL",