render 1.2.0__tar.gz → 1.3.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 (877) hide show
  1. {render-1.2.0 → render-1.3.0}/CHANGELOG.md +14 -0
  2. {render-1.2.0 → render-1.3.0}/PKG-INFO +1 -1
  3. {render-1.2.0 → render-1.3.0}/pyproject.toml +1 -1
  4. {render-1.2.0 → render-1.3.0}/render/__init__.py +6 -1
  5. render-1.3.0/render/_startup.py +34 -0
  6. render-1.3.0/render/experimental/object/tests/rate_limit.py +59 -0
  7. {render-1.2.0 → render-1.3.0}/render/experimental/object/tests/test_e2e.py +14 -12
  8. render-1.3.0/render/experimental/object/tests/test_rate_limit.py +75 -0
  9. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/__init__.py +4 -0
  10. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/api.py +47 -8
  11. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/api_sync.py +47 -8
  12. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/client.py +7 -1
  13. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/client_sync.py +7 -1
  14. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/tests/test_client.py +132 -3
  15. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/tests/test_e2e.py +91 -0
  16. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/tests/test_snapshots.py +1 -1
  17. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/tests/test_types.py +9 -2
  18. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/types.py +26 -1
  19. {render-1.2.0 → render-1.3.0}/render/public_api/api/blueprints/list_blueprint_syncs.py +4 -0
  20. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/list_builds_in_build_source.py +20 -16
  21. render-1.3.0/render/public_api/api/build_sources/retrieve_build_source_build.py +213 -0
  22. render-1.3.0/render/public_api/api/workflow_flows/cancel_flow_run.py +193 -0
  23. render-1.3.0/render/public_api/api/workflow_flows/get_flow.py +190 -0
  24. render-1.3.0/render/public_api/api/workflow_flows/get_flow_run.py +195 -0
  25. render-1.3.0/render/public_api/api/workflow_flows/get_flow_run_step.py +208 -0
  26. render-1.3.0/render/public_api/api/workflow_flows/list_flow_run_steps.py +236 -0
  27. render-1.3.0/render/public_api/api/workflow_flows/list_flow_runs.py +345 -0
  28. render-1.3.0/render/public_api/api/workflow_flows/list_flows.py +303 -0
  29. render-1.3.0/render/public_api/api/workflow_flows/start_flow_run.py +204 -0
  30. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflow_tasks/cancel_task_run.py +5 -0
  31. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflow_tasks/get_task_run.py +5 -0
  32. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflow_tasks/list_task_runs.py +5 -0
  33. render-1.3.0/render/public_api/api/workspaces/__init__.py +1 -0
  34. {render-1.2.0 → render-1.3.0}/render/public_api/models/__init__.py +40 -10
  35. {render-1.2.0 → render-1.3.0}/render/public_api/models/audit_log_event.py +2 -0
  36. {render-1.2.0 → render-1.3.0}/render/public_api/models/auto_deploy_disabled.py +6 -2
  37. {render-1.2.0 → render-1.3.0}/render/public_api/models/auto_deploy_enabled.py +6 -2
  38. {render-1.2.0 → render-1.3.0}/render/public_api/models/background_worker_details_post.py +17 -12
  39. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_source_git.py +10 -9
  40. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_source_patch_git.py +10 -9
  41. render-1.3.0/render/public_api/models/build_with_cursor.py +73 -0
  42. {render-1.2.0 → render-1.3.0}/render/public_api/models/cron_job_details_post.py +16 -8
  43. {render-1.2.0 → render-1.3.0}/render/public_api/models/cron_job_run.py +1 -1
  44. render-1.3.0/render/public_api/models/flow.py +97 -0
  45. render-1.3.0/render/public_api/models/flow_input_type_1.py +44 -0
  46. render-1.3.0/render/public_api/models/flow_run.py +112 -0
  47. render-1.3.0/render/public_api/models/flow_run_attempt.py +113 -0
  48. render-1.3.0/render/public_api/models/flow_run_details.py +183 -0
  49. render-1.3.0/render/public_api/models/flow_run_status.py +13 -0
  50. render-1.3.0/render/public_api/models/flow_run_step.py +158 -0
  51. render-1.3.0/render/public_api/models/flow_run_step_attempt.py +93 -0
  52. render-1.3.0/render/public_api/models/flow_run_step_details.py +209 -0
  53. render-1.3.0/render/public_api/models/flow_run_step_status.py +10 -0
  54. render-1.3.0/render/public_api/models/flow_run_step_type.py +10 -0
  55. render-1.3.0/render/public_api/models/flow_run_step_with_cursor.py +73 -0
  56. render-1.3.0/render/public_api/models/flow_run_with_cursor.py +73 -0
  57. render-1.3.0/render/public_api/models/flow_with_cursor.py +73 -0
  58. {render-1.2.0 → render-1.3.0}/render/public_api/models/private_service_details_post.py +17 -12
  59. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox.py +1 -1
  60. render-1.3.0/render/public_api/models/sandbox_egress_rule.py +83 -0
  61. render-1.3.0/render/public_api/models/sandbox_egress_rule_protocol.py +8 -0
  62. render-1.3.0/render/public_api/models/sandbox_network_policy.py +106 -0
  63. render-1.3.0/render/public_api/models/sandbox_network_policy_post.py +113 -0
  64. render-1.2.0/render/public_api/models/sandbox_network_policy_default.py → render-1.3.0/render/public_api/models/sandbox_network_policy_type.py +1 -1
  65. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_post.py +10 -8
  66. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_status.py +1 -0
  67. {render-1.2.0 → render-1.3.0}/render/public_api/models/service.py +11 -3
  68. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_event_with_cursor.py +8 -0
  69. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_patch.py +11 -3
  70. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_post.py +11 -3
  71. render-1.3.0/render/public_api/models/start_flow_run.py +111 -0
  72. {render-1.2.0 → render-1.3.0}/render/public_api/models/web_service_details_post.py +17 -12
  73. {render-1.2.0 → render-1.3.0}/render/workflows/client.py +2 -1
  74. {render-1.2.0 → render-1.3.0}/render/workflows/runner.py +2 -0
  75. {render-1.2.0 → render-1.3.0}/render/workflows/tests/test_client.py +30 -0
  76. {render-1.2.0 → render-1.3.0}/render/workflows/tests/test_end_to_end.py +1 -0
  77. render-1.3.0/render/workflows/tests/test_startup.py +43 -0
  78. render-1.3.0/uv.lock +2055 -0
  79. render-1.2.0/example/task/.claude/settings.local.json +0 -7
  80. render-1.2.0/render/public_api/api/blueprints/create_blueprint.py +0 -244
  81. render-1.2.0/render/public_api/models/blueprint_source.py +0 -79
  82. render-1.2.0/render/public_api/models/create_blueprint_request.py +0 -118
  83. render-1.2.0/render/public_api/models/create_blueprint_response.py +0 -76
  84. render-1.2.0/render/public_api/models/existing_resource_mode.py +0 -9
  85. render-1.2.0/render/public_api/models/sandbox_network_policy.py +0 -80
  86. render-1.2.0/uv.lock +0 -1945
  87. {render-1.2.0 → render-1.3.0}/.gitignore +0 -0
  88. {render-1.2.0 → render-1.3.0}/.python-version +0 -0
  89. {render-1.2.0 → render-1.3.0}/LICENSE +0 -0
  90. {render-1.2.0 → render-1.3.0}/README.md +0 -0
  91. {render-1.2.0 → render-1.3.0}/example/__init__.py +0 -0
  92. {render-1.2.0 → render-1.3.0}/example/client/__init__.py +0 -0
  93. {render-1.2.0 → render-1.3.0}/example/client/async_main.py +0 -0
  94. {render-1.2.0 → render-1.3.0}/example/client/main.py +0 -0
  95. {render-1.2.0 → render-1.3.0}/example/sandbox/__init__.py +0 -0
  96. {render-1.2.0 → render-1.3.0}/example/sandbox/main.py +0 -0
  97. {render-1.2.0 → render-1.3.0}/example/task/__init__.py +0 -0
  98. {render-1.2.0 → render-1.3.0}/example/task/main.py +0 -0
  99. {render-1.2.0 → render-1.3.0}/render/client/__init__.py +0 -0
  100. {render-1.2.0 → render-1.3.0}/render/client/client.py +0 -0
  101. {render-1.2.0 → render-1.3.0}/render/client/errors.py +0 -0
  102. {render-1.2.0 → render-1.3.0}/render/client/sse.py +0 -0
  103. {render-1.2.0 → render-1.3.0}/render/client/sse_sync.py +0 -0
  104. {render-1.2.0 → render-1.3.0}/render/client/tests/__init__.py +0 -0
  105. {render-1.2.0 → render-1.3.0}/render/client/tests/test_client.py +0 -0
  106. {render-1.2.0 → render-1.3.0}/render/client/tests/test_method_parity.py +0 -0
  107. {render-1.2.0 → render-1.3.0}/render/client/tests/test_render.py +0 -0
  108. {render-1.2.0 → render-1.3.0}/render/client/tests/test_sse.py +0 -0
  109. {render-1.2.0 → render-1.3.0}/render/client/tests/test_util.py +0 -0
  110. {render-1.2.0 → render-1.3.0}/render/client/tests/test_util_sync.py +0 -0
  111. {render-1.2.0 → render-1.3.0}/render/client/tests/test_workflows_sync.py +0 -0
  112. {render-1.2.0 → render-1.3.0}/render/client/types.py +0 -0
  113. {render-1.2.0 → render-1.3.0}/render/client/util.py +0 -0
  114. {render-1.2.0 → render-1.3.0}/render/client/util_sync.py +0 -0
  115. {render-1.2.0 → render-1.3.0}/render/client/workflows.py +0 -0
  116. {render-1.2.0 → render-1.3.0}/render/client/workflows_sync.py +0 -0
  117. {render-1.2.0 → render-1.3.0}/render/experimental/__init__.py +0 -0
  118. {render-1.2.0 → render-1.3.0}/render/experimental/experimental.py +0 -0
  119. {render-1.2.0 → render-1.3.0}/render/experimental/experimental_sync.py +0 -0
  120. {render-1.2.0 → render-1.3.0}/render/experimental/key_value/__init__.py +0 -0
  121. {render-1.2.0 → render-1.3.0}/render/experimental/key_value/api.py +0 -0
  122. {render-1.2.0 → render-1.3.0}/render/experimental/key_value/compare.py +0 -0
  123. {render-1.2.0 → render-1.3.0}/render/experimental/key_value/provider.py +0 -0
  124. {render-1.2.0 → render-1.3.0}/render/experimental/key_value/tests/__init__.py +0 -0
  125. {render-1.2.0 → render-1.3.0}/render/experimental/key_value/tests/test_api.py +0 -0
  126. {render-1.2.0 → render-1.3.0}/render/experimental/key_value/tests/test_compare.py +0 -0
  127. {render-1.2.0 → render-1.3.0}/render/experimental/key_value/tests/test_provider.py +0 -0
  128. {render-1.2.0 → render-1.3.0}/render/experimental/key_value/tests/test_types.py +0 -0
  129. {render-1.2.0 → render-1.3.0}/render/experimental/key_value/types.py +0 -0
  130. {render-1.2.0 → render-1.3.0}/render/experimental/key_value/utils.py +0 -0
  131. {render-1.2.0 → render-1.3.0}/render/experimental/object/__init__.py +0 -0
  132. {render-1.2.0 → render-1.3.0}/render/experimental/object/api.py +0 -0
  133. {render-1.2.0 → render-1.3.0}/render/experimental/object/api_sync.py +0 -0
  134. {render-1.2.0 → render-1.3.0}/render/experimental/object/client.py +0 -0
  135. {render-1.2.0 → render-1.3.0}/render/experimental/object/client_sync.py +0 -0
  136. {render-1.2.0 → render-1.3.0}/render/experimental/object/e2e_helpers.py +0 -0
  137. {render-1.2.0 → render-1.3.0}/render/experimental/object/tests/__init__.py +0 -0
  138. {render-1.2.0 → render-1.3.0}/render/experimental/object/tests/test_client.py +0 -0
  139. {render-1.2.0 → render-1.3.0}/render/experimental/object/types.py +0 -0
  140. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/_tar.py +0 -0
  141. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/errors.py +0 -0
  142. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/files.py +0 -0
  143. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/tests/__init__.py +0 -0
  144. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/tests/test_download.py +0 -0
  145. {render-1.2.0 → render-1.3.0}/render/experimental/sandbox/tests/test_tar.py +0 -0
  146. {render-1.2.0 → render-1.3.0}/render/public_api/__init__.py +0 -0
  147. {render-1.2.0 → render-1.3.0}/render/public_api/api/__init__.py +0 -0
  148. {render-1.2.0 → render-1.3.0}/render/public_api/api/audit_logs/__init__.py +0 -0
  149. {render-1.2.0 → render-1.3.0}/render/public_api/api/audit_logs/list_organization_audit_logs.py +0 -0
  150. {render-1.2.0 → render-1.3.0}/render/public_api/api/audit_logs/list_owner_audit_logs.py +0 -0
  151. {render-1.2.0 → render-1.3.0}/render/public_api/api/blueprints/__init__.py +0 -0
  152. {render-1.2.0 → render-1.3.0}/render/public_api/api/blueprints/disconnect_blueprint.py +0 -0
  153. {render-1.2.0 → render-1.3.0}/render/public_api/api/blueprints/list_blueprints.py +0 -0
  154. {render-1.2.0 → render-1.3.0}/render/public_api/api/blueprints/retrieve_blueprint.py +0 -0
  155. {render-1.2.0 → render-1.3.0}/render/public_api/api/blueprints/update_blueprint.py +0 -0
  156. {render-1.2.0 → render-1.3.0}/render/public_api/api/blueprints/validate_blueprint.py +0 -0
  157. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/__init__.py +0 -0
  158. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/add_or_update_build_source_secret_file.py +0 -0
  159. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/create_build_source.py +0 -0
  160. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/delete_build_source.py +0 -0
  161. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/delete_build_source_env_var.py +0 -0
  162. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/delete_build_source_secret_file.py +0 -0
  163. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/get_build_source.py +0 -0
  164. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/get_env_vars_for_build_source.py +0 -0
  165. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/link_env_group_to_build_source.py +0 -0
  166. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/list_build_sources.py +0 -0
  167. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/list_secret_files_for_build_source.py +0 -0
  168. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/retrieve_build_source_env_var.py +0 -0
  169. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/retrieve_build_source_secret_file.py +0 -0
  170. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/trigger_build_source_build.py +0 -0
  171. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/unlink_env_group_from_build_source.py +0 -0
  172. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/update_build_source.py +0 -0
  173. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/update_build_source_env_var.py +0 -0
  174. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/update_env_vars_for_build_source.py +0 -0
  175. {render-1.2.0 → render-1.3.0}/render/public_api/api/build_sources/update_secret_files_for_build_source.py +0 -0
  176. {render-1.2.0 → render-1.3.0}/render/public_api/api/custom_domains/__init__.py +0 -0
  177. {render-1.2.0 → render-1.3.0}/render/public_api/api/custom_domains/create_custom_domain.py +0 -0
  178. {render-1.2.0 → render-1.3.0}/render/public_api/api/custom_domains/delete_custom_domain.py +0 -0
  179. {render-1.2.0 → render-1.3.0}/render/public_api/api/custom_domains/list_custom_domains.py +0 -0
  180. {render-1.2.0 → render-1.3.0}/render/public_api/api/custom_domains/refresh_custom_domain.py +0 -0
  181. {render-1.2.0 → render-1.3.0}/render/public_api/api/custom_domains/retrieve_custom_domain.py +0 -0
  182. {render-1.2.0 → render-1.3.0}/render/public_api/api/dedicated_i_ps/__init__.py +0 -0
  183. {render-1.2.0 → render-1.3.0}/render/public_api/api/dedicated_i_ps/create_dedicated_ip.py +0 -0
  184. {render-1.2.0 → render-1.3.0}/render/public_api/api/dedicated_i_ps/delete_dedicated_ip.py +0 -0
  185. {render-1.2.0 → render-1.3.0}/render/public_api/api/dedicated_i_ps/list_dedicated_ips.py +0 -0
  186. {render-1.2.0 → render-1.3.0}/render/public_api/api/dedicated_i_ps/retrieve_dedicated_ip.py +0 -0
  187. {render-1.2.0 → render-1.3.0}/render/public_api/api/dedicated_i_ps/update_dedicated_ip.py +0 -0
  188. {render-1.2.0 → render-1.3.0}/render/public_api/api/deploys/__init__.py +0 -0
  189. {render-1.2.0 → render-1.3.0}/render/public_api/api/deploys/cancel_deploy.py +0 -0
  190. {render-1.2.0 → render-1.3.0}/render/public_api/api/deploys/create_deploy.py +0 -0
  191. {render-1.2.0 → render-1.3.0}/render/public_api/api/deploys/list_deploys.py +0 -0
  192. {render-1.2.0 → render-1.3.0}/render/public_api/api/deploys/retrieve_deploy.py +0 -0
  193. {render-1.2.0 → render-1.3.0}/render/public_api/api/deploys/rollback_deploy.py +0 -0
  194. {render-1.2.0 → render-1.3.0}/render/public_api/api/disks/__init__.py +0 -0
  195. {render-1.2.0 → render-1.3.0}/render/public_api/api/disks/add_disk.py +0 -0
  196. {render-1.2.0 → render-1.3.0}/render/public_api/api/disks/delete_disk.py +0 -0
  197. {render-1.2.0 → render-1.3.0}/render/public_api/api/disks/list_disks.py +0 -0
  198. {render-1.2.0 → render-1.3.0}/render/public_api/api/disks/list_snapshots.py +0 -0
  199. {render-1.2.0 → render-1.3.0}/render/public_api/api/disks/restore_snapshot.py +0 -0
  200. {render-1.2.0 → render-1.3.0}/render/public_api/api/disks/retrieve_disk.py +0 -0
  201. {render-1.2.0 → render-1.3.0}/render/public_api/api/disks/update_disk.py +0 -0
  202. {render-1.2.0 → render-1.3.0}/render/public_api/api/environment_groups/__init__.py +0 -0
  203. {render-1.2.0 → render-1.3.0}/render/public_api/api/environment_groups/create_env_group.py +0 -0
  204. {render-1.2.0 → render-1.3.0}/render/public_api/api/environment_groups/delete_env_group.py +0 -0
  205. {render-1.2.0 → render-1.3.0}/render/public_api/api/environment_groups/delete_env_group_env_var.py +0 -0
  206. {render-1.2.0 → render-1.3.0}/render/public_api/api/environment_groups/delete_env_group_secret_file.py +0 -0
  207. {render-1.2.0 → render-1.3.0}/render/public_api/api/environment_groups/link_service_to_env_group.py +0 -0
  208. {render-1.2.0 → render-1.3.0}/render/public_api/api/environment_groups/list_env_groups.py +0 -0
  209. {render-1.2.0 → render-1.3.0}/render/public_api/api/environment_groups/retrieve_env_group.py +0 -0
  210. {render-1.2.0 → render-1.3.0}/render/public_api/api/environment_groups/retrieve_env_group_env_var.py +0 -0
  211. {render-1.2.0 → render-1.3.0}/render/public_api/api/environment_groups/retrieve_env_group_secret_file.py +0 -0
  212. {render-1.2.0 → render-1.3.0}/render/public_api/api/environment_groups/unlink_service_from_env_group.py +0 -0
  213. {render-1.2.0 → render-1.3.0}/render/public_api/api/environment_groups/update_env_group.py +0 -0
  214. {render-1.2.0 → render-1.3.0}/render/public_api/api/environment_groups/update_env_group_env_var.py +0 -0
  215. {render-1.2.0 → render-1.3.0}/render/public_api/api/environment_groups/update_env_group_secret_file.py +0 -0
  216. {render-1.2.0 → render-1.3.0}/render/public_api/api/events/__init__.py +0 -0
  217. {render-1.2.0 → render-1.3.0}/render/public_api/api/events/retrieve_event.py +0 -0
  218. {render-1.2.0 → render-1.3.0}/render/public_api/api/key_value/__init__.py +0 -0
  219. {render-1.2.0 → render-1.3.0}/render/public_api/api/key_value/create_key_value.py +0 -0
  220. {render-1.2.0 → render-1.3.0}/render/public_api/api/key_value/delete_key_value.py +0 -0
  221. {render-1.2.0 → render-1.3.0}/render/public_api/api/key_value/list_key_value.py +0 -0
  222. {render-1.2.0 → render-1.3.0}/render/public_api/api/key_value/resume_key_value.py +0 -0
  223. {render-1.2.0 → render-1.3.0}/render/public_api/api/key_value/retrieve_key_value.py +0 -0
  224. {render-1.2.0 → render-1.3.0}/render/public_api/api/key_value/retrieve_key_value_connection_info.py +0 -0
  225. {render-1.2.0 → render-1.3.0}/render/public_api/api/key_value/suspend_key_value.py +0 -0
  226. {render-1.2.0 → render-1.3.0}/render/public_api/api/key_value/update_key_value.py +0 -0
  227. {render-1.2.0 → render-1.3.0}/render/public_api/api/logs/__init__.py +0 -0
  228. {render-1.2.0 → render-1.3.0}/render/public_api/api/logs/delete_owner_log_stream.py +0 -0
  229. {render-1.2.0 → render-1.3.0}/render/public_api/api/logs/delete_resource_log_stream.py +0 -0
  230. {render-1.2.0 → render-1.3.0}/render/public_api/api/logs/get_owner_log_stream.py +0 -0
  231. {render-1.2.0 → render-1.3.0}/render/public_api/api/logs/get_resource_log_stream.py +0 -0
  232. {render-1.2.0 → render-1.3.0}/render/public_api/api/logs/list_logs.py +0 -0
  233. {render-1.2.0 → render-1.3.0}/render/public_api/api/logs/list_logs_values.py +0 -0
  234. {render-1.2.0 → render-1.3.0}/render/public_api/api/logs/list_resource_log_streams.py +0 -0
  235. {render-1.2.0 → render-1.3.0}/render/public_api/api/logs/subscribe_logs.py +0 -0
  236. {render-1.2.0 → render-1.3.0}/render/public_api/api/logs/update_owner_log_stream.py +0 -0
  237. {render-1.2.0 → render-1.3.0}/render/public_api/api/logs/update_resource_log_stream.py +0 -0
  238. {render-1.2.0 → render-1.3.0}/render/public_api/api/maintenance/__init__.py +0 -0
  239. {render-1.2.0 → render-1.3.0}/render/public_api/api/maintenance/list_maintenance.py +0 -0
  240. {render-1.2.0 → render-1.3.0}/render/public_api/api/maintenance/retrieve_maintenance.py +0 -0
  241. {render-1.2.0 → render-1.3.0}/render/public_api/api/maintenance/trigger_maintenance.py +0 -0
  242. {render-1.2.0 → render-1.3.0}/render/public_api/api/maintenance/update_maintenance.py +0 -0
  243. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/__init__.py +0 -0
  244. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/delete_owner_metrics_stream.py +0 -0
  245. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_active_connections.py +0 -0
  246. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_bandwidth.py +0 -0
  247. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_bandwidth_sources.py +0 -0
  248. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_cpu.py +0 -0
  249. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_cpu_limit.py +0 -0
  250. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_cpu_target.py +0 -0
  251. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_disk_capacity.py +0 -0
  252. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_disk_usage.py +0 -0
  253. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_http_latency.py +0 -0
  254. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_http_requests.py +0 -0
  255. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_instance_count.py +0 -0
  256. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_memory.py +0 -0
  257. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_memory_limit.py +0 -0
  258. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_memory_target.py +0 -0
  259. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_owner_metrics_stream.py +0 -0
  260. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_replication_lag.py +0 -0
  261. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_task_runs_completed.py +0 -0
  262. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/get_task_runs_queued.py +0 -0
  263. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/list_application_filter_values.py +0 -0
  264. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/list_http_filter_values.py +0 -0
  265. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/list_path_filter_values.py +0 -0
  266. {render-1.2.0 → render-1.3.0}/render/public_api/api/metrics/upsert_owner_metrics_stream.py +0 -0
  267. {render-1.2.0 → render-1.3.0}/render/public_api/api/notification_settings/__init__.py +0 -0
  268. {render-1.2.0 → render-1.3.0}/render/public_api/api/notification_settings/list_notification_overrides.py +0 -0
  269. {render-1.2.0 → render-1.3.0}/render/public_api/api/notification_settings/patch_owner_notification_settings.py +0 -0
  270. {render-1.2.0 → render-1.3.0}/render/public_api/api/notification_settings/patch_service_notification_overrides.py +0 -0
  271. {render-1.2.0 → render-1.3.0}/render/public_api/api/notification_settings/retrieve_owner_notification_settings.py +0 -0
  272. {render-1.2.0 → render-1.3.0}/render/public_api/api/notification_settings/retrieve_service_notification_overrides.py +0 -0
  273. {render-1.2.0 → render-1.3.0}/render/public_api/api/object_storage/__init__.py +0 -0
  274. {render-1.2.0 → render-1.3.0}/render/public_api/api/object_storage/delete_object.py +0 -0
  275. {render-1.2.0 → render-1.3.0}/render/public_api/api/object_storage/get_object.py +0 -0
  276. {render-1.2.0 → render-1.3.0}/render/public_api/api/object_storage/list_objects.py +0 -0
  277. {render-1.2.0 → render-1.3.0}/render/public_api/api/object_storage/put_object.py +0 -0
  278. {render-1.2.0 → render-1.3.0}/render/public_api/api/one_off_jobs/__init__.py +0 -0
  279. {render-1.2.0 → render-1.3.0}/render/public_api/api/one_off_jobs/cancel_job.py +0 -0
  280. {render-1.2.0 → render-1.3.0}/render/public_api/api/one_off_jobs/list_job.py +0 -0
  281. {render-1.2.0 → render-1.3.0}/render/public_api/api/one_off_jobs/post_job.py +0 -0
  282. {render-1.2.0 → render-1.3.0}/render/public_api/api/one_off_jobs/retrieve_job.py +0 -0
  283. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/__init__.py +0 -0
  284. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/create_postgres.py +0 -0
  285. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/create_postgres_export.py +0 -0
  286. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/create_postgres_user.py +0 -0
  287. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/delete_postgres.py +0 -0
  288. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/delete_postgres_user.py +0 -0
  289. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/failover_postgres.py +0 -0
  290. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/list_available_postgres_parameter_overrides.py +0 -0
  291. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/list_postgres.py +0 -0
  292. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/list_postgres_export.py +0 -0
  293. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/list_postgres_parameter_overrides.py +0 -0
  294. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/list_postgres_processes.py +0 -0
  295. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/list_postgres_sizes.py +0 -0
  296. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/list_postgres_table_scans.py +0 -0
  297. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/list_postgres_top_queries.py +0 -0
  298. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/list_postgres_users.py +0 -0
  299. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/promote_postgres.py +0 -0
  300. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/recover_postgres.py +0 -0
  301. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/restart_postgres.py +0 -0
  302. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/resume_postgres.py +0 -0
  303. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/retrieve_postgres.py +0 -0
  304. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/retrieve_postgres_connection_info.py +0 -0
  305. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/retrieve_postgres_recovery_info.py +0 -0
  306. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/setup_postgres_replication.py +0 -0
  307. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/suspend_postgres.py +0 -0
  308. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/update_postgres.py +0 -0
  309. {render-1.2.0 → render-1.3.0}/render/public_api/api/postgres/update_postgres_parameter_overrides.py +0 -0
  310. {render-1.2.0 → render-1.3.0}/render/public_api/api/projects_environments/__init__.py +0 -0
  311. {render-1.2.0 → render-1.3.0}/render/public_api/api/projects_environments/add_resources_to_environment.py +0 -0
  312. {render-1.2.0 → render-1.3.0}/render/public_api/api/projects_environments/create_environment.py +0 -0
  313. {render-1.2.0 → render-1.3.0}/render/public_api/api/projects_environments/create_project.py +0 -0
  314. {render-1.2.0 → render-1.3.0}/render/public_api/api/projects_environments/delete_environment.py +0 -0
  315. {render-1.2.0 → render-1.3.0}/render/public_api/api/projects_environments/delete_project.py +0 -0
  316. {render-1.2.0 → render-1.3.0}/render/public_api/api/projects_environments/list_environments.py +0 -0
  317. {render-1.2.0 → render-1.3.0}/render/public_api/api/projects_environments/list_projects.py +0 -0
  318. {render-1.2.0 → render-1.3.0}/render/public_api/api/projects_environments/remove_resources_from_environment.py +0 -0
  319. {render-1.2.0 → render-1.3.0}/render/public_api/api/projects_environments/retrieve_environment.py +0 -0
  320. {render-1.2.0 → render-1.3.0}/render/public_api/api/projects_environments/retrieve_project.py +0 -0
  321. {render-1.2.0 → render-1.3.0}/render/public_api/api/projects_environments/update_environment.py +0 -0
  322. {render-1.2.0 → render-1.3.0}/render/public_api/api/projects_environments/update_project.py +0 -0
  323. {render-1.2.0 → render-1.3.0}/render/public_api/api/redis_deprecated/__init__.py +0 -0
  324. {render-1.2.0 → render-1.3.0}/render/public_api/api/redis_deprecated/create_redis.py +0 -0
  325. {render-1.2.0 → render-1.3.0}/render/public_api/api/redis_deprecated/delete_redis.py +0 -0
  326. {render-1.2.0 → render-1.3.0}/render/public_api/api/redis_deprecated/list_redis.py +0 -0
  327. {render-1.2.0 → render-1.3.0}/render/public_api/api/redis_deprecated/resume_redis.py +0 -0
  328. {render-1.2.0 → render-1.3.0}/render/public_api/api/redis_deprecated/retrieve_redis.py +0 -0
  329. {render-1.2.0 → render-1.3.0}/render/public_api/api/redis_deprecated/retrieve_redis_connection_info.py +0 -0
  330. {render-1.2.0 → render-1.3.0}/render/public_api/api/redis_deprecated/suspend_redis.py +0 -0
  331. {render-1.2.0 → render-1.3.0}/render/public_api/api/redis_deprecated/update_redis.py +0 -0
  332. {render-1.2.0 → render-1.3.0}/render/public_api/api/registry_credentials/__init__.py +0 -0
  333. {render-1.2.0 → render-1.3.0}/render/public_api/api/registry_credentials/create_registry_credential.py +0 -0
  334. {render-1.2.0 → render-1.3.0}/render/public_api/api/registry_credentials/delete_registry_credential.py +0 -0
  335. {render-1.2.0 → render-1.3.0}/render/public_api/api/registry_credentials/list_registry_credentials.py +0 -0
  336. {render-1.2.0 → render-1.3.0}/render/public_api/api/registry_credentials/retrieve_registry_credential.py +0 -0
  337. {render-1.2.0 → render-1.3.0}/render/public_api/api/registry_credentials/update_registry_credential.py +0 -0
  338. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/__init__.py +0 -0
  339. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/connect_sandbox_files.py +0 -0
  340. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/connect_sandbox_run.py +0 -0
  341. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/create_sandbox.py +0 -0
  342. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/create_sandbox_snapshot.py +0 -0
  343. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/delete_sandbox_snapshot.py +0 -0
  344. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/list_sandbox_executions.py +0 -0
  345. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/list_sandbox_files.py +0 -0
  346. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/list_sandbox_groups.py +0 -0
  347. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/list_sandbox_snapshots.py +0 -0
  348. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/list_sandboxes.py +0 -0
  349. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/retrieve_sandbox.py +0 -0
  350. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/retrieve_sandbox_execution.py +0 -0
  351. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/retrieve_sandbox_snapshot.py +0 -0
  352. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/stream_sandbox_logs.py +0 -0
  353. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/terminate_sandbox.py +0 -0
  354. {render-1.2.0 → render-1.3.0}/render/public_api/api/sandboxes/update_sandbox_exec.py +0 -0
  355. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/__init__.py +0 -0
  356. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/add_or_update_secret_file.py +0 -0
  357. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/autoscale_service.py +0 -0
  358. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/create_ephemeral_shell.py +0 -0
  359. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/create_service.py +0 -0
  360. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/delete_autoscaling_config.py +0 -0
  361. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/delete_env_var.py +0 -0
  362. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/delete_secret_file.py +0 -0
  363. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/delete_service.py +0 -0
  364. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/get_env_vars_for_service.py +0 -0
  365. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/list_events.py +0 -0
  366. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/list_instances.py +0 -0
  367. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/list_secret_files_for_service.py +0 -0
  368. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/list_services.py +0 -0
  369. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/preview_service.py +0 -0
  370. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/purge_cache.py +0 -0
  371. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/restart_service.py +0 -0
  372. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/resume_service.py +0 -0
  373. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/retrieve_env_var.py +0 -0
  374. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/retrieve_secret_file.py +0 -0
  375. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/retrieve_service.py +0 -0
  376. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/retrieve_service_outbound_ips.py +0 -0
  377. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/scale_service.py +0 -0
  378. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/suspend_service.py +0 -0
  379. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/update_env_var.py +0 -0
  380. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/update_env_vars_for_service.py +0 -0
  381. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/update_secret_files_for_service.py +0 -0
  382. {render-1.2.0 → render-1.3.0}/render/public_api/api/services/update_service.py +0 -0
  383. {render-1.2.0 → render-1.3.0}/render/public_api/api/services_cron_jobs/__init__.py +0 -0
  384. {render-1.2.0 → render-1.3.0}/render/public_api/api/services_cron_jobs/cancel_cron_job_run.py +0 -0
  385. {render-1.2.0 → render-1.3.0}/render/public_api/api/services_cron_jobs/run_cron_job.py +0 -0
  386. {render-1.2.0 → render-1.3.0}/render/public_api/api/services_headers/__init__.py +0 -0
  387. {render-1.2.0 → render-1.3.0}/render/public_api/api/services_headers/add_headers.py +0 -0
  388. {render-1.2.0 → render-1.3.0}/render/public_api/api/services_headers/delete_header.py +0 -0
  389. {render-1.2.0 → render-1.3.0}/render/public_api/api/services_headers/list_headers.py +0 -0
  390. {render-1.2.0 → render-1.3.0}/render/public_api/api/services_headers/update_headers.py +0 -0
  391. {render-1.2.0 → render-1.3.0}/render/public_api/api/services_routes/__init__.py +0 -0
  392. {render-1.2.0 → render-1.3.0}/render/public_api/api/services_routes/add_route.py +0 -0
  393. {render-1.2.0 → render-1.3.0}/render/public_api/api/services_routes/delete_route.py +0 -0
  394. {render-1.2.0 → render-1.3.0}/render/public_api/api/services_routes/list_routes.py +0 -0
  395. {render-1.2.0 → render-1.3.0}/render/public_api/api/services_routes/patch_route.py +0 -0
  396. {render-1.2.0 → render-1.3.0}/render/public_api/api/services_routes/put_routes.py +0 -0
  397. {render-1.2.0 → render-1.3.0}/render/public_api/api/users/__init__.py +0 -0
  398. {render-1.2.0 → render-1.3.0}/render/public_api/api/users/get_user.py +0 -0
  399. {render-1.2.0 → render-1.3.0}/render/public_api/api/webhooks/__init__.py +0 -0
  400. {render-1.2.0 → render-1.3.0}/render/public_api/api/webhooks/create_webhook.py +0 -0
  401. {render-1.2.0 → render-1.3.0}/render/public_api/api/webhooks/delete_webhook.py +0 -0
  402. {render-1.2.0 → render-1.3.0}/render/public_api/api/webhooks/list_webhook_events.py +0 -0
  403. {render-1.2.0 → render-1.3.0}/render/public_api/api/webhooks/list_webhooks.py +0 -0
  404. {render-1.2.0 → render-1.3.0}/render/public_api/api/webhooks/retrieve_webhook.py +0 -0
  405. {render-1.2.0 → render-1.3.0}/render/public_api/api/webhooks/update_webhook.py +0 -0
  406. {render-1.2.0/render/public_api/api/workflow_tasks → render-1.3.0/render/public_api/api/workflow_flows}/__init__.py +0 -0
  407. {render-1.2.0/render/public_api/api/workflows → render-1.3.0/render/public_api/api/workflow_tasks}/__init__.py +0 -0
  408. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflow_tasks/create_task.py +0 -0
  409. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflow_tasks/get_task.py +0 -0
  410. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflow_tasks/list_tasks.py +0 -0
  411. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflow_tasks/stream_task_runs_events.py +0 -0
  412. {render-1.2.0/render/public_api/api/workspaces → render-1.3.0/render/public_api/api/workflows}/__init__.py +0 -0
  413. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflows/create_workflow.py +0 -0
  414. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflows/create_workflow_version.py +0 -0
  415. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflows/delete_workflow.py +0 -0
  416. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflows/get_workflow.py +0 -0
  417. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflows/get_workflow_version.py +0 -0
  418. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflows/list_workflow_versions.py +0 -0
  419. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflows/list_workflows.py +0 -0
  420. {render-1.2.0 → render-1.3.0}/render/public_api/api/workflows/update_workflow.py +0 -0
  421. {render-1.2.0 → render-1.3.0}/render/public_api/api/workspaces/list_owners.py +0 -0
  422. {render-1.2.0 → render-1.3.0}/render/public_api/api/workspaces/remove_workspace_member.py +0 -0
  423. {render-1.2.0 → render-1.3.0}/render/public_api/api/workspaces/retrieve_owner.py +0 -0
  424. {render-1.2.0 → render-1.3.0}/render/public_api/api/workspaces/retrieve_owner_members.py +0 -0
  425. {render-1.2.0 → render-1.3.0}/render/public_api/api/workspaces/update_workspace_member.py +0 -0
  426. {render-1.2.0 → render-1.3.0}/render/public_api/client.py +0 -0
  427. {render-1.2.0 → render-1.3.0}/render/public_api/errors.py +0 -0
  428. {render-1.2.0 → render-1.3.0}/render/public_api/models/add_headers_response_201.py +0 -0
  429. {render-1.2.0 → render-1.3.0}/render/public_api/models/add_or_update_build_source_secret_file_body.py +0 -0
  430. {render-1.2.0 → render-1.3.0}/render/public_api/models/add_or_update_secret_file_body.py +0 -0
  431. {render-1.2.0 → render-1.3.0}/render/public_api/models/artifact_fetch_failed.py +0 -0
  432. {render-1.2.0 → render-1.3.0}/render/public_api/models/artifact_source_changed.py +0 -0
  433. {render-1.2.0 → render-1.3.0}/render/public_api/models/audit_log.py +0 -0
  434. {render-1.2.0 → render-1.3.0}/render/public_api/models/audit_log_actor.py +0 -0
  435. {render-1.2.0 → render-1.3.0}/render/public_api/models/audit_log_actor_type.py +0 -0
  436. {render-1.2.0 → render-1.3.0}/render/public_api/models/audit_log_metadata.py +0 -0
  437. {render-1.2.0 → render-1.3.0}/render/public_api/models/audit_log_status.py +0 -0
  438. {render-1.2.0 → render-1.3.0}/render/public_api/models/audit_log_with_cursor.py +0 -0
  439. {render-1.2.0 → render-1.3.0}/render/public_api/models/auto_deploy.py +0 -0
  440. {render-1.2.0 → render-1.3.0}/render/public_api/models/auto_deploy_trigger.py +0 -0
  441. {render-1.2.0 → render-1.3.0}/render/public_api/models/autoscaling_config.py +0 -0
  442. {render-1.2.0 → render-1.3.0}/render/public_api/models/autoscaling_config_changed.py +0 -0
  443. {render-1.2.0 → render-1.3.0}/render/public_api/models/autoscaling_criteria.py +0 -0
  444. {render-1.2.0 → render-1.3.0}/render/public_api/models/autoscaling_criteria_percentage.py +0 -0
  445. {render-1.2.0 → render-1.3.0}/render/public_api/models/autoscaling_ended.py +0 -0
  446. {render-1.2.0 → render-1.3.0}/render/public_api/models/autoscaling_started.py +0 -0
  447. {render-1.2.0 → render-1.3.0}/render/public_api/models/background_worker_details.py +0 -0
  448. {render-1.2.0 → render-1.3.0}/render/public_api/models/background_worker_details_patch.py +0 -0
  449. {render-1.2.0 → render-1.3.0}/render/public_api/models/blueprint.py +0 -0
  450. {render-1.2.0 → render-1.3.0}/render/public_api/models/blueprint_detail.py +0 -0
  451. {render-1.2.0 → render-1.3.0}/render/public_api/models/blueprint_patch.py +0 -0
  452. {render-1.2.0 → render-1.3.0}/render/public_api/models/blueprint_with_cursor.py +0 -0
  453. {render-1.2.0 → render-1.3.0}/render/public_api/models/branch_deleted.py +0 -0
  454. {render-1.2.0 → render-1.3.0}/render/public_api/models/build.py +0 -0
  455. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_config.py +0 -0
  456. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_config_update.py +0 -0
  457. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_deploy_end_reason.py +0 -0
  458. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_deploy_end_reason_id.py +0 -0
  459. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_deploy_trigger.py +0 -0
  460. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_ended.py +0 -0
  461. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_filter.py +0 -0
  462. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_plan.py +0 -0
  463. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_run.py +0 -0
  464. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_run_runtime.py +0 -0
  465. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_run_status.py +0 -0
  466. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_source.py +0 -0
  467. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_source_git_region.py +0 -0
  468. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_source_git_runtime.py +0 -0
  469. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_source_image.py +0 -0
  470. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_source_patch_git_region.py +0 -0
  471. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_source_patch_git_runtime.py +0 -0
  472. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_source_patch_image.py +0 -0
  473. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_source_patch_input.py +0 -0
  474. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_source_post_input.py +0 -0
  475. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_source_service_link.py +0 -0
  476. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_source_with_cursor.py +0 -0
  477. {render-1.2.0 → render-1.3.0}/render/public_api/models/build_started.py +0 -0
  478. {render-1.2.0 → render-1.3.0}/render/public_api/models/cache.py +0 -0
  479. {render-1.2.0 → render-1.3.0}/render/public_api/models/cache_profile.py +0 -0
  480. {render-1.2.0 → render-1.3.0}/render/public_api/models/cidr_block_and_description.py +0 -0
  481. {render-1.2.0 → render-1.3.0}/render/public_api/models/commit_ignored.py +0 -0
  482. {render-1.2.0 → render-1.3.0}/render/public_api/models/commit_ref.py +0 -0
  483. {render-1.2.0 → render-1.3.0}/render/public_api/models/connect_sandbox_files_operation.py +0 -0
  484. {render-1.2.0 → render-1.3.0}/render/public_api/models/connect_sandbox_run_operation.py +0 -0
  485. {render-1.2.0 → render-1.3.0}/render/public_api/models/create_custom_domain_body.py +0 -0
  486. {render-1.2.0 → render-1.3.0}/render/public_api/models/create_deploy_body.py +0 -0
  487. {render-1.2.0 → render-1.3.0}/render/public_api/models/create_deploy_body_clear_cache.py +0 -0
  488. {render-1.2.0 → render-1.3.0}/render/public_api/models/create_ephemeral_shell_body.py +0 -0
  489. {render-1.2.0 → render-1.3.0}/render/public_api/models/create_ephemeral_shell_response_201.py +0 -0
  490. {render-1.2.0 → render-1.3.0}/render/public_api/models/create_registry_credential_body.py +0 -0
  491. {render-1.2.0 → render-1.3.0}/render/public_api/models/create_version.py +0 -0
  492. {render-1.2.0 → render-1.3.0}/render/public_api/models/credential_create_input.py +0 -0
  493. {render-1.2.0 → render-1.3.0}/render/public_api/models/cron_job_details.py +0 -0
  494. {render-1.2.0 → render-1.3.0}/render/public_api/models/cron_job_details_patch.py +0 -0
  495. {render-1.2.0 → render-1.3.0}/render/public_api/models/cron_job_run_ended.py +0 -0
  496. {render-1.2.0 → render-1.3.0}/render/public_api/models/cron_job_run_started.py +0 -0
  497. {render-1.2.0 → render-1.3.0}/render/public_api/models/cron_job_run_status.py +0 -0
  498. {render-1.2.0 → render-1.3.0}/render/public_api/models/custom_domain.py +0 -0
  499. {render-1.2.0 → render-1.3.0}/render/public_api/models/custom_domain_domain_type.py +0 -0
  500. {render-1.2.0 → render-1.3.0}/render/public_api/models/custom_domain_server.py +0 -0
  501. {render-1.2.0 → render-1.3.0}/render/public_api/models/custom_domain_verification_status.py +0 -0
  502. {render-1.2.0 → render-1.3.0}/render/public_api/models/custom_domain_with_cursor.py +0 -0
  503. {render-1.2.0 → render-1.3.0}/render/public_api/models/database_role.py +0 -0
  504. {render-1.2.0 → render-1.3.0}/render/public_api/models/database_status.py +0 -0
  505. {render-1.2.0 → render-1.3.0}/render/public_api/models/dedicated_ip.py +0 -0
  506. {render-1.2.0 → render-1.3.0}/render/public_api/models/dedicated_ip_status.py +0 -0
  507. {render-1.2.0 → render-1.3.0}/render/public_api/models/dedicated_ippatch.py +0 -0
  508. {render-1.2.0 → render-1.3.0}/render/public_api/models/dedicated_ippost.py +0 -0
  509. {render-1.2.0 → render-1.3.0}/render/public_api/models/deploy.py +0 -0
  510. {render-1.2.0 → render-1.3.0}/render/public_api/models/deploy_commit.py +0 -0
  511. {render-1.2.0 → render-1.3.0}/render/public_api/models/deploy_ended.py +0 -0
  512. {render-1.2.0 → render-1.3.0}/render/public_api/models/deploy_image.py +0 -0
  513. {render-1.2.0 → render-1.3.0}/render/public_api/models/deploy_mode.py +0 -0
  514. {render-1.2.0 → render-1.3.0}/render/public_api/models/deploy_started.py +0 -0
  515. {render-1.2.0 → render-1.3.0}/render/public_api/models/deploy_status.py +0 -0
  516. {render-1.2.0 → render-1.3.0}/render/public_api/models/deploy_trigger.py +0 -0
  517. {render-1.2.0 → render-1.3.0}/render/public_api/models/deploy_with_cursor.py +0 -0
  518. {render-1.2.0 → render-1.3.0}/render/public_api/models/disk.py +0 -0
  519. {render-1.2.0 → render-1.3.0}/render/public_api/models/disk_created.py +0 -0
  520. {render-1.2.0 → render-1.3.0}/render/public_api/models/disk_deleted.py +0 -0
  521. {render-1.2.0 → render-1.3.0}/render/public_api/models/disk_details.py +0 -0
  522. {render-1.2.0 → render-1.3.0}/render/public_api/models/disk_patch.py +0 -0
  523. {render-1.2.0 → render-1.3.0}/render/public_api/models/disk_post.py +0 -0
  524. {render-1.2.0 → render-1.3.0}/render/public_api/models/disk_snapshot.py +0 -0
  525. {render-1.2.0 → render-1.3.0}/render/public_api/models/disk_updated.py +0 -0
  526. {render-1.2.0 → render-1.3.0}/render/public_api/models/disk_with_cursor.py +0 -0
  527. {render-1.2.0 → render-1.3.0}/render/public_api/models/docker_details.py +0 -0
  528. {render-1.2.0 → render-1.3.0}/render/public_api/models/docker_details_patch.py +0 -0
  529. {render-1.2.0 → render-1.3.0}/render/public_api/models/docker_details_post.py +0 -0
  530. {render-1.2.0 → render-1.3.0}/render/public_api/models/edge_cache_disabled.py +0 -0
  531. {render-1.2.0 → render-1.3.0}/render/public_api/models/edge_cache_enabled.py +0 -0
  532. {render-1.2.0 → render-1.3.0}/render/public_api/models/edge_cache_purged.py +0 -0
  533. {render-1.2.0 → render-1.3.0}/render/public_api/models/edge_cache_trigger.py +0 -0
  534. {render-1.2.0 → render-1.3.0}/render/public_api/models/env_group.py +0 -0
  535. {render-1.2.0 → render-1.3.0}/render/public_api/models/env_group_link.py +0 -0
  536. {render-1.2.0 → render-1.3.0}/render/public_api/models/env_group_meta.py +0 -0
  537. {render-1.2.0 → render-1.3.0}/render/public_api/models/env_group_patch_input.py +0 -0
  538. {render-1.2.0 → render-1.3.0}/render/public_api/models/env_group_post_input.py +0 -0
  539. {render-1.2.0 → render-1.3.0}/render/public_api/models/env_var.py +0 -0
  540. {render-1.2.0 → render-1.3.0}/render/public_api/models/env_var_generate_value.py +0 -0
  541. {render-1.2.0 → render-1.3.0}/render/public_api/models/env_var_key_generate_value.py +0 -0
  542. {render-1.2.0 → render-1.3.0}/render/public_api/models/env_var_key_value.py +0 -0
  543. {render-1.2.0 → render-1.3.0}/render/public_api/models/env_var_value.py +0 -0
  544. {render-1.2.0 → render-1.3.0}/render/public_api/models/env_var_with_cursor.py +0 -0
  545. {render-1.2.0 → render-1.3.0}/render/public_api/models/environment.py +0 -0
  546. {render-1.2.0 → render-1.3.0}/render/public_api/models/environment_patch_input.py +0 -0
  547. {render-1.2.0 → render-1.3.0}/render/public_api/models/environment_post_input.py +0 -0
  548. {render-1.2.0 → render-1.3.0}/render/public_api/models/environment_resources_post_input.py +0 -0
  549. {render-1.2.0 → render-1.3.0}/render/public_api/models/environment_with_cursor.py +0 -0
  550. {render-1.2.0 → render-1.3.0}/render/public_api/models/error.py +0 -0
  551. {render-1.2.0 → render-1.3.0}/render/public_api/models/error_code.py +0 -0
  552. {render-1.2.0 → render-1.3.0}/render/public_api/models/event.py +0 -0
  553. {render-1.2.0 → render-1.3.0}/render/public_api/models/event_status.py +0 -0
  554. {render-1.2.0 → render-1.3.0}/render/public_api/models/event_type.py +0 -0
  555. {render-1.2.0 → render-1.3.0}/render/public_api/models/execution.py +0 -0
  556. {render-1.2.0 → render-1.3.0}/render/public_api/models/execution_operation.py +0 -0
  557. {render-1.2.0 → render-1.3.0}/render/public_api/models/execution_type.py +0 -0
  558. {render-1.2.0 → render-1.3.0}/render/public_api/models/execution_with_cursor.py +0 -0
  559. {render-1.2.0 → render-1.3.0}/render/public_api/models/failure_reason.py +0 -0
  560. {render-1.2.0 → render-1.3.0}/render/public_api/models/filter_application_values_collection_item.py +0 -0
  561. {render-1.2.0 → render-1.3.0}/render/public_api/models/filter_application_values_collection_item_filter.py +0 -0
  562. {render-1.2.0 → render-1.3.0}/render/public_api/models/filter_http_values_collection_item.py +0 -0
  563. {render-1.2.0 → render-1.3.0}/render/public_api/models/filter_http_values_collection_item_filter.py +0 -0
  564. {render-1.2.0 → render-1.3.0}/render/public_api/models/get_bandwidth_sources_response_200.py +0 -0
  565. {render-1.2.0 → render-1.3.0}/render/public_api/models/get_bandwidth_sources_response_200_data_item.py +0 -0
  566. {render-1.2.0 → render-1.3.0}/render/public_api/models/get_bandwidth_sources_response_200_data_item_labels.py +0 -0
  567. {render-1.2.0 → render-1.3.0}/render/public_api/models/get_bandwidth_sources_response_200_data_item_labels_traffic_source.py +0 -0
  568. {render-1.2.0 → render-1.3.0}/render/public_api/models/get_bandwidth_sources_response_200_data_item_values_item.py +0 -0
  569. {render-1.2.0 → render-1.3.0}/render/public_api/models/get_cpu_aggregation_method.py +0 -0
  570. {render-1.2.0 → render-1.3.0}/render/public_api/models/get_http_requests_aggregate_by.py +0 -0
  571. {render-1.2.0 → render-1.3.0}/render/public_api/models/get_object_output.py +0 -0
  572. {render-1.2.0 → render-1.3.0}/render/public_api/models/get_task_runs_completed_aggregate_by.py +0 -0
  573. {render-1.2.0 → render-1.3.0}/render/public_api/models/get_task_runs_completed_state.py +0 -0
  574. {render-1.2.0 → render-1.3.0}/render/public_api/models/header.py +0 -0
  575. {render-1.2.0 → render-1.3.0}/render/public_api/models/header_input.py +0 -0
  576. {render-1.2.0 → render-1.3.0}/render/public_api/models/header_with_cursor.py +0 -0
  577. {render-1.2.0 → render-1.3.0}/render/public_api/models/image.py +0 -0
  578. {render-1.2.0 → render-1.3.0}/render/public_api/models/image_pull_failed.py +0 -0
  579. {render-1.2.0 → render-1.3.0}/render/public_api/models/initial_deploy_hook_ended.py +0 -0
  580. {render-1.2.0 → render-1.3.0}/render/public_api/models/initial_deploy_hook_started.py +0 -0
  581. {render-1.2.0 → render-1.3.0}/render/public_api/models/instance_count_changed.py +0 -0
  582. {render-1.2.0 → render-1.3.0}/render/public_api/models/instance_type_changed.py +0 -0
  583. {render-1.2.0 → render-1.3.0}/render/public_api/models/internal_routing.py +0 -0
  584. {render-1.2.0 → render-1.3.0}/render/public_api/models/job.py +0 -0
  585. {render-1.2.0 → render-1.3.0}/render/public_api/models/job_run_ended.py +0 -0
  586. {render-1.2.0 → render-1.3.0}/render/public_api/models/job_status.py +0 -0
  587. {render-1.2.0 → render-1.3.0}/render/public_api/models/job_with_cursor.py +0 -0
  588. {render-1.2.0 → render-1.3.0}/render/public_api/models/key_value.py +0 -0
  589. {render-1.2.0 → render-1.3.0}/render/public_api/models/key_value_available.py +0 -0
  590. {render-1.2.0 → render-1.3.0}/render/public_api/models/key_value_config_restart.py +0 -0
  591. {render-1.2.0 → render-1.3.0}/render/public_api/models/key_value_connection_info.py +0 -0
  592. {render-1.2.0 → render-1.3.0}/render/public_api/models/key_value_detail.py +0 -0
  593. {render-1.2.0 → render-1.3.0}/render/public_api/models/key_value_options.py +0 -0
  594. {render-1.2.0 → render-1.3.0}/render/public_api/models/key_value_patch_input.py +0 -0
  595. {render-1.2.0 → render-1.3.0}/render/public_api/models/key_value_plan.py +0 -0
  596. {render-1.2.0 → render-1.3.0}/render/public_api/models/key_value_post_input.py +0 -0
  597. {render-1.2.0 → render-1.3.0}/render/public_api/models/key_value_unhealthy.py +0 -0
  598. {render-1.2.0 → render-1.3.0}/render/public_api/models/key_value_with_cursor.py +0 -0
  599. {render-1.2.0 → render-1.3.0}/render/public_api/models/label.py +0 -0
  600. {render-1.2.0 → render-1.3.0}/render/public_api/models/list_custom_domains_domain_type.py +0 -0
  601. {render-1.2.0 → render-1.3.0}/render/public_api/models/list_custom_domains_verification_status.py +0 -0
  602. {render-1.2.0 → render-1.3.0}/render/public_api/models/list_logs_response_200.py +0 -0
  603. {render-1.2.0 → render-1.3.0}/render/public_api/models/list_logs_values_label.py +0 -0
  604. {render-1.2.0 → render-1.3.0}/render/public_api/models/list_objects_response.py +0 -0
  605. {render-1.2.0 → render-1.3.0}/render/public_api/models/list_postgres_suspended_item.py +0 -0
  606. {render-1.2.0 → render-1.3.0}/render/public_api/models/list_postgres_users_response_200_item.py +0 -0
  607. {render-1.2.0 → render-1.3.0}/render/public_api/models/list_routes_type_item.py +0 -0
  608. {render-1.2.0 → render-1.3.0}/render/public_api/models/list_services_suspended_item.py +0 -0
  609. {render-1.2.0 → render-1.3.0}/render/public_api/models/log.py +0 -0
  610. {render-1.2.0 → render-1.3.0}/render/public_api/models/log_direction.py +0 -0
  611. {render-1.2.0 → render-1.3.0}/render/public_api/models/log_label.py +0 -0
  612. {render-1.2.0 → render-1.3.0}/render/public_api/models/log_label_name.py +0 -0
  613. {render-1.2.0 → render-1.3.0}/render/public_api/models/log_stream_owner_update.py +0 -0
  614. {render-1.2.0 → render-1.3.0}/render/public_api/models/log_stream_preview_setting.py +0 -0
  615. {render-1.2.0 → render-1.3.0}/render/public_api/models/log_stream_resource_update.py +0 -0
  616. {render-1.2.0 → render-1.3.0}/render/public_api/models/log_stream_setting.py +0 -0
  617. {render-1.2.0 → render-1.3.0}/render/public_api/models/maintenance_ended.py +0 -0
  618. {render-1.2.0 → render-1.3.0}/render/public_api/models/maintenance_mode.py +0 -0
  619. {render-1.2.0 → render-1.3.0}/render/public_api/models/maintenance_mode_enabled.py +0 -0
  620. {render-1.2.0 → render-1.3.0}/render/public_api/models/maintenance_mode_uri_updated.py +0 -0
  621. {render-1.2.0 → render-1.3.0}/render/public_api/models/maintenance_run.py +0 -0
  622. {render-1.2.0 → render-1.3.0}/render/public_api/models/maintenance_run_patch.py +0 -0
  623. {render-1.2.0 → render-1.3.0}/render/public_api/models/maintenance_run_with_resource.py +0 -0
  624. {render-1.2.0 → render-1.3.0}/render/public_api/models/maintenance_started.py +0 -0
  625. {render-1.2.0 → render-1.3.0}/render/public_api/models/maintenance_state.py +0 -0
  626. {render-1.2.0 → render-1.3.0}/render/public_api/models/maintenance_trigger.py +0 -0
  627. {render-1.2.0 → render-1.3.0}/render/public_api/models/maxmemory_policy.py +0 -0
  628. {render-1.2.0 → render-1.3.0}/render/public_api/models/metrics_stream.py +0 -0
  629. {render-1.2.0 → render-1.3.0}/render/public_api/models/metrics_stream_input.py +0 -0
  630. {render-1.2.0 → render-1.3.0}/render/public_api/models/native_environment_details.py +0 -0
  631. {render-1.2.0 → render-1.3.0}/render/public_api/models/native_environment_details_patch.py +0 -0
  632. {render-1.2.0 → render-1.3.0}/render/public_api/models/native_environment_details_post.py +0 -0
  633. {render-1.2.0 → render-1.3.0}/render/public_api/models/notification_override.py +0 -0
  634. {render-1.2.0 → render-1.3.0}/render/public_api/models/notification_override_with_cursor.py +0 -0
  635. {render-1.2.0 → render-1.3.0}/render/public_api/models/notification_service_override.py +0 -0
  636. {render-1.2.0 → render-1.3.0}/render/public_api/models/notification_service_override_patch.py +0 -0
  637. {render-1.2.0 → render-1.3.0}/render/public_api/models/notification_setting.py +0 -0
  638. {render-1.2.0 → render-1.3.0}/render/public_api/models/notification_setting_patch.py +0 -0
  639. {render-1.2.0 → render-1.3.0}/render/public_api/models/notify_override.py +0 -0
  640. {render-1.2.0 → render-1.3.0}/render/public_api/models/notify_preview_override.py +0 -0
  641. {render-1.2.0 → render-1.3.0}/render/public_api/models/notify_setting.py +0 -0
  642. {render-1.2.0 → render-1.3.0}/render/public_api/models/notify_setting_v2.py +0 -0
  643. {render-1.2.0 → render-1.3.0}/render/public_api/models/object_metadata.py +0 -0
  644. {render-1.2.0 → render-1.3.0}/render/public_api/models/object_with_cursor.py +0 -0
  645. {render-1.2.0 → render-1.3.0}/render/public_api/models/oom_killed.py +0 -0
  646. {render-1.2.0 → render-1.3.0}/render/public_api/models/otel_provider_type.py +0 -0
  647. {render-1.2.0 → render-1.3.0}/render/public_api/models/outbound_ips.py +0 -0
  648. {render-1.2.0 → render-1.3.0}/render/public_api/models/outbound_ips_type.py +0 -0
  649. {render-1.2.0 → render-1.3.0}/render/public_api/models/owner.py +0 -0
  650. {render-1.2.0 → render-1.3.0}/render/public_api/models/owner_log_stream_setting.py +0 -0
  651. {render-1.2.0 → render-1.3.0}/render/public_api/models/owner_type.py +0 -0
  652. {render-1.2.0 → render-1.3.0}/render/public_api/models/owner_with_cursor.py +0 -0
  653. {render-1.2.0 → render-1.3.0}/render/public_api/models/paid_plan.py +0 -0
  654. {render-1.2.0 → render-1.3.0}/render/public_api/models/patch_route_response_200.py +0 -0
  655. {render-1.2.0 → render-1.3.0}/render/public_api/models/persistence_mode.py +0 -0
  656. {render-1.2.0 → render-1.3.0}/render/public_api/models/pipeline_minutes_exhausted.py +0 -0
  657. {render-1.2.0 → render-1.3.0}/render/public_api/models/plan.py +0 -0
  658. {render-1.2.0 → render-1.3.0}/render/public_api/models/post_job_body.py +0 -0
  659. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres.py +0 -0
  660. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_available.py +0 -0
  661. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_available_parameter_override.py +0 -0
  662. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_available_parameter_overrides_result.py +0 -0
  663. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_backup_completed.py +0 -0
  664. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_backup_failed.py +0 -0
  665. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_backup_started.py +0 -0
  666. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_cluster_leader_changed.py +0 -0
  667. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_connection_info.py +0 -0
  668. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_connection_pool_changed.py +0 -0
  669. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_connection_pool_enabled_changed.py +0 -0
  670. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_created.py +0 -0
  671. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_detail.py +0 -0
  672. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_detail_suspended.py +0 -0
  673. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_disk_size_changed.py +0 -0
  674. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_export.py +0 -0
  675. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_ha_status_changed.py +0 -0
  676. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_parameter_overrides.py +0 -0
  677. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_parameter_overrides_wrapper.py +0 -0
  678. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_patch_input.py +0 -0
  679. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_pitr_checkpoint_completed.py +0 -0
  680. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_pitr_checkpoint_failed.py +0 -0
  681. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_pitr_checkpoint_started.py +0 -0
  682. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_plans.py +0 -0
  683. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_post_input.py +0 -0
  684. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_process.py +0 -0
  685. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_processes_result.py +0 -0
  686. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_put_parameter_overrides_result.py +0 -0
  687. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_query_statistic.py +0 -0
  688. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_read_replica_stale.py +0 -0
  689. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_read_replicas_changed.py +0 -0
  690. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_replication_setup_input.py +0 -0
  691. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_restarted.py +0 -0
  692. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_size.py +0 -0
  693. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_sizes_result.py +0 -0
  694. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_suspended.py +0 -0
  695. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_table_scan.py +0 -0
  696. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_table_scans_result.py +0 -0
  697. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_top_queries_result.py +0 -0
  698. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_unavailable.py +0 -0
  699. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_upgrade_failed.py +0 -0
  700. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_upgrade_started.py +0 -0
  701. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_upgrade_succeeded.py +0 -0
  702. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_version.py +0 -0
  703. {render-1.2.0 → render-1.3.0}/render/public_api/models/postgres_with_cursor.py +0 -0
  704. {render-1.2.0 → render-1.3.0}/render/public_api/models/pre_deploy_ended.py +0 -0
  705. {render-1.2.0 → render-1.3.0}/render/public_api/models/pre_deploy_started.py +0 -0
  706. {render-1.2.0 → render-1.3.0}/render/public_api/models/preview_input.py +0 -0
  707. {render-1.2.0 → render-1.3.0}/render/public_api/models/previews.py +0 -0
  708. {render-1.2.0 → render-1.3.0}/render/public_api/models/previews_generation.py +0 -0
  709. {render-1.2.0 → render-1.3.0}/render/public_api/models/private_service_details.py +0 -0
  710. {render-1.2.0 → render-1.3.0}/render/public_api/models/private_service_details_patch.py +0 -0
  711. {render-1.2.0 → render-1.3.0}/render/public_api/models/project.py +0 -0
  712. {render-1.2.0 → render-1.3.0}/render/public_api/models/project_patch_input.py +0 -0
  713. {render-1.2.0 → render-1.3.0}/render/public_api/models/project_post_environment_input.py +0 -0
  714. {render-1.2.0 → render-1.3.0}/render/public_api/models/project_post_input.py +0 -0
  715. {render-1.2.0 → render-1.3.0}/render/public_api/models/project_with_cursor.py +0 -0
  716. {render-1.2.0 → render-1.3.0}/render/public_api/models/protected_status.py +0 -0
  717. {render-1.2.0 → render-1.3.0}/render/public_api/models/pull_request_previews_enabled.py +0 -0
  718. {render-1.2.0 → render-1.3.0}/render/public_api/models/put_object_input.py +0 -0
  719. {render-1.2.0 → render-1.3.0}/render/public_api/models/put_object_output.py +0 -0
  720. {render-1.2.0 → render-1.3.0}/render/public_api/models/read_replica.py +0 -0
  721. {render-1.2.0 → render-1.3.0}/render/public_api/models/read_replica_input.py +0 -0
  722. {render-1.2.0 → render-1.3.0}/render/public_api/models/recovery_info.py +0 -0
  723. {render-1.2.0 → render-1.3.0}/render/public_api/models/recovery_info_recovery_status.py +0 -0
  724. {render-1.2.0 → render-1.3.0}/render/public_api/models/recovery_input.py +0 -0
  725. {render-1.2.0 → render-1.3.0}/render/public_api/models/redis.py +0 -0
  726. {render-1.2.0 → render-1.3.0}/render/public_api/models/redis_connection_info.py +0 -0
  727. {render-1.2.0 → render-1.3.0}/render/public_api/models/redis_detail.py +0 -0
  728. {render-1.2.0 → render-1.3.0}/render/public_api/models/redis_options.py +0 -0
  729. {render-1.2.0 → render-1.3.0}/render/public_api/models/redis_patch_input.py +0 -0
  730. {render-1.2.0 → render-1.3.0}/render/public_api/models/redis_plan.py +0 -0
  731. {render-1.2.0 → render-1.3.0}/render/public_api/models/redis_post_input.py +0 -0
  732. {render-1.2.0 → render-1.3.0}/render/public_api/models/redis_with_cursor.py +0 -0
  733. {render-1.2.0 → render-1.3.0}/render/public_api/models/region.py +0 -0
  734. {render-1.2.0 → render-1.3.0}/render/public_api/models/registry_credential.py +0 -0
  735. {render-1.2.0 → render-1.3.0}/render/public_api/models/registry_credential_registry.py +0 -0
  736. {render-1.2.0 → render-1.3.0}/render/public_api/models/registry_credential_summary.py +0 -0
  737. {render-1.2.0 → render-1.3.0}/render/public_api/models/render_subdomain_policy.py +0 -0
  738. {render-1.2.0 → render-1.3.0}/render/public_api/models/resource.py +0 -0
  739. {render-1.2.0 → render-1.3.0}/render/public_api/models/resource_log_stream_setting.py +0 -0
  740. {render-1.2.0 → render-1.3.0}/render/public_api/models/resource_ref.py +0 -0
  741. {render-1.2.0 → render-1.3.0}/render/public_api/models/resource_ref_type.py +0 -0
  742. {render-1.2.0 → render-1.3.0}/render/public_api/models/rollback_deploy_body.py +0 -0
  743. {render-1.2.0 → render-1.3.0}/render/public_api/models/route.py +0 -0
  744. {render-1.2.0 → render-1.3.0}/render/public_api/models/route_patch.py +0 -0
  745. {render-1.2.0 → render-1.3.0}/render/public_api/models/route_post.py +0 -0
  746. {render-1.2.0 → render-1.3.0}/render/public_api/models/route_put.py +0 -0
  747. {render-1.2.0 → render-1.3.0}/render/public_api/models/route_type.py +0 -0
  748. {render-1.2.0 → render-1.3.0}/render/public_api/models/route_with_cursor.py +0 -0
  749. {render-1.2.0 → render-1.3.0}/render/public_api/models/run_task.py +0 -0
  750. {render-1.2.0 → render-1.3.0}/render/public_api/models/runtime.py +0 -0
  751. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_connect_request.py +0 -0
  752. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_connect_response.py +0 -0
  753. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_directory_listing.py +0 -0
  754. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_exec_update_request.py +0 -0
  755. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_exec_update_response.py +0 -0
  756. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_file_entry.py +0 -0
  757. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_file_entry_type.py +0 -0
  758. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_group.py +0 -0
  759. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_group_with_cursor.py +0 -0
  760. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_plan.py +0 -0
  761. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_post_env.py +0 -0
  762. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_snapshot.py +0 -0
  763. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_snapshot_kind.py +0 -0
  764. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_snapshot_post.py +0 -0
  765. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_snapshot_status.py +0 -0
  766. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_snapshot_with_cursor.py +0 -0
  767. {render-1.2.0 → render-1.3.0}/render/public_api/models/sandbox_with_cursor.py +0 -0
  768. {render-1.2.0 → render-1.3.0}/render/public_api/models/scale_service_body.py +0 -0
  769. {render-1.2.0 → render-1.3.0}/render/public_api/models/schemas_build_filter.py +0 -0
  770. {render-1.2.0 → render-1.3.0}/render/public_api/models/schemas_image.py +0 -0
  771. {render-1.2.0 → render-1.3.0}/render/public_api/models/schemas_user.py +0 -0
  772. {render-1.2.0 → render-1.3.0}/render/public_api/models/secret_file.py +0 -0
  773. {render-1.2.0 → render-1.3.0}/render/public_api/models/secret_file_input.py +0 -0
  774. {render-1.2.0 → render-1.3.0}/render/public_api/models/secret_file_with_cursor.py +0 -0
  775. {render-1.2.0 → render-1.3.0}/render/public_api/models/server_available.py +0 -0
  776. {render-1.2.0 → render-1.3.0}/render/public_api/models/server_failed.py +0 -0
  777. {render-1.2.0 → render-1.3.0}/render/public_api/models/server_hardware_failure.py +0 -0
  778. {render-1.2.0 → render-1.3.0}/render/public_api/models/server_port.py +0 -0
  779. {render-1.2.0 → render-1.3.0}/render/public_api/models/server_port_protocol.py +0 -0
  780. {render-1.2.0 → render-1.3.0}/render/public_api/models/server_restarted.py +0 -0
  781. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_and_deploy.py +0 -0
  782. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_disk.py +0 -0
  783. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_disk_usage_high.py +0 -0
  784. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_disk_usage_recovered.py +0 -0
  785. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_env.py +0 -0
  786. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_event.py +0 -0
  787. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_event_type.py +0 -0
  788. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_instance.py +0 -0
  789. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_resumed.py +0 -0
  790. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_runtime.py +0 -0
  791. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_service_suspended_state.py +0 -0
  792. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_suspended.py +0 -0
  793. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_type.py +0 -0
  794. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_type_short.py +0 -0
  795. {render-1.2.0 → render-1.3.0}/render/public_api/models/service_with_cursor.py +0 -0
  796. {render-1.2.0 → render-1.3.0}/render/public_api/models/setup_postgres_replication_response_201.py +0 -0
  797. {render-1.2.0 → render-1.3.0}/render/public_api/models/snapshot_restore_post.py +0 -0
  798. {render-1.2.0 → render-1.3.0}/render/public_api/models/static_site_details.py +0 -0
  799. {render-1.2.0 → render-1.3.0}/render/public_api/models/static_site_details_patch.py +0 -0
  800. {render-1.2.0 → render-1.3.0}/render/public_api/models/static_site_details_post.py +0 -0
  801. {render-1.2.0 → render-1.3.0}/render/public_api/models/status.py +0 -0
  802. {render-1.2.0 → render-1.3.0}/render/public_api/models/stream_sandbox_logs_accept.py +0 -0
  803. {render-1.2.0 → render-1.3.0}/render/public_api/models/stream_task_runs_events_accept.py +0 -0
  804. {render-1.2.0 → render-1.3.0}/render/public_api/models/suspender_added.py +0 -0
  805. {render-1.2.0 → render-1.3.0}/render/public_api/models/suspender_removed.py +0 -0
  806. {render-1.2.0 → render-1.3.0}/render/public_api/models/suspender_type.py +0 -0
  807. {render-1.2.0 → render-1.3.0}/render/public_api/models/sync.py +0 -0
  808. {render-1.2.0 → render-1.3.0}/render/public_api/models/sync_state.py +0 -0
  809. {render-1.2.0 → render-1.3.0}/render/public_api/models/sync_with_cursor.py +0 -0
  810. {render-1.2.0 → render-1.3.0}/render/public_api/models/task.py +0 -0
  811. {render-1.2.0 → render-1.3.0}/render/public_api/models/task_attempt.py +0 -0
  812. {render-1.2.0 → render-1.3.0}/render/public_api/models/task_attempt_details.py +0 -0
  813. {render-1.2.0 → render-1.3.0}/render/public_api/models/task_data_type_1.py +0 -0
  814. {render-1.2.0 → render-1.3.0}/render/public_api/models/task_run.py +0 -0
  815. {render-1.2.0 → render-1.3.0}/render/public_api/models/task_run_details.py +0 -0
  816. {render-1.2.0 → render-1.3.0}/render/public_api/models/task_run_status.py +0 -0
  817. {render-1.2.0 → render-1.3.0}/render/public_api/models/task_run_with_cursor.py +0 -0
  818. {render-1.2.0 → render-1.3.0}/render/public_api/models/task_with_cursor.py +0 -0
  819. {render-1.2.0 → render-1.3.0}/render/public_api/models/team_member.py +0 -0
  820. {render-1.2.0 → render-1.3.0}/render/public_api/models/team_member_role.py +0 -0
  821. {render-1.2.0 → render-1.3.0}/render/public_api/models/team_member_status.py +0 -0
  822. {render-1.2.0 → render-1.3.0}/render/public_api/models/time_series.py +0 -0
  823. {render-1.2.0 → render-1.3.0}/render/public_api/models/time_series_value.py +0 -0
  824. {render-1.2.0 → render-1.3.0}/render/public_api/models/update_env_group_secret_file_body.py +0 -0
  825. {render-1.2.0 → render-1.3.0}/render/public_api/models/update_registry_credential_body.py +0 -0
  826. {render-1.2.0 → render-1.3.0}/render/public_api/models/update_workspace_member_body.py +0 -0
  827. {render-1.2.0 → render-1.3.0}/render/public_api/models/user.py +0 -0
  828. {render-1.2.0 → render-1.3.0}/render/public_api/models/validate_blueprint_request.py +0 -0
  829. {render-1.2.0 → render-1.3.0}/render/public_api/models/validate_blueprint_response.py +0 -0
  830. {render-1.2.0 → render-1.3.0}/render/public_api/models/validation_error.py +0 -0
  831. {render-1.2.0 → render-1.3.0}/render/public_api/models/validation_plan_summary.py +0 -0
  832. {render-1.2.0 → render-1.3.0}/render/public_api/models/web_service_details.py +0 -0
  833. {render-1.2.0 → render-1.3.0}/render/public_api/models/web_service_details_patch.py +0 -0
  834. {render-1.2.0 → render-1.3.0}/render/public_api/models/webhook.py +0 -0
  835. {render-1.2.0 → render-1.3.0}/render/public_api/models/webhook_event.py +0 -0
  836. {render-1.2.0 → render-1.3.0}/render/public_api/models/webhook_event_with_cursor.py +0 -0
  837. {render-1.2.0 → render-1.3.0}/render/public_api/models/webhook_patch_input.py +0 -0
  838. {render-1.2.0 → render-1.3.0}/render/public_api/models/webhook_post_input.py +0 -0
  839. {render-1.2.0 → render-1.3.0}/render/public_api/models/webhook_with_cursor.py +0 -0
  840. {render-1.2.0 → render-1.3.0}/render/public_api/models/workflow.py +0 -0
  841. {render-1.2.0 → render-1.3.0}/render/public_api/models/workflow_create.py +0 -0
  842. {render-1.2.0 → render-1.3.0}/render/public_api/models/workflow_update.py +0 -0
  843. {render-1.2.0 → render-1.3.0}/render/public_api/models/workflow_version.py +0 -0
  844. {render-1.2.0 → render-1.3.0}/render/public_api/models/workflow_version_status.py +0 -0
  845. {render-1.2.0 → render-1.3.0}/render/public_api/models/workflow_version_with_cursor.py +0 -0
  846. {render-1.2.0 → render-1.3.0}/render/public_api/models/workflow_with_cursor.py +0 -0
  847. {render-1.2.0 → render-1.3.0}/render/public_api/models/zero_downtime_redeploy_ended.py +0 -0
  848. {render-1.2.0 → render-1.3.0}/render/public_api/models/zero_downtime_redeploy_started.py +0 -0
  849. {render-1.2.0 → render-1.3.0}/render/public_api/py.typed +0 -0
  850. {render-1.2.0 → render-1.3.0}/render/public_api/types.py +0 -0
  851. {render-1.2.0 → render-1.3.0}/render/py.typed +0 -0
  852. {render-1.2.0 → render-1.3.0}/render/render.py +0 -0
  853. {render-1.2.0 → render-1.3.0}/render/render_async.py +0 -0
  854. {render-1.2.0 → render-1.3.0}/render/version.py +0 -0
  855. {render-1.2.0 → render-1.3.0}/render/workflows/__init__.py +0 -0
  856. {render-1.2.0 → render-1.3.0}/render/workflows/_callback_models.py +0 -0
  857. {render-1.2.0 → render-1.3.0}/render/workflows/_uds_http.py +0 -0
  858. {render-1.2.0 → render-1.3.0}/render/workflows/app.py +0 -0
  859. {render-1.2.0 → render-1.3.0}/render/workflows/cli.py +0 -0
  860. {render-1.2.0 → render-1.3.0}/render/workflows/context.py +0 -0
  861. {render-1.2.0 → render-1.3.0}/render/workflows/executor.py +0 -0
  862. {render-1.2.0 → render-1.3.0}/render/workflows/task.py +0 -0
  863. {render-1.2.0 → render-1.3.0}/render/workflows/tests/__init__.py +0 -0
  864. {render-1.2.0 → render-1.3.0}/render/workflows/tests/test_app.py +0 -0
  865. {render-1.2.0 → render-1.3.0}/render/workflows/tests/test_cli.py +0 -0
  866. {render-1.2.0 → render-1.3.0}/render/workflows/tests/test_context.py +0 -0
  867. {render-1.2.0 → render-1.3.0}/render/workflows/tests/test_executor.py +0 -0
  868. {render-1.2.0 → render-1.3.0}/render/workflows/tests/test_lazy_imports.py +0 -0
  869. {render-1.2.0 → render-1.3.0}/render/workflows/tests/test_registration.py +0 -0
  870. {render-1.2.0 → render-1.3.0}/render/workflows/tests/test_translate_errors.py +0 -0
  871. {render-1.2.0 → render-1.3.0}/render/workflows/tests/test_uds_http.py +0 -0
  872. {render-1.2.0 → render-1.3.0}/render/workflows/tests/test_version.py +0 -0
  873. {render-1.2.0 → render-1.3.0}/scripts/unasync.py +0 -0
  874. {render-1.2.0 → render-1.3.0}/tox.ini +0 -0
  875. {render-1.2.0 → render-1.3.0}/typing_tests/README.md +0 -0
  876. {render-1.2.0 → render-1.3.0}/typing_tests/client_decorators.py +0 -0
  877. {render-1.2.0 → render-1.3.0}/typing_tests/run_inference.py +0 -0
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.3.0] - 2026-10-17
4
+
5
+ ### Added
6
+
7
+ - (Sandboxes) `sandboxes.create()` accepts `network_policy=NetworkPolicy(type="allow-list", rules=[EgressRule(domain="pypi.org")])` to restrict outbound traffic. Rules support domain names and wildcard domains such as `*.pypi.org`. `EgressRule.protocol` defaults to `"https"`. Both the sync and async clients support these rules.
8
+ - (REST API) Generated clients include flows, flow runs, run steps, and individual build retrieval.
9
+
10
+ ### Changed
11
+
12
+ - **Breaking:** (Sandboxes) `Sandbox.network_policy` is a `NetworkPolicy` object with `type` and `rules` instead of a string. Read `sandbox.network_policy.type` to get the policy type. String inputs such as `network_policy="deny-all"` still work when you create a sandbox.
13
+ - **Breaking:** (REST API) Removed `create_blueprint` and its request and response models. Build source Git fields use `docker_context` instead of `base_dir`. Build lists return `BuildWithCursor` entries with `build` and `cursor` fields instead of bare `Build` entries.
14
+ - (REST API) Service creation can omit `runtime` when `build_source_id` is set. `auto_deploy` is deprecated; use `auto_deploy_trigger`. Sandbox status includes `suspending`. Service event list entries include a `cursor`.
15
+ - (Workflows) The SDK sends import and startup timestamps with the initial input request. The runtime can use these timestamps to measure SDK import and startup time.
16
+
3
17
  ## [1.2.0] - 2026-09-23
4
18
 
5
19
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: render
3
- Version: 1.2.0
3
+ Version: 1.3.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.2.0"
7
+ version = "1.3.0"
8
8
  description = "Python SDK for Render Workflows"
9
9
  authors = [{ name = "Render", email = "support@render.com" }]
10
10
  readme = "README.md"
@@ -33,7 +33,10 @@ Async REST API access:
33
33
  result = await task_run
34
34
  """
35
35
 
36
- __version__ = "1.2.0"
36
+ # Must stay the first import: it records when SDK import began.
37
+ from render import _startup
38
+
39
+ __version__ = "1.3.0"
37
40
 
38
41
  # Render/RenderAsync are lazy-loaded so the workflow worker path stays fast.
39
42
  from typing import TYPE_CHECKING
@@ -98,3 +101,5 @@ def __dir__() -> list[str]:
98
101
  #
99
102
  # Raw API access available via:
100
103
  # from render.public_api import AuthenticatedClient
104
+
105
+ _startup.mark_import_finished()
@@ -0,0 +1,34 @@
1
+ """Wall-clock startup timestamps reported to the server on ``GET /input``.
2
+
3
+ Imported first by ``render/__init__.py`` so the import start is the earliest
4
+ point SDK code runs. Stdlib only, to stay cheap.
5
+ """
6
+
7
+ import time
8
+
9
+ _import_started_ns: int | None = time.time_ns()
10
+ _import_finished_ns: int | None = None
11
+ _sdk_started_ns: int | None = None
12
+
13
+
14
+ def mark_import_finished() -> None:
15
+ global _import_finished_ns
16
+ if _import_finished_ns is None:
17
+ _import_finished_ns = time.time_ns()
18
+
19
+
20
+ def mark_sdk_started() -> None:
21
+ global _sdk_started_ns
22
+ if _sdk_started_ns is None:
23
+ _sdk_started_ns = time.time_ns()
24
+
25
+
26
+ def input_query() -> str:
27
+ """Return ``?k=v&...`` for the timestamps that were captured, or ``""``."""
28
+ params = (
29
+ ("sdk_import_started_at", _import_started_ns),
30
+ ("sdk_import_finished_at", _import_finished_ns),
31
+ ("sdk_started_at", _sdk_started_ns),
32
+ )
33
+ parts = [f"{name}={value}" for name, value in params if value]
34
+ return "?" + "&".join(parts) if parts else ""
@@ -0,0 +1,59 @@
1
+ """Retry 429s in the object storage e2e tests.
2
+
3
+ Every PR's E2E job shares one staging account, so concurrent runs trip the API
4
+ rate limit. RateLimitError doesn't carry the Retry-After header, so back off
5
+ exponentially with jitter instead.
6
+ """
7
+
8
+ import asyncio
9
+ import functools
10
+ import random
11
+ from collections.abc import Awaitable, Callable
12
+ from typing import ParamSpec, TypeVar
13
+
14
+ from render.client.errors import RateLimitError
15
+ from render.experimental.object.client import ObjectClient
16
+
17
+ P = ParamSpec("P")
18
+ R = TypeVar("R")
19
+
20
+ # Total window is ~60 seconds before jitter
21
+ MAX_ATTEMPTS = 7
22
+ INITIAL_DELAY_S = 1.0
23
+ MAX_DELAY_S = 16.0
24
+
25
+
26
+ def retry_rate_limited(
27
+ func: Callable[P, Awaitable[R]],
28
+ *,
29
+ initial_delay_s: float = INITIAL_DELAY_S,
30
+ ) -> Callable[P, Awaitable[R]]:
31
+ @functools.wraps(func)
32
+ async def wrapper(*args: P.args, **kwargs: P.kwargs) -> R:
33
+ for attempt in range(MAX_ATTEMPTS):
34
+ try:
35
+ return await func(*args, **kwargs)
36
+ except RateLimitError:
37
+ if attempt >= MAX_ATTEMPTS - 1:
38
+ raise
39
+ delay = min(initial_delay_s * 2**attempt, MAX_DELAY_S)
40
+ await asyncio.sleep(delay * random.uniform(0.5, 1.5)) # noqa: S311
41
+ raise AssertionError("unreachable") # pragma: no cover
42
+
43
+ return wrapper
44
+
45
+
46
+ def patch_rate_limit_retries(
47
+ client: ObjectClient, *, initial_delay_s: float = INITIAL_DELAY_S
48
+ ) -> None:
49
+ """Wrap the client's API methods in place.
50
+
51
+ ScopedObjectClient delegates to these, so scoped() is covered too.
52
+ """
53
+ for name in ("put", "get", "delete", "list"):
54
+ method = getattr(client, name)
55
+ setattr(
56
+ client,
57
+ name,
58
+ retry_rate_limited(method, initial_delay_s=initial_delay_s),
59
+ )
@@ -14,7 +14,9 @@ import uuid
14
14
 
15
15
  import pytest
16
16
 
17
+ from render.experimental.object.client import ObjectClient
17
18
  from render.experimental.object.e2e_helpers import object_storage_crud_check
19
+ from render.experimental.object.tests.rate_limit import patch_rate_limit_retries
18
20
  from render.render_async import RenderAsync
19
21
 
20
22
  # ---------------------------------------------------------------------------
@@ -42,6 +44,13 @@ def render():
42
44
  )
43
45
 
44
46
 
47
+ @pytest.fixture
48
+ def objects(render) -> ObjectClient:
49
+ client = render.client.experimental.storage.objects
50
+ patch_rate_limit_retries(client)
51
+ return client
52
+
53
+
45
54
  @pytest.fixture
46
55
  def owner_id():
47
56
  return os.environ["RENDER_E2E_OWNER_ID"]
@@ -57,20 +66,14 @@ def region():
57
66
  # ---------------------------------------------------------------------------
58
67
  class TestObjectClientE2E:
59
68
  @pytest.mark.asyncio
60
- async def test_crud_cycle(self, render, owner_id, region):
69
+ async def test_crud_cycle(self, objects, owner_id, region):
61
70
  """Full PUT → LIST → GET → DELETE → verify-deletion cycle."""
62
- await object_storage_crud_check(
63
- render.client.experimental.storage.objects,
64
- owner_id,
65
- region,
66
- )
71
+ await object_storage_crud_check(objects, owner_id, region)
67
72
 
68
73
  @pytest.mark.asyncio
69
- async def test_scoped_accessor(self, render, owner_id, region):
74
+ async def test_scoped_accessor(self, objects, owner_id, region):
70
75
  """Verify scoped() wiring with a simple PUT/GET/DELETE."""
71
- scoped = render.client.experimental.storage.objects.scoped(
72
- owner_id=owner_id, region=region
73
- )
76
+ scoped = objects.scoped(owner_id=owner_id, region=region)
74
77
  key = f"e2e-test/{uuid.uuid4()}/scoped-test.txt"
75
78
 
76
79
  try:
@@ -93,11 +96,10 @@ class TestObjectClientE2E:
93
96
  )
94
97
  class TestObjectClientPagination:
95
98
  @pytest.mark.asyncio
96
- async def test_pagination(self, render):
99
+ async def test_pagination(self, objects):
97
100
  """Walk all pages with limit=2, verify multiple pages returned."""
98
101
  owner_id = os.environ["RENDER_E2E_PAGINATION_OWNER_ID"]
99
102
  region = os.environ.get("RENDER_E2E_REGION", "oregon")
100
- objects = render.client.experimental.storage.objects
101
103
 
102
104
  page_size = 2
103
105
  cursor = None
@@ -0,0 +1,75 @@
1
+ """Tests for the e2e rate-limit retry wrapper."""
2
+
3
+ from types import SimpleNamespace
4
+
5
+ import pytest
6
+
7
+ from render.client.errors import ClientError, RateLimitError
8
+ from render.experimental.object.client import ObjectClient
9
+ from render.experimental.object.tests.rate_limit import (
10
+ MAX_ATTEMPTS,
11
+ patch_rate_limit_retries,
12
+ retry_rate_limited,
13
+ )
14
+ from render.experimental.object.types import ListObjectsResponse
15
+
16
+
17
+ @pytest.mark.asyncio
18
+ async def test_retries_rate_limit_until_success():
19
+ calls = 0
20
+
21
+ async def fn() -> str:
22
+ nonlocal calls
23
+ calls += 1
24
+ if calls < 3:
25
+ raise RateLimitError("list objects failed: rate limit exceeded")
26
+ return "ok"
27
+
28
+ assert await retry_rate_limited(fn, initial_delay_s=0)() == "ok"
29
+ assert calls == 3
30
+
31
+
32
+ @pytest.mark.asyncio
33
+ async def test_reraises_after_max_attempts():
34
+ calls = 0
35
+
36
+ async def fn() -> None:
37
+ nonlocal calls
38
+ calls += 1
39
+ raise RateLimitError("rate limit exceeded")
40
+
41
+ with pytest.raises(RateLimitError):
42
+ await retry_rate_limited(fn, initial_delay_s=0)()
43
+ assert calls == MAX_ATTEMPTS
44
+
45
+
46
+ @pytest.mark.asyncio
47
+ async def test_does_not_retry_other_client_errors():
48
+ calls = 0
49
+
50
+ async def fn() -> None:
51
+ nonlocal calls
52
+ calls += 1
53
+ raise ClientError("object not found")
54
+
55
+ with pytest.raises(ClientError):
56
+ await retry_rate_limited(fn, initial_delay_s=0)()
57
+ assert calls == 1
58
+
59
+
60
+ @pytest.mark.asyncio
61
+ async def test_patch_covers_scoped_client(mocker):
62
+ client = ObjectClient(SimpleNamespace())
63
+ list_mock = mocker.AsyncMock(
64
+ side_effect=[
65
+ RateLimitError("rate limit exceeded"),
66
+ ListObjectsResponse(objects=[], next_cursor=None, has_next=False),
67
+ ]
68
+ )
69
+ mocker.patch.object(client, "list", new=list_mock)
70
+
71
+ patch_rate_limit_retries(client, initial_delay_s=0)
72
+ response = await client.scoped(owner_id="tea-test", region="oregon").list()
73
+
74
+ assert response.objects == []
75
+ assert list_mock.await_count == 2
@@ -12,6 +12,8 @@ from render.experimental.sandbox.errors import (
12
12
  SnapshotPlanMismatchError,
13
13
  )
14
14
  from render.experimental.sandbox.types import (
15
+ EgressRule,
16
+ NetworkPolicy,
15
17
  Sandbox,
16
18
  SandboxExecEvent,
17
19
  SandboxExecExit,
@@ -24,6 +26,8 @@ from render.experimental.sandbox.types import (
24
26
  )
25
27
 
26
28
  __all__ = [
29
+ "EgressRule",
30
+ "NetworkPolicy",
27
31
  "Sandbox",
28
32
  "SandboxClient",
29
33
  "SandboxDownloadError",
@@ -54,6 +54,8 @@ from render.experimental.sandbox.files import (
54
54
  resolve_file_dest,
55
55
  )
56
56
  from render.experimental.sandbox.types import (
57
+ EgressRule,
58
+ NetworkPolicy,
57
59
  Sandbox,
58
60
  SandboxExecEvent,
59
61
  SandboxExecExit,
@@ -77,11 +79,20 @@ from render.public_api.api.sandboxes import (
77
79
  )
78
80
  from render.public_api.models.error import Error
79
81
  from render.public_api.models.sandbox import Sandbox as GeneratedSandbox
82
+ from render.public_api.models.sandbox_egress_rule import SandboxEgressRule
83
+ from render.public_api.models.sandbox_egress_rule_protocol import (
84
+ SandboxEgressRuleProtocol,
85
+ )
80
86
  from render.public_api.models.sandbox_group import SandboxGroup as GeneratedSandboxGroup
81
87
  from render.public_api.models.sandbox_group_with_cursor import SandboxGroupWithCursor
82
- from render.public_api.models.sandbox_network_policy import SandboxNetworkPolicy
83
- from render.public_api.models.sandbox_network_policy_default import (
84
- SandboxNetworkPolicyDefault,
88
+ from render.public_api.models.sandbox_network_policy import (
89
+ SandboxNetworkPolicy as GeneratedNetworkPolicy,
90
+ )
91
+ from render.public_api.models.sandbox_network_policy_post import (
92
+ SandboxNetworkPolicyPOST,
93
+ )
94
+ from render.public_api.models.sandbox_network_policy_type import (
95
+ SandboxNetworkPolicyType,
85
96
  )
86
97
  from render.public_api.models.sandbox_plan import SandboxPlan
87
98
  from render.public_api.models.sandbox_post import SandboxPOST
@@ -131,12 +142,42 @@ def _set_or_none(value: _T | Unset | None) -> _T | None:
131
142
  return None if isinstance(value, Unset) else value
132
143
 
133
144
 
145
+ def _to_egress_rule(model: SandboxEgressRule) -> EgressRule:
146
+ if isinstance(model.protocol, Unset):
147
+ return EgressRule(domain=model.domain)
148
+ return EgressRule(domain=model.domain, protocol=model.protocol.value)
149
+
150
+
151
+ def _to_network_policy(model: GeneratedNetworkPolicy) -> NetworkPolicy:
152
+ rules = _set_or_none(model.rules) or []
153
+ return NetworkPolicy(
154
+ type=model.type_.value,
155
+ rules=[_to_egress_rule(rule) for rule in rules],
156
+ )
157
+
158
+
159
+ def _to_network_policy_post(policy: NetworkPolicy | str) -> SandboxNetworkPolicyPOST:
160
+ if isinstance(policy, str):
161
+ policy = NetworkPolicy(type=policy)
162
+ body = SandboxNetworkPolicyPOST(type_=SandboxNetworkPolicyType(policy.type))
163
+ if policy.type == "allow-list":
164
+ body.rules = [
165
+ SandboxEgressRule(
166
+ domain=rule.domain, protocol=SandboxEgressRuleProtocol(rule.protocol)
167
+ )
168
+ for rule in policy.rules
169
+ ]
170
+ elif policy.rules:
171
+ raise ValueError("rules are only allowed for an allow-list network policy")
172
+ return body
173
+
174
+
134
175
  def _to_sandbox(model: GeneratedSandbox) -> Sandbox:
135
176
  return Sandbox(
136
177
  id=model.id,
137
178
  status=model.status.value,
138
179
  plan=model.plan.value,
139
- network_policy=model.network_policy.default.value,
180
+ network_policy=_to_network_policy(model.network_policy),
140
181
  region=model.region,
141
182
  timeout_seconds=model.timeout_seconds,
142
183
  created_at=model.created_at,
@@ -239,7 +280,7 @@ class SandboxApi:
239
280
  owner_id: str,
240
281
  plan: str | None,
241
282
  timeout_seconds: int | None,
242
- network_policy: str | None,
283
+ network_policy: NetworkPolicy | str | None,
243
284
  region: str | None,
244
285
  env: dict[str, str] | None,
245
286
  snapshot_id: str | None,
@@ -253,9 +294,7 @@ class SandboxApi:
253
294
  if region is not None:
254
295
  body.region = region
255
296
  if network_policy is not None:
256
- body.network_policy = SandboxNetworkPolicy(
257
- default=SandboxNetworkPolicyDefault(network_policy)
258
- )
297
+ body.network_policy = _to_network_policy_post(network_policy)
259
298
  if env is not None:
260
299
  body.env = SandboxPOSTEnv.from_dict(env)
261
300
  if snapshot_id is not None:
@@ -56,6 +56,8 @@ from render.experimental.sandbox.files import (
56
56
  run_blocking,
57
57
  )
58
58
  from render.experimental.sandbox.types import (
59
+ EgressRule,
60
+ NetworkPolicy,
59
61
  Sandbox,
60
62
  SandboxExecEvent,
61
63
  SandboxExecExit,
@@ -79,11 +81,20 @@ from render.public_api.api.sandboxes import (
79
81
  )
80
82
  from render.public_api.models.error import Error
81
83
  from render.public_api.models.sandbox import Sandbox as GeneratedSandbox
84
+ from render.public_api.models.sandbox_egress_rule import SandboxEgressRule
85
+ from render.public_api.models.sandbox_egress_rule_protocol import (
86
+ SandboxEgressRuleProtocol,
87
+ )
82
88
  from render.public_api.models.sandbox_group import SandboxGroup as GeneratedSandboxGroup
83
89
  from render.public_api.models.sandbox_group_with_cursor import SandboxGroupWithCursor
84
- from render.public_api.models.sandbox_network_policy import SandboxNetworkPolicy
85
- from render.public_api.models.sandbox_network_policy_default import (
86
- SandboxNetworkPolicyDefault,
90
+ from render.public_api.models.sandbox_network_policy import (
91
+ SandboxNetworkPolicy as GeneratedNetworkPolicy,
92
+ )
93
+ from render.public_api.models.sandbox_network_policy_post import (
94
+ SandboxNetworkPolicyPOST,
95
+ )
96
+ from render.public_api.models.sandbox_network_policy_type import (
97
+ SandboxNetworkPolicyType,
87
98
  )
88
99
  from render.public_api.models.sandbox_plan import SandboxPlan
89
100
  from render.public_api.models.sandbox_post import SandboxPOST
@@ -133,12 +144,42 @@ def _set_or_none(value: _T | Unset | None) -> _T | None:
133
144
  return None if isinstance(value, Unset) else value
134
145
 
135
146
 
147
+ def _to_egress_rule(model: SandboxEgressRule) -> EgressRule:
148
+ if isinstance(model.protocol, Unset):
149
+ return EgressRule(domain=model.domain)
150
+ return EgressRule(domain=model.domain, protocol=model.protocol.value)
151
+
152
+
153
+ def _to_network_policy(model: GeneratedNetworkPolicy) -> NetworkPolicy:
154
+ rules = _set_or_none(model.rules) or []
155
+ return NetworkPolicy(
156
+ type=model.type_.value,
157
+ rules=[_to_egress_rule(rule) for rule in rules],
158
+ )
159
+
160
+
161
+ def _to_network_policy_post(policy: NetworkPolicy | str) -> SandboxNetworkPolicyPOST:
162
+ if isinstance(policy, str):
163
+ policy = NetworkPolicy(type=policy)
164
+ body = SandboxNetworkPolicyPOST(type_=SandboxNetworkPolicyType(policy.type))
165
+ if policy.type == "allow-list":
166
+ body.rules = [
167
+ SandboxEgressRule(
168
+ domain=rule.domain, protocol=SandboxEgressRuleProtocol(rule.protocol)
169
+ )
170
+ for rule in policy.rules
171
+ ]
172
+ elif policy.rules:
173
+ raise ValueError("rules are only allowed for an allow-list network policy")
174
+ return body
175
+
176
+
136
177
  def _to_sandbox(model: GeneratedSandbox) -> Sandbox:
137
178
  return Sandbox(
138
179
  id=model.id,
139
180
  status=model.status.value,
140
181
  plan=model.plan.value,
141
- network_policy=model.network_policy.default.value,
182
+ network_policy=_to_network_policy(model.network_policy),
142
183
  region=model.region,
143
184
  timeout_seconds=model.timeout_seconds,
144
185
  created_at=model.created_at,
@@ -241,7 +282,7 @@ class SyncSandboxApi:
241
282
  owner_id: str,
242
283
  plan: str | None,
243
284
  timeout_seconds: int | None,
244
- network_policy: str | None,
285
+ network_policy: NetworkPolicy | str | None,
245
286
  region: str | None,
246
287
  env: dict[str, str] | None,
247
288
  snapshot_id: str | None,
@@ -255,9 +296,7 @@ class SyncSandboxApi:
255
296
  if region is not None:
256
297
  body.region = region
257
298
  if network_policy is not None:
258
- body.network_policy = SandboxNetworkPolicy(
259
- default=SandboxNetworkPolicyDefault(network_policy)
260
- )
299
+ body.network_policy = _to_network_policy_post(network_policy)
261
300
  if env is not None:
262
301
  body.env = SandboxPOSTEnv.from_dict(env)
263
302
  if snapshot_id is not None:
@@ -11,6 +11,7 @@ from render.client.errors import RenderError
11
11
  from render.experimental.sandbox.api import SandboxApi
12
12
  from render.experimental.sandbox.files import normalize_remote_path
13
13
  from render.experimental.sandbox.types import (
14
+ NetworkPolicy,
14
15
  Sandbox,
15
16
  SandboxExecEvent,
16
17
  SandboxGroupList,
@@ -56,7 +57,7 @@ class SandboxClient:
56
57
  owner_id: str | None = None,
57
58
  plan: str | None = None,
58
59
  timeout_seconds: int | None = None,
59
- network_policy: str | None = None,
60
+ network_policy: NetworkPolicy | str | None = None,
60
61
  region: str | None = None,
61
62
  env: dict[str, str] | None = None,
62
63
  snapshot_id: str | None = None,
@@ -68,6 +69,11 @@ class SandboxClient:
68
69
  workspace defaults enforced by the API (plan starter, 7200s timeout,
69
70
  workspace default region and network policy).
70
71
 
72
+ network_policy is a NetworkPolicy, or a policy type string as a
73
+ shorthand for one without rules. To restrict outbound traffic to
74
+ specific destinations, pass
75
+ NetworkPolicy(type="allow-list", rules=[EgressRule(domain=...)]).
76
+
71
77
  snapshot_id starts the sandbox from that snapshot; snapshot_name starts
72
78
  it from the available snapshot that name currently resolves to in the
73
79
  sandbox group. The two parameters are mutually exclusive. For a runtime
@@ -13,6 +13,7 @@ from render.client.errors import RenderError
13
13
  from render.experimental.sandbox.api_sync import SyncSandboxApi
14
14
  from render.experimental.sandbox.files import normalize_remote_path
15
15
  from render.experimental.sandbox.types import (
16
+ NetworkPolicy,
16
17
  Sandbox,
17
18
  SandboxExecEvent,
18
19
  SandboxGroupList,
@@ -58,7 +59,7 @@ class SyncSandboxClient:
58
59
  owner_id: str | None = None,
59
60
  plan: str | None = None,
60
61
  timeout_seconds: int | None = None,
61
- network_policy: str | None = None,
62
+ network_policy: NetworkPolicy | str | None = None,
62
63
  region: str | None = None,
63
64
  env: dict[str, str] | None = None,
64
65
  snapshot_id: str | None = None,
@@ -70,6 +71,11 @@ class SyncSandboxClient:
70
71
  workspace defaults enforced by the API (plan starter, 7200s timeout,
71
72
  workspace default region and network policy).
72
73
 
74
+ network_policy is a NetworkPolicy, or a policy type string as a
75
+ shorthand for one without rules. To restrict outbound traffic to
76
+ specific destinations, pass
77
+ NetworkPolicy(type="allow-list", rules=[EgressRule(domain=...)]).
78
+
73
79
  snapshot_id starts the sandbox from that snapshot; snapshot_name starts
74
80
  it from the available snapshot that name currently resolves to in the
75
81
  sandbox group. The two parameters are mutually exclusive. For a runtime