render 1.7.0__tar.gz → 1.8.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 (929) hide show
  1. {render-1.7.0 → render-1.8.0}/CHANGELOG.md +16 -0
  2. {render-1.7.0 → render-1.8.0}/PKG-INFO +1 -1
  3. {render-1.7.0 → render-1.8.0}/pyproject.toml +1 -1
  4. {render-1.7.0 → render-1.8.0}/render/__init__.py +1 -1
  5. {render-1.7.0 → render-1.8.0}/render/client/errors.py +22 -7
  6. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/__init__.py +4 -0
  7. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/api.py +47 -1
  8. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/api_sync.py +47 -1
  9. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/client.py +28 -2
  10. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/client_sync.py +30 -2
  11. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/errors.py +11 -0
  12. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/tests/test_client.py +187 -0
  13. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/types.py +2 -0
  14. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/connect_sandbox_files.py +13 -4
  15. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/connect_sandbox_run.py +13 -4
  16. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/create_sandbox.py +16 -8
  17. render-1.8.0/render/public_api/api/sandboxes/delete_sandbox_group.py +222 -0
  18. render-1.8.0/render/public_api/api/sandboxes/list_sandbox_builds.py +294 -0
  19. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/list_sandboxes.py +15 -0
  20. render-1.8.0/render/public_api/api/sandboxes/set_default_sandbox_group.py +220 -0
  21. render-1.8.0/render/public_api/api/shared_filesystems/list_shared_filesystems.py +208 -0
  22. render-1.8.0/render/public_api/api/workspaces/__init__.py +1 -0
  23. {render-1.7.0 → render-1.8.0}/render/public_api/models/__init__.py +6 -0
  24. {render-1.7.0 → render-1.8.0}/render/public_api/models/error_code.py +2 -0
  25. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox.py +42 -0
  26. render-1.8.0/render/public_api/models/sandbox_build_with_cursor.py +74 -0
  27. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_post.py +41 -4
  28. render-1.8.0/render/public_api/models/sandbox_shared_filesystem.py +73 -0
  29. render-1.8.0/render/public_api/models/shared_filesystem.py +97 -0
  30. {render-1.7.0 → render-1.8.0}/render/public_api/models/workflow.py +10 -0
  31. {render-1.7.0 → render-1.8.0}/render/sandbox/__init__.py +4 -0
  32. {render-1.7.0 → render-1.8.0}/render/workflows/__init__.py +2 -1
  33. {render-1.7.0 → render-1.8.0}/render/workflows/_determinism.py +3 -4
  34. {render-1.7.0 → render-1.8.0}/render/workflows/_models/history.py +0 -25
  35. {render-1.7.0 → render-1.8.0}/render/workflows/_models/step.py +2 -0
  36. {render-1.7.0 → render-1.8.0}/render/workflows/_utils/serializers.py +3 -0
  37. render-1.8.0/render/workflows/_utils/step_errors.py +81 -0
  38. {render-1.7.0 → render-1.8.0}/render/workflows/_utils/step_journal.py +33 -46
  39. {render-1.7.0 → render-1.8.0}/render/workflows/durable_context.py +91 -176
  40. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_flow.py +390 -127
  41. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_history.py +8 -3
  42. render-1.8.0/render/workflows/tests/test_runtime_failure.py +115 -0
  43. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_step_journal.py +6 -12
  44. render-1.8.0/render/workflows/tests/test_step_transport.py +172 -0
  45. {render-1.7.0 → render-1.8.0}/uv.lock +1 -1
  46. {render-1.7.0 → render-1.8.0}/.gitignore +0 -0
  47. {render-1.7.0 → render-1.8.0}/.python-version +0 -0
  48. {render-1.7.0 → render-1.8.0}/LICENSE +0 -0
  49. {render-1.7.0 → render-1.8.0}/README.md +0 -0
  50. {render-1.7.0 → render-1.8.0}/example/__init__.py +0 -0
  51. {render-1.7.0 → render-1.8.0}/example/client/__init__.py +0 -0
  52. {render-1.7.0 → render-1.8.0}/example/client/async_main.py +0 -0
  53. {render-1.7.0 → render-1.8.0}/example/client/main.py +0 -0
  54. {render-1.7.0 → render-1.8.0}/example/flow/__init__.py +0 -0
  55. {render-1.7.0 → render-1.8.0}/example/flow/main.py +0 -0
  56. {render-1.7.0 → render-1.8.0}/example/flow/tests/test_flow_examples.py +0 -0
  57. {render-1.7.0 → render-1.8.0}/example/sandbox/__init__.py +0 -0
  58. {render-1.7.0 → render-1.8.0}/example/sandbox/main.py +0 -0
  59. {render-1.7.0 → render-1.8.0}/example/task/__init__.py +0 -0
  60. {render-1.7.0 → render-1.8.0}/example/task/main.py +0 -0
  61. {render-1.7.0 → render-1.8.0}/render/_startup.py +0 -0
  62. {render-1.7.0 → render-1.8.0}/render/client/__init__.py +0 -0
  63. {render-1.7.0 → render-1.8.0}/render/client/_flow_wait.py +0 -0
  64. {render-1.7.0 → render-1.8.0}/render/client/_requests.py +0 -0
  65. {render-1.7.0 → render-1.8.0}/render/client/client.py +0 -0
  66. {render-1.7.0 → render-1.8.0}/render/client/sse.py +0 -0
  67. {render-1.7.0 → render-1.8.0}/render/client/sse_sync.py +0 -0
  68. {render-1.7.0 → render-1.8.0}/render/client/tests/__init__.py +0 -0
  69. {render-1.7.0 → render-1.8.0}/render/client/tests/test_client.py +0 -0
  70. {render-1.7.0 → render-1.8.0}/render/client/tests/test_flow_wait.py +0 -0
  71. {render-1.7.0 → render-1.8.0}/render/client/tests/test_method_parity.py +0 -0
  72. {render-1.7.0 → render-1.8.0}/render/client/tests/test_render.py +0 -0
  73. {render-1.7.0 → render-1.8.0}/render/client/tests/test_requests.py +0 -0
  74. {render-1.7.0 → render-1.8.0}/render/client/tests/test_sse.py +0 -0
  75. {render-1.7.0 → render-1.8.0}/render/client/tests/test_util.py +0 -0
  76. {render-1.7.0 → render-1.8.0}/render/client/tests/test_util_sync.py +0 -0
  77. {render-1.7.0 → render-1.8.0}/render/client/tests/test_workflows_sync.py +0 -0
  78. {render-1.7.0 → render-1.8.0}/render/client/types.py +0 -0
  79. {render-1.7.0 → render-1.8.0}/render/client/util.py +0 -0
  80. {render-1.7.0 → render-1.8.0}/render/client/util_sync.py +0 -0
  81. {render-1.7.0 → render-1.8.0}/render/client/workflows.py +0 -0
  82. {render-1.7.0 → render-1.8.0}/render/client/workflows_sync.py +0 -0
  83. {render-1.7.0 → render-1.8.0}/render/experimental/__init__.py +0 -0
  84. {render-1.7.0 → render-1.8.0}/render/experimental/experimental.py +0 -0
  85. {render-1.7.0 → render-1.8.0}/render/experimental/experimental_sync.py +0 -0
  86. {render-1.7.0 → render-1.8.0}/render/experimental/key_value/__init__.py +0 -0
  87. {render-1.7.0 → render-1.8.0}/render/experimental/key_value/api.py +0 -0
  88. {render-1.7.0 → render-1.8.0}/render/experimental/key_value/compare.py +0 -0
  89. {render-1.7.0 → render-1.8.0}/render/experimental/key_value/provider.py +0 -0
  90. {render-1.7.0 → render-1.8.0}/render/experimental/key_value/tests/__init__.py +0 -0
  91. {render-1.7.0 → render-1.8.0}/render/experimental/key_value/tests/test_api.py +0 -0
  92. {render-1.7.0 → render-1.8.0}/render/experimental/key_value/tests/test_compare.py +0 -0
  93. {render-1.7.0 → render-1.8.0}/render/experimental/key_value/tests/test_provider.py +0 -0
  94. {render-1.7.0 → render-1.8.0}/render/experimental/key_value/tests/test_types.py +0 -0
  95. {render-1.7.0 → render-1.8.0}/render/experimental/key_value/types.py +0 -0
  96. {render-1.7.0 → render-1.8.0}/render/experimental/key_value/utils.py +0 -0
  97. {render-1.7.0 → render-1.8.0}/render/experimental/object/__init__.py +0 -0
  98. {render-1.7.0 → render-1.8.0}/render/experimental/object/api.py +0 -0
  99. {render-1.7.0 → render-1.8.0}/render/experimental/object/api_sync.py +0 -0
  100. {render-1.7.0 → render-1.8.0}/render/experimental/object/client.py +0 -0
  101. {render-1.7.0 → render-1.8.0}/render/experimental/object/client_sync.py +0 -0
  102. {render-1.7.0 → render-1.8.0}/render/experimental/object/e2e_helpers.py +0 -0
  103. {render-1.7.0 → render-1.8.0}/render/experimental/object/tests/__init__.py +0 -0
  104. {render-1.7.0 → render-1.8.0}/render/experimental/object/tests/rate_limit.py +0 -0
  105. {render-1.7.0 → render-1.8.0}/render/experimental/object/tests/test_client.py +0 -0
  106. {render-1.7.0 → render-1.8.0}/render/experimental/object/tests/test_e2e.py +0 -0
  107. {render-1.7.0 → render-1.8.0}/render/experimental/object/tests/test_rate_limit.py +0 -0
  108. {render-1.7.0 → render-1.8.0}/render/experimental/object/types.py +0 -0
  109. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/_tar.py +0 -0
  110. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/_wait.py +0 -0
  111. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/files.py +0 -0
  112. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/tests/__init__.py +0 -0
  113. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/tests/test_download.py +0 -0
  114. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/tests/test_e2e.py +0 -0
  115. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/tests/test_images.py +0 -0
  116. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/tests/test_snapshots.py +0 -0
  117. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/tests/test_tar.py +0 -0
  118. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/tests/test_types.py +0 -0
  119. {render-1.7.0 → render-1.8.0}/render/experimental/sandbox/tests/test_wait.py +0 -0
  120. {render-1.7.0 → render-1.8.0}/render/public_api/__init__.py +0 -0
  121. {render-1.7.0 → render-1.8.0}/render/public_api/api/__init__.py +0 -0
  122. {render-1.7.0 → render-1.8.0}/render/public_api/api/audit_logs/__init__.py +0 -0
  123. {render-1.7.0 → render-1.8.0}/render/public_api/api/audit_logs/list_organization_audit_logs.py +0 -0
  124. {render-1.7.0 → render-1.8.0}/render/public_api/api/audit_logs/list_owner_audit_logs.py +0 -0
  125. {render-1.7.0 → render-1.8.0}/render/public_api/api/blueprints/__init__.py +0 -0
  126. {render-1.7.0 → render-1.8.0}/render/public_api/api/blueprints/disconnect_blueprint.py +0 -0
  127. {render-1.7.0 → render-1.8.0}/render/public_api/api/blueprints/list_blueprint_syncs.py +0 -0
  128. {render-1.7.0 → render-1.8.0}/render/public_api/api/blueprints/list_blueprints.py +0 -0
  129. {render-1.7.0 → render-1.8.0}/render/public_api/api/blueprints/retrieve_blueprint.py +0 -0
  130. {render-1.7.0 → render-1.8.0}/render/public_api/api/blueprints/update_blueprint.py +0 -0
  131. {render-1.7.0 → render-1.8.0}/render/public_api/api/blueprints/validate_blueprint.py +0 -0
  132. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/__init__.py +0 -0
  133. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/add_or_update_build_source_secret_file.py +0 -0
  134. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/create_build_source.py +0 -0
  135. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/delete_build_source.py +0 -0
  136. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/delete_build_source_env_var.py +0 -0
  137. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/delete_build_source_secret_file.py +0 -0
  138. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/get_build_source.py +0 -0
  139. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/get_env_vars_for_build_source.py +0 -0
  140. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/link_env_group_to_build_source.py +0 -0
  141. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/list_build_sources.py +0 -0
  142. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/list_builds_in_build_source.py +0 -0
  143. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/list_secret_files_for_build_source.py +0 -0
  144. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/retrieve_build_source_build.py +0 -0
  145. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/retrieve_build_source_env_var.py +0 -0
  146. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/retrieve_build_source_secret_file.py +0 -0
  147. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/trigger_build_source_build.py +0 -0
  148. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/unlink_env_group_from_build_source.py +0 -0
  149. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/update_build_source.py +0 -0
  150. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/update_build_source_env_var.py +0 -0
  151. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/update_env_vars_for_build_source.py +0 -0
  152. {render-1.7.0 → render-1.8.0}/render/public_api/api/build_sources/update_secret_files_for_build_source.py +0 -0
  153. {render-1.7.0 → render-1.8.0}/render/public_api/api/custom_domains/__init__.py +0 -0
  154. {render-1.7.0 → render-1.8.0}/render/public_api/api/custom_domains/create_custom_domain.py +0 -0
  155. {render-1.7.0 → render-1.8.0}/render/public_api/api/custom_domains/delete_custom_domain.py +0 -0
  156. {render-1.7.0 → render-1.8.0}/render/public_api/api/custom_domains/list_custom_domains.py +0 -0
  157. {render-1.7.0 → render-1.8.0}/render/public_api/api/custom_domains/refresh_custom_domain.py +0 -0
  158. {render-1.7.0 → render-1.8.0}/render/public_api/api/custom_domains/retrieve_custom_domain.py +0 -0
  159. {render-1.7.0 → render-1.8.0}/render/public_api/api/dedicated_i_ps/__init__.py +0 -0
  160. {render-1.7.0 → render-1.8.0}/render/public_api/api/dedicated_i_ps/create_dedicated_ip.py +0 -0
  161. {render-1.7.0 → render-1.8.0}/render/public_api/api/dedicated_i_ps/delete_dedicated_ip.py +0 -0
  162. {render-1.7.0 → render-1.8.0}/render/public_api/api/dedicated_i_ps/list_dedicated_ips.py +0 -0
  163. {render-1.7.0 → render-1.8.0}/render/public_api/api/dedicated_i_ps/retrieve_dedicated_ip.py +0 -0
  164. {render-1.7.0 → render-1.8.0}/render/public_api/api/dedicated_i_ps/update_dedicated_ip.py +0 -0
  165. {render-1.7.0 → render-1.8.0}/render/public_api/api/deploys/__init__.py +0 -0
  166. {render-1.7.0 → render-1.8.0}/render/public_api/api/deploys/cancel_deploy.py +0 -0
  167. {render-1.7.0 → render-1.8.0}/render/public_api/api/deploys/create_deploy.py +0 -0
  168. {render-1.7.0 → render-1.8.0}/render/public_api/api/deploys/list_deploys.py +0 -0
  169. {render-1.7.0 → render-1.8.0}/render/public_api/api/deploys/retrieve_deploy.py +0 -0
  170. {render-1.7.0 → render-1.8.0}/render/public_api/api/deploys/rollback_deploy.py +0 -0
  171. {render-1.7.0 → render-1.8.0}/render/public_api/api/disks/__init__.py +0 -0
  172. {render-1.7.0 → render-1.8.0}/render/public_api/api/disks/add_disk.py +0 -0
  173. {render-1.7.0 → render-1.8.0}/render/public_api/api/disks/delete_disk.py +0 -0
  174. {render-1.7.0 → render-1.8.0}/render/public_api/api/disks/list_disks.py +0 -0
  175. {render-1.7.0 → render-1.8.0}/render/public_api/api/disks/list_snapshots.py +0 -0
  176. {render-1.7.0 → render-1.8.0}/render/public_api/api/disks/restore_snapshot.py +0 -0
  177. {render-1.7.0 → render-1.8.0}/render/public_api/api/disks/retrieve_disk.py +0 -0
  178. {render-1.7.0 → render-1.8.0}/render/public_api/api/disks/update_disk.py +0 -0
  179. {render-1.7.0 → render-1.8.0}/render/public_api/api/environment_groups/__init__.py +0 -0
  180. {render-1.7.0 → render-1.8.0}/render/public_api/api/environment_groups/create_env_group.py +0 -0
  181. {render-1.7.0 → render-1.8.0}/render/public_api/api/environment_groups/delete_env_group.py +0 -0
  182. {render-1.7.0 → render-1.8.0}/render/public_api/api/environment_groups/delete_env_group_env_var.py +0 -0
  183. {render-1.7.0 → render-1.8.0}/render/public_api/api/environment_groups/delete_env_group_secret_file.py +0 -0
  184. {render-1.7.0 → render-1.8.0}/render/public_api/api/environment_groups/link_service_to_env_group.py +0 -0
  185. {render-1.7.0 → render-1.8.0}/render/public_api/api/environment_groups/list_env_groups.py +0 -0
  186. {render-1.7.0 → render-1.8.0}/render/public_api/api/environment_groups/retrieve_env_group.py +0 -0
  187. {render-1.7.0 → render-1.8.0}/render/public_api/api/environment_groups/retrieve_env_group_env_var.py +0 -0
  188. {render-1.7.0 → render-1.8.0}/render/public_api/api/environment_groups/retrieve_env_group_secret_file.py +0 -0
  189. {render-1.7.0 → render-1.8.0}/render/public_api/api/environment_groups/unlink_service_from_env_group.py +0 -0
  190. {render-1.7.0 → render-1.8.0}/render/public_api/api/environment_groups/update_env_group.py +0 -0
  191. {render-1.7.0 → render-1.8.0}/render/public_api/api/environment_groups/update_env_group_env_var.py +0 -0
  192. {render-1.7.0 → render-1.8.0}/render/public_api/api/environment_groups/update_env_group_secret_file.py +0 -0
  193. {render-1.7.0 → render-1.8.0}/render/public_api/api/events/__init__.py +0 -0
  194. {render-1.7.0 → render-1.8.0}/render/public_api/api/events/retrieve_event.py +0 -0
  195. {render-1.7.0 → render-1.8.0}/render/public_api/api/key_value/__init__.py +0 -0
  196. {render-1.7.0 → render-1.8.0}/render/public_api/api/key_value/create_key_value.py +0 -0
  197. {render-1.7.0 → render-1.8.0}/render/public_api/api/key_value/delete_key_value.py +0 -0
  198. {render-1.7.0 → render-1.8.0}/render/public_api/api/key_value/list_key_value.py +0 -0
  199. {render-1.7.0 → render-1.8.0}/render/public_api/api/key_value/resume_key_value.py +0 -0
  200. {render-1.7.0 → render-1.8.0}/render/public_api/api/key_value/retrieve_key_value.py +0 -0
  201. {render-1.7.0 → render-1.8.0}/render/public_api/api/key_value/retrieve_key_value_connection_info.py +0 -0
  202. {render-1.7.0 → render-1.8.0}/render/public_api/api/key_value/suspend_key_value.py +0 -0
  203. {render-1.7.0 → render-1.8.0}/render/public_api/api/key_value/update_key_value.py +0 -0
  204. {render-1.7.0 → render-1.8.0}/render/public_api/api/logs/__init__.py +0 -0
  205. {render-1.7.0 → render-1.8.0}/render/public_api/api/logs/delete_owner_log_stream.py +0 -0
  206. {render-1.7.0 → render-1.8.0}/render/public_api/api/logs/delete_resource_log_stream.py +0 -0
  207. {render-1.7.0 → render-1.8.0}/render/public_api/api/logs/get_owner_log_stream.py +0 -0
  208. {render-1.7.0 → render-1.8.0}/render/public_api/api/logs/get_resource_log_stream.py +0 -0
  209. {render-1.7.0 → render-1.8.0}/render/public_api/api/logs/list_logs.py +0 -0
  210. {render-1.7.0 → render-1.8.0}/render/public_api/api/logs/list_logs_values.py +0 -0
  211. {render-1.7.0 → render-1.8.0}/render/public_api/api/logs/list_resource_log_streams.py +0 -0
  212. {render-1.7.0 → render-1.8.0}/render/public_api/api/logs/subscribe_logs.py +0 -0
  213. {render-1.7.0 → render-1.8.0}/render/public_api/api/logs/update_owner_log_stream.py +0 -0
  214. {render-1.7.0 → render-1.8.0}/render/public_api/api/logs/update_resource_log_stream.py +0 -0
  215. {render-1.7.0 → render-1.8.0}/render/public_api/api/maintenance/__init__.py +0 -0
  216. {render-1.7.0 → render-1.8.0}/render/public_api/api/maintenance/list_maintenance.py +0 -0
  217. {render-1.7.0 → render-1.8.0}/render/public_api/api/maintenance/retrieve_maintenance.py +0 -0
  218. {render-1.7.0 → render-1.8.0}/render/public_api/api/maintenance/trigger_maintenance.py +0 -0
  219. {render-1.7.0 → render-1.8.0}/render/public_api/api/maintenance/update_maintenance.py +0 -0
  220. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/__init__.py +0 -0
  221. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/delete_owner_metrics_stream.py +0 -0
  222. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_active_connections.py +0 -0
  223. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_bandwidth.py +0 -0
  224. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_bandwidth_sources.py +0 -0
  225. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_cpu.py +0 -0
  226. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_cpu_limit.py +0 -0
  227. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_cpu_target.py +0 -0
  228. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_disk_capacity.py +0 -0
  229. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_disk_usage.py +0 -0
  230. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_http_latency.py +0 -0
  231. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_http_requests.py +0 -0
  232. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_instance_count.py +0 -0
  233. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_memory.py +0 -0
  234. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_memory_limit.py +0 -0
  235. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_memory_target.py +0 -0
  236. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_owner_metrics_stream.py +0 -0
  237. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_replication_lag.py +0 -0
  238. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_task_runs_completed.py +0 -0
  239. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/get_task_runs_queued.py +0 -0
  240. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/list_application_filter_values.py +0 -0
  241. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/list_http_filter_values.py +0 -0
  242. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/list_path_filter_values.py +0 -0
  243. {render-1.7.0 → render-1.8.0}/render/public_api/api/metrics/upsert_owner_metrics_stream.py +0 -0
  244. {render-1.7.0 → render-1.8.0}/render/public_api/api/notification_settings/__init__.py +0 -0
  245. {render-1.7.0 → render-1.8.0}/render/public_api/api/notification_settings/list_notification_overrides.py +0 -0
  246. {render-1.7.0 → render-1.8.0}/render/public_api/api/notification_settings/patch_owner_notification_settings.py +0 -0
  247. {render-1.7.0 → render-1.8.0}/render/public_api/api/notification_settings/patch_service_notification_overrides.py +0 -0
  248. {render-1.7.0 → render-1.8.0}/render/public_api/api/notification_settings/retrieve_owner_notification_settings.py +0 -0
  249. {render-1.7.0 → render-1.8.0}/render/public_api/api/notification_settings/retrieve_service_notification_overrides.py +0 -0
  250. {render-1.7.0 → render-1.8.0}/render/public_api/api/object_storage/__init__.py +0 -0
  251. {render-1.7.0 → render-1.8.0}/render/public_api/api/object_storage/delete_object.py +0 -0
  252. {render-1.7.0 → render-1.8.0}/render/public_api/api/object_storage/get_object.py +0 -0
  253. {render-1.7.0 → render-1.8.0}/render/public_api/api/object_storage/list_objects.py +0 -0
  254. {render-1.7.0 → render-1.8.0}/render/public_api/api/object_storage/put_object.py +0 -0
  255. {render-1.7.0 → render-1.8.0}/render/public_api/api/one_off_jobs/__init__.py +0 -0
  256. {render-1.7.0 → render-1.8.0}/render/public_api/api/one_off_jobs/cancel_job.py +0 -0
  257. {render-1.7.0 → render-1.8.0}/render/public_api/api/one_off_jobs/list_job.py +0 -0
  258. {render-1.7.0 → render-1.8.0}/render/public_api/api/one_off_jobs/post_job.py +0 -0
  259. {render-1.7.0 → render-1.8.0}/render/public_api/api/one_off_jobs/retrieve_job.py +0 -0
  260. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/__init__.py +0 -0
  261. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/create_postgres.py +0 -0
  262. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/create_postgres_export.py +0 -0
  263. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/create_postgres_user.py +0 -0
  264. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/delete_postgres.py +0 -0
  265. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/delete_postgres_user.py +0 -0
  266. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/failover_postgres.py +0 -0
  267. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/list_available_postgres_parameter_overrides.py +0 -0
  268. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/list_postgres.py +0 -0
  269. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/list_postgres_export.py +0 -0
  270. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/list_postgres_parameter_overrides.py +0 -0
  271. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/list_postgres_processes.py +0 -0
  272. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/list_postgres_sizes.py +0 -0
  273. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/list_postgres_table_scans.py +0 -0
  274. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/list_postgres_top_queries.py +0 -0
  275. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/list_postgres_users.py +0 -0
  276. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/promote_postgres.py +0 -0
  277. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/recover_postgres.py +0 -0
  278. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/restart_postgres.py +0 -0
  279. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/resume_postgres.py +0 -0
  280. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/retrieve_postgres.py +0 -0
  281. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/retrieve_postgres_connection_info.py +0 -0
  282. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/retrieve_postgres_recovery_info.py +0 -0
  283. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/setup_postgres_replication.py +0 -0
  284. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/suspend_postgres.py +0 -0
  285. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/update_postgres.py +0 -0
  286. {render-1.7.0 → render-1.8.0}/render/public_api/api/postgres/update_postgres_parameter_overrides.py +0 -0
  287. {render-1.7.0 → render-1.8.0}/render/public_api/api/projects_environments/__init__.py +0 -0
  288. {render-1.7.0 → render-1.8.0}/render/public_api/api/projects_environments/add_resources_to_environment.py +0 -0
  289. {render-1.7.0 → render-1.8.0}/render/public_api/api/projects_environments/create_environment.py +0 -0
  290. {render-1.7.0 → render-1.8.0}/render/public_api/api/projects_environments/create_project.py +0 -0
  291. {render-1.7.0 → render-1.8.0}/render/public_api/api/projects_environments/delete_environment.py +0 -0
  292. {render-1.7.0 → render-1.8.0}/render/public_api/api/projects_environments/delete_project.py +0 -0
  293. {render-1.7.0 → render-1.8.0}/render/public_api/api/projects_environments/list_environments.py +0 -0
  294. {render-1.7.0 → render-1.8.0}/render/public_api/api/projects_environments/list_projects.py +0 -0
  295. {render-1.7.0 → render-1.8.0}/render/public_api/api/projects_environments/remove_resources_from_environment.py +0 -0
  296. {render-1.7.0 → render-1.8.0}/render/public_api/api/projects_environments/retrieve_environment.py +0 -0
  297. {render-1.7.0 → render-1.8.0}/render/public_api/api/projects_environments/retrieve_project.py +0 -0
  298. {render-1.7.0 → render-1.8.0}/render/public_api/api/projects_environments/update_environment.py +0 -0
  299. {render-1.7.0 → render-1.8.0}/render/public_api/api/projects_environments/update_project.py +0 -0
  300. {render-1.7.0 → render-1.8.0}/render/public_api/api/redis_deprecated/__init__.py +0 -0
  301. {render-1.7.0 → render-1.8.0}/render/public_api/api/redis_deprecated/create_redis.py +0 -0
  302. {render-1.7.0 → render-1.8.0}/render/public_api/api/redis_deprecated/delete_redis.py +0 -0
  303. {render-1.7.0 → render-1.8.0}/render/public_api/api/redis_deprecated/list_redis.py +0 -0
  304. {render-1.7.0 → render-1.8.0}/render/public_api/api/redis_deprecated/resume_redis.py +0 -0
  305. {render-1.7.0 → render-1.8.0}/render/public_api/api/redis_deprecated/retrieve_redis.py +0 -0
  306. {render-1.7.0 → render-1.8.0}/render/public_api/api/redis_deprecated/retrieve_redis_connection_info.py +0 -0
  307. {render-1.7.0 → render-1.8.0}/render/public_api/api/redis_deprecated/suspend_redis.py +0 -0
  308. {render-1.7.0 → render-1.8.0}/render/public_api/api/redis_deprecated/update_redis.py +0 -0
  309. {render-1.7.0 → render-1.8.0}/render/public_api/api/registry_credentials/__init__.py +0 -0
  310. {render-1.7.0 → render-1.8.0}/render/public_api/api/registry_credentials/create_registry_credential.py +0 -0
  311. {render-1.7.0 → render-1.8.0}/render/public_api/api/registry_credentials/delete_registry_credential.py +0 -0
  312. {render-1.7.0 → render-1.8.0}/render/public_api/api/registry_credentials/list_registry_credentials.py +0 -0
  313. {render-1.7.0 → render-1.8.0}/render/public_api/api/registry_credentials/retrieve_registry_credential.py +0 -0
  314. {render-1.7.0 → render-1.8.0}/render/public_api/api/registry_credentials/update_registry_credential.py +0 -0
  315. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/__init__.py +0 -0
  316. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/create_sandbox_build.py +0 -0
  317. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/create_sandbox_group.py +0 -0
  318. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/create_sandbox_group_credential.py +0 -0
  319. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/create_sandbox_snapshot.py +0 -0
  320. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/delete_sandbox_group_credential.py +0 -0
  321. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/delete_sandbox_snapshot.py +0 -0
  322. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/list_sandbox_executions.py +0 -0
  323. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/list_sandbox_group_credential_versions.py +0 -0
  324. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/list_sandbox_group_credentials.py +0 -0
  325. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/list_sandbox_groups.py +0 -0
  326. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/list_sandbox_snapshots.py +0 -0
  327. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/restore_sandbox_group_credential.py +0 -0
  328. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/retrieve_sandbox.py +0 -0
  329. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/retrieve_sandbox_build.py +0 -0
  330. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/retrieve_sandbox_execution.py +0 -0
  331. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/retrieve_sandbox_group.py +0 -0
  332. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/retrieve_sandbox_group_credential.py +0 -0
  333. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/retrieve_sandbox_snapshot.py +0 -0
  334. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/terminate_sandbox.py +0 -0
  335. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/update_sandbox_group.py +0 -0
  336. {render-1.7.0 → render-1.8.0}/render/public_api/api/sandboxes/update_sandbox_group_credential.py +0 -0
  337. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/__init__.py +0 -0
  338. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/add_or_update_secret_file.py +0 -0
  339. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/autoscale_service.py +0 -0
  340. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/create_ephemeral_shell.py +0 -0
  341. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/create_service.py +0 -0
  342. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/delete_autoscaling_config.py +0 -0
  343. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/delete_env_var.py +0 -0
  344. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/delete_secret_file.py +0 -0
  345. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/delete_service.py +0 -0
  346. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/get_env_vars_for_service.py +0 -0
  347. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/list_events.py +0 -0
  348. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/list_instances.py +0 -0
  349. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/list_secret_files_for_service.py +0 -0
  350. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/list_services.py +0 -0
  351. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/preview_service.py +0 -0
  352. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/purge_cache.py +0 -0
  353. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/restart_service.py +0 -0
  354. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/resume_service.py +0 -0
  355. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/retrieve_env_var.py +0 -0
  356. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/retrieve_secret_file.py +0 -0
  357. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/retrieve_service.py +0 -0
  358. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/retrieve_service_outbound_ips.py +0 -0
  359. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/scale_service.py +0 -0
  360. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/suspend_service.py +0 -0
  361. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/update_env_var.py +0 -0
  362. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/update_env_vars_for_service.py +0 -0
  363. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/update_secret_files_for_service.py +0 -0
  364. {render-1.7.0 → render-1.8.0}/render/public_api/api/services/update_service.py +0 -0
  365. {render-1.7.0 → render-1.8.0}/render/public_api/api/services_cron_jobs/__init__.py +0 -0
  366. {render-1.7.0 → render-1.8.0}/render/public_api/api/services_cron_jobs/cancel_cron_job_run.py +0 -0
  367. {render-1.7.0 → render-1.8.0}/render/public_api/api/services_cron_jobs/run_cron_job.py +0 -0
  368. {render-1.7.0 → render-1.8.0}/render/public_api/api/services_headers/__init__.py +0 -0
  369. {render-1.7.0 → render-1.8.0}/render/public_api/api/services_headers/add_headers.py +0 -0
  370. {render-1.7.0 → render-1.8.0}/render/public_api/api/services_headers/delete_header.py +0 -0
  371. {render-1.7.0 → render-1.8.0}/render/public_api/api/services_headers/list_headers.py +0 -0
  372. {render-1.7.0 → render-1.8.0}/render/public_api/api/services_headers/update_headers.py +0 -0
  373. {render-1.7.0 → render-1.8.0}/render/public_api/api/services_routes/__init__.py +0 -0
  374. {render-1.7.0 → render-1.8.0}/render/public_api/api/services_routes/add_route.py +0 -0
  375. {render-1.7.0 → render-1.8.0}/render/public_api/api/services_routes/delete_route.py +0 -0
  376. {render-1.7.0 → render-1.8.0}/render/public_api/api/services_routes/list_routes.py +0 -0
  377. {render-1.7.0 → render-1.8.0}/render/public_api/api/services_routes/patch_route.py +0 -0
  378. {render-1.7.0 → render-1.8.0}/render/public_api/api/services_routes/put_routes.py +0 -0
  379. {render-1.7.0/render/public_api/api/users → render-1.8.0/render/public_api/api/shared_filesystems}/__init__.py +0 -0
  380. {render-1.7.0/render/public_api/api/webhooks → render-1.8.0/render/public_api/api/users}/__init__.py +0 -0
  381. {render-1.7.0 → render-1.8.0}/render/public_api/api/users/get_user.py +0 -0
  382. {render-1.7.0/render/public_api/api/workflow_flows → render-1.8.0/render/public_api/api/webhooks}/__init__.py +0 -0
  383. {render-1.7.0 → render-1.8.0}/render/public_api/api/webhooks/create_webhook.py +0 -0
  384. {render-1.7.0 → render-1.8.0}/render/public_api/api/webhooks/delete_webhook.py +0 -0
  385. {render-1.7.0 → render-1.8.0}/render/public_api/api/webhooks/list_webhook_events.py +0 -0
  386. {render-1.7.0 → render-1.8.0}/render/public_api/api/webhooks/list_webhooks.py +0 -0
  387. {render-1.7.0 → render-1.8.0}/render/public_api/api/webhooks/retrieve_webhook.py +0 -0
  388. {render-1.7.0 → render-1.8.0}/render/public_api/api/webhooks/update_webhook.py +0 -0
  389. {render-1.7.0/render/public_api/api/workflow_tasks → render-1.8.0/render/public_api/api/workflow_flows}/__init__.py +0 -0
  390. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_flows/cancel_flow_run.py +0 -0
  391. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_flows/get_flow.py +0 -0
  392. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_flows/get_flow_run.py +0 -0
  393. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_flows/get_flow_run_step.py +0 -0
  394. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_flows/list_flow_run_steps.py +0 -0
  395. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_flows/list_flow_runs.py +0 -0
  396. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_flows/list_flows.py +0 -0
  397. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_flows/start_flow_run.py +0 -0
  398. {render-1.7.0/render/public_api/api/workflows → render-1.8.0/render/public_api/api/workflow_tasks}/__init__.py +0 -0
  399. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_tasks/cancel_task_run.py +0 -0
  400. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_tasks/create_task.py +0 -0
  401. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_tasks/get_task.py +0 -0
  402. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_tasks/get_task_run.py +0 -0
  403. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_tasks/list_task_runs.py +0 -0
  404. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_tasks/list_tasks.py +0 -0
  405. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflow_tasks/stream_task_runs_events.py +0 -0
  406. {render-1.7.0/render/public_api/api/workspaces → render-1.8.0/render/public_api/api/workflows}/__init__.py +0 -0
  407. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflows/create_workflow.py +0 -0
  408. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflows/create_workflow_version.py +0 -0
  409. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflows/delete_workflow.py +0 -0
  410. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflows/get_workflow.py +0 -0
  411. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflows/get_workflow_version.py +0 -0
  412. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflows/list_workflow_versions.py +0 -0
  413. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflows/list_workflows.py +0 -0
  414. {render-1.7.0 → render-1.8.0}/render/public_api/api/workflows/update_workflow.py +0 -0
  415. {render-1.7.0 → render-1.8.0}/render/public_api/api/workspaces/list_owners.py +0 -0
  416. {render-1.7.0 → render-1.8.0}/render/public_api/api/workspaces/remove_workspace_member.py +0 -0
  417. {render-1.7.0 → render-1.8.0}/render/public_api/api/workspaces/retrieve_owner.py +0 -0
  418. {render-1.7.0 → render-1.8.0}/render/public_api/api/workspaces/retrieve_owner_members.py +0 -0
  419. {render-1.7.0 → render-1.8.0}/render/public_api/api/workspaces/update_workspace_member.py +0 -0
  420. {render-1.7.0 → render-1.8.0}/render/public_api/client.py +0 -0
  421. {render-1.7.0 → render-1.8.0}/render/public_api/errors.py +0 -0
  422. {render-1.7.0 → render-1.8.0}/render/public_api/models/add_headers_response_201.py +0 -0
  423. {render-1.7.0 → render-1.8.0}/render/public_api/models/add_or_update_build_source_secret_file_body.py +0 -0
  424. {render-1.7.0 → render-1.8.0}/render/public_api/models/add_or_update_secret_file_body.py +0 -0
  425. {render-1.7.0 → render-1.8.0}/render/public_api/models/artifact_fetch_failed.py +0 -0
  426. {render-1.7.0 → render-1.8.0}/render/public_api/models/artifact_source_changed.py +0 -0
  427. {render-1.7.0 → render-1.8.0}/render/public_api/models/audit_log.py +0 -0
  428. {render-1.7.0 → render-1.8.0}/render/public_api/models/audit_log_actor.py +0 -0
  429. {render-1.7.0 → render-1.8.0}/render/public_api/models/audit_log_actor_type.py +0 -0
  430. {render-1.7.0 → render-1.8.0}/render/public_api/models/audit_log_event.py +0 -0
  431. {render-1.7.0 → render-1.8.0}/render/public_api/models/audit_log_metadata.py +0 -0
  432. {render-1.7.0 → render-1.8.0}/render/public_api/models/audit_log_status.py +0 -0
  433. {render-1.7.0 → render-1.8.0}/render/public_api/models/audit_log_with_cursor.py +0 -0
  434. {render-1.7.0 → render-1.8.0}/render/public_api/models/auto_deploy.py +0 -0
  435. {render-1.7.0 → render-1.8.0}/render/public_api/models/auto_deploy_disabled.py +0 -0
  436. {render-1.7.0 → render-1.8.0}/render/public_api/models/auto_deploy_enabled.py +0 -0
  437. {render-1.7.0 → render-1.8.0}/render/public_api/models/auto_deploy_trigger.py +0 -0
  438. {render-1.7.0 → render-1.8.0}/render/public_api/models/autoscaling_config.py +0 -0
  439. {render-1.7.0 → render-1.8.0}/render/public_api/models/autoscaling_config_changed.py +0 -0
  440. {render-1.7.0 → render-1.8.0}/render/public_api/models/autoscaling_criteria.py +0 -0
  441. {render-1.7.0 → render-1.8.0}/render/public_api/models/autoscaling_criteria_percentage.py +0 -0
  442. {render-1.7.0 → render-1.8.0}/render/public_api/models/autoscaling_ended.py +0 -0
  443. {render-1.7.0 → render-1.8.0}/render/public_api/models/autoscaling_started.py +0 -0
  444. {render-1.7.0 → render-1.8.0}/render/public_api/models/background_worker_details.py +0 -0
  445. {render-1.7.0 → render-1.8.0}/render/public_api/models/background_worker_details_patch.py +0 -0
  446. {render-1.7.0 → render-1.8.0}/render/public_api/models/background_worker_details_post.py +0 -0
  447. {render-1.7.0 → render-1.8.0}/render/public_api/models/blueprint.py +0 -0
  448. {render-1.7.0 → render-1.8.0}/render/public_api/models/blueprint_detail.py +0 -0
  449. {render-1.7.0 → render-1.8.0}/render/public_api/models/blueprint_patch.py +0 -0
  450. {render-1.7.0 → render-1.8.0}/render/public_api/models/blueprint_with_cursor.py +0 -0
  451. {render-1.7.0 → render-1.8.0}/render/public_api/models/branch_deleted.py +0 -0
  452. {render-1.7.0 → render-1.8.0}/render/public_api/models/build.py +0 -0
  453. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_config.py +0 -0
  454. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_config_update.py +0 -0
  455. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_deploy_end_reason.py +0 -0
  456. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_deploy_end_reason_id.py +0 -0
  457. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_deploy_trigger.py +0 -0
  458. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_ended.py +0 -0
  459. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_filter.py +0 -0
  460. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_plan.py +0 -0
  461. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_run.py +0 -0
  462. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_run_runtime.py +0 -0
  463. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_run_status.py +0 -0
  464. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_source.py +0 -0
  465. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_source_git.py +0 -0
  466. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_source_git_region.py +0 -0
  467. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_source_git_runtime.py +0 -0
  468. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_source_image.py +0 -0
  469. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_source_patch_git.py +0 -0
  470. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_source_patch_git_region.py +0 -0
  471. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_source_patch_git_runtime.py +0 -0
  472. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_source_patch_image.py +0 -0
  473. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_source_patch_input.py +0 -0
  474. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_source_post_input.py +0 -0
  475. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_source_service_link.py +0 -0
  476. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_source_with_cursor.py +0 -0
  477. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_started.py +0 -0
  478. {render-1.7.0 → render-1.8.0}/render/public_api/models/build_with_cursor.py +0 -0
  479. {render-1.7.0 → render-1.8.0}/render/public_api/models/cache.py +0 -0
  480. {render-1.7.0 → render-1.8.0}/render/public_api/models/cache_profile.py +0 -0
  481. {render-1.7.0 → render-1.8.0}/render/public_api/models/cidr_block_and_description.py +0 -0
  482. {render-1.7.0 → render-1.8.0}/render/public_api/models/commit_ignored.py +0 -0
  483. {render-1.7.0 → render-1.8.0}/render/public_api/models/commit_ref.py +0 -0
  484. {render-1.7.0 → render-1.8.0}/render/public_api/models/connect_sandbox_files_operation.py +0 -0
  485. {render-1.7.0 → render-1.8.0}/render/public_api/models/connect_sandbox_run_operation.py +0 -0
  486. {render-1.7.0 → render-1.8.0}/render/public_api/models/create_custom_domain_body.py +0 -0
  487. {render-1.7.0 → render-1.8.0}/render/public_api/models/create_deploy_body.py +0 -0
  488. {render-1.7.0 → render-1.8.0}/render/public_api/models/create_deploy_body_clear_cache.py +0 -0
  489. {render-1.7.0 → render-1.8.0}/render/public_api/models/create_ephemeral_shell_body.py +0 -0
  490. {render-1.7.0 → render-1.8.0}/render/public_api/models/create_ephemeral_shell_response_201.py +0 -0
  491. {render-1.7.0 → render-1.8.0}/render/public_api/models/create_registry_credential_body.py +0 -0
  492. {render-1.7.0 → render-1.8.0}/render/public_api/models/create_version.py +0 -0
  493. {render-1.7.0 → render-1.8.0}/render/public_api/models/credential_create_input.py +0 -0
  494. {render-1.7.0 → render-1.8.0}/render/public_api/models/cron_job_details.py +0 -0
  495. {render-1.7.0 → render-1.8.0}/render/public_api/models/cron_job_details_patch.py +0 -0
  496. {render-1.7.0 → render-1.8.0}/render/public_api/models/cron_job_details_post.py +0 -0
  497. {render-1.7.0 → render-1.8.0}/render/public_api/models/cron_job_run.py +0 -0
  498. {render-1.7.0 → render-1.8.0}/render/public_api/models/cron_job_run_ended.py +0 -0
  499. {render-1.7.0 → render-1.8.0}/render/public_api/models/cron_job_run_started.py +0 -0
  500. {render-1.7.0 → render-1.8.0}/render/public_api/models/cron_job_run_status.py +0 -0
  501. {render-1.7.0 → render-1.8.0}/render/public_api/models/custom_domain.py +0 -0
  502. {render-1.7.0 → render-1.8.0}/render/public_api/models/custom_domain_domain_type.py +0 -0
  503. {render-1.7.0 → render-1.8.0}/render/public_api/models/custom_domain_server.py +0 -0
  504. {render-1.7.0 → render-1.8.0}/render/public_api/models/custom_domain_verification_status.py +0 -0
  505. {render-1.7.0 → render-1.8.0}/render/public_api/models/custom_domain_with_cursor.py +0 -0
  506. {render-1.7.0 → render-1.8.0}/render/public_api/models/database_role.py +0 -0
  507. {render-1.7.0 → render-1.8.0}/render/public_api/models/database_status.py +0 -0
  508. {render-1.7.0 → render-1.8.0}/render/public_api/models/dedicated_ip.py +0 -0
  509. {render-1.7.0 → render-1.8.0}/render/public_api/models/dedicated_ip_status.py +0 -0
  510. {render-1.7.0 → render-1.8.0}/render/public_api/models/dedicated_ippatch.py +0 -0
  511. {render-1.7.0 → render-1.8.0}/render/public_api/models/dedicated_ippost.py +0 -0
  512. {render-1.7.0 → render-1.8.0}/render/public_api/models/deploy.py +0 -0
  513. {render-1.7.0 → render-1.8.0}/render/public_api/models/deploy_commit.py +0 -0
  514. {render-1.7.0 → render-1.8.0}/render/public_api/models/deploy_ended.py +0 -0
  515. {render-1.7.0 → render-1.8.0}/render/public_api/models/deploy_image.py +0 -0
  516. {render-1.7.0 → render-1.8.0}/render/public_api/models/deploy_mode.py +0 -0
  517. {render-1.7.0 → render-1.8.0}/render/public_api/models/deploy_started.py +0 -0
  518. {render-1.7.0 → render-1.8.0}/render/public_api/models/deploy_status.py +0 -0
  519. {render-1.7.0 → render-1.8.0}/render/public_api/models/deploy_trigger.py +0 -0
  520. {render-1.7.0 → render-1.8.0}/render/public_api/models/deploy_with_cursor.py +0 -0
  521. {render-1.7.0 → render-1.8.0}/render/public_api/models/disk.py +0 -0
  522. {render-1.7.0 → render-1.8.0}/render/public_api/models/disk_created.py +0 -0
  523. {render-1.7.0 → render-1.8.0}/render/public_api/models/disk_deleted.py +0 -0
  524. {render-1.7.0 → render-1.8.0}/render/public_api/models/disk_details.py +0 -0
  525. {render-1.7.0 → render-1.8.0}/render/public_api/models/disk_patch.py +0 -0
  526. {render-1.7.0 → render-1.8.0}/render/public_api/models/disk_post.py +0 -0
  527. {render-1.7.0 → render-1.8.0}/render/public_api/models/disk_snapshot.py +0 -0
  528. {render-1.7.0 → render-1.8.0}/render/public_api/models/disk_snapshot_restored.py +0 -0
  529. {render-1.7.0 → render-1.8.0}/render/public_api/models/disk_updated.py +0 -0
  530. {render-1.7.0 → render-1.8.0}/render/public_api/models/disk_with_cursor.py +0 -0
  531. {render-1.7.0 → render-1.8.0}/render/public_api/models/docker_details.py +0 -0
  532. {render-1.7.0 → render-1.8.0}/render/public_api/models/docker_details_patch.py +0 -0
  533. {render-1.7.0 → render-1.8.0}/render/public_api/models/docker_details_post.py +0 -0
  534. {render-1.7.0 → render-1.8.0}/render/public_api/models/edge_cache_disabled.py +0 -0
  535. {render-1.7.0 → render-1.8.0}/render/public_api/models/edge_cache_enabled.py +0 -0
  536. {render-1.7.0 → render-1.8.0}/render/public_api/models/edge_cache_purged.py +0 -0
  537. {render-1.7.0 → render-1.8.0}/render/public_api/models/edge_cache_trigger.py +0 -0
  538. {render-1.7.0 → render-1.8.0}/render/public_api/models/env_group.py +0 -0
  539. {render-1.7.0 → render-1.8.0}/render/public_api/models/env_group_link.py +0 -0
  540. {render-1.7.0 → render-1.8.0}/render/public_api/models/env_group_meta.py +0 -0
  541. {render-1.7.0 → render-1.8.0}/render/public_api/models/env_group_patch_input.py +0 -0
  542. {render-1.7.0 → render-1.8.0}/render/public_api/models/env_group_post_input.py +0 -0
  543. {render-1.7.0 → render-1.8.0}/render/public_api/models/env_var.py +0 -0
  544. {render-1.7.0 → render-1.8.0}/render/public_api/models/env_var_generate_value.py +0 -0
  545. {render-1.7.0 → render-1.8.0}/render/public_api/models/env_var_key_generate_value.py +0 -0
  546. {render-1.7.0 → render-1.8.0}/render/public_api/models/env_var_key_value.py +0 -0
  547. {render-1.7.0 → render-1.8.0}/render/public_api/models/env_var_value.py +0 -0
  548. {render-1.7.0 → render-1.8.0}/render/public_api/models/env_var_with_cursor.py +0 -0
  549. {render-1.7.0 → render-1.8.0}/render/public_api/models/environment.py +0 -0
  550. {render-1.7.0 → render-1.8.0}/render/public_api/models/environment_patch_input.py +0 -0
  551. {render-1.7.0 → render-1.8.0}/render/public_api/models/environment_post_input.py +0 -0
  552. {render-1.7.0 → render-1.8.0}/render/public_api/models/environment_resources_post_input.py +0 -0
  553. {render-1.7.0 → render-1.8.0}/render/public_api/models/environment_with_cursor.py +0 -0
  554. {render-1.7.0 → render-1.8.0}/render/public_api/models/error.py +0 -0
  555. {render-1.7.0 → render-1.8.0}/render/public_api/models/event.py +0 -0
  556. {render-1.7.0 → render-1.8.0}/render/public_api/models/event_status.py +0 -0
  557. {render-1.7.0 → render-1.8.0}/render/public_api/models/event_type.py +0 -0
  558. {render-1.7.0 → render-1.8.0}/render/public_api/models/execution.py +0 -0
  559. {render-1.7.0 → render-1.8.0}/render/public_api/models/execution_operation.py +0 -0
  560. {render-1.7.0 → render-1.8.0}/render/public_api/models/execution_type.py +0 -0
  561. {render-1.7.0 → render-1.8.0}/render/public_api/models/execution_with_cursor.py +0 -0
  562. {render-1.7.0 → render-1.8.0}/render/public_api/models/failure_reason.py +0 -0
  563. {render-1.7.0 → render-1.8.0}/render/public_api/models/filter_application_values_collection_item.py +0 -0
  564. {render-1.7.0 → render-1.8.0}/render/public_api/models/filter_application_values_collection_item_filter.py +0 -0
  565. {render-1.7.0 → render-1.8.0}/render/public_api/models/filter_http_values_collection_item.py +0 -0
  566. {render-1.7.0 → render-1.8.0}/render/public_api/models/filter_http_values_collection_item_filter.py +0 -0
  567. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow.py +0 -0
  568. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_input_type_1.py +0 -0
  569. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_run.py +0 -0
  570. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_run_attempt.py +0 -0
  571. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_run_details.py +0 -0
  572. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_run_error_details.py +0 -0
  573. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_run_error_details_code.py +0 -0
  574. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_run_error_details_kind.py +0 -0
  575. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_run_status.py +0 -0
  576. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_run_step.py +0 -0
  577. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_run_step_details.py +0 -0
  578. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_run_step_status.py +0 -0
  579. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_run_step_type.py +0 -0
  580. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_run_steps_page.py +0 -0
  581. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_run_with_cursor.py +0 -0
  582. {render-1.7.0 → render-1.8.0}/render/public_api/models/flow_with_cursor.py +0 -0
  583. {render-1.7.0 → render-1.8.0}/render/public_api/models/get_bandwidth_sources_response_200.py +0 -0
  584. {render-1.7.0 → render-1.8.0}/render/public_api/models/get_bandwidth_sources_response_200_data_item.py +0 -0
  585. {render-1.7.0 → render-1.8.0}/render/public_api/models/get_bandwidth_sources_response_200_data_item_labels.py +0 -0
  586. {render-1.7.0 → render-1.8.0}/render/public_api/models/get_bandwidth_sources_response_200_data_item_labels_traffic_source.py +0 -0
  587. {render-1.7.0 → render-1.8.0}/render/public_api/models/get_bandwidth_sources_response_200_data_item_values_item.py +0 -0
  588. {render-1.7.0 → render-1.8.0}/render/public_api/models/get_cpu_aggregation_method.py +0 -0
  589. {render-1.7.0 → render-1.8.0}/render/public_api/models/get_http_requests_aggregate_by.py +0 -0
  590. {render-1.7.0 → render-1.8.0}/render/public_api/models/get_object_output.py +0 -0
  591. {render-1.7.0 → render-1.8.0}/render/public_api/models/get_task_runs_completed_aggregate_by.py +0 -0
  592. {render-1.7.0 → render-1.8.0}/render/public_api/models/get_task_runs_completed_state.py +0 -0
  593. {render-1.7.0 → render-1.8.0}/render/public_api/models/header.py +0 -0
  594. {render-1.7.0 → render-1.8.0}/render/public_api/models/header_input.py +0 -0
  595. {render-1.7.0 → render-1.8.0}/render/public_api/models/header_with_cursor.py +0 -0
  596. {render-1.7.0 → render-1.8.0}/render/public_api/models/image.py +0 -0
  597. {render-1.7.0 → render-1.8.0}/render/public_api/models/image_pull_failed.py +0 -0
  598. {render-1.7.0 → render-1.8.0}/render/public_api/models/initial_deploy_hook_ended.py +0 -0
  599. {render-1.7.0 → render-1.8.0}/render/public_api/models/initial_deploy_hook_started.py +0 -0
  600. {render-1.7.0 → render-1.8.0}/render/public_api/models/instance_count_changed.py +0 -0
  601. {render-1.7.0 → render-1.8.0}/render/public_api/models/instance_type_changed.py +0 -0
  602. {render-1.7.0 → render-1.8.0}/render/public_api/models/internal_routing.py +0 -0
  603. {render-1.7.0 → render-1.8.0}/render/public_api/models/job.py +0 -0
  604. {render-1.7.0 → render-1.8.0}/render/public_api/models/job_run_ended.py +0 -0
  605. {render-1.7.0 → render-1.8.0}/render/public_api/models/job_status.py +0 -0
  606. {render-1.7.0 → render-1.8.0}/render/public_api/models/job_with_cursor.py +0 -0
  607. {render-1.7.0 → render-1.8.0}/render/public_api/models/key_value.py +0 -0
  608. {render-1.7.0 → render-1.8.0}/render/public_api/models/key_value_available.py +0 -0
  609. {render-1.7.0 → render-1.8.0}/render/public_api/models/key_value_config_restart.py +0 -0
  610. {render-1.7.0 → render-1.8.0}/render/public_api/models/key_value_connection_info.py +0 -0
  611. {render-1.7.0 → render-1.8.0}/render/public_api/models/key_value_detail.py +0 -0
  612. {render-1.7.0 → render-1.8.0}/render/public_api/models/key_value_options.py +0 -0
  613. {render-1.7.0 → render-1.8.0}/render/public_api/models/key_value_patch_input.py +0 -0
  614. {render-1.7.0 → render-1.8.0}/render/public_api/models/key_value_plan.py +0 -0
  615. {render-1.7.0 → render-1.8.0}/render/public_api/models/key_value_post_input.py +0 -0
  616. {render-1.7.0 → render-1.8.0}/render/public_api/models/key_value_unhealthy.py +0 -0
  617. {render-1.7.0 → render-1.8.0}/render/public_api/models/key_value_with_cursor.py +0 -0
  618. {render-1.7.0 → render-1.8.0}/render/public_api/models/label.py +0 -0
  619. {render-1.7.0 → render-1.8.0}/render/public_api/models/list_custom_domains_domain_type.py +0 -0
  620. {render-1.7.0 → render-1.8.0}/render/public_api/models/list_custom_domains_verification_status.py +0 -0
  621. {render-1.7.0 → render-1.8.0}/render/public_api/models/list_logs_response_200.py +0 -0
  622. {render-1.7.0 → render-1.8.0}/render/public_api/models/list_logs_values_label.py +0 -0
  623. {render-1.7.0 → render-1.8.0}/render/public_api/models/list_objects_response.py +0 -0
  624. {render-1.7.0 → render-1.8.0}/render/public_api/models/list_postgres_suspended_item.py +0 -0
  625. {render-1.7.0 → render-1.8.0}/render/public_api/models/list_postgres_users_response_200_item.py +0 -0
  626. {render-1.7.0 → render-1.8.0}/render/public_api/models/list_routes_type_item.py +0 -0
  627. {render-1.7.0 → render-1.8.0}/render/public_api/models/list_services_suspended_item.py +0 -0
  628. {render-1.7.0 → render-1.8.0}/render/public_api/models/log.py +0 -0
  629. {render-1.7.0 → render-1.8.0}/render/public_api/models/log_direction.py +0 -0
  630. {render-1.7.0 → render-1.8.0}/render/public_api/models/log_label.py +0 -0
  631. {render-1.7.0 → render-1.8.0}/render/public_api/models/log_label_name.py +0 -0
  632. {render-1.7.0 → render-1.8.0}/render/public_api/models/log_stream_owner_update.py +0 -0
  633. {render-1.7.0 → render-1.8.0}/render/public_api/models/log_stream_preview_setting.py +0 -0
  634. {render-1.7.0 → render-1.8.0}/render/public_api/models/log_stream_resource_update.py +0 -0
  635. {render-1.7.0 → render-1.8.0}/render/public_api/models/log_stream_setting.py +0 -0
  636. {render-1.7.0 → render-1.8.0}/render/public_api/models/maintenance_ended.py +0 -0
  637. {render-1.7.0 → render-1.8.0}/render/public_api/models/maintenance_mode.py +0 -0
  638. {render-1.7.0 → render-1.8.0}/render/public_api/models/maintenance_mode_enabled.py +0 -0
  639. {render-1.7.0 → render-1.8.0}/render/public_api/models/maintenance_mode_uri_updated.py +0 -0
  640. {render-1.7.0 → render-1.8.0}/render/public_api/models/maintenance_run.py +0 -0
  641. {render-1.7.0 → render-1.8.0}/render/public_api/models/maintenance_run_patch.py +0 -0
  642. {render-1.7.0 → render-1.8.0}/render/public_api/models/maintenance_run_with_resource.py +0 -0
  643. {render-1.7.0 → render-1.8.0}/render/public_api/models/maintenance_started.py +0 -0
  644. {render-1.7.0 → render-1.8.0}/render/public_api/models/maintenance_state.py +0 -0
  645. {render-1.7.0 → render-1.8.0}/render/public_api/models/maintenance_trigger.py +0 -0
  646. {render-1.7.0 → render-1.8.0}/render/public_api/models/maxmemory_policy.py +0 -0
  647. {render-1.7.0 → render-1.8.0}/render/public_api/models/metrics_stream.py +0 -0
  648. {render-1.7.0 → render-1.8.0}/render/public_api/models/metrics_stream_input.py +0 -0
  649. {render-1.7.0 → render-1.8.0}/render/public_api/models/native_environment_details.py +0 -0
  650. {render-1.7.0 → render-1.8.0}/render/public_api/models/native_environment_details_patch.py +0 -0
  651. {render-1.7.0 → render-1.8.0}/render/public_api/models/native_environment_details_post.py +0 -0
  652. {render-1.7.0 → render-1.8.0}/render/public_api/models/notification_override.py +0 -0
  653. {render-1.7.0 → render-1.8.0}/render/public_api/models/notification_override_with_cursor.py +0 -0
  654. {render-1.7.0 → render-1.8.0}/render/public_api/models/notification_service_override.py +0 -0
  655. {render-1.7.0 → render-1.8.0}/render/public_api/models/notification_service_override_patch.py +0 -0
  656. {render-1.7.0 → render-1.8.0}/render/public_api/models/notification_setting.py +0 -0
  657. {render-1.7.0 → render-1.8.0}/render/public_api/models/notification_setting_patch.py +0 -0
  658. {render-1.7.0 → render-1.8.0}/render/public_api/models/notify_override.py +0 -0
  659. {render-1.7.0 → render-1.8.0}/render/public_api/models/notify_preview_override.py +0 -0
  660. {render-1.7.0 → render-1.8.0}/render/public_api/models/notify_setting.py +0 -0
  661. {render-1.7.0 → render-1.8.0}/render/public_api/models/notify_setting_v2.py +0 -0
  662. {render-1.7.0 → render-1.8.0}/render/public_api/models/object_metadata.py +0 -0
  663. {render-1.7.0 → render-1.8.0}/render/public_api/models/object_with_cursor.py +0 -0
  664. {render-1.7.0 → render-1.8.0}/render/public_api/models/oom_killed.py +0 -0
  665. {render-1.7.0 → render-1.8.0}/render/public_api/models/otel_provider_type.py +0 -0
  666. {render-1.7.0 → render-1.8.0}/render/public_api/models/outbound_ips.py +0 -0
  667. {render-1.7.0 → render-1.8.0}/render/public_api/models/outbound_ips_type.py +0 -0
  668. {render-1.7.0 → render-1.8.0}/render/public_api/models/owner.py +0 -0
  669. {render-1.7.0 → render-1.8.0}/render/public_api/models/owner_log_stream_setting.py +0 -0
  670. {render-1.7.0 → render-1.8.0}/render/public_api/models/owner_type.py +0 -0
  671. {render-1.7.0 → render-1.8.0}/render/public_api/models/owner_with_cursor.py +0 -0
  672. {render-1.7.0 → render-1.8.0}/render/public_api/models/paid_plan.py +0 -0
  673. {render-1.7.0 → render-1.8.0}/render/public_api/models/patch_route_response_200.py +0 -0
  674. {render-1.7.0 → render-1.8.0}/render/public_api/models/persistence_mode.py +0 -0
  675. {render-1.7.0 → render-1.8.0}/render/public_api/models/pipeline_minutes_exhausted.py +0 -0
  676. {render-1.7.0 → render-1.8.0}/render/public_api/models/plan.py +0 -0
  677. {render-1.7.0 → render-1.8.0}/render/public_api/models/post_job_body.py +0 -0
  678. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres.py +0 -0
  679. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_available.py +0 -0
  680. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_available_parameter_override.py +0 -0
  681. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_available_parameter_overrides_result.py +0 -0
  682. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_backup_completed.py +0 -0
  683. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_backup_failed.py +0 -0
  684. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_backup_started.py +0 -0
  685. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_cluster_leader_changed.py +0 -0
  686. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_connection_info.py +0 -0
  687. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_connection_pool_changed.py +0 -0
  688. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_connection_pool_enabled_changed.py +0 -0
  689. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_created.py +0 -0
  690. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_detail.py +0 -0
  691. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_detail_suspended.py +0 -0
  692. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_disk_size_changed.py +0 -0
  693. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_export.py +0 -0
  694. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_ha_status_changed.py +0 -0
  695. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_parameter_overrides.py +0 -0
  696. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_parameter_overrides_wrapper.py +0 -0
  697. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_patch_input.py +0 -0
  698. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_pitr_checkpoint_completed.py +0 -0
  699. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_pitr_checkpoint_failed.py +0 -0
  700. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_pitr_checkpoint_started.py +0 -0
  701. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_plans.py +0 -0
  702. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_post_input.py +0 -0
  703. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_process.py +0 -0
  704. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_processes_result.py +0 -0
  705. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_put_parameter_overrides_result.py +0 -0
  706. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_query_statistic.py +0 -0
  707. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_read_replica_stale.py +0 -0
  708. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_read_replicas_changed.py +0 -0
  709. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_replication_setup_input.py +0 -0
  710. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_restarted.py +0 -0
  711. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_size.py +0 -0
  712. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_sizes_result.py +0 -0
  713. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_suspended.py +0 -0
  714. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_table_scan.py +0 -0
  715. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_table_scans_result.py +0 -0
  716. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_top_queries_result.py +0 -0
  717. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_unavailable.py +0 -0
  718. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_upgrade_failed.py +0 -0
  719. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_upgrade_started.py +0 -0
  720. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_upgrade_succeeded.py +0 -0
  721. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_version.py +0 -0
  722. {render-1.7.0 → render-1.8.0}/render/public_api/models/postgres_with_cursor.py +0 -0
  723. {render-1.7.0 → render-1.8.0}/render/public_api/models/pre_deploy_ended.py +0 -0
  724. {render-1.7.0 → render-1.8.0}/render/public_api/models/pre_deploy_started.py +0 -0
  725. {render-1.7.0 → render-1.8.0}/render/public_api/models/preview_input.py +0 -0
  726. {render-1.7.0 → render-1.8.0}/render/public_api/models/previews.py +0 -0
  727. {render-1.7.0 → render-1.8.0}/render/public_api/models/previews_generation.py +0 -0
  728. {render-1.7.0 → render-1.8.0}/render/public_api/models/private_service_details.py +0 -0
  729. {render-1.7.0 → render-1.8.0}/render/public_api/models/private_service_details_patch.py +0 -0
  730. {render-1.7.0 → render-1.8.0}/render/public_api/models/private_service_details_post.py +0 -0
  731. {render-1.7.0 → render-1.8.0}/render/public_api/models/project.py +0 -0
  732. {render-1.7.0 → render-1.8.0}/render/public_api/models/project_patch_input.py +0 -0
  733. {render-1.7.0 → render-1.8.0}/render/public_api/models/project_post_environment_input.py +0 -0
  734. {render-1.7.0 → render-1.8.0}/render/public_api/models/project_post_input.py +0 -0
  735. {render-1.7.0 → render-1.8.0}/render/public_api/models/project_with_cursor.py +0 -0
  736. {render-1.7.0 → render-1.8.0}/render/public_api/models/protected_status.py +0 -0
  737. {render-1.7.0 → render-1.8.0}/render/public_api/models/pull_request_previews_enabled.py +0 -0
  738. {render-1.7.0 → render-1.8.0}/render/public_api/models/put_object_input.py +0 -0
  739. {render-1.7.0 → render-1.8.0}/render/public_api/models/put_object_output.py +0 -0
  740. {render-1.7.0 → render-1.8.0}/render/public_api/models/read_replica.py +0 -0
  741. {render-1.7.0 → render-1.8.0}/render/public_api/models/read_replica_input.py +0 -0
  742. {render-1.7.0 → render-1.8.0}/render/public_api/models/recovery_info.py +0 -0
  743. {render-1.7.0 → render-1.8.0}/render/public_api/models/recovery_info_recovery_status.py +0 -0
  744. {render-1.7.0 → render-1.8.0}/render/public_api/models/recovery_input.py +0 -0
  745. {render-1.7.0 → render-1.8.0}/render/public_api/models/redis.py +0 -0
  746. {render-1.7.0 → render-1.8.0}/render/public_api/models/redis_connection_info.py +0 -0
  747. {render-1.7.0 → render-1.8.0}/render/public_api/models/redis_detail.py +0 -0
  748. {render-1.7.0 → render-1.8.0}/render/public_api/models/redis_options.py +0 -0
  749. {render-1.7.0 → render-1.8.0}/render/public_api/models/redis_patch_input.py +0 -0
  750. {render-1.7.0 → render-1.8.0}/render/public_api/models/redis_plan.py +0 -0
  751. {render-1.7.0 → render-1.8.0}/render/public_api/models/redis_post_input.py +0 -0
  752. {render-1.7.0 → render-1.8.0}/render/public_api/models/redis_with_cursor.py +0 -0
  753. {render-1.7.0 → render-1.8.0}/render/public_api/models/region.py +0 -0
  754. {render-1.7.0 → render-1.8.0}/render/public_api/models/registry_credential.py +0 -0
  755. {render-1.7.0 → render-1.8.0}/render/public_api/models/registry_credential_registry.py +0 -0
  756. {render-1.7.0 → render-1.8.0}/render/public_api/models/registry_credential_summary.py +0 -0
  757. {render-1.7.0 → render-1.8.0}/render/public_api/models/render_subdomain_policy.py +0 -0
  758. {render-1.7.0 → render-1.8.0}/render/public_api/models/resource.py +0 -0
  759. {render-1.7.0 → render-1.8.0}/render/public_api/models/resource_log_stream_setting.py +0 -0
  760. {render-1.7.0 → render-1.8.0}/render/public_api/models/resource_ref.py +0 -0
  761. {render-1.7.0 → render-1.8.0}/render/public_api/models/resource_ref_type.py +0 -0
  762. {render-1.7.0 → render-1.8.0}/render/public_api/models/rollback_deploy_body.py +0 -0
  763. {render-1.7.0 → render-1.8.0}/render/public_api/models/route.py +0 -0
  764. {render-1.7.0 → render-1.8.0}/render/public_api/models/route_patch.py +0 -0
  765. {render-1.7.0 → render-1.8.0}/render/public_api/models/route_post.py +0 -0
  766. {render-1.7.0 → render-1.8.0}/render/public_api/models/route_put.py +0 -0
  767. {render-1.7.0 → render-1.8.0}/render/public_api/models/route_type.py +0 -0
  768. {render-1.7.0 → render-1.8.0}/render/public_api/models/route_with_cursor.py +0 -0
  769. {render-1.7.0 → render-1.8.0}/render/public_api/models/run_task.py +0 -0
  770. {render-1.7.0 → render-1.8.0}/render/public_api/models/runtime.py +0 -0
  771. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_build.py +0 -0
  772. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_build_post.py +0 -0
  773. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_build_post_registry_credential.py +0 -0
  774. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_build_source.py +0 -0
  775. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_build_status.py +0 -0
  776. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_connect_request.py +0 -0
  777. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_connect_response.py +0 -0
  778. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_credential.py +0 -0
  779. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_credential_create.py +0 -0
  780. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_credential_injection.py +0 -0
  781. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_credential_injection_type.py +0 -0
  782. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_credential_restore.py +0 -0
  783. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_credential_update.py +0 -0
  784. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_credential_version.py +0 -0
  785. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_egress_rule.py +0 -0
  786. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_egress_rule_protocol.py +0 -0
  787. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_group.py +0 -0
  788. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_group_patch.py +0 -0
  789. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_group_post.py +0 -0
  790. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_group_with_cursor.py +0 -0
  791. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_network_policy.py +0 -0
  792. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_network_policy_post.py +0 -0
  793. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_network_policy_type.py +0 -0
  794. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_plan.py +0 -0
  795. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_post_env.py +0 -0
  796. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_snapshot.py +0 -0
  797. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_snapshot_kind.py +0 -0
  798. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_snapshot_post.py +0 -0
  799. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_snapshot_status.py +0 -0
  800. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_snapshot_with_cursor.py +0 -0
  801. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_status.py +0 -0
  802. {render-1.7.0 → render-1.8.0}/render/public_api/models/sandbox_with_cursor.py +0 -0
  803. {render-1.7.0 → render-1.8.0}/render/public_api/models/scale_service_body.py +0 -0
  804. {render-1.7.0 → render-1.8.0}/render/public_api/models/schemas_build_filter.py +0 -0
  805. {render-1.7.0 → render-1.8.0}/render/public_api/models/schemas_image.py +0 -0
  806. {render-1.7.0 → render-1.8.0}/render/public_api/models/schemas_user.py +0 -0
  807. {render-1.7.0 → render-1.8.0}/render/public_api/models/secret_file.py +0 -0
  808. {render-1.7.0 → render-1.8.0}/render/public_api/models/secret_file_input.py +0 -0
  809. {render-1.7.0 → render-1.8.0}/render/public_api/models/secret_file_with_cursor.py +0 -0
  810. {render-1.7.0 → render-1.8.0}/render/public_api/models/server_available.py +0 -0
  811. {render-1.7.0 → render-1.8.0}/render/public_api/models/server_failed.py +0 -0
  812. {render-1.7.0 → render-1.8.0}/render/public_api/models/server_hardware_failure.py +0 -0
  813. {render-1.7.0 → render-1.8.0}/render/public_api/models/server_port.py +0 -0
  814. {render-1.7.0 → render-1.8.0}/render/public_api/models/server_port_protocol.py +0 -0
  815. {render-1.7.0 → render-1.8.0}/render/public_api/models/server_restarted.py +0 -0
  816. {render-1.7.0 → render-1.8.0}/render/public_api/models/service.py +0 -0
  817. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_and_deploy.py +0 -0
  818. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_disk.py +0 -0
  819. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_disk_usage_high.py +0 -0
  820. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_disk_usage_recovered.py +0 -0
  821. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_env.py +0 -0
  822. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_event.py +0 -0
  823. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_event_type.py +0 -0
  824. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_event_with_cursor.py +0 -0
  825. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_instance.py +0 -0
  826. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_patch.py +0 -0
  827. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_post.py +0 -0
  828. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_resumed.py +0 -0
  829. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_runtime.py +0 -0
  830. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_service_suspended_state.py +0 -0
  831. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_suspended.py +0 -0
  832. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_type.py +0 -0
  833. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_type_short.py +0 -0
  834. {render-1.7.0 → render-1.8.0}/render/public_api/models/service_with_cursor.py +0 -0
  835. {render-1.7.0 → render-1.8.0}/render/public_api/models/setup_postgres_replication_response_201.py +0 -0
  836. {render-1.7.0 → render-1.8.0}/render/public_api/models/snapshot_restore_post.py +0 -0
  837. {render-1.7.0 → render-1.8.0}/render/public_api/models/start_flow_run.py +0 -0
  838. {render-1.7.0 → render-1.8.0}/render/public_api/models/static_site_details.py +0 -0
  839. {render-1.7.0 → render-1.8.0}/render/public_api/models/static_site_details_patch.py +0 -0
  840. {render-1.7.0 → render-1.8.0}/render/public_api/models/static_site_details_post.py +0 -0
  841. {render-1.7.0 → render-1.8.0}/render/public_api/models/status.py +0 -0
  842. {render-1.7.0 → render-1.8.0}/render/public_api/models/stream_task_runs_events_accept.py +0 -0
  843. {render-1.7.0 → render-1.8.0}/render/public_api/models/suspender_added.py +0 -0
  844. {render-1.7.0 → render-1.8.0}/render/public_api/models/suspender_removed.py +0 -0
  845. {render-1.7.0 → render-1.8.0}/render/public_api/models/suspender_type.py +0 -0
  846. {render-1.7.0 → render-1.8.0}/render/public_api/models/sync.py +0 -0
  847. {render-1.7.0 → render-1.8.0}/render/public_api/models/sync_state.py +0 -0
  848. {render-1.7.0 → render-1.8.0}/render/public_api/models/sync_with_cursor.py +0 -0
  849. {render-1.7.0 → render-1.8.0}/render/public_api/models/task.py +0 -0
  850. {render-1.7.0 → render-1.8.0}/render/public_api/models/task_attempt.py +0 -0
  851. {render-1.7.0 → render-1.8.0}/render/public_api/models/task_attempt_details.py +0 -0
  852. {render-1.7.0 → render-1.8.0}/render/public_api/models/task_data_type_1.py +0 -0
  853. {render-1.7.0 → render-1.8.0}/render/public_api/models/task_run.py +0 -0
  854. {render-1.7.0 → render-1.8.0}/render/public_api/models/task_run_details.py +0 -0
  855. {render-1.7.0 → render-1.8.0}/render/public_api/models/task_run_status.py +0 -0
  856. {render-1.7.0 → render-1.8.0}/render/public_api/models/task_run_with_cursor.py +0 -0
  857. {render-1.7.0 → render-1.8.0}/render/public_api/models/task_with_cursor.py +0 -0
  858. {render-1.7.0 → render-1.8.0}/render/public_api/models/team_member.py +0 -0
  859. {render-1.7.0 → render-1.8.0}/render/public_api/models/team_member_role.py +0 -0
  860. {render-1.7.0 → render-1.8.0}/render/public_api/models/team_member_status.py +0 -0
  861. {render-1.7.0 → render-1.8.0}/render/public_api/models/time_series.py +0 -0
  862. {render-1.7.0 → render-1.8.0}/render/public_api/models/time_series_value.py +0 -0
  863. {render-1.7.0 → render-1.8.0}/render/public_api/models/update_env_group_secret_file_body.py +0 -0
  864. {render-1.7.0 → render-1.8.0}/render/public_api/models/update_registry_credential_body.py +0 -0
  865. {render-1.7.0 → render-1.8.0}/render/public_api/models/update_workspace_member_body.py +0 -0
  866. {render-1.7.0 → render-1.8.0}/render/public_api/models/user.py +0 -0
  867. {render-1.7.0 → render-1.8.0}/render/public_api/models/validate_blueprint_request.py +0 -0
  868. {render-1.7.0 → render-1.8.0}/render/public_api/models/validate_blueprint_response.py +0 -0
  869. {render-1.7.0 → render-1.8.0}/render/public_api/models/validation_error.py +0 -0
  870. {render-1.7.0 → render-1.8.0}/render/public_api/models/validation_plan_summary.py +0 -0
  871. {render-1.7.0 → render-1.8.0}/render/public_api/models/web_service_details.py +0 -0
  872. {render-1.7.0 → render-1.8.0}/render/public_api/models/web_service_details_patch.py +0 -0
  873. {render-1.7.0 → render-1.8.0}/render/public_api/models/web_service_details_post.py +0 -0
  874. {render-1.7.0 → render-1.8.0}/render/public_api/models/webhook.py +0 -0
  875. {render-1.7.0 → render-1.8.0}/render/public_api/models/webhook_event.py +0 -0
  876. {render-1.7.0 → render-1.8.0}/render/public_api/models/webhook_event_with_cursor.py +0 -0
  877. {render-1.7.0 → render-1.8.0}/render/public_api/models/webhook_patch_input.py +0 -0
  878. {render-1.7.0 → render-1.8.0}/render/public_api/models/webhook_post_input.py +0 -0
  879. {render-1.7.0 → render-1.8.0}/render/public_api/models/webhook_with_cursor.py +0 -0
  880. {render-1.7.0 → render-1.8.0}/render/public_api/models/workflow_create.py +0 -0
  881. {render-1.7.0 → render-1.8.0}/render/public_api/models/workflow_update.py +0 -0
  882. {render-1.7.0 → render-1.8.0}/render/public_api/models/workflow_version.py +0 -0
  883. {render-1.7.0 → render-1.8.0}/render/public_api/models/workflow_version_status.py +0 -0
  884. {render-1.7.0 → render-1.8.0}/render/public_api/models/workflow_version_with_cursor.py +0 -0
  885. {render-1.7.0 → render-1.8.0}/render/public_api/models/workflow_with_cursor.py +0 -0
  886. {render-1.7.0 → render-1.8.0}/render/public_api/models/zero_downtime_redeploy_ended.py +0 -0
  887. {render-1.7.0 → render-1.8.0}/render/public_api/models/zero_downtime_redeploy_started.py +0 -0
  888. {render-1.7.0 → render-1.8.0}/render/public_api/py.typed +0 -0
  889. {render-1.7.0 → render-1.8.0}/render/public_api/types.py +0 -0
  890. {render-1.7.0 → render-1.8.0}/render/py.typed +0 -0
  891. {render-1.7.0 → render-1.8.0}/render/render.py +0 -0
  892. {render-1.7.0 → render-1.8.0}/render/render_async.py +0 -0
  893. {render-1.7.0 → render-1.8.0}/render/retry.py +0 -0
  894. {render-1.7.0 → render-1.8.0}/render/version.py +0 -0
  895. {render-1.7.0 → render-1.8.0}/render/workflows/_models/__init__.py +0 -0
  896. {render-1.7.0 → render-1.8.0}/render/workflows/_models/registration.py +0 -0
  897. {render-1.7.0 → render-1.8.0}/render/workflows/_models/subtask.py +0 -0
  898. {render-1.7.0 → render-1.8.0}/render/workflows/_models/task.py +0 -0
  899. {render-1.7.0 → render-1.8.0}/render/workflows/_models/wire.py +0 -0
  900. {render-1.7.0 → render-1.8.0}/render/workflows/_uds_http.py +0 -0
  901. {render-1.7.0 → render-1.8.0}/render/workflows/_utils/__init__.py +0 -0
  902. {render-1.7.0 → render-1.8.0}/render/workflows/_utils/clock.py +0 -0
  903. {render-1.7.0 → render-1.8.0}/render/workflows/app.py +0 -0
  904. {render-1.7.0 → render-1.8.0}/render/workflows/cli.py +0 -0
  905. {render-1.7.0 → render-1.8.0}/render/workflows/client.py +0 -0
  906. {render-1.7.0 → render-1.8.0}/render/workflows/context.py +0 -0
  907. {render-1.7.0 → render-1.8.0}/render/workflows/executor.py +0 -0
  908. {render-1.7.0 → render-1.8.0}/render/workflows/flow.py +0 -0
  909. {render-1.7.0 → render-1.8.0}/render/workflows/runner.py +0 -0
  910. {render-1.7.0 → render-1.8.0}/render/workflows/task.py +0 -0
  911. {render-1.7.0 → render-1.8.0}/render/workflows/tests/__init__.py +0 -0
  912. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_app.py +0 -0
  913. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_cli.py +0 -0
  914. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_client.py +0 -0
  915. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_context.py +0 -0
  916. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_end_to_end.py +0 -0
  917. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_executor.py +0 -0
  918. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_lazy_imports.py +0 -0
  919. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_registration.py +0 -0
  920. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_startup.py +0 -0
  921. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_translate_errors.py +0 -0
  922. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_uds_http.py +0 -0
  923. {render-1.7.0 → render-1.8.0}/render/workflows/tests/test_version.py +0 -0
  924. {render-1.7.0 → render-1.8.0}/scripts/unasync.py +0 -0
  925. {render-1.7.0 → render-1.8.0}/tox.ini +0 -0
  926. {render-1.7.0 → render-1.8.0}/typing_tests/README.md +0 -0
  927. {render-1.7.0 → render-1.8.0}/typing_tests/client_decorators.py +0 -0
  928. {render-1.7.0 → render-1.8.0}/typing_tests/flow_context.py +0 -0
  929. {render-1.7.0 → render-1.8.0}/typing_tests/run_inference.py +0 -0
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.8.0] - 2026-11-06
4
+
5
+ ### Added
6
+
7
+ - (Sandboxes) Sandbox names: `sandboxes.create()` accepts `name`, a label like `my-agent`, and `sandboxes.list()` accepts `name` to return only sandboxes with exactly that name. `Sandbox.name` returns it. Names aren't unique, so use the sandbox ID to address one sandbox.
8
+ - (Sandboxes) `sandboxes.delete_group()` deletes a sandbox group and terminates its sandboxes. It raises `SandboxGroupDefaultNotDeletableError` for the workspace's default group.
9
+ - (Sandboxes) `sandboxes.set_default_group()` makes a sandbox group the workspace's default.
10
+ - (Sandboxes) `SandboxGroupSuspendedError`, raised by `delete_group()` and `set_default_group()` for a suspended group.
11
+ - `ErrorCode.DEFAULT_SANDBOX_GROUP_NOT_DELETABLE` and `ErrorCode.INVALID_SANDBOX_NAME` for the matching API error codes.
12
+ - `default_version_id` on `Workflow`.
13
+
14
+ ### Fixed
15
+
16
+ - (Workflows) A flow can catch the `StepError` from a step's final failed attempt and continue. An uncaught `StepError` fails the run with the last step error. Replay keeps the recorded attempt.
17
+ - (Sandboxes) `sandboxes.create()` from a snapshot without `timeout_seconds` or `idle_timeout_seconds` keeps the source sandbox's timeouts. Before, the client always sent the 24-hour and 15-minute defaults.
18
+
3
19
  ## [1.7.0] - 2026-11-02
4
20
 
5
21
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: render
3
- Version: 1.7.0
3
+ Version: 1.8.0
4
4
  Summary: Python SDK for Render Workflows
5
5
  Author-email: Render <support@render.com>
6
6
  License-File: LICENSE
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "render"
7
- version = "1.7.0"
7
+ version = "1.8.0"
8
8
  description = "Python SDK for Render Workflows"
9
9
  authors = [{ name = "Render", email = "support@render.com" }]
10
10
  readme = "README.md"
@@ -36,7 +36,7 @@ Async REST API access:
36
36
  # Must stay the first import: it records when SDK import began.
37
37
  from render import _startup
38
38
 
39
- __version__ = "1.7.0"
39
+ __version__ = "1.8.0"
40
40
 
41
41
  # Render/RenderAsync are lazy-loaded so the workflow worker path stays fast.
42
42
  from typing import TYPE_CHECKING
@@ -6,7 +6,7 @@ if TYPE_CHECKING:
6
6
 
7
7
  # Type-only: the step models raise these errors, so a runtime import
8
8
  # would be circular.
9
- from render.workflows._models.step import StepKey
9
+ from render.workflows._models.step import StepAttemptRecord, StepKey
10
10
  from render.workflows._models.task import DeterminismDetails
11
11
  from render.workflows.client import CallbackRequest
12
12
 
@@ -102,6 +102,10 @@ class ExecutionError(RenderError):
102
102
  self.session_id = session_id
103
103
  self.step_key = step_key
104
104
 
105
+ def to_step_completion(self) -> "StepAttemptRecord | None":
106
+ """The failed attempt to complete before exposing this error, if any."""
107
+ return None
108
+
105
109
  def to_callback_request(self) -> "CallbackRequest":
106
110
  """The error callback that reports this error as the task's failure."""
107
111
  # Imported here: the workflow client imports these errors.
@@ -136,9 +140,24 @@ class FlowRunError(RenderError):
136
140
  self.details = details
137
141
 
138
142
 
143
+ class StepError(ExecutionError):
144
+ """A step failure that flow code can catch, including on replay."""
145
+
146
+ def __init__(
147
+ self,
148
+ *args: object,
149
+ completion: "StepAttemptRecord | None" = None,
150
+ **kwargs: Any,
151
+ ) -> None:
152
+ super().__init__(*args, **kwargs)
153
+ self._completion = completion
154
+
155
+ def to_step_completion(self) -> "StepAttemptRecord | None":
156
+ return self._completion
157
+
158
+
139
159
  class TerminalFlowError(ExecutionError):
140
- """Exception for a flow step error that retrying won't fix. A step
141
- that raises it fails without using its remaining retries."""
160
+ """Internal runtime error that stops the flow even if user code catches it."""
142
161
 
143
162
  def __init__(
144
163
  self,
@@ -281,10 +300,6 @@ class FlowHistoryErrorCode(str, Enum):
281
300
  """The steps' seqs don't count up from zero without skipping one."""
282
301
  AFTER_OPEN = "WFL-HIST-AFTER-OPEN"
283
302
  """A step comes after one that never finished."""
284
- AFTER_TERMINAL = "WFL-HIST-AFTER-TERMINAL"
285
- """A step comes after one that ended the run."""
286
- TERMINAL = "WFL-HIST-TERMINAL"
287
- """The last step ended the run, so there's nothing left to replay."""
288
303
  ATTEMPT_STEP = "WFL-HIST-ATTEMPT-STEP"
289
304
  """A failed attempt was made before its step started."""
290
305
  ATTEMPT_SEQ = "WFL-HIST-ATTEMPT-SEQ"
@@ -18,6 +18,8 @@ from render.experimental.sandbox.errors import (
18
18
  SandboxExecError,
19
19
  SandboxExecStreamError,
20
20
  SandboxFileNotFoundError,
21
+ SandboxGroupDefaultNotDeletableError,
22
+ SandboxGroupSuspendedError,
21
23
  SandboxNotFoundError,
22
24
  SandboxNotRunningError,
23
25
  SandboxWaitTimeoutError,
@@ -56,6 +58,7 @@ __all__ = [
56
58
  "BuildNotFoundError",
57
59
  "BuildNotReadyError",
58
60
  "BuildSource",
61
+ "SandboxGroupDefaultNotDeletableError",
59
62
  "EgressRule",
60
63
  "Image",
61
64
  "ImageClient",
@@ -79,6 +82,7 @@ __all__ = [
79
82
  "SandboxFileNotFoundError",
80
83
  "SandboxGroup",
81
84
  "SandboxGroupList",
85
+ "SandboxGroupSuspendedError",
82
86
  "SandboxList",
83
87
  "SandboxNotFoundError",
84
88
  "SandboxNotRunningError",
@@ -39,6 +39,8 @@ from render.experimental.sandbox.errors import (
39
39
  SandboxExecError,
40
40
  SandboxExecStreamError,
41
41
  SandboxFileNotFoundError,
42
+ SandboxGroupDefaultNotDeletableError,
43
+ SandboxGroupSuspendedError,
42
44
  SandboxNotFoundError,
43
45
  SnapshotNotFoundError,
44
46
  SnapshotNotReadyError,
@@ -76,6 +78,7 @@ from render.public_api.api.sandboxes import (
76
78
  create_sandbox_build,
77
79
  create_sandbox_group,
78
80
  create_sandbox_snapshot,
81
+ delete_sandbox_group,
79
82
  delete_sandbox_snapshot,
80
83
  list_sandbox_groups,
81
84
  list_sandbox_snapshots,
@@ -84,6 +87,7 @@ from render.public_api.api.sandboxes import (
84
87
  retrieve_sandbox_build,
85
88
  retrieve_sandbox_group,
86
89
  retrieve_sandbox_snapshot,
90
+ set_default_sandbox_group,
87
91
  terminate_sandbox,
88
92
  update_sandbox_group,
89
93
  )
@@ -138,6 +142,10 @@ _SNAPSHOT_PLAN_MISMATCH_CODE = "snapshot_plan_mismatch"
138
142
  # The API still calls images builds, in its paths and error codes.
139
143
  _IMAGE_NOT_FOUND_CODE = "build_not_found"
140
144
  _IMAGE_NOT_SUCCEEDED_CODE = "build_not_succeeded"
145
+ _GROUP_CONFLICT_ERRORS: dict[str, type[ClientError]] = {
146
+ "default_sandbox_group_not_deletable": SandboxGroupDefaultNotDeletableError,
147
+ "sandbox_group_suspended": SandboxGroupSuspendedError,
148
+ }
141
149
 
142
150
  # Aliased at module scope so the annotations on the _api_call methods resolve
143
151
  # the builtin list, not the SandboxApi.list method that shadows it in the class body.
@@ -195,6 +203,7 @@ def _to_sandbox(model: GeneratedSandbox) -> Sandbox:
195
203
  return Sandbox(
196
204
  id=model.id,
197
205
  sandbox_group_id=_set_or_none(model.sandbox_group_id),
206
+ name=_set_or_none(model.name),
198
207
  status=model.status.value,
199
208
  plan=str(model.plan),
200
209
  network_policy=_to_network_policy(model.network_policy),
@@ -325,6 +334,18 @@ def _handle_image_api_error(
325
334
  handle_api_error(response, operation)
326
335
 
327
336
 
337
+ def _handle_group_api_error(response: Response[Any], operation: str) -> None:
338
+ if response.status_code == 409:
339
+ error = _error_body(response.content)
340
+ error_type = _GROUP_CONFLICT_ERRORS.get(error.code or "")
341
+ if error_type is not None:
342
+ message = f"{operation} failed"
343
+ if error.message:
344
+ message = f"{message}: {error.message}"
345
+ raise error_type(message, code=error.code, status_code=409)
346
+ handle_api_error(response, operation)
347
+
348
+
328
349
  class SandboxApi:
329
350
  """Typed wrapper over the generated sandbox endpoints."""
330
351
 
@@ -345,10 +366,13 @@ class SandboxApi:
345
366
  image_id: str | None = None,
346
367
  image_name: str | None = None,
347
368
  sandbox_group_id: str | None = None,
369
+ name: str | None = None,
348
370
  ) -> Sandbox:
349
371
  body = SandboxPOST(owner_id=owner_id)
350
372
  if sandbox_group_id is not None:
351
373
  body.sandbox_group_id = sandbox_group_id
374
+ if name is not None:
375
+ body.name = name
352
376
  if plan is not None:
353
377
  body.plan = plan
354
378
  if timeout_seconds is not None:
@@ -405,10 +429,11 @@ class SandboxApi:
405
429
  cursor: str | None,
406
430
  limit: int | None,
407
431
  sandbox_group_id: str | None = None,
432
+ name: str | None = None,
408
433
  ) -> SandboxList:
409
434
  statuses = _normalize_statuses(status, SandboxStatus)
410
435
  response = await self._list_api_call(
411
- owner_id, statuses, cursor, limit, sandbox_group_id
436
+ owner_id, statuses, cursor, limit, sandbox_group_id, name
412
437
  )
413
438
  parsed = response.parsed
414
439
  if not isinstance(parsed, list):
@@ -425,6 +450,7 @@ class SandboxApi:
425
450
  cursor: str | None,
426
451
  limit: int | None,
427
452
  sandbox_group_id: str | None = None,
453
+ name: str | None = None,
428
454
  ) -> Response[Error | _SandboxWithCursorList]:
429
455
  return await list_sandboxes.asyncio_detailed(
430
456
  client=self.client,
@@ -433,6 +459,7 @@ class SandboxApi:
433
459
  sandbox_group_id=sandbox_group_id
434
460
  if sandbox_group_id is not None
435
461
  else UNSET,
462
+ name=name if name is not None else UNSET,
436
463
  cursor=cursor if cursor is not None else UNSET,
437
464
  limit=limit if limit is not None else UNSET,
438
465
  )
@@ -504,6 +531,25 @@ class SandboxApi:
504
531
  )
505
532
  return _to_sandbox_group(response.parsed)
506
533
 
534
+ async def delete_group(self, sandbox_group_id: str) -> None:
535
+ with request_errors("delete sandbox group"):
536
+ response = await delete_sandbox_group.asyncio_detailed(
537
+ sandbox_group_id, client=self.client
538
+ )
539
+ _handle_group_api_error(response, "delete sandbox group")
540
+
541
+ async def set_default_group(self, sandbox_group_id: str) -> SandboxGroup:
542
+ with request_errors("set default sandbox group"):
543
+ response = await set_default_sandbox_group.asyncio_detailed(
544
+ sandbox_group_id, client=self.client
545
+ )
546
+ _handle_group_api_error(response, "set default sandbox group")
547
+ if not isinstance(response.parsed, GeneratedSandboxGroup):
548
+ raise RenderError(
549
+ "Failed to set default sandbox group: unexpected response type"
550
+ )
551
+ return _to_sandbox_group(response.parsed)
552
+
507
553
  async def terminate(self, sandbox_id: str, owner_id: str) -> None:
508
554
  with request_errors("terminate sandbox"):
509
555
  response = await terminate_sandbox.asyncio_detailed(
@@ -41,6 +41,8 @@ from render.experimental.sandbox.errors import (
41
41
  SandboxExecError,
42
42
  SandboxExecStreamError,
43
43
  SandboxFileNotFoundError,
44
+ SandboxGroupDefaultNotDeletableError,
45
+ SandboxGroupSuspendedError,
44
46
  SandboxNotFoundError,
45
47
  SnapshotNotFoundError,
46
48
  SnapshotNotReadyError,
@@ -78,6 +80,7 @@ from render.public_api.api.sandboxes import (
78
80
  create_sandbox_build,
79
81
  create_sandbox_group,
80
82
  create_sandbox_snapshot,
83
+ delete_sandbox_group,
81
84
  delete_sandbox_snapshot,
82
85
  list_sandbox_groups,
83
86
  list_sandbox_snapshots,
@@ -86,6 +89,7 @@ from render.public_api.api.sandboxes import (
86
89
  retrieve_sandbox_build,
87
90
  retrieve_sandbox_group,
88
91
  retrieve_sandbox_snapshot,
92
+ set_default_sandbox_group,
89
93
  terminate_sandbox,
90
94
  update_sandbox_group,
91
95
  )
@@ -140,6 +144,10 @@ _SNAPSHOT_PLAN_MISMATCH_CODE = "snapshot_plan_mismatch"
140
144
  # The API still calls images builds, in its paths and error codes.
141
145
  _IMAGE_NOT_FOUND_CODE = "build_not_found"
142
146
  _IMAGE_NOT_SUCCEEDED_CODE = "build_not_succeeded"
147
+ _GROUP_CONFLICT_ERRORS: dict[str, type[ClientError]] = {
148
+ "default_sandbox_group_not_deletable": SandboxGroupDefaultNotDeletableError,
149
+ "sandbox_group_suspended": SandboxGroupSuspendedError,
150
+ }
143
151
 
144
152
  # Aliased at module scope so the annotations on the _api_call methods resolve
145
153
  # the builtin list, not the SyncSandboxApi.list method that shadows it in the class body.
@@ -197,6 +205,7 @@ def _to_sandbox(model: GeneratedSandbox) -> Sandbox:
197
205
  return Sandbox(
198
206
  id=model.id,
199
207
  sandbox_group_id=_set_or_none(model.sandbox_group_id),
208
+ name=_set_or_none(model.name),
200
209
  status=model.status.value,
201
210
  plan=str(model.plan),
202
211
  network_policy=_to_network_policy(model.network_policy),
@@ -327,6 +336,18 @@ def _handle_image_api_error(
327
336
  handle_api_error(response, operation)
328
337
 
329
338
 
339
+ def _handle_group_api_error(response: Response[Any], operation: str) -> None:
340
+ if response.status_code == 409:
341
+ error = _error_body(response.content)
342
+ error_type = _GROUP_CONFLICT_ERRORS.get(error.code or "")
343
+ if error_type is not None:
344
+ message = f"{operation} failed"
345
+ if error.message:
346
+ message = f"{message}: {error.message}"
347
+ raise error_type(message, code=error.code, status_code=409)
348
+ handle_api_error(response, operation)
349
+
350
+
330
351
  class SyncSandboxApi:
331
352
  """Typed wrapper over the generated sandbox endpoints."""
332
353
 
@@ -347,10 +368,13 @@ class SyncSandboxApi:
347
368
  image_id: str | None = None,
348
369
  image_name: str | None = None,
349
370
  sandbox_group_id: str | None = None,
371
+ name: str | None = None,
350
372
  ) -> Sandbox:
351
373
  body = SandboxPOST(owner_id=owner_id)
352
374
  if sandbox_group_id is not None:
353
375
  body.sandbox_group_id = sandbox_group_id
376
+ if name is not None:
377
+ body.name = name
354
378
  if plan is not None:
355
379
  body.plan = plan
356
380
  if timeout_seconds is not None:
@@ -405,10 +429,11 @@ class SyncSandboxApi:
405
429
  cursor: str | None,
406
430
  limit: int | None,
407
431
  sandbox_group_id: str | None = None,
432
+ name: str | None = None,
408
433
  ) -> SandboxList:
409
434
  statuses = _normalize_statuses(status, SandboxStatus)
410
435
  response = self._list_api_call(
411
- owner_id, statuses, cursor, limit, sandbox_group_id
436
+ owner_id, statuses, cursor, limit, sandbox_group_id, name
412
437
  )
413
438
  parsed = response.parsed
414
439
  if not isinstance(parsed, list):
@@ -425,6 +450,7 @@ class SyncSandboxApi:
425
450
  cursor: str | None,
426
451
  limit: int | None,
427
452
  sandbox_group_id: str | None = None,
453
+ name: str | None = None,
428
454
  ) -> Response[Error | _SandboxWithCursorList]:
429
455
  return list_sandboxes.sync_detailed(
430
456
  client=self.client,
@@ -433,6 +459,7 @@ class SyncSandboxApi:
433
459
  sandbox_group_id=sandbox_group_id
434
460
  if sandbox_group_id is not None
435
461
  else UNSET,
462
+ name=name if name is not None else UNSET,
436
463
  cursor=cursor if cursor is not None else UNSET,
437
464
  limit=limit if limit is not None else UNSET,
438
465
  )
@@ -502,6 +529,25 @@ class SyncSandboxApi:
502
529
  )
503
530
  return _to_sandbox_group(response.parsed)
504
531
 
532
+ def delete_group(self, sandbox_group_id: str) -> None:
533
+ with request_errors("delete sandbox group"):
534
+ response = delete_sandbox_group.sync_detailed(
535
+ sandbox_group_id, client=self.client
536
+ )
537
+ _handle_group_api_error(response, "delete sandbox group")
538
+
539
+ def set_default_group(self, sandbox_group_id: str) -> SandboxGroup:
540
+ with request_errors("set default sandbox group"):
541
+ response = set_default_sandbox_group.sync_detailed(
542
+ sandbox_group_id, client=self.client
543
+ )
544
+ _handle_group_api_error(response, "set default sandbox group")
545
+ if not isinstance(response.parsed, GeneratedSandboxGroup):
546
+ raise RenderError(
547
+ "Failed to set default sandbox group: unexpected response type"
548
+ )
549
+ return _to_sandbox_group(response.parsed)
550
+
505
551
  def terminate(self, sandbox_id: str, owner_id: str) -> None:
506
552
  with request_errors("terminate sandbox"):
507
553
  response = terminate_sandbox.sync_detailed(
@@ -75,6 +75,7 @@ class SandboxClient:
75
75
  self,
76
76
  *,
77
77
  owner_id: str | None = None,
78
+ name: str | None = None,
78
79
  plan: SandboxPlan | str | None = None,
79
80
  timeout_seconds: int | None = None,
80
81
  idle_timeout_seconds: int | None = None,
@@ -99,6 +100,10 @@ class SandboxClient:
99
100
  sandbox_group_id defaults to the workspace's default group. The group
100
101
  determines placement; region is accepted for compatibility and ignored.
101
102
 
103
+ name is a label for the sandbox, like ``my-agent``. Names aren't
104
+ unique, so use the sandbox id to address it. At most 64 characters,
105
+ and it can't start with ``sbx-``.
106
+
102
107
  network_policy is a NetworkPolicy, or a policy type string as a
103
108
  shorthand for one without rules. To restrict outbound traffic to
104
109
  specific destinations, pass
@@ -169,6 +174,7 @@ class SandboxClient:
169
174
  image_id=image_id,
170
175
  image_name=image_name,
171
176
  sandbox_group_id=sandbox_group_id,
177
+ name=name,
172
178
  )
173
179
  if wait_settings is None:
174
180
  return sandbox
@@ -241,16 +247,18 @@ class SandboxClient:
241
247
  cursor: str | None = None,
242
248
  limit: int | None = None,
243
249
  sandbox_group_id: str | None = None,
250
+ name: str | None = None,
244
251
  ) -> SandboxList:
245
252
  """List sandboxes for a workspace.
246
253
 
247
254
  status filters by sandbox status, one or a sequence of them (each one
248
255
  of creating, running, suspended, resuming, errored, terminated). limit
249
- is capped at 100 by the API.
256
+ is capped at 100 by the API. name returns only sandboxes with exactly
257
+ that name; names aren't unique, so it can match several.
250
258
  """
251
259
  resolved_owner_id = self._resolve_owner_id(owner_id)
252
260
  return await self.api.list(
253
- resolved_owner_id, status, cursor, limit, sandbox_group_id
261
+ resolved_owner_id, status, cursor, limit, sandbox_group_id, name
254
262
  )
255
263
 
256
264
  async def list_groups(
@@ -287,6 +295,24 @@ class SandboxClient:
287
295
  """Set concurrency and return the effective limit after Render's cap."""
288
296
  return await self.api.update_group(sandbox_group_id, concurrency_limit)
289
297
 
298
+ async def delete_group(self, sandbox_group_id: str) -> None:
299
+ """Delete a group, terminating its sandboxes.
300
+
301
+ Its snapshots and credentials are deleted shortly after. Raises
302
+ SandboxGroupDefaultNotDeletableError for the workspace's default group;
303
+ make another group the default first with set_default_group. Raises
304
+ SandboxGroupSuspendedError for a suspended group.
305
+ """
306
+ await self.api.delete_group(sandbox_group_id)
307
+
308
+ async def set_default_group(self, sandbox_group_id: str) -> SandboxGroup:
309
+ """Make a group the workspace's default.
310
+
311
+ Setting the current default returns it unchanged. Raises
312
+ SandboxGroupSuspendedError for a suspended group.
313
+ """
314
+ return await self.api.set_default_group(sandbox_group_id)
315
+
290
316
  async def terminate(self, sandbox_id: str, *, owner_id: str | None = None) -> None:
291
317
  """Terminate a sandbox.
292
318
 
@@ -77,6 +77,7 @@ class SyncSandboxClient:
77
77
  self,
78
78
  *,
79
79
  owner_id: str | None = None,
80
+ name: str | None = None,
80
81
  plan: SandboxPlan | str | None = None,
81
82
  timeout_seconds: int | None = None,
82
83
  idle_timeout_seconds: int | None = None,
@@ -101,6 +102,10 @@ class SyncSandboxClient:
101
102
  sandbox_group_id defaults to the workspace's default group. The group
102
103
  determines placement; region is accepted for compatibility and ignored.
103
104
 
105
+ name is a label for the sandbox, like ``my-agent``. Names aren't
106
+ unique, so use the sandbox id to address it. At most 64 characters,
107
+ and it can't start with ``sbx-``.
108
+
104
109
  network_policy is a NetworkPolicy, or a policy type string as a
105
110
  shorthand for one without rules. To restrict outbound traffic to
106
111
  specific destinations, pass
@@ -171,6 +176,7 @@ class SyncSandboxClient:
171
176
  image_id=image_id,
172
177
  image_name=image_name,
173
178
  sandbox_group_id=sandbox_group_id,
179
+ name=name,
174
180
  )
175
181
  if wait_settings is None:
176
182
  return sandbox
@@ -243,15 +249,19 @@ class SyncSandboxClient:
243
249
  cursor: str | None = None,
244
250
  limit: int | None = None,
245
251
  sandbox_group_id: str | None = None,
252
+ name: str | None = None,
246
253
  ) -> SandboxList:
247
254
  """List sandboxes for a workspace.
248
255
 
249
256
  status filters by sandbox status, one or a sequence of them (each one
250
257
  of creating, running, suspended, resuming, errored, terminated). limit
251
- is capped at 100 by the API.
258
+ is capped at 100 by the API. name returns only sandboxes with exactly
259
+ that name; names aren't unique, so it can match several.
252
260
  """
253
261
  resolved_owner_id = self._resolve_owner_id(owner_id)
254
- return self.api.list(resolved_owner_id, status, cursor, limit, sandbox_group_id)
262
+ return self.api.list(
263
+ resolved_owner_id, status, cursor, limit, sandbox_group_id, name
264
+ )
255
265
 
256
266
  def list_groups(
257
267
  self,
@@ -285,6 +295,24 @@ class SyncSandboxClient:
285
295
  """Set concurrency and return the effective limit after Render's cap."""
286
296
  return self.api.update_group(sandbox_group_id, concurrency_limit)
287
297
 
298
+ def delete_group(self, sandbox_group_id: str) -> None:
299
+ """Delete a group, terminating its sandboxes.
300
+
301
+ Its snapshots and credentials are deleted shortly after. Raises
302
+ SandboxGroupDefaultNotDeletableError for the workspace's default group;
303
+ make another group the default first with set_default_group. Raises
304
+ SandboxGroupSuspendedError for a suspended group.
305
+ """
306
+ self.api.delete_group(sandbox_group_id)
307
+
308
+ def set_default_group(self, sandbox_group_id: str) -> SandboxGroup:
309
+ """Make a group the workspace's default.
310
+
311
+ Setting the current default returns it unchanged. Raises
312
+ SandboxGroupSuspendedError for a suspended group.
313
+ """
314
+ return self.api.set_default_group(sandbox_group_id)
315
+
288
316
  def terminate(self, sandbox_id: str, *, owner_id: str | None = None) -> None:
289
317
  """Terminate a sandbox.
290
318
 
@@ -31,6 +31,17 @@ class SnapshotPlanMismatchError(ClientError):
31
31
  a different plan. code is snapshot_plan_mismatch."""
32
32
 
33
33
 
34
+ class SandboxGroupDefaultNotDeletableError(ClientError):
35
+ """Raised when a delete names the workspace's default sandbox group. Make
36
+ another group the default first with set_default_group. code is
37
+ default_sandbox_group_not_deletable."""
38
+
39
+
40
+ class SandboxGroupSuspendedError(ClientError):
41
+ """Raised when the sandbox group is suspended. code is
42
+ sandbox_group_suspended."""
43
+
44
+
34
45
  class ImageNotFoundError(ClientError):
35
46
  """Raised when an image does not exist or belongs to another sandbox group."""
36
47