runloop-api-client 0.1.0a9__tar.gz → 0.1.0a10__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 (117) hide show
  1. runloop_api_client-0.1.0a10/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/CHANGELOG.md +8 -0
  3. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/PKG-INFO +1 -1
  4. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/api.md +2 -2
  5. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/pyproject.toml +1 -1
  6. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_version.py +1 -1
  7. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/resources/devboxes/devboxes.py +41 -1
  8. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/__init__.py +2 -0
  9. runloop_api_client-0.1.0a10/src/runloop_api_client/types/devbox_read_file_params.py +12 -0
  10. runloop_api_client-0.1.0a10/src/runloop_api_client/types/devbox_write_file_params.py +15 -0
  11. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/api_resources/test_devboxes.py +50 -16
  12. runloop_api_client-0.1.0a9/.release-please-manifest.json +0 -3
  13. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/.gitignore +0 -0
  14. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/CONTRIBUTING.md +0 -0
  15. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/LICENSE +0 -0
  16. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/README.md +0 -0
  17. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/SECURITY.md +0 -0
  18. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/bin/check-release-environment +0 -0
  19. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/bin/publish-pypi +0 -0
  20. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/examples/.keep +0 -0
  21. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/mypy.ini +0 -0
  22. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/noxfile.py +0 -0
  23. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/release-please-config.json +0 -0
  24. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/requirements-dev.lock +0 -0
  25. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/requirements.lock +0 -0
  26. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop/lib/.keep +0 -0
  27. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/__init__.py +0 -0
  28. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_base_client.py +0 -0
  29. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_client.py +0 -0
  30. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_compat.py +0 -0
  31. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_constants.py +0 -0
  32. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_exceptions.py +0 -0
  33. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_files.py +0 -0
  34. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_models.py +0 -0
  35. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_qs.py +0 -0
  36. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_resource.py +0 -0
  37. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_response.py +0 -0
  38. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_streaming.py +0 -0
  39. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_types.py +0 -0
  40. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_utils/__init__.py +0 -0
  41. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_utils/_logs.py +0 -0
  42. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_utils/_proxy.py +0 -0
  43. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_utils/_reflection.py +0 -0
  44. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_utils/_streams.py +0 -0
  45. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_utils/_sync.py +0 -0
  46. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_utils/_transform.py +0 -0
  47. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_utils/_typing.py +0 -0
  48. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/_utils/_utils.py +0 -0
  49. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/lib/.keep +0 -0
  50. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/py.typed +0 -0
  51. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/resources/__init__.py +0 -0
  52. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/resources/blueprints.py +0 -0
  53. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  54. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  55. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/resources/functions/__init__.py +0 -0
  56. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/resources/functions/functions.py +0 -0
  57. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/resources/functions/invocations.py +0 -0
  58. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/resources/projects/__init__.py +0 -0
  59. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/resources/projects/logs.py +0 -0
  60. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/resources/projects/projects.py +0 -0
  61. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  62. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  63. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  64. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  65. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  66. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  67. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  68. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  69. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/blueprint_view.py +0 -0
  70. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/code_mount_parameters.py +0 -0
  71. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/code_mount_parameters_param.py +0 -0
  72. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  73. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  74. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  75. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  76. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  77. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/devbox_view.py +0 -0
  78. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  79. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  80. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/function_invoke_async_params.py +0 -0
  81. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/function_invoke_sync_params.py +0 -0
  82. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/function_list_view.py +0 -0
  83. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/functions/__init__.py +0 -0
  84. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/functions/function_invocation_list_view.py +0 -0
  85. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/functions/invocation_list_params.py +0 -0
  86. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/project_list_view.py +0 -0
  87. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/projects/__init__.py +0 -0
  88. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/resource_size.py +0 -0
  89. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/shared/__init__.py +0 -0
  90. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/shared/function_invocation_execution_detail_view.py +0 -0
  91. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/src/runloop_api_client/types/shared/project_logs_view.py +0 -0
  92. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/__init__.py +0 -0
  93. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/api_resources/__init__.py +0 -0
  94. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/api_resources/devboxes/__init__.py +0 -0
  95. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/api_resources/devboxes/test_logs.py +0 -0
  96. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/api_resources/functions/__init__.py +0 -0
  97. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/api_resources/functions/test_invocations.py +0 -0
  98. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/api_resources/projects/__init__.py +0 -0
  99. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/api_resources/projects/test_logs.py +0 -0
  100. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/api_resources/test_blueprints.py +0 -0
  101. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/api_resources/test_functions.py +0 -0
  102. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/api_resources/test_projects.py +0 -0
  103. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/conftest.py +0 -0
  104. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/sample_file.txt +0 -0
  105. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/test_client.py +0 -0
  106. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/test_deepcopy.py +0 -0
  107. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/test_extract_files.py +0 -0
  108. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/test_files.py +0 -0
  109. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/test_models.py +0 -0
  110. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/test_qs.py +0 -0
  111. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/test_required_args.py +0 -0
  112. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/test_response.py +0 -0
  113. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/test_streaming.py +0 -0
  114. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/test_transform.py +0 -0
  115. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/test_utils/test_proxy.py +0 -0
  116. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/test_utils/test_typing.py +0 -0
  117. {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a10}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.1.0-alpha.10"
3
+ }
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.10 (2024-08-02)
4
+
5
+ Full Changelog: [v0.1.0-alpha.9...v0.1.0-alpha.10](https://github.com/runloopai/api-client-python/compare/v0.1.0-alpha.9...v0.1.0-alpha.10)
6
+
7
+ ### Features
8
+
9
+ * **api:** update via SDK Studio ([#63](https://github.com/runloopai/api-client-python/issues/63)) ([d2aefd1](https://github.com/runloopai/api-client-python/commit/d2aefd19566d6a90121cfd6b4a188a538b496d98))
10
+
3
11
  ## 0.1.0-alpha.9 (2024-08-01)
4
12
 
5
13
  Full Changelog: [v0.1.0-alpha.8...v0.1.0-alpha.9](https://github.com/runloopai/api-client-python/compare/v0.1.0-alpha.8...v0.1.0-alpha.9)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 0.1.0a9
3
+ Version: 0.1.0a10
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
@@ -57,9 +57,9 @@ Methods:
57
57
  - <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>
58
58
  - <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>
59
59
  - <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>
60
- - <code title="post /v1/devboxes/{id}/read_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">read_file</a>(id) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
60
+ - <code title="post /v1/devboxes/{id}/read_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">read_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_read_file_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
61
61
  - <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>
62
- - <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_execution_detail_view.py">DevboxExecutionDetailView</a></code>
62
+ - <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>
63
63
 
64
64
  ## Logs
65
65
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.1.0-alpha.9"
3
+ version = "0.1.0-alpha.10"
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.9" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.10" # x-release-please-version
@@ -14,7 +14,13 @@ from .logs import (
14
14
  LogsResourceWithStreamingResponse,
15
15
  AsyncLogsResourceWithStreamingResponse,
16
16
  )
17
- from ...types import devbox_list_params, devbox_create_params, devbox_execute_sync_params
17
+ from ...types import (
18
+ devbox_list_params,
19
+ devbox_create_params,
20
+ devbox_read_file_params,
21
+ devbox_write_file_params,
22
+ devbox_execute_sync_params,
23
+ )
18
24
  from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
19
25
  from ..._utils import (
20
26
  maybe_transform,
@@ -251,6 +257,7 @@ class DevboxesResource(SyncAPIResource):
251
257
  self,
252
258
  id: str,
253
259
  *,
260
+ file_path: str | NotGiven = NOT_GIVEN,
254
261
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
255
262
  # The extra values given here take precedence over values defined on the client or passed to this method.
256
263
  extra_headers: Headers | None = None,
@@ -262,6 +269,8 @@ class DevboxesResource(SyncAPIResource):
262
269
  Read file contents from a file on given Devbox.
263
270
 
264
271
  Args:
272
+ file_path: The path of the file to read.
273
+
265
274
  extra_headers: Send extra headers
266
275
 
267
276
  extra_query: Add additional query parameters to the request
@@ -274,6 +283,7 @@ class DevboxesResource(SyncAPIResource):
274
283
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
275
284
  return self._post(
276
285
  f"/v1/devboxes/{id}/read_file",
286
+ body=maybe_transform({"file_path": file_path}, devbox_read_file_params.DevboxReadFileParams),
277
287
  options=make_request_options(
278
288
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
279
289
  ),
@@ -318,6 +328,8 @@ class DevboxesResource(SyncAPIResource):
318
328
  self,
319
329
  id: str,
320
330
  *,
331
+ contents: str | NotGiven = NOT_GIVEN,
332
+ file_path: str | NotGiven = NOT_GIVEN,
321
333
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
322
334
  # The extra values given here take precedence over values defined on the client or passed to this method.
323
335
  extra_headers: Headers | None = None,
@@ -329,6 +341,10 @@ class DevboxesResource(SyncAPIResource):
329
341
  Write contents to a file at path on the Devbox.
330
342
 
331
343
  Args:
344
+ contents: The contents to write to file.
345
+
346
+ file_path: The path of the file to read.
347
+
332
348
  extra_headers: Send extra headers
333
349
 
334
350
  extra_query: Add additional query parameters to the request
@@ -341,6 +357,13 @@ class DevboxesResource(SyncAPIResource):
341
357
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
342
358
  return self._post(
343
359
  f"/v1/devboxes/{id}/write_file",
360
+ body=maybe_transform(
361
+ {
362
+ "contents": contents,
363
+ "file_path": file_path,
364
+ },
365
+ devbox_write_file_params.DevboxWriteFileParams,
366
+ ),
344
367
  options=make_request_options(
345
368
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
346
369
  ),
@@ -563,6 +586,7 @@ class AsyncDevboxesResource(AsyncAPIResource):
563
586
  self,
564
587
  id: str,
565
588
  *,
589
+ file_path: str | NotGiven = NOT_GIVEN,
566
590
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
567
591
  # The extra values given here take precedence over values defined on the client or passed to this method.
568
592
  extra_headers: Headers | None = None,
@@ -574,6 +598,8 @@ class AsyncDevboxesResource(AsyncAPIResource):
574
598
  Read file contents from a file on given Devbox.
575
599
 
576
600
  Args:
601
+ file_path: The path of the file to read.
602
+
577
603
  extra_headers: Send extra headers
578
604
 
579
605
  extra_query: Add additional query parameters to the request
@@ -586,6 +612,7 @@ class AsyncDevboxesResource(AsyncAPIResource):
586
612
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
587
613
  return await self._post(
588
614
  f"/v1/devboxes/{id}/read_file",
615
+ body=await async_maybe_transform({"file_path": file_path}, devbox_read_file_params.DevboxReadFileParams),
589
616
  options=make_request_options(
590
617
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
591
618
  ),
@@ -630,6 +657,8 @@ class AsyncDevboxesResource(AsyncAPIResource):
630
657
  self,
631
658
  id: str,
632
659
  *,
660
+ contents: str | NotGiven = NOT_GIVEN,
661
+ file_path: str | NotGiven = NOT_GIVEN,
633
662
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
634
663
  # The extra values given here take precedence over values defined on the client or passed to this method.
635
664
  extra_headers: Headers | None = None,
@@ -641,6 +670,10 @@ class AsyncDevboxesResource(AsyncAPIResource):
641
670
  Write contents to a file at path on the Devbox.
642
671
 
643
672
  Args:
673
+ contents: The contents to write to file.
674
+
675
+ file_path: The path of the file to read.
676
+
644
677
  extra_headers: Send extra headers
645
678
 
646
679
  extra_query: Add additional query parameters to the request
@@ -653,6 +686,13 @@ class AsyncDevboxesResource(AsyncAPIResource):
653
686
  raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
654
687
  return await self._post(
655
688
  f"/v1/devboxes/{id}/write_file",
689
+ body=await async_maybe_transform(
690
+ {
691
+ "contents": contents,
692
+ "file_path": file_path,
693
+ },
694
+ devbox_write_file_params.DevboxWriteFileParams,
695
+ ),
656
696
  options=make_request_options(
657
697
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
658
698
  ),
@@ -20,7 +20,9 @@ from .blueprint_list_params import BlueprintListParams as BlueprintListParams
20
20
  from .code_mount_parameters import CodeMountParameters as CodeMountParameters
21
21
  from .blueprint_preview_view import BlueprintPreviewView as BlueprintPreviewView
22
22
  from .blueprint_create_params import BlueprintCreateParams as BlueprintCreateParams
23
+ from .devbox_read_file_params import DevboxReadFileParams as DevboxReadFileParams
23
24
  from .blueprint_preview_params import BlueprintPreviewParams as BlueprintPreviewParams
25
+ from .devbox_write_file_params import DevboxWriteFileParams as DevboxWriteFileParams
24
26
  from .blueprint_build_parameters import BlueprintBuildParameters as BlueprintBuildParameters
25
27
  from .devbox_execute_sync_params import DevboxExecuteSyncParams as DevboxExecuteSyncParams
26
28
  from .code_mount_parameters_param import CodeMountParametersParam as CodeMountParametersParam
@@ -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__ = ["DevboxReadFileParams"]
8
+
9
+
10
+ class DevboxReadFileParams(TypedDict, total=False):
11
+ file_path: str
12
+ """The path of the file to read."""
@@ -0,0 +1,15 @@
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__ = ["DevboxWriteFileParams"]
8
+
9
+
10
+ class DevboxWriteFileParams(TypedDict, total=False):
11
+ contents: str
12
+ """The contents to write to file."""
13
+
14
+ file_path: str
15
+ """The path of the file to read."""
@@ -181,14 +181,22 @@ class TestDevboxes:
181
181
  @parametrize
182
182
  def test_method_read_file(self, client: Runloop) -> None:
183
183
  devbox = client.devboxes.read_file(
184
- "id",
184
+ id="id",
185
+ )
186
+ assert_matches_type(DevboxExecutionDetailView, devbox, path=["response"])
187
+
188
+ @parametrize
189
+ def test_method_read_file_with_all_params(self, client: Runloop) -> None:
190
+ devbox = client.devboxes.read_file(
191
+ id="id",
192
+ file_path="file_path",
185
193
  )
186
194
  assert_matches_type(DevboxExecutionDetailView, devbox, path=["response"])
187
195
 
188
196
  @parametrize
189
197
  def test_raw_response_read_file(self, client: Runloop) -> None:
190
198
  response = client.devboxes.with_raw_response.read_file(
191
- "id",
199
+ id="id",
192
200
  )
193
201
 
194
202
  assert response.is_closed is True
@@ -199,7 +207,7 @@ class TestDevboxes:
199
207
  @parametrize
200
208
  def test_streaming_response_read_file(self, client: Runloop) -> None:
201
209
  with client.devboxes.with_streaming_response.read_file(
202
- "id",
210
+ id="id",
203
211
  ) as response:
204
212
  assert not response.is_closed
205
213
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -213,7 +221,7 @@ class TestDevboxes:
213
221
  def test_path_params_read_file(self, client: Runloop) -> None:
214
222
  with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
215
223
  client.devboxes.with_raw_response.read_file(
216
- "",
224
+ id="",
217
225
  )
218
226
 
219
227
  @parametrize
@@ -257,14 +265,23 @@ class TestDevboxes:
257
265
  @parametrize
258
266
  def test_method_write_file(self, client: Runloop) -> None:
259
267
  devbox = client.devboxes.write_file(
260
- "id",
268
+ id="id",
269
+ )
270
+ assert_matches_type(DevboxExecutionDetailView, devbox, path=["response"])
271
+
272
+ @parametrize
273
+ def test_method_write_file_with_all_params(self, client: Runloop) -> None:
274
+ devbox = client.devboxes.write_file(
275
+ id="id",
276
+ contents="contents",
277
+ file_path="file_path",
261
278
  )
262
279
  assert_matches_type(DevboxExecutionDetailView, devbox, path=["response"])
263
280
 
264
281
  @parametrize
265
282
  def test_raw_response_write_file(self, client: Runloop) -> None:
266
283
  response = client.devboxes.with_raw_response.write_file(
267
- "id",
284
+ id="id",
268
285
  )
269
286
 
270
287
  assert response.is_closed is True
@@ -275,7 +292,7 @@ class TestDevboxes:
275
292
  @parametrize
276
293
  def test_streaming_response_write_file(self, client: Runloop) -> None:
277
294
  with client.devboxes.with_streaming_response.write_file(
278
- "id",
295
+ id="id",
279
296
  ) as response:
280
297
  assert not response.is_closed
281
298
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -289,7 +306,7 @@ class TestDevboxes:
289
306
  def test_path_params_write_file(self, client: Runloop) -> None:
290
307
  with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
291
308
  client.devboxes.with_raw_response.write_file(
292
- "",
309
+ id="",
293
310
  )
294
311
 
295
312
 
@@ -456,14 +473,22 @@ class TestAsyncDevboxes:
456
473
  @parametrize
457
474
  async def test_method_read_file(self, async_client: AsyncRunloop) -> None:
458
475
  devbox = await async_client.devboxes.read_file(
459
- "id",
476
+ id="id",
477
+ )
478
+ assert_matches_type(DevboxExecutionDetailView, devbox, path=["response"])
479
+
480
+ @parametrize
481
+ async def test_method_read_file_with_all_params(self, async_client: AsyncRunloop) -> None:
482
+ devbox = await async_client.devboxes.read_file(
483
+ id="id",
484
+ file_path="file_path",
460
485
  )
461
486
  assert_matches_type(DevboxExecutionDetailView, devbox, path=["response"])
462
487
 
463
488
  @parametrize
464
489
  async def test_raw_response_read_file(self, async_client: AsyncRunloop) -> None:
465
490
  response = await async_client.devboxes.with_raw_response.read_file(
466
- "id",
491
+ id="id",
467
492
  )
468
493
 
469
494
  assert response.is_closed is True
@@ -474,7 +499,7 @@ class TestAsyncDevboxes:
474
499
  @parametrize
475
500
  async def test_streaming_response_read_file(self, async_client: AsyncRunloop) -> None:
476
501
  async with async_client.devboxes.with_streaming_response.read_file(
477
- "id",
502
+ id="id",
478
503
  ) as response:
479
504
  assert not response.is_closed
480
505
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -488,7 +513,7 @@ class TestAsyncDevboxes:
488
513
  async def test_path_params_read_file(self, async_client: AsyncRunloop) -> None:
489
514
  with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
490
515
  await async_client.devboxes.with_raw_response.read_file(
491
- "",
516
+ id="",
492
517
  )
493
518
 
494
519
  @parametrize
@@ -532,14 +557,23 @@ class TestAsyncDevboxes:
532
557
  @parametrize
533
558
  async def test_method_write_file(self, async_client: AsyncRunloop) -> None:
534
559
  devbox = await async_client.devboxes.write_file(
535
- "id",
560
+ id="id",
561
+ )
562
+ assert_matches_type(DevboxExecutionDetailView, devbox, path=["response"])
563
+
564
+ @parametrize
565
+ async def test_method_write_file_with_all_params(self, async_client: AsyncRunloop) -> None:
566
+ devbox = await async_client.devboxes.write_file(
567
+ id="id",
568
+ contents="contents",
569
+ file_path="file_path",
536
570
  )
537
571
  assert_matches_type(DevboxExecutionDetailView, devbox, path=["response"])
538
572
 
539
573
  @parametrize
540
574
  async def test_raw_response_write_file(self, async_client: AsyncRunloop) -> None:
541
575
  response = await async_client.devboxes.with_raw_response.write_file(
542
- "id",
576
+ id="id",
543
577
  )
544
578
 
545
579
  assert response.is_closed is True
@@ -550,7 +584,7 @@ class TestAsyncDevboxes:
550
584
  @parametrize
551
585
  async def test_streaming_response_write_file(self, async_client: AsyncRunloop) -> None:
552
586
  async with async_client.devboxes.with_streaming_response.write_file(
553
- "id",
587
+ id="id",
554
588
  ) as response:
555
589
  assert not response.is_closed
556
590
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -564,5 +598,5 @@ class TestAsyncDevboxes:
564
598
  async def test_path_params_write_file(self, async_client: AsyncRunloop) -> None:
565
599
  with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
566
600
  await async_client.devboxes.with_raw_response.write_file(
567
- "",
601
+ id="",
568
602
  )
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.1.0-alpha.9"
3
- }