runloop-api-client 0.1.0a22__tar.gz → 0.2.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 (131) hide show
  1. runloop_api_client-0.2.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/CHANGELOG.md +32 -0
  3. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/PKG-INFO +2 -2
  4. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/README.md +1 -1
  5. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/api.md +3 -0
  6. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/pyproject.toml +1 -1
  7. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_base_client.py +8 -1
  8. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_response.py +3 -0
  9. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_version.py +1 -1
  10. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/resources/blueprints.py +2 -2
  11. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/resources/devboxes/devboxes.py +215 -0
  12. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/__init__.py +3 -0
  13. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/blueprint_list_params.py +1 -1
  14. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devbox_create_params.py +3 -0
  15. runloop_api_client-0.2.0/src/runloop_api_client/types/devbox_disk_snapshots_params.py +15 -0
  16. runloop_api_client-0.2.0/src/runloop_api_client/types/devbox_disk_snapshots_response.py +32 -0
  17. runloop_api_client-0.2.0/src/runloop_api_client/types/devbox_download_file_params.py +12 -0
  18. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/api_resources/test_blueprints.py +2 -2
  19. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/api_resources/test_devboxes.py +193 -0
  20. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/test_client.py +2 -0
  21. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/test_response.py +50 -0
  22. runloop_api_client-0.1.0a22/.release-please-manifest.json +0 -3
  23. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/.gitignore +0 -0
  24. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/CONTRIBUTING.md +0 -0
  25. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/LICENSE +0 -0
  26. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/SECURITY.md +0 -0
  27. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/bin/check-release-environment +0 -0
  28. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/bin/publish-pypi +0 -0
  29. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/examples/.keep +0 -0
  30. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/mypy.ini +0 -0
  31. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/noxfile.py +0 -0
  32. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/release-please-config.json +0 -0
  33. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/requirements-dev.lock +0 -0
  34. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/requirements.lock +0 -0
  35. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop/lib/.keep +0 -0
  36. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/__init__.py +0 -0
  37. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_client.py +0 -0
  38. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_compat.py +0 -0
  39. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_constants.py +0 -0
  40. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_exceptions.py +0 -0
  41. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_files.py +0 -0
  42. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_models.py +0 -0
  43. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_qs.py +0 -0
  44. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_resource.py +0 -0
  45. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_streaming.py +0 -0
  46. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_types.py +0 -0
  47. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  48. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  49. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  50. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  51. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  52. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  53. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  54. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  55. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  56. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/lib/.keep +0 -0
  57. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/py.typed +0 -0
  58. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/resources/__init__.py +0 -0
  59. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  60. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  61. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  62. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/resources/functions/__init__.py +0 -0
  63. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/resources/functions/functions.py +0 -0
  64. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/resources/functions/invocations.py +0 -0
  65. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/resources/projects/__init__.py +0 -0
  66. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/resources/projects/logs.py +0 -0
  67. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/resources/projects/projects.py +0 -0
  68. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  69. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  70. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  71. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  72. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  73. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  74. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  75. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  76. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/code_mount_parameters.py +0 -0
  77. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/code_mount_parameters_param.py +0 -0
  78. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  79. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  80. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  81. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  82. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  83. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  84. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  85. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  86. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  87. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  88. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  89. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devbox_write_file_params.py +0 -0
  90. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  91. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  92. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  93. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  94. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  95. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  96. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/function_invoke_async_params.py +0 -0
  97. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/function_invoke_sync_params.py +0 -0
  98. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/function_list_view.py +0 -0
  99. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/functions/__init__.py +0 -0
  100. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/functions/function_invocation_list_view.py +0 -0
  101. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/functions/invocation_list_params.py +0 -0
  102. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/project_list_view.py +0 -0
  103. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/projects/__init__.py +0 -0
  104. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/resource_size.py +0 -0
  105. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  106. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/shared/function_invocation_execution_detail_view.py +0 -0
  107. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/src/runloop_api_client/types/shared/project_logs_view.py +0 -0
  108. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/__init__.py +0 -0
  109. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/api_resources/__init__.py +0 -0
  110. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/api_resources/devboxes/__init__.py +0 -0
  111. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  112. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  113. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/api_resources/functions/__init__.py +0 -0
  114. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/api_resources/functions/test_invocations.py +0 -0
  115. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/api_resources/projects/__init__.py +0 -0
  116. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/api_resources/projects/test_logs.py +0 -0
  117. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/api_resources/test_functions.py +0 -0
  118. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/api_resources/test_projects.py +0 -0
  119. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/conftest.py +0 -0
  120. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/sample_file.txt +0 -0
  121. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/test_deepcopy.py +0 -0
  122. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/test_extract_files.py +0 -0
  123. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/test_files.py +0 -0
  124. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/test_models.py +0 -0
  125. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/test_qs.py +0 -0
  126. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/test_required_args.py +0 -0
  127. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/test_streaming.py +0 -0
  128. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/test_transform.py +0 -0
  129. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/test_utils/test_proxy.py +0 -0
  130. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/test_utils/test_typing.py +0 -0
  131. {runloop_api_client-0.1.0a22 → runloop_api_client-0.2.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.2.0"
3
+ }
@@ -1,5 +1,37 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.0 (2024-10-10)
4
+
5
+ Full Changelog: [v0.1.0-alpha.23...v0.2.0](https://github.com/runloopai/api-client-python/compare/v0.1.0-alpha.23...v0.2.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([#186](https://github.com/runloopai/api-client-python/issues/186)) ([bee1e4f](https://github.com/runloopai/api-client-python/commit/bee1e4fb7aa9e167396927f712400223a6f176b2))
10
+ * **api:** api update ([#188](https://github.com/runloopai/api-client-python/issues/188)) ([0b28873](https://github.com/runloopai/api-client-python/commit/0b28873e3bf6ce5ab6d35e8a30e0184d431fad4f))
11
+ * **api:** api update ([#189](https://github.com/runloopai/api-client-python/issues/189)) ([b0226b9](https://github.com/runloopai/api-client-python/commit/b0226b926a346ef24886dc5550da8a5275f9c9a2))
12
+
13
+ ## 0.1.0-alpha.23 (2024-10-07)
14
+
15
+ Full Changelog: [v0.1.0-alpha.22...v0.1.0-alpha.23](https://github.com/runloopai/api-client-python/compare/v0.1.0-alpha.22...v0.1.0-alpha.23)
16
+
17
+ ### Features
18
+
19
+ * **api:** OpenAPI spec update via Stainless API ([#177](https://github.com/runloopai/api-client-python/issues/177)) ([ffb1036](https://github.com/runloopai/api-client-python/commit/ffb1036dbfc4cbd07a13ecdd2b18325604d7674c))
20
+ * **api:** OpenAPI spec update via Stainless API ([#179](https://github.com/runloopai/api-client-python/issues/179)) ([77911b5](https://github.com/runloopai/api-client-python/commit/77911b5618161d23bba170802f102308ba21c13e))
21
+ * **api:** OpenAPI spec update via Stainless API ([#180](https://github.com/runloopai/api-client-python/issues/180)) ([0849ddb](https://github.com/runloopai/api-client-python/commit/0849ddb9062ba0c2e3d2adfb2e2b3f2f72f4c29b))
22
+ * **api:** OpenAPI spec update via Stainless API ([#184](https://github.com/runloopai/api-client-python/issues/184)) ([7022855](https://github.com/runloopai/api-client-python/commit/702285559eac8be1082f7a0b7a8f66d034377286))
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * **client:** avoid OverflowError with very large retry counts ([#182](https://github.com/runloopai/api-client-python/issues/182)) ([c183989](https://github.com/runloopai/api-client-python/commit/c183989104d3e2e283a082999ca5c6b5e93a463e))
28
+
29
+
30
+ ### Chores
31
+
32
+ * add repr to PageInfo class ([#183](https://github.com/runloopai/api-client-python/issues/183)) ([29b7283](https://github.com/runloopai/api-client-python/commit/29b7283228e3fa02621d65b93efff058c4330cba))
33
+ * **internal:** add support for parsing bool response content ([#181](https://github.com/runloopai/api-client-python/issues/181)) ([e2f1795](https://github.com/runloopai/api-client-python/commit/e2f1795c158baaf93118af62d4156629aa2ac816))
34
+
3
35
  ## 0.1.0-alpha.22 (2024-10-01)
4
36
 
5
37
  Full Changelog: [v0.1.0-alpha.21...v0.1.0-alpha.22](https://github.com/runloopai/api-client-python/compare/v0.1.0-alpha.21...v0.1.0-alpha.22)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 0.1.0a22
3
+ Version: 0.2.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,7 +50,7 @@ The REST API documentation can be found on [runloop.ai](https://runloop.ai). The
50
50
 
51
51
  ```sh
52
52
  # install from PyPI
53
- pip install --pre runloop_api_client
53
+ pip install runloop_api_client
54
54
  ```
55
55
 
56
56
  ## Usage
@@ -16,7 +16,7 @@ The REST API documentation can be found on [runloop.ai](https://runloop.ai). The
16
16
 
17
17
  ```sh
18
18
  # install from PyPI
19
- pip install --pre runloop_api_client
19
+ pip install runloop_api_client
20
20
  ```
21
21
 
22
22
  ## Usage
@@ -54,6 +54,7 @@ from runloop_api_client.types import (
54
54
  DevboxListView,
55
55
  DevboxView,
56
56
  DevboxCreateSSHKeyResponse,
57
+ DevboxDiskSnapshotsResponse,
57
58
  DevboxReadFileContentsResponse,
58
59
  DevboxUploadFileResponse,
59
60
  )
@@ -65,6 +66,8 @@ Methods:
65
66
  - <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
67
  - <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
68
  - <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>
69
+ - <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_disk_snapshots_response.py">DevboxDiskSnapshotsResponse</a></code>
70
+ - <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
71
  - <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
72
  - <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
73
  - <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>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.1.0-alpha.22"
3
+ version = "0.2.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -143,6 +143,12 @@ class PageInfo:
143
143
  self.url = url
144
144
  self.params = params
145
145
 
146
+ @override
147
+ def __repr__(self) -> str:
148
+ if self.url:
149
+ return f"{self.__class__.__name__}(url={self.url})"
150
+ return f"{self.__class__.__name__}(params={self.params})"
151
+
146
152
 
147
153
  class BasePage(GenericModel, Generic[_T]):
148
154
  """
@@ -689,7 +695,8 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
689
695
  if retry_after is not None and 0 < retry_after <= 60:
690
696
  return retry_after
691
697
 
692
- nb_retries = max_retries - remaining_retries
698
+ # Also cap retry count to 1000 to avoid any potential overflows with `pow`
699
+ nb_retries = min(max_retries - remaining_retries, 1000)
693
700
 
694
701
  # Apply exponential backoff, but not more than the max.
695
702
  sleep_seconds = min(INITIAL_RETRY_DELAY * pow(2.0, nb_retries), MAX_RETRY_DELAY)
@@ -192,6 +192,9 @@ class BaseAPIResponse(Generic[R]):
192
192
  if cast_to == float:
193
193
  return cast(R, float(response.text))
194
194
 
195
+ if cast_to == bool:
196
+ return cast(R, response.text.lower() == "true")
197
+
195
198
  origin = get_origin(cast_to) or cast_to
196
199
 
197
200
  if origin == APIResponse:
@@ -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.22" # x-release-please-version
4
+ __version__ = "0.2.0" # x-release-please-version
@@ -148,7 +148,7 @@ class BlueprintsResource(SyncAPIResource):
148
148
  def list(
149
149
  self,
150
150
  *,
151
- limit: str | NotGiven = NOT_GIVEN,
151
+ limit: int | NotGiven = NOT_GIVEN,
152
152
  name: str | NotGiven = NOT_GIVEN,
153
153
  starting_after: str | NotGiven = NOT_GIVEN,
154
154
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -410,7 +410,7 @@ class AsyncBlueprintsResource(AsyncAPIResource):
410
410
  async def list(
411
411
  self,
412
412
  *,
413
- limit: str | NotGiven = NOT_GIVEN,
413
+ limit: int | NotGiven = NOT_GIVEN,
414
414
  name: str | NotGiven = NOT_GIVEN,
415
415
  starting_after: str | NotGiven = NOT_GIVEN,
416
416
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -20,7 +20,9 @@ from ...types import (
20
20
  devbox_write_file_params,
21
21
  devbox_upload_file_params,
22
22
  devbox_execute_sync_params,
23
+ devbox_download_file_params,
23
24
  devbox_execute_async_params,
25
+ devbox_disk_snapshots_params,
24
26
  devbox_read_file_contents_params,
25
27
  )
26
28
  from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven, FileTypes
@@ -41,10 +43,18 @@ from .executions import (
41
43
  )
42
44
  from ..._resource import SyncAPIResource, AsyncAPIResource
43
45
  from ..._response import (
46
+ BinaryAPIResponse,
47
+ AsyncBinaryAPIResponse,
48
+ StreamedBinaryAPIResponse,
49
+ AsyncStreamedBinaryAPIResponse,
44
50
  to_raw_response_wrapper,
45
51
  to_streamed_response_wrapper,
46
52
  async_to_raw_response_wrapper,
53
+ to_custom_raw_response_wrapper,
47
54
  async_to_streamed_response_wrapper,
55
+ to_custom_streamed_response_wrapper,
56
+ async_to_custom_raw_response_wrapper,
57
+ async_to_custom_streamed_response_wrapper,
48
58
  )
49
59
  from ..._base_client import make_request_options
50
60
  from ...types.devbox_view import DevboxView
@@ -52,6 +62,7 @@ from ...types.devbox_list_view import DevboxListView
52
62
  from ...types.code_mount_parameters_param import CodeMountParametersParam
53
63
  from ...types.devbox_execution_detail_view import DevboxExecutionDetailView
54
64
  from ...types.devbox_create_ssh_key_response import DevboxCreateSSHKeyResponse
65
+ from ...types.devbox_disk_snapshots_response import DevboxDiskSnapshotsResponse
55
66
  from ...types.devbox_async_execution_detail_view import DevboxAsyncExecutionDetailView
56
67
 
57
68
  __all__ = ["DevboxesResource", "AsyncDevboxesResource"]
@@ -99,6 +110,7 @@ class DevboxesResource(SyncAPIResource):
99
110
  name: str | NotGiven = NOT_GIVEN,
100
111
  prebuilt: str | NotGiven = NOT_GIVEN,
101
112
  setup_commands: List[str] | NotGiven = NOT_GIVEN,
113
+ snapshot_id: str | NotGiven = NOT_GIVEN,
102
114
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
103
115
  # The extra values given here take precedence over values defined on the client or passed to this method.
104
116
  extra_headers: Headers | None = None,
@@ -140,6 +152,8 @@ class DevboxesResource(SyncAPIResource):
140
152
  fetching a tool or building your dependencies. Runloop will look optimize these
141
153
  steps for you.
142
154
 
155
+ snapshot_id: Snapshot ID to use for the Devbox.
156
+
143
157
  extra_headers: Send extra headers
144
158
 
145
159
  extra_query: Add additional query parameters to the request
@@ -163,6 +177,7 @@ class DevboxesResource(SyncAPIResource):
163
177
  "name": name,
164
178
  "prebuilt": prebuilt,
165
179
  "setup_commands": setup_commands,
180
+ "snapshot_id": snapshot_id,
166
181
  },
167
182
  devbox_create_params.DevboxCreateParams,
168
183
  ),
@@ -291,6 +306,90 @@ class DevboxesResource(SyncAPIResource):
291
306
  cast_to=DevboxCreateSSHKeyResponse,
292
307
  )
293
308
 
309
+ def disk_snapshots(
310
+ self,
311
+ *,
312
+ limit: int | NotGiven = NOT_GIVEN,
313
+ starting_after: str | NotGiven = NOT_GIVEN,
314
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
315
+ # The extra values given here take precedence over values defined on the client or passed to this method.
316
+ extra_headers: Headers | None = None,
317
+ extra_query: Query | None = None,
318
+ extra_body: Body | None = None,
319
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
320
+ ) -> DevboxDiskSnapshotsResponse:
321
+ """
322
+ List all snapshots of a devbox by id.
323
+
324
+ Args:
325
+ limit: Page Limit
326
+
327
+ starting_after: Load the next page starting after the given token.
328
+
329
+ extra_headers: Send extra headers
330
+
331
+ extra_query: Add additional query parameters to the request
332
+
333
+ extra_body: Add additional JSON properties to the request
334
+
335
+ timeout: Override the client-level default timeout for this request, in seconds
336
+ """
337
+ return self._get(
338
+ "/v1/devboxes/disk_snapshots",
339
+ options=make_request_options(
340
+ extra_headers=extra_headers,
341
+ extra_query=extra_query,
342
+ extra_body=extra_body,
343
+ timeout=timeout,
344
+ query=maybe_transform(
345
+ {
346
+ "limit": limit,
347
+ "starting_after": starting_after,
348
+ },
349
+ devbox_disk_snapshots_params.DevboxDiskSnapshotsParams,
350
+ ),
351
+ ),
352
+ cast_to=DevboxDiskSnapshotsResponse,
353
+ )
354
+
355
+ def download_file(
356
+ self,
357
+ id: str,
358
+ *,
359
+ path: str,
360
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
361
+ # The extra values given here take precedence over values defined on the client or passed to this method.
362
+ extra_headers: Headers | None = None,
363
+ extra_query: Query | None = None,
364
+ extra_body: Body | None = None,
365
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
366
+ ) -> BinaryAPIResponse:
367
+ """
368
+ Download file contents to a file at path on the Devbox.
369
+
370
+ Args:
371
+ path: The path on the devbox to read the file
372
+
373
+ extra_headers: Send extra headers
374
+
375
+ extra_query: Add additional query parameters to the request
376
+
377
+ extra_body: Add additional JSON properties to the request
378
+
379
+ timeout: Override the client-level default timeout for this request, in seconds
380
+ """
381
+ if not id:
382
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
383
+ extra_headers = {"Accept": "application/octet-stream", **(extra_headers or {})}
384
+ return self._post(
385
+ f"/v1/devboxes/{id}/download_file",
386
+ body=maybe_transform({"path": path}, devbox_download_file_params.DevboxDownloadFileParams),
387
+ options=make_request_options(
388
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
389
+ ),
390
+ cast_to=BinaryAPIResponse,
391
+ )
392
+
294
393
  def execute_async(
295
394
  self,
296
395
  id: str,
@@ -594,6 +693,7 @@ class AsyncDevboxesResource(AsyncAPIResource):
594
693
  name: str | NotGiven = NOT_GIVEN,
595
694
  prebuilt: str | NotGiven = NOT_GIVEN,
596
695
  setup_commands: List[str] | NotGiven = NOT_GIVEN,
696
+ snapshot_id: str | NotGiven = NOT_GIVEN,
597
697
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
598
698
  # The extra values given here take precedence over values defined on the client or passed to this method.
599
699
  extra_headers: Headers | None = None,
@@ -635,6 +735,8 @@ class AsyncDevboxesResource(AsyncAPIResource):
635
735
  fetching a tool or building your dependencies. Runloop will look optimize these
636
736
  steps for you.
637
737
 
738
+ snapshot_id: Snapshot ID to use for the Devbox.
739
+
638
740
  extra_headers: Send extra headers
639
741
 
640
742
  extra_query: Add additional query parameters to the request
@@ -658,6 +760,7 @@ class AsyncDevboxesResource(AsyncAPIResource):
658
760
  "name": name,
659
761
  "prebuilt": prebuilt,
660
762
  "setup_commands": setup_commands,
763
+ "snapshot_id": snapshot_id,
661
764
  },
662
765
  devbox_create_params.DevboxCreateParams,
663
766
  ),
@@ -786,6 +889,90 @@ class AsyncDevboxesResource(AsyncAPIResource):
786
889
  cast_to=DevboxCreateSSHKeyResponse,
787
890
  )
788
891
 
892
+ async def disk_snapshots(
893
+ self,
894
+ *,
895
+ limit: int | NotGiven = NOT_GIVEN,
896
+ starting_after: str | NotGiven = NOT_GIVEN,
897
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
898
+ # The extra values given here take precedence over values defined on the client or passed to this method.
899
+ extra_headers: Headers | None = None,
900
+ extra_query: Query | None = None,
901
+ extra_body: Body | None = None,
902
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
903
+ ) -> DevboxDiskSnapshotsResponse:
904
+ """
905
+ List all snapshots of a devbox by id.
906
+
907
+ Args:
908
+ limit: Page Limit
909
+
910
+ starting_after: Load the next page starting after the given token.
911
+
912
+ extra_headers: Send extra headers
913
+
914
+ extra_query: Add additional query parameters to the request
915
+
916
+ extra_body: Add additional JSON properties to the request
917
+
918
+ timeout: Override the client-level default timeout for this request, in seconds
919
+ """
920
+ return await self._get(
921
+ "/v1/devboxes/disk_snapshots",
922
+ options=make_request_options(
923
+ extra_headers=extra_headers,
924
+ extra_query=extra_query,
925
+ extra_body=extra_body,
926
+ timeout=timeout,
927
+ query=await async_maybe_transform(
928
+ {
929
+ "limit": limit,
930
+ "starting_after": starting_after,
931
+ },
932
+ devbox_disk_snapshots_params.DevboxDiskSnapshotsParams,
933
+ ),
934
+ ),
935
+ cast_to=DevboxDiskSnapshotsResponse,
936
+ )
937
+
938
+ async def download_file(
939
+ self,
940
+ id: str,
941
+ *,
942
+ path: str,
943
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
944
+ # The extra values given here take precedence over values defined on the client or passed to this method.
945
+ extra_headers: Headers | None = None,
946
+ extra_query: Query | None = None,
947
+ extra_body: Body | None = None,
948
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
949
+ ) -> AsyncBinaryAPIResponse:
950
+ """
951
+ Download file contents to a file at path on the Devbox.
952
+
953
+ Args:
954
+ path: The path on the devbox to read the file
955
+
956
+ extra_headers: Send extra headers
957
+
958
+ extra_query: Add additional query parameters to the request
959
+
960
+ extra_body: Add additional JSON properties to the request
961
+
962
+ timeout: Override the client-level default timeout for this request, in seconds
963
+ """
964
+ if not id:
965
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
966
+ extra_headers = {"Accept": "application/octet-stream", **(extra_headers or {})}
967
+ return await self._post(
968
+ f"/v1/devboxes/{id}/download_file",
969
+ body=await async_maybe_transform({"path": path}, devbox_download_file_params.DevboxDownloadFileParams),
970
+ options=make_request_options(
971
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
972
+ ),
973
+ cast_to=AsyncBinaryAPIResponse,
974
+ )
975
+
789
976
  async def execute_async(
790
977
  self,
791
978
  id: str,
@@ -1063,6 +1250,13 @@ class DevboxesResourceWithRawResponse:
1063
1250
  self.create_ssh_key = to_raw_response_wrapper(
1064
1251
  devboxes.create_ssh_key,
1065
1252
  )
1253
+ self.disk_snapshots = to_raw_response_wrapper(
1254
+ devboxes.disk_snapshots,
1255
+ )
1256
+ self.download_file = to_custom_raw_response_wrapper(
1257
+ devboxes.download_file,
1258
+ BinaryAPIResponse,
1259
+ )
1066
1260
  self.execute_async = to_raw_response_wrapper(
1067
1261
  devboxes.execute_async,
1068
1262
  )
@@ -1107,6 +1301,13 @@ class AsyncDevboxesResourceWithRawResponse:
1107
1301
  self.create_ssh_key = async_to_raw_response_wrapper(
1108
1302
  devboxes.create_ssh_key,
1109
1303
  )
1304
+ self.disk_snapshots = async_to_raw_response_wrapper(
1305
+ devboxes.disk_snapshots,
1306
+ )
1307
+ self.download_file = async_to_custom_raw_response_wrapper(
1308
+ devboxes.download_file,
1309
+ AsyncBinaryAPIResponse,
1310
+ )
1110
1311
  self.execute_async = async_to_raw_response_wrapper(
1111
1312
  devboxes.execute_async,
1112
1313
  )
@@ -1151,6 +1352,13 @@ class DevboxesResourceWithStreamingResponse:
1151
1352
  self.create_ssh_key = to_streamed_response_wrapper(
1152
1353
  devboxes.create_ssh_key,
1153
1354
  )
1355
+ self.disk_snapshots = to_streamed_response_wrapper(
1356
+ devboxes.disk_snapshots,
1357
+ )
1358
+ self.download_file = to_custom_streamed_response_wrapper(
1359
+ devboxes.download_file,
1360
+ StreamedBinaryAPIResponse,
1361
+ )
1154
1362
  self.execute_async = to_streamed_response_wrapper(
1155
1363
  devboxes.execute_async,
1156
1364
  )
@@ -1195,6 +1403,13 @@ class AsyncDevboxesResourceWithStreamingResponse:
1195
1403
  self.create_ssh_key = async_to_streamed_response_wrapper(
1196
1404
  devboxes.create_ssh_key,
1197
1405
  )
1406
+ self.disk_snapshots = async_to_streamed_response_wrapper(
1407
+ devboxes.disk_snapshots,
1408
+ )
1409
+ self.download_file = async_to_custom_streamed_response_wrapper(
1410
+ devboxes.download_file,
1411
+ AsyncStreamedBinaryAPIResponse,
1412
+ )
1198
1413
  self.execute_async = async_to_streamed_response_wrapper(
1199
1414
  devboxes.execute_async,
1200
1415
  )
@@ -26,12 +26,15 @@ from .devbox_upload_file_params import DevboxUploadFileParams as DevboxUploadFil
26
26
  from .blueprint_build_parameters import BlueprintBuildParameters as BlueprintBuildParameters
27
27
  from .devbox_execute_sync_params import DevboxExecuteSyncParams as DevboxExecuteSyncParams
28
28
  from .code_mount_parameters_param import CodeMountParametersParam as CodeMountParametersParam
29
+ from .devbox_download_file_params import DevboxDownloadFileParams as DevboxDownloadFileParams
29
30
  from .devbox_execute_async_params import DevboxExecuteAsyncParams as DevboxExecuteAsyncParams
30
31
  from .function_invoke_sync_params import FunctionInvokeSyncParams as FunctionInvokeSyncParams
32
+ from .devbox_disk_snapshots_params import DevboxDiskSnapshotsParams as DevboxDiskSnapshotsParams
31
33
  from .devbox_execution_detail_view import DevboxExecutionDetailView as DevboxExecutionDetailView
32
34
  from .function_invoke_async_params import FunctionInvokeAsyncParams as FunctionInvokeAsyncParams
33
35
  from .blueprint_build_logs_list_view import BlueprintBuildLogsListView as BlueprintBuildLogsListView
34
36
  from .devbox_create_ssh_key_response import DevboxCreateSSHKeyResponse as DevboxCreateSSHKeyResponse
37
+ from .devbox_disk_snapshots_response import DevboxDiskSnapshotsResponse as DevboxDiskSnapshotsResponse
35
38
  from .devbox_read_file_contents_params import DevboxReadFileContentsParams as DevboxReadFileContentsParams
36
39
  from .devbox_async_execution_detail_view import DevboxAsyncExecutionDetailView as DevboxAsyncExecutionDetailView
37
40
  from .devbox_read_file_contents_response import DevboxReadFileContentsResponse as DevboxReadFileContentsResponse
@@ -8,7 +8,7 @@ __all__ = ["BlueprintListParams"]
8
8
 
9
9
 
10
10
  class BlueprintListParams(TypedDict, total=False):
11
- limit: str
11
+ limit: int
12
12
  """Page Limit"""
13
13
 
14
14
  name: str
@@ -60,6 +60,9 @@ class DevboxCreateParams(TypedDict, total=False):
60
60
  will look optimize these steps for you.
61
61
  """
62
62
 
63
+ snapshot_id: str
64
+ """Snapshot ID to use for the Devbox."""
65
+
63
66
 
64
67
  class LaunchParameters(TypedDict, total=False):
65
68
  keep_alive_time_seconds: int
@@ -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__ = ["DevboxDiskSnapshotsParams"]
8
+
9
+
10
+ class DevboxDiskSnapshotsParams(TypedDict, total=False):
11
+ limit: int
12
+ """Page Limit"""
13
+
14
+ starting_after: str
15
+ """Load the next page starting after the given token."""
@@ -0,0 +1,32 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, List, Optional
4
+
5
+ from pydantic import Field as FieldInfo
6
+
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["DevboxDiskSnapshotsResponse", "Snapshot"]
10
+
11
+
12
+ class Snapshot(BaseModel):
13
+ id: str
14
+ """The unique identifier of the snapshot."""
15
+
16
+ metadata: Dict[str, str]
17
+ """metadata associated with the snapshot."""
18
+
19
+ source_devbox_id: str = FieldInfo(alias="sourceDevboxId")
20
+ """The source devbox identifier."""
21
+
22
+ name: Optional[str] = None
23
+ """(Optional) The custom name of the snapshot."""
24
+
25
+
26
+ class DevboxDiskSnapshotsResponse(BaseModel):
27
+ has_more: bool
28
+
29
+ snapshots: List[Snapshot]
30
+ """List of snapshots matching filter."""
31
+
32
+ total_count: int
@@ -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 Required, TypedDict
6
+
7
+ __all__ = ["DevboxDownloadFileParams"]
8
+
9
+
10
+ class DevboxDownloadFileParams(TypedDict, total=False):
11
+ path: Required[str]
12
+ """The path on the devbox to read the file"""
@@ -134,7 +134,7 @@ class TestBlueprints:
134
134
  @parametrize
135
135
  def test_method_list_with_all_params(self, client: Runloop) -> None:
136
136
  blueprint = client.blueprints.list(
137
- limit="limit",
137
+ limit=0,
138
138
  name="name",
139
139
  starting_after="starting_after",
140
140
  )
@@ -380,7 +380,7 @@ class TestAsyncBlueprints:
380
380
  @parametrize
381
381
  async def test_method_list_with_all_params(self, async_client: AsyncRunloop) -> None:
382
382
  blueprint = await async_client.blueprints.list(
383
- limit="limit",
383
+ limit=0,
384
384
  name="name",
385
385
  starting_after="starting_after",
386
386
  )