volcano-sdk-python 0.6.7__py3-none-any.whl

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 (778) hide show
  1. volcano_sdk/__init__.py +91 -0
  2. volcano_sdk/_function_resolution.py +159 -0
  3. volcano_sdk/_generated/__init__.py +8 -0
  4. volcano_sdk/_generated/api/__init__.py +1 -0
  5. volcano_sdk/_generated/api/anon_keys/__init__.py +1 -0
  6. volcano_sdk/_generated/api/anon_keys/create_anon_key.py +192 -0
  7. volcano_sdk/_generated/api/anon_keys/get_anon_key.py +197 -0
  8. volcano_sdk/_generated/api/anon_keys/list_anon_keys.py +297 -0
  9. volcano_sdk/_generated/api/anon_keys/regenerate_anon_key.py +193 -0
  10. volcano_sdk/_generated/api/anon_keys/revoke_anon_key.py +216 -0
  11. volcano_sdk/_generated/api/anon_keys/set_default_anon_key.py +217 -0
  12. volcano_sdk/_generated/api/auth_admin/__init__.py +1 -0
  13. volcano_sdk/_generated/api/auth_admin/ban_auth_user.py +240 -0
  14. volcano_sdk/_generated/api/auth_admin/delete_all_user_sessions.py +132 -0
  15. volcano_sdk/_generated/api/auth_admin/delete_auth_user.py +127 -0
  16. volcano_sdk/_generated/api/auth_admin/delete_user_session.py +139 -0
  17. volcano_sdk/_generated/api/auth_admin/get_auth_insights.py +301 -0
  18. volcano_sdk/_generated/api/auth_admin/get_auth_user.py +185 -0
  19. volcano_sdk/_generated/api/auth_admin/list_auth_users.py +306 -0
  20. volcano_sdk/_generated/api/auth_admin/list_user_sessions.py +365 -0
  21. volcano_sdk/_generated/api/auth_admin/unban_auth_user.py +205 -0
  22. volcano_sdk/_generated/api/auth_configuration/__init__.py +1 -0
  23. volcano_sdk/_generated/api/auth_configuration/configure_auth_methods.py +143 -0
  24. volcano_sdk/_generated/api/auth_configuration/create_email_template.py +246 -0
  25. volcano_sdk/_generated/api/auth_configuration/delete_auth_page_layout.py +219 -0
  26. volcano_sdk/_generated/api/auth_configuration/delete_auth_page_theme.py +197 -0
  27. volcano_sdk/_generated/api/auth_configuration/delete_email_template.py +211 -0
  28. volcano_sdk/_generated/api/auth_configuration/get_auth_config.py +172 -0
  29. volcano_sdk/_generated/api/auth_configuration/get_auth_hosted_page.py +207 -0
  30. volcano_sdk/_generated/api/auth_configuration/get_auth_methods.py +184 -0
  31. volcano_sdk/_generated/api/auth_configuration/get_auth_page_appearance.py +201 -0
  32. volcano_sdk/_generated/api/auth_configuration/get_default_email_template.py +177 -0
  33. volcano_sdk/_generated/api/auth_configuration/get_default_email_templates.py +158 -0
  34. volcano_sdk/_generated/api/auth_configuration/get_email_template.py +191 -0
  35. volcano_sdk/_generated/api/auth_configuration/get_hosted_login_options.py +221 -0
  36. volcano_sdk/_generated/api/auth_configuration/hosted_login_check_email.py +231 -0
  37. volcano_sdk/_generated/api/auth_configuration/list_email_templates.py +180 -0
  38. volcano_sdk/_generated/api/auth_configuration/preview_auth_page.py +243 -0
  39. volcano_sdk/_generated/api/auth_configuration/render_auth_page_preview.py +228 -0
  40. volcano_sdk/_generated/api/auth_configuration/render_default_managed_auth_page.py +261 -0
  41. volcano_sdk/_generated/api/auth_configuration/render_managed_auth_page.py +215 -0
  42. volcano_sdk/_generated/api/auth_configuration/test_email_config.py +292 -0
  43. volcano_sdk/_generated/api/auth_configuration/update_auth_config.py +219 -0
  44. volcano_sdk/_generated/api/auth_configuration/update_auth_hosted_page.py +243 -0
  45. volcano_sdk/_generated/api/auth_configuration/update_auth_page_layout.py +242 -0
  46. volcano_sdk/_generated/api/auth_configuration/update_auth_page_theme.py +227 -0
  47. volcano_sdk/_generated/api/auth_configuration/update_email_template.py +239 -0
  48. volcano_sdk/_generated/api/authentication/__init__.py +1 -0
  49. volcano_sdk/_generated/api/authentication/auth_cancel_email_change.py +158 -0
  50. volcano_sdk/_generated/api/authentication/auth_confirm_email.py +198 -0
  51. volcano_sdk/_generated/api/authentication/auth_confirm_email_change.py +215 -0
  52. volcano_sdk/_generated/api/authentication/auth_convert_anonymous.py +222 -0
  53. volcano_sdk/_generated/api/authentication/auth_delete_all_my_sessions.py +166 -0
  54. volcano_sdk/_generated/api/authentication/auth_delete_my_session.py +195 -0
  55. volcano_sdk/_generated/api/authentication/auth_forgot_password.py +209 -0
  56. volcano_sdk/_generated/api/authentication/auth_get_my_sessions.py +397 -0
  57. volcano_sdk/_generated/api/authentication/auth_get_password_policy.py +181 -0
  58. volcano_sdk/_generated/api/authentication/auth_get_user.py +166 -0
  59. volcano_sdk/_generated/api/authentication/auth_list_identities.py +178 -0
  60. volcano_sdk/_generated/api/authentication/auth_list_methods.py +174 -0
  61. volcano_sdk/_generated/api/authentication/auth_logout.py +138 -0
  62. volcano_sdk/_generated/api/authentication/auth_promote_method.py +221 -0
  63. volcano_sdk/_generated/api/authentication/auth_refresh.py +235 -0
  64. volcano_sdk/_generated/api/authentication/auth_request_email_change.py +226 -0
  65. volcano_sdk/_generated/api/authentication/auth_resend_confirmation.py +210 -0
  66. volcano_sdk/_generated/api/authentication/auth_reset_password.py +206 -0
  67. volcano_sdk/_generated/api/authentication/auth_signin.py +222 -0
  68. volcano_sdk/_generated/api/authentication/auth_signup.py +254 -0
  69. volcano_sdk/_generated/api/authentication/auth_signup_anonymous.py +205 -0
  70. volcano_sdk/_generated/api/authentication/auth_unlink_identity.py +206 -0
  71. volcano_sdk/_generated/api/authentication/auth_update_user.py +211 -0
  72. volcano_sdk/_generated/api/database_backups/__init__.py +1 -0
  73. volcano_sdk/_generated/api/database_backups/create_database_backup.py +265 -0
  74. volcano_sdk/_generated/api/database_backups/create_database_restore.py +305 -0
  75. volcano_sdk/_generated/api/database_backups/delete_database_backup.py +247 -0
  76. volcano_sdk/_generated/api/database_backups/get_database_backup.py +235 -0
  77. volcano_sdk/_generated/api/database_backups/get_database_backup_schedule.py +226 -0
  78. volcano_sdk/_generated/api/database_backups/get_database_restore.py +232 -0
  79. volcano_sdk/_generated/api/database_backups/list_database_backups.py +242 -0
  80. volcano_sdk/_generated/api/database_backups/list_database_restores.py +223 -0
  81. volcano_sdk/_generated/api/database_backups/update_database_backup_schedule.py +272 -0
  82. volcano_sdk/_generated/api/database_branches/__init__.py +1 -0
  83. volcano_sdk/_generated/api/database_branches/create_database_branch.py +285 -0
  84. volcano_sdk/_generated/api/database_branches/delete_database_branch.py +249 -0
  85. volcano_sdk/_generated/api/database_branches/get_database_branch.py +225 -0
  86. volcano_sdk/_generated/api/database_branches/list_database_branches.py +224 -0
  87. volcano_sdk/_generated/api/database_branches/reset_database_branch.py +268 -0
  88. volcano_sdk/_generated/api/database_branches/reset_database_branch_password.py +252 -0
  89. volcano_sdk/_generated/api/database_branches/update_database_branch.py +267 -0
  90. volcano_sdk/_generated/api/database_queries/__init__.py +1 -0
  91. volcano_sdk/_generated/api/database_queries/query_database_branch_delete.py +295 -0
  92. volcano_sdk/_generated/api/database_queries/query_database_branch_insert.py +299 -0
  93. volcano_sdk/_generated/api/database_queries/query_database_branch_ping.py +276 -0
  94. volcano_sdk/_generated/api/database_queries/query_database_branch_select.py +315 -0
  95. volcano_sdk/_generated/api/database_queries/query_database_branch_update.py +303 -0
  96. volcano_sdk/_generated/api/database_queries/query_database_delete.py +259 -0
  97. volcano_sdk/_generated/api/database_queries/query_database_insert.py +263 -0
  98. volcano_sdk/_generated/api/database_queries/query_database_ping.py +240 -0
  99. volcano_sdk/_generated/api/database_queries/query_database_select.py +279 -0
  100. volcano_sdk/_generated/api/database_queries/query_database_update.py +267 -0
  101. volcano_sdk/_generated/api/databases/__init__.py +1 -0
  102. volcano_sdk/_generated/api/databases/create_database.py +236 -0
  103. volcano_sdk/_generated/api/databases/delete_database.py +247 -0
  104. volcano_sdk/_generated/api/databases/get_database.py +185 -0
  105. volcano_sdk/_generated/api/databases/get_database_stats.py +292 -0
  106. volcano_sdk/_generated/api/databases/get_project_database_queries.py +267 -0
  107. volcano_sdk/_generated/api/databases/list_database_regions.py +167 -0
  108. volcano_sdk/_generated/api/databases/list_databases.py +314 -0
  109. volcano_sdk/_generated/api/databases/list_postgres_versions.py +167 -0
  110. volcano_sdk/_generated/api/databases/reset_database_password.py +250 -0
  111. volcano_sdk/_generated/api/databases/update_database_type.py +268 -0
  112. volcano_sdk/_generated/api/frontends/__init__.py +1 -0
  113. volcano_sdk/_generated/api/frontends/create_frontend.py +369 -0
  114. volcano_sdk/_generated/api/frontends/create_frontend_custom_domain.py +278 -0
  115. volcano_sdk/_generated/api/frontends/delete_frontend.py +244 -0
  116. volcano_sdk/_generated/api/frontends/delete_frontend_custom_domain.py +217 -0
  117. volcano_sdk/_generated/api/frontends/get_frontend.py +221 -0
  118. volcano_sdk/_generated/api/frontends/get_frontend_custom_domain.py +234 -0
  119. volcano_sdk/_generated/api/frontends/get_frontend_usage_history.py +283 -0
  120. volcano_sdk/_generated/api/frontends/list_frontend_deployments.py +258 -0
  121. volcano_sdk/_generated/api/frontends/list_frontends.py +329 -0
  122. volcano_sdk/_generated/api/frontends/list_project_custom_domains.py +318 -0
  123. volcano_sdk/_generated/api/frontends/redeploy_frontend.py +267 -0
  124. volcano_sdk/_generated/api/functions/__init__.py +1 -0
  125. volcano_sdk/_generated/api/functions/create_function.py +320 -0
  126. volcano_sdk/_generated/api/functions/create_function_scheduler.py +225 -0
  127. volcano_sdk/_generated/api/functions/create_functions_batch.py +271 -0
  128. volcano_sdk/_generated/api/functions/delete_function.py +209 -0
  129. volcano_sdk/_generated/api/functions/delete_function_scheduler.py +130 -0
  130. volcano_sdk/_generated/api/functions/get_function.py +193 -0
  131. volcano_sdk/_generated/api/functions/get_function_scheduler.py +198 -0
  132. volcano_sdk/_generated/api/functions/invoke_function.py +385 -0
  133. volcano_sdk/_generated/api/functions/list_function_deployments.py +230 -0
  134. volcano_sdk/_generated/api/functions/list_function_regions.py +171 -0
  135. volcano_sdk/_generated/api/functions/list_function_runtimes.py +166 -0
  136. volcano_sdk/_generated/api/functions/list_function_schedulers.py +185 -0
  137. volcano_sdk/_generated/api/functions/list_functions.py +301 -0
  138. volcano_sdk/_generated/api/functions/list_project_schedulers.py +289 -0
  139. volcano_sdk/_generated/api/functions/resolve_function_for_invocation.py +264 -0
  140. volcano_sdk/_generated/api/functions/update_function.py +220 -0
  141. volcano_sdk/_generated/api/functions/update_function_scheduler.py +218 -0
  142. volcano_sdk/_generated/api/git_connections/__init__.py +1 -0
  143. volcano_sdk/_generated/api/git_connections/delete_git_connection.py +204 -0
  144. volcano_sdk/_generated/api/git_connections/git_connect_callback.py +247 -0
  145. volcano_sdk/_generated/api/git_connections/list_git_connections.py +172 -0
  146. volcano_sdk/_generated/api/git_connections/list_git_installation_repositories.py +237 -0
  147. volcano_sdk/_generated/api/git_connections/list_git_installations.py +224 -0
  148. volcano_sdk/_generated/api/git_connections/start_git_connect.py +250 -0
  149. volcano_sdk/_generated/api/locks/__init__.py +1 -0
  150. volcano_sdk/_generated/api/locks/acquire_project_lock.py +289 -0
  151. volcano_sdk/_generated/api/locks/force_release_project_lock.py +254 -0
  152. volcano_sdk/_generated/api/locks/get_project_lock.py +246 -0
  153. volcano_sdk/_generated/api/locks/release_project_lock.py +252 -0
  154. volcano_sdk/_generated/api/locks/renew_project_lock.py +285 -0
  155. volcano_sdk/_generated/api/logs/__init__.py +1 -0
  156. volcano_sdk/_generated/api/logs/get_project_log_activity.py +261 -0
  157. volcano_sdk/_generated/api/logs/search_project_logs.py +265 -0
  158. volcano_sdk/_generated/api/logs/stream_project_logs.py +345 -0
  159. volcano_sdk/_generated/api/o_auth_authentication/__init__.py +1 -0
  160. volcano_sdk/_generated/api/o_auth_authentication/auth_device_authorize.py +266 -0
  161. volcano_sdk/_generated/api/o_auth_authentication/auth_device_token.py +209 -0
  162. volcano_sdk/_generated/api/o_auth_authentication/auth_device_verify.py +230 -0
  163. volcano_sdk/_generated/api/o_auth_authentication/auth_link_o_auth_provider.py +272 -0
  164. volcano_sdk/_generated/api/o_auth_authentication/auth_list_o_auth_providers.py +166 -0
  165. volcano_sdk/_generated/api/o_auth_authentication/auth_o_auth_authorize.py +181 -0
  166. volcano_sdk/_generated/api/o_auth_authentication/auth_o_auth_callback.py +260 -0
  167. volcano_sdk/_generated/api/o_auth_authentication/auth_o_auth_exchange.py +210 -0
  168. volcano_sdk/_generated/api/o_auth_authentication/auth_platform_exchange.py +202 -0
  169. volcano_sdk/_generated/api/o_auth_authentication/auth_unlink_o_auth_provider.py +203 -0
  170. volcano_sdk/_generated/api/o_auth_authentication/call_o_auth_provider_api.py +309 -0
  171. volcano_sdk/_generated/api/o_auth_authentication/get_o_auth_provider_token.py +200 -0
  172. volcano_sdk/_generated/api/o_auth_authentication/refresh_o_auth_provider_token.py +207 -0
  173. volcano_sdk/_generated/api/o_auth_configuration/__init__.py +1 -0
  174. volcano_sdk/_generated/api/o_auth_configuration/create_o_auth_config.py +204 -0
  175. volcano_sdk/_generated/api/o_auth_configuration/delete_o_auth_config.py +142 -0
  176. volcano_sdk/_generated/api/o_auth_configuration/get_o_auth_config.py +209 -0
  177. volcano_sdk/_generated/api/o_auth_configuration/list_available_o_auth_providers.py +180 -0
  178. volcano_sdk/_generated/api/o_auth_configuration/list_o_auth_configs.py +180 -0
  179. volcano_sdk/_generated/api/o_auth_configuration/update_o_auth_config.py +230 -0
  180. volcano_sdk/_generated/api/project_imports/__init__.py +1 -0
  181. volcano_sdk/_generated/api/project_imports/complete_import_connect.py +322 -0
  182. volcano_sdk/_generated/api/project_imports/delete_import_connection.py +211 -0
  183. volcano_sdk/_generated/api/project_imports/get_project_import_run.py +216 -0
  184. volcano_sdk/_generated/api/project_imports/list_import_connections.py +165 -0
  185. volcano_sdk/_generated/api/project_imports/list_import_sources.py +261 -0
  186. volcano_sdk/_generated/api/project_imports/preflight_project_import.py +258 -0
  187. volcano_sdk/_generated/api/project_imports/start_import_connect.py +246 -0
  188. volcano_sdk/_generated/api/project_imports/start_project_import.py +284 -0
  189. volcano_sdk/_generated/api/projects/__init__.py +1 -0
  190. volcano_sdk/_generated/api/projects/apply_project_config.py +342 -0
  191. volcano_sdk/_generated/api/projects/cancel_project_source_export.py +231 -0
  192. volcano_sdk/_generated/api/projects/connect_project_git.py +278 -0
  193. volcano_sdk/_generated/api/projects/create_project.py +205 -0
  194. volcano_sdk/_generated/api/projects/delete_project.py +196 -0
  195. volcano_sdk/_generated/api/projects/delete_project_logo.py +213 -0
  196. volcano_sdk/_generated/api/projects/disconnect_project_git.py +204 -0
  197. volcano_sdk/_generated/api/projects/export_project_source.py +351 -0
  198. volcano_sdk/_generated/api/projects/get_project.py +180 -0
  199. volcano_sdk/_generated/api/projects/get_project_config.py +251 -0
  200. volcano_sdk/_generated/api/projects/get_project_git_connection.py +201 -0
  201. volcano_sdk/_generated/api/projects/get_project_git_deploy_settings.py +201 -0
  202. volcano_sdk/_generated/api/projects/get_project_health.py +221 -0
  203. volcano_sdk/_generated/api/projects/get_project_logo.py +196 -0
  204. volcano_sdk/_generated/api/projects/get_project_source_export.py +276 -0
  205. volcano_sdk/_generated/api/projects/get_project_usage.py +199 -0
  206. volcano_sdk/_generated/api/projects/list_deployments.py +558 -0
  207. volcano_sdk/_generated/api/projects/list_project_deployments.py +358 -0
  208. volcano_sdk/_generated/api/projects/list_projects.py +332 -0
  209. volcano_sdk/_generated/api/projects/query_project_metrics.py +251 -0
  210. volcano_sdk/_generated/api/projects/set_project_git_production_branch.py +291 -0
  211. volcano_sdk/_generated/api/projects/summarize_project_deployments.py +288 -0
  212. volcano_sdk/_generated/api/projects/update_project.py +221 -0
  213. volcano_sdk/_generated/api/projects/update_project_git_deploy_settings.py +287 -0
  214. volcano_sdk/_generated/api/projects/upload_project_logo.py +248 -0
  215. volcano_sdk/_generated/api/realtime/__init__.py +1 -0
  216. volcano_sdk/_generated/api/realtime/get_realtime_config.py +195 -0
  217. volcano_sdk/_generated/api/realtime/get_realtime_stats.py +188 -0
  218. volcano_sdk/_generated/api/realtime/update_realtime_config.py +219 -0
  219. volcano_sdk/_generated/api/service_keys/__init__.py +1 -0
  220. volcano_sdk/_generated/api/service_keys/create_service_key.py +216 -0
  221. volcano_sdk/_generated/api/service_keys/delete_service_key.py +129 -0
  222. volcano_sdk/_generated/api/service_keys/get_service_key.py +197 -0
  223. volcano_sdk/_generated/api/service_keys/list_service_keys.py +285 -0
  224. volcano_sdk/_generated/api/service_keys/regenerate_service_key.py +201 -0
  225. volcano_sdk/_generated/api/storage_admin/__init__.py +1 -0
  226. volcano_sdk/_generated/api/storage_admin/get_storage_stats.py +180 -0
  227. volcano_sdk/_generated/api/storage_admin/list_storage_objects_admin.py +299 -0
  228. volcano_sdk/_generated/api/storage_buckets/__init__.py +1 -0
  229. volcano_sdk/_generated/api/storage_buckets/create_storage_bucket.py +196 -0
  230. volcano_sdk/_generated/api/storage_buckets/delete_storage_bucket.py +123 -0
  231. volcano_sdk/_generated/api/storage_buckets/get_storage_bucket.py +189 -0
  232. volcano_sdk/_generated/api/storage_buckets/list_storage_buckets.py +297 -0
  233. volcano_sdk/_generated/api/storage_buckets/update_storage_bucket.py +205 -0
  234. volcano_sdk/_generated/api/storage_objects/__init__.py +1 -0
  235. volcano_sdk/_generated/api/storage_objects/copy_storage_object.py +203 -0
  236. volcano_sdk/_generated/api/storage_objects/delete_storage_object.py +252 -0
  237. volcano_sdk/_generated/api/storage_objects/download_public_file.py +302 -0
  238. volcano_sdk/_generated/api/storage_objects/download_storage_object.py +283 -0
  239. volcano_sdk/_generated/api/storage_objects/list_storage_objects.py +235 -0
  240. volcano_sdk/_generated/api/storage_objects/move_storage_object.py +203 -0
  241. volcano_sdk/_generated/api/storage_objects/update_storage_object_visibility.py +244 -0
  242. volcano_sdk/_generated/api/storage_objects/upload_part.py +287 -0
  243. volcano_sdk/_generated/api/storage_objects/upload_storage_object.py +380 -0
  244. volcano_sdk/_generated/api/storage_policies/__init__.py +1 -0
  245. volcano_sdk/_generated/api/storage_policies/create_storage_policy.py +205 -0
  246. volcano_sdk/_generated/api/storage_policies/delete_storage_policy.py +130 -0
  247. volcano_sdk/_generated/api/storage_policies/list_storage_policies.py +190 -0
  248. volcano_sdk/_generated/api/system/__init__.py +1 -0
  249. volcano_sdk/_generated/api/system/health_check.py +153 -0
  250. volcano_sdk/_generated/api/variables/__init__.py +1 -0
  251. volcano_sdk/_generated/api/variables/create_variable.py +212 -0
  252. volcano_sdk/_generated/api/variables/delete_variable.py +201 -0
  253. volcano_sdk/_generated/api/variables/get_variable.py +201 -0
  254. volcano_sdk/_generated/api/variables/list_variables.py +285 -0
  255. volcano_sdk/_generated/api/variables/update_variable.py +225 -0
  256. volcano_sdk/_generated/client.py +271 -0
  257. volcano_sdk/_generated/errors.py +14 -0
  258. volcano_sdk/_generated/models/__init__.py +1003 -0
  259. volcano_sdk/_generated/models/anon_key.py +167 -0
  260. volcano_sdk/_generated/models/auth_cancel_email_change_response_200.py +78 -0
  261. volcano_sdk/_generated/models/auth_config.py +559 -0
  262. volcano_sdk/_generated/models/auth_config_allowed_email_domains_mode.py +10 -0
  263. volcano_sdk/_generated/models/auth_confirm_email_body.py +76 -0
  264. volcano_sdk/_generated/models/auth_confirm_email_change_body.py +76 -0
  265. volcano_sdk/_generated/models/auth_confirm_email_change_response_200.py +102 -0
  266. volcano_sdk/_generated/models/auth_confirm_email_response_200.py +92 -0
  267. volcano_sdk/_generated/models/auth_confirm_email_response_200_message.py +10 -0
  268. volcano_sdk/_generated/models/auth_convert_anonymous_body.py +110 -0
  269. volcano_sdk/_generated/models/auth_convert_anonymous_body_user_metadata.py +65 -0
  270. volcano_sdk/_generated/models/auth_convert_anonymous_response_200.py +93 -0
  271. volcano_sdk/_generated/models/auth_device_authorize_body.py +76 -0
  272. volcano_sdk/_generated/models/auth_device_token_body.py +98 -0
  273. volcano_sdk/_generated/models/auth_device_token_body_grant_type.py +10 -0
  274. volcano_sdk/_generated/models/auth_device_verify_body.py +100 -0
  275. volcano_sdk/_generated/models/auth_device_verify_body_action.py +10 -0
  276. volcano_sdk/_generated/models/auth_device_verify_response_200.py +87 -0
  277. volcano_sdk/_generated/models/auth_forgot_password_body.py +76 -0
  278. volcano_sdk/_generated/models/auth_forgot_password_response_200.py +78 -0
  279. volcano_sdk/_generated/models/auth_get_my_sessions_response_200.py +190 -0
  280. volcano_sdk/_generated/models/auth_get_my_sessions_sort.py +10 -0
  281. volcano_sdk/_generated/models/auth_get_my_sessions_status.py +10 -0
  282. volcano_sdk/_generated/models/auth_get_user_response_200.py +93 -0
  283. volcano_sdk/_generated/models/auth_hosted_page.py +188 -0
  284. volcano_sdk/_generated/models/auth_hosted_page_defaults.py +87 -0
  285. volcano_sdk/_generated/models/auth_hosted_page_response.py +133 -0
  286. volcano_sdk/_generated/models/auth_hosted_page_runtime.py +97 -0
  287. volcano_sdk/_generated/models/auth_identities_response.py +94 -0
  288. volcano_sdk/_generated/models/auth_identity.py +119 -0
  289. volcano_sdk/_generated/models/auth_insights_interval.py +10 -0
  290. volcano_sdk/_generated/models/auth_insights_response.py +128 -0
  291. volcano_sdk/_generated/models/auth_insights_series_point.py +87 -0
  292. volcano_sdk/_generated/models/auth_insights_summary.py +67 -0
  293. volcano_sdk/_generated/models/auth_insights_window.py +87 -0
  294. volcano_sdk/_generated/models/auth_link_o_auth_provider_provider.py +10 -0
  295. volcano_sdk/_generated/models/auth_link_o_auth_provider_response_200.py +78 -0
  296. volcano_sdk/_generated/models/auth_link_o_auth_provider_response_mode.py +10 -0
  297. volcano_sdk/_generated/models/auth_list_o_auth_providers_response_200.py +100 -0
  298. volcano_sdk/_generated/models/auth_list_o_auth_providers_response_200_providers_item.py +118 -0
  299. volcano_sdk/_generated/models/auth_logout_body.py +101 -0
  300. volcano_sdk/_generated/models/auth_logout_body_session_mode.py +10 -0
  301. volcano_sdk/_generated/models/auth_method_summary.py +173 -0
  302. volcano_sdk/_generated/models/auth_method_summary_type.py +10 -0
  303. volcano_sdk/_generated/models/auth_methods_response.py +94 -0
  304. volcano_sdk/_generated/models/auth_o_auth_authorize_provider.py +10 -0
  305. volcano_sdk/_generated/models/auth_o_auth_authorize_response_mode.py +10 -0
  306. volcano_sdk/_generated/models/auth_o_auth_callback_provider.py +10 -0
  307. volcano_sdk/_generated/models/auth_o_auth_exchange_body.py +84 -0
  308. volcano_sdk/_generated/models/auth_page_appearance_defaults.py +97 -0
  309. volcano_sdk/_generated/models/auth_page_appearance_options.py +207 -0
  310. volcano_sdk/_generated/models/auth_page_appearance_response.py +148 -0
  311. volcano_sdk/_generated/models/auth_page_appearance_response_layouts.py +78 -0
  312. volcano_sdk/_generated/models/auth_page_appearance_response_parked.py +66 -0
  313. volcano_sdk/_generated/models/auth_page_density.py +10 -0
  314. volcano_sdk/_generated/models/auth_page_font.py +10 -0
  315. volcano_sdk/_generated/models/auth_page_layout.py +10 -0
  316. volcano_sdk/_generated/models/auth_page_radius.py +10 -0
  317. volcano_sdk/_generated/models/auth_page_scale.py +10 -0
  318. volcano_sdk/_generated/models/auth_page_theme.py +131 -0
  319. volcano_sdk/_generated/models/auth_page_theme_colors.py +90 -0
  320. volcano_sdk/_generated/models/auth_page_theme_version.py +10 -0
  321. volcano_sdk/_generated/models/auth_password_policy.py +116 -0
  322. volcano_sdk/_generated/models/auth_platform_exchange_body.py +76 -0
  323. volcano_sdk/_generated/models/auth_refresh_body.py +101 -0
  324. volcano_sdk/_generated/models/auth_refresh_body_session_mode.py +10 -0
  325. volcano_sdk/_generated/models/auth_request_email_change_body.py +76 -0
  326. volcano_sdk/_generated/models/auth_request_email_change_response_200.py +87 -0
  327. volcano_sdk/_generated/models/auth_resend_confirmation_body.py +76 -0
  328. volcano_sdk/_generated/models/auth_resend_confirmation_response_200.py +78 -0
  329. volcano_sdk/_generated/models/auth_reset_password_body.py +85 -0
  330. volcano_sdk/_generated/models/auth_reset_password_response_200.py +78 -0
  331. volcano_sdk/_generated/models/auth_session.py +239 -0
  332. volcano_sdk/_generated/models/auth_session_provider.py +10 -0
  333. volcano_sdk/_generated/models/auth_signin_body.py +108 -0
  334. volcano_sdk/_generated/models/auth_signin_body_session_mode.py +10 -0
  335. volcano_sdk/_generated/models/auth_signup_anonymous_body.py +94 -0
  336. volcano_sdk/_generated/models/auth_signup_anonymous_body_user_metadata.py +69 -0
  337. volcano_sdk/_generated/models/auth_signup_body.py +110 -0
  338. volcano_sdk/_generated/models/auth_signup_body_user_metadata.py +65 -0
  339. volcano_sdk/_generated/models/auth_signup_response.py +90 -0
  340. volcano_sdk/_generated/models/auth_token_response.py +119 -0
  341. volcano_sdk/_generated/models/auth_unlink_o_auth_provider_provider.py +10 -0
  342. volcano_sdk/_generated/models/auth_update_user_body.py +105 -0
  343. volcano_sdk/_generated/models/auth_update_user_body_user_metadata.py +68 -0
  344. volcano_sdk/_generated/models/auth_update_user_response_200.py +93 -0
  345. volcano_sdk/_generated/models/auth_user.py +276 -0
  346. volcano_sdk/_generated/models/auth_user_app_metadata.py +66 -0
  347. volcano_sdk/_generated/models/auth_user_status.py +10 -0
  348. volcano_sdk/_generated/models/auth_user_user_metadata.py +66 -0
  349. volcano_sdk/_generated/models/ban_auth_user_body.py +91 -0
  350. volcano_sdk/_generated/models/ban_user_response.py +146 -0
  351. volcano_sdk/_generated/models/ban_user_response_status.py +10 -0
  352. volcano_sdk/_generated/models/batch_function_deploy_failure.py +128 -0
  353. volcano_sdk/_generated/models/batch_function_deploy_failure_operation.py +10 -0
  354. volcano_sdk/_generated/models/batch_function_deploy_response.py +138 -0
  355. volcano_sdk/_generated/models/call_o_auth_provider_api_body.py +126 -0
  356. volcano_sdk/_generated/models/call_o_auth_provider_api_body_body.py +66 -0
  357. volcano_sdk/_generated/models/call_o_auth_provider_api_body_method.py +10 -0
  358. volcano_sdk/_generated/models/call_o_auth_provider_api_provider.py +10 -0
  359. volcano_sdk/_generated/models/call_o_auth_provider_api_response_200.py +107 -0
  360. volcano_sdk/_generated/models/call_o_auth_provider_api_response_200_provider.py +10 -0
  361. volcano_sdk/_generated/models/complete_upload_session_response.py +94 -0
  362. volcano_sdk/_generated/models/configure_auth_methods_body.py +118 -0
  363. volcano_sdk/_generated/models/configure_auth_methods_body_oauth_providers_item.py +87 -0
  364. volcano_sdk/_generated/models/connect_project_git_request.py +137 -0
  365. volcano_sdk/_generated/models/create_anon_key_body.py +112 -0
  366. volcano_sdk/_generated/models/create_anon_key_body_permissions_item.py +10 -0
  367. volcano_sdk/_generated/models/create_database_backup_request.py +78 -0
  368. volcano_sdk/_generated/models/create_database_branch_request.py +88 -0
  369. volcano_sdk/_generated/models/create_database_request.py +134 -0
  370. volcano_sdk/_generated/models/create_database_request_database_type.py +10 -0
  371. volcano_sdk/_generated/models/create_database_request_pg_version.py +10 -0
  372. volcano_sdk/_generated/models/create_database_request_region.py +10 -0
  373. volcano_sdk/_generated/models/create_database_restore_request.py +109 -0
  374. volcano_sdk/_generated/models/create_email_template_request.py +109 -0
  375. volcano_sdk/_generated/models/create_email_template_request_template_type.py +10 -0
  376. volcano_sdk/_generated/models/create_frontend_body.py +159 -0
  377. volcano_sdk/_generated/models/create_frontend_body_framework.py +10 -0
  378. volcano_sdk/_generated/models/create_frontend_custom_domain_request.py +92 -0
  379. volcano_sdk/_generated/models/create_function_body.py +243 -0
  380. volcano_sdk/_generated/models/create_function_body_runtime.py +10 -0
  381. volcano_sdk/_generated/models/create_function_scheduler_request.py +139 -0
  382. volcano_sdk/_generated/models/create_function_scheduler_request_payload.py +65 -0
  383. volcano_sdk/_generated/models/create_functions_batch_body.py +125 -0
  384. volcano_sdk/_generated/models/create_o_auth_config_request.py +128 -0
  385. volcano_sdk/_generated/models/create_o_auth_config_request_provider.py +10 -0
  386. volcano_sdk/_generated/models/create_project_request.py +109 -0
  387. volcano_sdk/_generated/models/create_service_key_body.py +100 -0
  388. volcano_sdk/_generated/models/create_storage_bucket_request.py +101 -0
  389. volcano_sdk/_generated/models/create_storage_policy_request.py +98 -0
  390. volcano_sdk/_generated/models/create_storage_policy_request_operation.py +10 -0
  391. volcano_sdk/_generated/models/create_upload_session_request.py +103 -0
  392. volcano_sdk/_generated/models/create_upload_session_response.py +119 -0
  393. volcano_sdk/_generated/models/create_variable_request.py +84 -0
  394. volcano_sdk/_generated/models/database.py +255 -0
  395. volcano_sdk/_generated/models/database_backup.py +142 -0
  396. volcano_sdk/_generated/models/database_backup_list.py +123 -0
  397. volcano_sdk/_generated/models/database_backup_schedule.py +96 -0
  398. volcano_sdk/_generated/models/database_backup_schedule_entry.py +114 -0
  399. volcano_sdk/_generated/models/database_backup_schedule_entry_frequency.py +10 -0
  400. volcano_sdk/_generated/models/database_backup_source.py +10 -0
  401. volcano_sdk/_generated/models/database_branch.py +235 -0
  402. volcano_sdk/_generated/models/database_branch_list.py +94 -0
  403. volcano_sdk/_generated/models/database_branch_status.py +10 -0
  404. volcano_sdk/_generated/models/database_branch_storage.py +99 -0
  405. volcano_sdk/_generated/models/database_database_type.py +10 -0
  406. volcano_sdk/_generated/models/database_delete_request.py +103 -0
  407. volcano_sdk/_generated/models/database_insert_request.py +93 -0
  408. volcano_sdk/_generated/models/database_insert_request_values.py +69 -0
  409. volcano_sdk/_generated/models/database_query_filter.py +142 -0
  410. volcano_sdk/_generated/models/database_query_filter_operator.py +10 -0
  411. volcano_sdk/_generated/models/database_query_order.py +96 -0
  412. volcano_sdk/_generated/models/database_query_performance_database.py +88 -0
  413. volcano_sdk/_generated/models/database_query_performance_item.py +156 -0
  414. volcano_sdk/_generated/models/database_query_performance_response.py +94 -0
  415. volcano_sdk/_generated/models/database_query_result.py +111 -0
  416. volcano_sdk/_generated/models/database_query_result_data_item.py +65 -0
  417. volcano_sdk/_generated/models/database_restore.py +221 -0
  418. volcano_sdk/_generated/models/database_restore_kind.py +10 -0
  419. volcano_sdk/_generated/models/database_restore_list.py +94 -0
  420. volcano_sdk/_generated/models/database_restore_status.py +10 -0
  421. volcano_sdk/_generated/models/database_restore_window.py +117 -0
  422. volcano_sdk/_generated/models/database_select_request.py +171 -0
  423. volcano_sdk/_generated/models/database_stats.py +211 -0
  424. volcano_sdk/_generated/models/database_stats_granularity.py +10 -0
  425. volcano_sdk/_generated/models/database_status.py +10 -0
  426. volcano_sdk/_generated/models/database_update_request.py +120 -0
  427. volcano_sdk/_generated/models/database_update_request_values.py +69 -0
  428. volcano_sdk/_generated/models/delete_database_backup_response_200.py +84 -0
  429. volcano_sdk/_generated/models/delete_database_branch_response_202.py +84 -0
  430. volcano_sdk/_generated/models/delete_database_response_202.py +87 -0
  431. volcano_sdk/_generated/models/delete_email_template_type.py +10 -0
  432. volcano_sdk/_generated/models/delete_o_auth_config_provider.py +10 -0
  433. volcano_sdk/_generated/models/deployment_phase.py +145 -0
  434. volcano_sdk/_generated/models/deployment_phase_name.py +10 -0
  435. volcano_sdk/_generated/models/deployment_phase_status.py +10 -0
  436. volcano_sdk/_generated/models/deployment_progress.py +168 -0
  437. volcano_sdk/_generated/models/deployment_progress_current_phase.py +10 -0
  438. volcano_sdk/_generated/models/deployment_reference.py +81 -0
  439. volcano_sdk/_generated/models/device_authorization_response.py +122 -0
  440. volcano_sdk/_generated/models/email_template.py +186 -0
  441. volcano_sdk/_generated/models/email_template_template_type.py +10 -0
  442. volcano_sdk/_generated/models/error.py +86 -0
  443. volcano_sdk/_generated/models/export_project_source_request.py +58 -0
  444. volcano_sdk/_generated/models/frontend.py +293 -0
  445. volcano_sdk/_generated/models/frontend_custom_domain_response.py +203 -0
  446. volcano_sdk/_generated/models/frontend_custom_domain_response_domain_status.py +10 -0
  447. volcano_sdk/_generated/models/frontend_custom_domain_response_tls_mode.py +10 -0
  448. volcano_sdk/_generated/models/frontend_custom_domain_response_verification_status.py +10 -0
  449. volcano_sdk/_generated/models/frontend_custom_domain_status.py +10 -0
  450. volcano_sdk/_generated/models/frontend_custom_domain_tls_config.py +108 -0
  451. volcano_sdk/_generated/models/frontend_custom_domain_tls_config_mode.py +10 -0
  452. volcano_sdk/_generated/models/frontend_deployment.py +304 -0
  453. volcano_sdk/_generated/models/frontend_deployment_deploy_source.py +10 -0
  454. volcano_sdk/_generated/models/frontend_deployment_operation.py +10 -0
  455. volcano_sdk/_generated/models/frontend_deployment_status.py +10 -0
  456. volcano_sdk/_generated/models/frontend_domain_routing_record.py +98 -0
  457. volcano_sdk/_generated/models/frontend_domain_routing_record_record_type.py +10 -0
  458. volcano_sdk/_generated/models/frontend_domain_verification_record.py +92 -0
  459. volcano_sdk/_generated/models/frontend_framework.py +10 -0
  460. volcano_sdk/_generated/models/frontend_status.py +10 -0
  461. volcano_sdk/_generated/models/frontend_usage_daily_entry.py +107 -0
  462. volcano_sdk/_generated/models/frontend_usage_data.py +112 -0
  463. volcano_sdk/_generated/models/frontend_usage_history_response.py +139 -0
  464. volcano_sdk/_generated/models/function.py +341 -0
  465. volcano_sdk/_generated/models/function_deployment.py +313 -0
  466. volcano_sdk/_generated/models/function_deployment_deploy_source.py +10 -0
  467. volcano_sdk/_generated/models/function_deployment_operation.py +10 -0
  468. volcano_sdk/_generated/models/function_deployment_status.py +10 -0
  469. volcano_sdk/_generated/models/function_http_auth_mode.py +10 -0
  470. volcano_sdk/_generated/models/function_invocation_mode.py +10 -0
  471. volcano_sdk/_generated/models/function_invocation_request.py +106 -0
  472. volcano_sdk/_generated/models/function_invocation_request_payload.py +79 -0
  473. volcano_sdk/_generated/models/function_invocation_response.py +66 -0
  474. volcano_sdk/_generated/models/function_openapi_spec_type_0.py +66 -0
  475. volcano_sdk/_generated/models/function_region.py +92 -0
  476. volcano_sdk/_generated/models/function_runtime_deployment.py +109 -0
  477. volcano_sdk/_generated/models/function_runtime_option.py +108 -0
  478. volcano_sdk/_generated/models/function_runtimes_response.py +94 -0
  479. volcano_sdk/_generated/models/function_scheduler.py +338 -0
  480. volcano_sdk/_generated/models/function_scheduler_list_response.py +146 -0
  481. volcano_sdk/_generated/models/function_scheduler_payload.py +65 -0
  482. volcano_sdk/_generated/models/function_scheduler_schedule_kind.py +10 -0
  483. volcano_sdk/_generated/models/function_status.py +10 -0
  484. volcano_sdk/_generated/models/get_auth_methods_response_200.py +158 -0
  485. volcano_sdk/_generated/models/get_auth_methods_response_200_anonymous.py +96 -0
  486. volcano_sdk/_generated/models/get_auth_methods_response_200_email_password.py +96 -0
  487. volcano_sdk/_generated/models/get_auth_methods_response_200_oauth_providers_item.py +129 -0
  488. volcano_sdk/_generated/models/get_database_stats_granularity.py +10 -0
  489. volcano_sdk/_generated/models/get_default_email_template_type.py +10 -0
  490. volcano_sdk/_generated/models/get_default_email_templates_response_200.py +100 -0
  491. volcano_sdk/_generated/models/get_email_template_type.py +10 -0
  492. volcano_sdk/_generated/models/get_o_auth_config_provider.py +10 -0
  493. volcano_sdk/_generated/models/get_o_auth_provider_token_provider.py +10 -0
  494. volcano_sdk/_generated/models/get_o_auth_provider_token_response_200.py +96 -0
  495. volcano_sdk/_generated/models/get_project_config_format.py +10 -0
  496. volcano_sdk/_generated/models/git_connect_start_response.py +76 -0
  497. volcano_sdk/_generated/models/git_connection.py +147 -0
  498. volcano_sdk/_generated/models/git_connections_response.py +94 -0
  499. volcano_sdk/_generated/models/git_installation.py +100 -0
  500. volcano_sdk/_generated/models/git_installations_response.py +94 -0
  501. volcano_sdk/_generated/models/git_repositories_response.py +94 -0
  502. volcano_sdk/_generated/models/git_repository.py +108 -0
  503. volcano_sdk/_generated/models/hosted_auth_page_type.py +10 -0
  504. volcano_sdk/_generated/models/hosted_login_email_check_request.py +76 -0
  505. volcano_sdk/_generated/models/hosted_login_email_check_response.py +78 -0
  506. volcano_sdk/_generated/models/hosted_login_options_response.py +120 -0
  507. volcano_sdk/_generated/models/hosted_renderable_page_type.py +10 -0
  508. volcano_sdk/_generated/models/import_connect_start_response.py +76 -0
  509. volcano_sdk/_generated/models/import_connection.py +205 -0
  510. volcano_sdk/_generated/models/import_connections_response.py +94 -0
  511. volcano_sdk/_generated/models/import_provider.py +10 -0
  512. volcano_sdk/_generated/models/import_source.py +100 -0
  513. volcano_sdk/_generated/models/import_sources_response.py +94 -0
  514. volcano_sdk/_generated/models/list_anon_keys_response_200.py +137 -0
  515. volcano_sdk/_generated/models/list_auth_users_status.py +10 -0
  516. volcano_sdk/_generated/models/list_available_o_auth_providers_response_200.py +100 -0
  517. volcano_sdk/_generated/models/list_available_o_auth_providers_response_200_providers_item.py +102 -0
  518. volcano_sdk/_generated/models/list_database_regions_response_200_item.py +87 -0
  519. volcano_sdk/_generated/models/list_databases_status.py +10 -0
  520. volcano_sdk/_generated/models/list_deployments_operation.py +10 -0
  521. volcano_sdk/_generated/models/list_deployments_order.py +10 -0
  522. volcano_sdk/_generated/models/list_deployments_resource_type.py +10 -0
  523. volcano_sdk/_generated/models/list_deployments_status.py +10 -0
  524. volcano_sdk/_generated/models/list_email_templates_response_200.py +100 -0
  525. volcano_sdk/_generated/models/list_o_auth_configs_response_200.py +100 -0
  526. volcano_sdk/_generated/models/list_postgres_versions_response_200_item.py +105 -0
  527. volcano_sdk/_generated/models/list_project_deployments_resource_type.py +10 -0
  528. volcano_sdk/_generated/models/list_projects_include_item.py +10 -0
  529. volcano_sdk/_generated/models/list_storage_objects_admin_response_200.py +155 -0
  530. volcano_sdk/_generated/models/list_user_sessions_response_200.py +190 -0
  531. volcano_sdk/_generated/models/list_user_sessions_sort.py +10 -0
  532. volcano_sdk/_generated/models/list_user_sessions_status.py +10 -0
  533. volcano_sdk/_generated/models/live_log_level.py +10 -0
  534. volcano_sdk/_generated/models/log_activity_bucket.py +116 -0
  535. volcano_sdk/_generated/models/log_activity_bucket_counts.py +113 -0
  536. volcano_sdk/_generated/models/log_activity_bucket_counts_levels.py +66 -0
  537. volcano_sdk/_generated/models/log_activity_bucket_counts_regions.py +66 -0
  538. volcano_sdk/_generated/models/log_activity_bucket_counts_resource_ids.py +66 -0
  539. volcano_sdk/_generated/models/log_activity_request.py +168 -0
  540. volcano_sdk/_generated/models/log_activity_response.py +103 -0
  541. volcano_sdk/_generated/models/log_database_request_resource.py +94 -0
  542. volcano_sdk/_generated/models/log_database_request_resource_type.py +10 -0
  543. volcano_sdk/_generated/models/log_deployment.py +105 -0
  544. volcano_sdk/_generated/models/log_deployment_request_selector.py +81 -0
  545. volcano_sdk/_generated/models/log_deployment_stage.py +10 -0
  546. volcano_sdk/_generated/models/log_event.py +222 -0
  547. volcano_sdk/_generated/models/log_event_body_type_1.py +65 -0
  548. volcano_sdk/_generated/models/log_frontend_request_resource.py +117 -0
  549. volcano_sdk/_generated/models/log_frontend_request_resource_type.py +10 -0
  550. volcano_sdk/_generated/models/log_function_request_resource.py +117 -0
  551. volcano_sdk/_generated/models/log_function_request_resource_type.py +10 -0
  552. volcano_sdk/_generated/models/log_resource.py +105 -0
  553. volcano_sdk/_generated/models/log_resource_type.py +10 -0
  554. volcano_sdk/_generated/models/log_search_event.py +212 -0
  555. volcano_sdk/_generated/models/log_search_request.py +177 -0
  556. volcano_sdk/_generated/models/log_search_response.py +121 -0
  557. volcano_sdk/_generated/models/log_stream_request.py +148 -0
  558. volcano_sdk/_generated/models/metric_usage_data.py +148 -0
  559. volcano_sdk/_generated/models/o_auth_config.py +201 -0
  560. volcano_sdk/_generated/models/o_auth_config_provider.py +10 -0
  561. volcano_sdk/_generated/models/o_auth_error_response.py +86 -0
  562. volcano_sdk/_generated/models/paginated_auth_users.py +136 -0
  563. volcano_sdk/_generated/models/paginated_databases.py +155 -0
  564. volcano_sdk/_generated/models/paginated_frontend_deployments.py +136 -0
  565. volcano_sdk/_generated/models/paginated_frontends.py +155 -0
  566. volcano_sdk/_generated/models/paginated_function_deployments.py +136 -0
  567. volcano_sdk/_generated/models/paginated_functions.py +155 -0
  568. volcano_sdk/_generated/models/paginated_project_custom_domains.py +136 -0
  569. volcano_sdk/_generated/models/paginated_project_deployments.py +159 -0
  570. volcano_sdk/_generated/models/paginated_projects.py +218 -0
  571. volcano_sdk/_generated/models/paginated_projects_status.py +10 -0
  572. volcano_sdk/_generated/models/paginated_service_keys.py +155 -0
  573. volcano_sdk/_generated/models/paginated_storage_buckets.py +140 -0
  574. volcano_sdk/_generated/models/paginated_variables.py +155 -0
  575. volcano_sdk/_generated/models/platform_exchange_response.py +109 -0
  576. volcano_sdk/_generated/models/preview_auth_page_request.py +89 -0
  577. volcano_sdk/_generated/models/preview_auth_page_response.py +89 -0
  578. volcano_sdk/_generated/models/project.py +255 -0
  579. volcano_sdk/_generated/models/project_config.py +288 -0
  580. volcano_sdk/_generated/models/project_config_apply_result.py +170 -0
  581. volcano_sdk/_generated/models/project_config_apply_result_entry.py +118 -0
  582. volcano_sdk/_generated/models/project_config_apply_result_entry_action.py +10 -0
  583. volcano_sdk/_generated/models/project_config_apply_summary.py +124 -0
  584. volcano_sdk/_generated/models/project_config_auth.py +296 -0
  585. volcano_sdk/_generated/models/project_config_auth_cors.py +93 -0
  586. volcano_sdk/_generated/models/project_config_auth_email.py +132 -0
  587. volcano_sdk/_generated/models/project_config_auth_email_from.py +69 -0
  588. volcano_sdk/_generated/models/project_config_auth_email_password_provider.py +60 -0
  589. volcano_sdk/_generated/models/project_config_auth_email_smtp.py +96 -0
  590. volcano_sdk/_generated/models/project_config_auth_email_verification.py +70 -0
  591. volcano_sdk/_generated/models/project_config_auth_managed_pages.py +129 -0
  592. volcano_sdk/_generated/models/project_config_auth_page_appearance.py +97 -0
  593. volcano_sdk/_generated/models/project_config_auth_page_layouts.py +174 -0
  594. volcano_sdk/_generated/models/project_config_auth_password.py +96 -0
  595. volcano_sdk/_generated/models/project_config_auth_password_reset.py +78 -0
  596. volcano_sdk/_generated/models/project_config_auth_providers.py +105 -0
  597. volcano_sdk/_generated/models/project_config_auth_rate_limits.py +88 -0
  598. volcano_sdk/_generated/models/project_config_auth_redirects.py +93 -0
  599. volcano_sdk/_generated/models/project_config_auth_sessions.py +69 -0
  600. volcano_sdk/_generated/models/project_config_auth_signup.py +118 -0
  601. volcano_sdk/_generated/models/project_config_auth_signup_allowed_email_domains_mode.py +10 -0
  602. volcano_sdk/_generated/models/project_config_auth_tokens.py +88 -0
  603. volcano_sdk/_generated/models/project_config_bucket.py +118 -0
  604. volcano_sdk/_generated/models/project_config_bucket_policy.py +80 -0
  605. volcano_sdk/_generated/models/project_config_bucket_policy_operation.py +10 -0
  606. volcano_sdk/_generated/models/project_config_custom_domain.py +88 -0
  607. volcano_sdk/_generated/models/project_config_database.py +109 -0
  608. volcano_sdk/_generated/models/project_config_database_database_type.py +10 -0
  609. volcano_sdk/_generated/models/project_config_database_pg_version.py +10 -0
  610. volcano_sdk/_generated/models/project_config_email_template.py +78 -0
  611. volcano_sdk/_generated/models/project_config_email_templates.py +136 -0
  612. volcano_sdk/_generated/models/project_config_frontend.py +91 -0
  613. volcano_sdk/_generated/models/project_config_function.py +188 -0
  614. volcano_sdk/_generated/models/project_config_function_openapi_spec_type_0.py +66 -0
  615. volcano_sdk/_generated/models/project_config_hosted_page.py +68 -0
  616. volcano_sdk/_generated/models/project_config_hosted_pages.py +172 -0
  617. volcano_sdk/_generated/models/project_config_missing_resource.py +90 -0
  618. volcano_sdk/_generated/models/project_config_missing_resource_type.py +10 -0
  619. volcano_sdk/_generated/models/project_config_o_auth_provider.py +116 -0
  620. volcano_sdk/_generated/models/project_config_o_auth_provider_provider.py +10 -0
  621. volcano_sdk/_generated/models/project_config_project.py +85 -0
  622. volcano_sdk/_generated/models/project_config_realtime.py +87 -0
  623. volcano_sdk/_generated/models/project_config_scheduler.py +100 -0
  624. volcano_sdk/_generated/models/project_config_scheduler_payload.py +65 -0
  625. volcano_sdk/_generated/models/project_config_skipped_resource.py +98 -0
  626. volcano_sdk/_generated/models/project_config_skipped_resource_type.py +10 -0
  627. volcano_sdk/_generated/models/project_config_validation_error.py +94 -0
  628. volcano_sdk/_generated/models/project_config_validation_error_response.py +103 -0
  629. volcano_sdk/_generated/models/project_config_variable.py +66 -0
  630. volcano_sdk/_generated/models/project_config_version.py +10 -0
  631. volcano_sdk/_generated/models/project_deployment.py +231 -0
  632. volcano_sdk/_generated/models/project_deployment_deploy_source.py +10 -0
  633. volcano_sdk/_generated/models/project_deployment_operation.py +10 -0
  634. volcano_sdk/_generated/models/project_deployment_resource.py +103 -0
  635. volcano_sdk/_generated/models/project_deployment_resource_type.py +10 -0
  636. volcano_sdk/_generated/models/project_deployment_status.py +10 -0
  637. volcano_sdk/_generated/models/project_deployment_summary.py +132 -0
  638. volcano_sdk/_generated/models/project_frontend_custom_domain.py +218 -0
  639. volcano_sdk/_generated/models/project_frontend_custom_domain_frontend.py +90 -0
  640. volcano_sdk/_generated/models/project_git_connection.py +122 -0
  641. volcano_sdk/_generated/models/project_git_connection_summary.py +121 -0
  642. volcano_sdk/_generated/models/project_git_deploy_settings.py +119 -0
  643. volcano_sdk/_generated/models/project_health_category.py +10 -0
  644. volcano_sdk/_generated/models/project_health_check.py +140 -0
  645. volcano_sdk/_generated/models/project_health_data_status.py +10 -0
  646. volcano_sdk/_generated/models/project_health_evidence.py +100 -0
  647. volcano_sdk/_generated/models/project_health_resource.py +102 -0
  648. volcano_sdk/_generated/models/project_health_resource_type.py +10 -0
  649. volcano_sdk/_generated/models/project_health_response.py +176 -0
  650. volcano_sdk/_generated/models/project_health_scope.py +84 -0
  651. volcano_sdk/_generated/models/project_health_status.py +10 -0
  652. volcano_sdk/_generated/models/project_health_summary.py +82 -0
  653. volcano_sdk/_generated/models/project_import_action.py +110 -0
  654. volcano_sdk/_generated/models/project_import_action_code.py +10 -0
  655. volcano_sdk/_generated/models/project_import_destination.py +103 -0
  656. volcano_sdk/_generated/models/project_import_destination_mode.py +10 -0
  657. volcano_sdk/_generated/models/project_import_disposition.py +10 -0
  658. volcano_sdk/_generated/models/project_import_finding.py +134 -0
  659. volcano_sdk/_generated/models/project_import_impact.py +10 -0
  660. volcano_sdk/_generated/models/project_import_preflight_request.py +123 -0
  661. volcano_sdk/_generated/models/project_import_readiness.py +10 -0
  662. volcano_sdk/_generated/models/project_import_report.py +230 -0
  663. volcano_sdk/_generated/models/project_import_resource.py +109 -0
  664. volcano_sdk/_generated/models/project_import_resource_kind.py +10 -0
  665. volcano_sdk/_generated/models/project_import_run.py +190 -0
  666. volcano_sdk/_generated/models/project_import_run_status.py +10 -0
  667. volcano_sdk/_generated/models/project_import_start_request.py +126 -0
  668. volcano_sdk/_generated/models/project_import_summary.py +116 -0
  669. volcano_sdk/_generated/models/project_import_target.py +10 -0
  670. volcano_sdk/_generated/models/project_lock_lease.py +75 -0
  671. volcano_sdk/_generated/models/project_lock_lease_request.py +62 -0
  672. volcano_sdk/_generated/models/project_lock_state.py +90 -0
  673. volcano_sdk/_generated/models/project_metrics_data_status.py +10 -0
  674. volcano_sdk/_generated/models/project_metrics_dimensions.py +83 -0
  675. volcano_sdk/_generated/models/project_metrics_dimensions_resource_type.py +10 -0
  676. volcano_sdk/_generated/models/project_metrics_group_by.py +10 -0
  677. volcano_sdk/_generated/models/project_metrics_metric.py +10 -0
  678. volcano_sdk/_generated/models/project_metrics_query.py +95 -0
  679. volcano_sdk/_generated/models/project_metrics_query_request.py +90 -0
  680. volcano_sdk/_generated/models/project_metrics_query_response.py +122 -0
  681. volcano_sdk/_generated/models/project_metrics_query_time_range.py +64 -0
  682. volcano_sdk/_generated/models/project_metrics_query_time_range_window.py +10 -0
  683. volcano_sdk/_generated/models/project_metrics_result.py +123 -0
  684. volcano_sdk/_generated/models/project_metrics_unit.py +10 -0
  685. volcano_sdk/_generated/models/project_metrics_value.py +74 -0
  686. volcano_sdk/_generated/models/project_metrics_window.py +92 -0
  687. volcano_sdk/_generated/models/project_plan.py +10 -0
  688. volcano_sdk/_generated/models/project_source_export.py +152 -0
  689. volcano_sdk/_generated/models/project_source_export_omission.py +93 -0
  690. volcano_sdk/_generated/models/project_source_export_skip.py +93 -0
  691. volcano_sdk/_generated/models/project_source_export_state.py +171 -0
  692. volcano_sdk/_generated/models/project_source_export_state_mode.py +10 -0
  693. volcano_sdk/_generated/models/project_status.py +10 -0
  694. volcano_sdk/_generated/models/project_usage_response.py +145 -0
  695. volcano_sdk/_generated/models/realtime_config.py +167 -0
  696. volcano_sdk/_generated/models/realtime_plan_limits.py +115 -0
  697. volcano_sdk/_generated/models/realtime_stats.py +132 -0
  698. volcano_sdk/_generated/models/refresh_o_auth_provider_token_provider.py +10 -0
  699. volcano_sdk/_generated/models/refresh_o_auth_provider_token_response_200.py +96 -0
  700. volcano_sdk/_generated/models/render_default_managed_auth_page_action.py +10 -0
  701. volcano_sdk/_generated/models/reset_database_password_response_200.py +106 -0
  702. volcano_sdk/_generated/models/resolve_function_response.py +96 -0
  703. volcano_sdk/_generated/models/resource_reference.py +103 -0
  704. volcano_sdk/_generated/models/resource_reference_type.py +10 -0
  705. volcano_sdk/_generated/models/schedule_request.py +101 -0
  706. volcano_sdk/_generated/models/schedule_request_kind.py +10 -0
  707. volcano_sdk/_generated/models/service_key.py +183 -0
  708. volcano_sdk/_generated/models/set_project_git_production_branch_request.py +77 -0
  709. volcano_sdk/_generated/models/start_git_connect_provider.py +10 -0
  710. volcano_sdk/_generated/models/storage_bucket.py +223 -0
  711. volcano_sdk/_generated/models/storage_copy_request.py +84 -0
  712. volcano_sdk/_generated/models/storage_list_response.py +109 -0
  713. volcano_sdk/_generated/models/storage_move_request.py +84 -0
  714. volcano_sdk/_generated/models/storage_object.py +243 -0
  715. volcano_sdk/_generated/models/storage_object_metadata.py +67 -0
  716. volcano_sdk/_generated/models/storage_object_with_bucket.py +248 -0
  717. volcano_sdk/_generated/models/storage_object_with_bucket_metadata.py +65 -0
  718. volcano_sdk/_generated/models/storage_policy.py +166 -0
  719. volcano_sdk/_generated/models/storage_policy_operation.py +10 -0
  720. volcano_sdk/_generated/models/storage_stats.py +93 -0
  721. volcano_sdk/_generated/models/storage_visibility_request.py +76 -0
  722. volcano_sdk/_generated/models/summarize_project_deployments_resource_type.py +10 -0
  723. volcano_sdk/_generated/models/test_email_request.py +115 -0
  724. volcano_sdk/_generated/models/test_email_response.py +76 -0
  725. volcano_sdk/_generated/models/unban_user_response.py +111 -0
  726. volcano_sdk/_generated/models/unban_user_response_status.py +10 -0
  727. volcano_sdk/_generated/models/update_auth_config_request.py +485 -0
  728. volcano_sdk/_generated/models/update_auth_config_request_allowed_email_domains_mode.py +10 -0
  729. volcano_sdk/_generated/models/update_auth_hosted_page_request.py +86 -0
  730. volcano_sdk/_generated/models/update_auth_page_layout_request.py +64 -0
  731. volcano_sdk/_generated/models/update_auth_page_theme_request.py +66 -0
  732. volcano_sdk/_generated/models/update_database_branch_request.py +77 -0
  733. volcano_sdk/_generated/models/update_database_type_request.py +83 -0
  734. volcano_sdk/_generated/models/update_database_type_request_database_type.py +10 -0
  735. volcano_sdk/_generated/models/update_email_template_request.py +96 -0
  736. volcano_sdk/_generated/models/update_email_template_type.py +10 -0
  737. volcano_sdk/_generated/models/update_function_request.py +149 -0
  738. volcano_sdk/_generated/models/update_function_request_openapi_spec_type_0.py +66 -0
  739. volcano_sdk/_generated/models/update_function_scheduler_request.py +147 -0
  740. volcano_sdk/_generated/models/update_function_scheduler_request_payload.py +65 -0
  741. volcano_sdk/_generated/models/update_o_auth_config_provider.py +10 -0
  742. volcano_sdk/_generated/models/update_o_auth_config_request.py +120 -0
  743. volcano_sdk/_generated/models/update_project_git_deploy_settings_request.py +105 -0
  744. volcano_sdk/_generated/models/update_project_request.py +107 -0
  745. volcano_sdk/_generated/models/update_realtime_config_request.py +107 -0
  746. volcano_sdk/_generated/models/update_storage_bucket_request.py +93 -0
  747. volcano_sdk/_generated/models/update_variable_request.py +76 -0
  748. volcano_sdk/_generated/models/upload_project_logo_body.py +101 -0
  749. volcano_sdk/_generated/models/upload_session_part.py +97 -0
  750. volcano_sdk/_generated/models/upload_session_status_response.py +234 -0
  751. volcano_sdk/_generated/models/upload_session_status_response_status.py +10 -0
  752. volcano_sdk/_generated/models/upload_storage_object_files_body.py +101 -0
  753. volcano_sdk/_generated/models/upload_storage_object_x_upload_complete.py +10 -0
  754. volcano_sdk/_generated/models/usage_data_point.py +90 -0
  755. volcano_sdk/_generated/models/variable.py +216 -0
  756. volcano_sdk/_generated/models/variable_deploy_source.py +10 -0
  757. volcano_sdk/_generated/models/variable_status.py +10 -0
  758. volcano_sdk/_generated/types.py +53 -0
  759. volcano_sdk/_lock_guard.py +159 -0
  760. volcano_sdk/_lock_renewer.py +30 -0
  761. volcano_sdk/_lock_worker.py +104 -0
  762. volcano_sdk/_realtime_fetch_worker.py +265 -0
  763. volcano_sdk/_transport.py +1767 -0
  764. volcano_sdk/auth.py +1128 -0
  765. volcano_sdk/client.py +288 -0
  766. volcano_sdk/connection_string.py +70 -0
  767. volcano_sdk/database.py +281 -0
  768. volcano_sdk/errors.py +61 -0
  769. volcano_sdk/functions.py +277 -0
  770. volcano_sdk/locks.py +227 -0
  771. volcano_sdk/logs.py +140 -0
  772. volcano_sdk/models.py +330 -0
  773. volcano_sdk/realtime.py +1611 -0
  774. volcano_sdk/storage.py +750 -0
  775. volcano_sdk_python-0.6.7.dist-info/METADATA +828 -0
  776. volcano_sdk_python-0.6.7.dist-info/RECORD +778 -0
  777. volcano_sdk_python-0.6.7.dist-info/WHEEL +4 -0
  778. volcano_sdk_python-0.6.7.dist-info/licenses/LICENSE +203 -0
@@ -0,0 +1,828 @@
1
+ Metadata-Version: 2.5
2
+ Name: volcano-sdk-python
3
+ Version: 0.6.7
4
+ Summary: Official Python SDK for Volcano
5
+ Project-URL: Homepage, https://volcano.dev
6
+ Project-URL: Repository, https://github.com/Kong/volcano-sdk-python
7
+ Project-URL: Changelog, https://github.com/Kong/volcano-sdk-python/releases
8
+ Author-email: Kong <office@konghq.com>
9
+ License-Expression: Apache-2.0
10
+ License-File: LICENSE
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3 :: Only
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.14
15
+ Requires-Python: >=3.11
16
+ Requires-Dist: attrs>=26.1.0
17
+ Requires-Dist: centrifuge-python<0.7.0,>=0.6.0
18
+ Requires-Dist: httpx<0.29.0,>=0.28.1
19
+ Requires-Dist: python-dateutil<3.0.0,>=2.9.0.post0
20
+ Requires-Dist: typing-extensions>=4.15.0
21
+ Description-Content-Type: text/markdown
22
+
23
+ # Volcano Python SDK
24
+
25
+ Use the Volcano Python SDK to access authentication, databases, storage,
26
+ functions, locks, logs, and realtime events. Requires Python 3.11 or later.
27
+
28
+ ## Install
29
+
30
+ ```shell
31
+ python -m pip install volcano-sdk-python
32
+ ```
33
+
34
+ The [PyPI distribution](https://pypi.org/project/volcano-sdk-python/) is named
35
+ `volcano-sdk-python`; import it as `volcano_sdk`.
36
+
37
+ ## Try the contract facade
38
+
39
+ The REST facade is synchronous. Create one client, sign in, and use the stored
40
+ session for database and storage requests. Configure a service key for locks.
41
+
42
+ ```python
43
+ from volcano_sdk import VolcanoClient
44
+
45
+ client = VolcanoClient(
46
+ api_url="https://api.volcano.dev",
47
+ anon_key="your-anon-key",
48
+ service_key="your-service-key",
49
+ )
50
+
51
+ sign_up = client.auth.sign_up(
52
+ email="new-user@example.com",
53
+ password="secret",
54
+ metadata={"display_name": "New User"},
55
+ )
56
+ if sign_up.confirmation_required:
57
+ print(sign_up.message)
58
+
59
+ session = client.auth.sign_in(email="user@example.com", password="secret")
60
+ current_session = client.auth.get_session()
61
+ assert current_session == session
62
+
63
+ user = client.auth.get_user()
64
+ assert user.id == session.user_id
65
+
66
+ updated_user = client.auth.update_user(
67
+ password="new-secret",
68
+ metadata={"display_name": "Grace", "avatar": None},
69
+ )
70
+ assert updated_user.id == session.user_id
71
+
72
+ function = client.functions.invoke(
73
+ "send-welcome",
74
+ {"user_id": session.user_id},
75
+ )
76
+ print(function.status, function.version, function.data)
77
+
78
+ logs = client.logs.search(
79
+ "00000000-0000-4000-8000-000000000001",
80
+ {"resource": {"type": "function"}, "limit": 100},
81
+ )
82
+ for event in logs.data:
83
+ print(event["timestamp"], event["body"])
84
+
85
+ activity = client.logs.activity(
86
+ "00000000-0000-4000-8000-000000000001",
87
+ {"resource": {"type": "function"}, "bucket_count": 24},
88
+ )
89
+ print(activity.total)
90
+
91
+ rows = client.database("main").from_("items").select("*").eq("slug", "a").execute()
92
+
93
+ bucket = client.storage.from_("assets")
94
+ bucket.upload("a.txt", b"hello", content_type="text/plain; charset=utf-8")
95
+ with open("avatar.png", "rb") as avatar:
96
+ bucket.upload("avatars/me.png", avatar)
97
+ downloaded = bucket.download("a.txt")
98
+ assert downloaded == b"hello"
99
+ first_kibibyte = bucket.download("archive.bin", byte_range="bytes=0-1023")
100
+ video = b"demo video"
101
+ uploaded = bucket.upload_resumable(
102
+ "videos/automatic.mp4",
103
+ video,
104
+ content_type="video/mp4",
105
+ on_progress=lambda uploaded, total: print(f"{uploaded}/{total}"),
106
+ )
107
+ print(uploaded.name)
108
+ upload_session = bucket.create_upload_session(
109
+ "videos/demo.mp4",
110
+ total_size=len(video),
111
+ content_type="video/mp4",
112
+ part_size=8_388_608,
113
+ )
114
+ print(upload_session.session_id, upload_session.total_parts)
115
+ part = bucket.upload_part(
116
+ "videos/demo.mp4",
117
+ session_id=upload_session.session_id,
118
+ part_number=1,
119
+ data=video,
120
+ )
121
+ print(part.etag)
122
+ status = bucket.get_upload_session(
123
+ "videos/demo.mp4",
124
+ session_id=upload_session.session_id,
125
+ )
126
+ print(status.parts_uploaded, status.bytes_uploaded)
127
+ completed = bucket.complete_upload_session(
128
+ "videos/demo.mp4",
129
+ session_id=upload_session.session_id,
130
+ )
131
+ print(completed.name)
132
+
133
+ page = bucket.list("avatars", limit=100)
134
+ for object_ in page.objects:
135
+ print(object_.name)
136
+
137
+ if page.next_cursor is not None:
138
+ next_page = bucket.list("avatars", limit=100, cursor=page.next_cursor)
139
+
140
+ removed_paths = bucket.remove(["archive/a.txt", "archive/b.txt"])
141
+ moved = bucket.move("drafts/a.txt", "published/a.txt")
142
+ copied = bucket.copy("templates/a.txt", "drafts/a.txt")
143
+ public_object = bucket.update_visibility("avatars/a.png", is_public=True)
144
+ print(public_object.public_url)
145
+ public_url = bucket.get_public_url("avatars/a.png")
146
+ print(public_url)
147
+
148
+ state = client.locks.get("build")
149
+ print(state.held)
150
+ lease = client.locks.acquire("build", ttl=30)
151
+ lease = client.locks.renew("build", lease, ttl=30)
152
+ client.locks.release("build", lease)
153
+ client.locks.force_release("stale-build")
154
+
155
+ with client.locks.with_lock("deploy", ttl=30) as guard:
156
+ print(guard.lease.fencing_token)
157
+ ```
158
+
159
+ Function invocation returns `data=None` for an empty HTTP 204 response, retaining
160
+ the status, headers, and version.
161
+
162
+ Simple uploads accept an optional `content_type` for the multipart file part.
163
+ Omit it or pass `None` to retain `application/octet-stream`. Explicit values must
164
+ be non-blank printable ASCII; MIME parameters such as `charset=utf-8` are allowed.
165
+
166
+ Storage removals run in input order. A failed request raises after any earlier
167
+ paths have already been deleted. Visibility updates return the server-confirmed
168
+ object; `public_url` is set only when the object is public.
169
+ `get_public_url()` constructs a URL locally and does not check object visibility.
170
+ Pass an HTTP byte range to download only part of an object.
171
+ `create_upload_session()` returns the immutable server-selected part size,
172
+ part count, and expiration time for a resumable upload.
173
+ `upload_resumable()` accepts bytes or a binary file-like object, creates a
174
+ session, and uploads server-sized chunks. It streams seekable files directly;
175
+ non-seekable inputs are spooled to a temporary file with bounded reads. If a
176
+ part or progress callback fails, it makes a best-effort abort and raises the
177
+ original error. `on_progress` runs after each successful part with cumulative
178
+ uploaded bytes and the total size.
179
+ `upload_part()` returns immutable part metadata and can safely retry the same
180
+ part number to replace that part.
181
+ `locks.get()` returns immutable lock availability, expiry, and fencing-token
182
+ state without acquiring the lock.
183
+ Lock acquisition and renewal require an integer TTL from 5 seconds through 90 days.
184
+ `locks.renew()` returns a new immutable lease and leaves the previous value
185
+ unchanged.
186
+ `locks.with_lock()` renews the lease on a background thread, stops renewal
187
+ before releasing the latest lease, and yields a `LockGuard`. Read
188
+ `guard.lease` for the latest fencing token. Check `guard.lost` or call
189
+ `guard.wait_lost(timeout=...)` when work must stop promptly after ownership is
190
+ lost. If the context body succeeds, a renewal failure is raised after release;
191
+ an exception from the body takes precedence.
192
+ `locks.force_release()` drops any current lease without an ownership token.
193
+ Use it only for administrative recovery behind fencing-token enforcement.
194
+ `get_upload_session()` returns immutable progress and uploaded-part metadata for
195
+ resuming an interrupted upload.
196
+ `complete_upload_session()` assembles the uploaded parts and returns the stored
197
+ object.
198
+ `abort_upload_session(path, session_id=...)` abandons a session and discards its
199
+ uploaded parts.
200
+
201
+ `functions.invoke()` resolves a DNS-safe function name and sends a JSON object.
202
+ The request goes to the function's own domain rather than to `api_url`, so an
203
+ egress rule that allows only the API host will block it; the resolved endpoint
204
+ is cached for the lifetime the platform gives it. Deployments with no public
205
+ function domain invoke through the API host instead.
206
+ It uses the active user session when present, then a configured service key,
207
+ then the anonymous key. An anonymous key can invoke a public function without a
208
+ user session; the function receives no user identity. The immutable result
209
+ includes the response body, status, headers, and `X-Volcano-Version`. The body
210
+ can be a JSON object, array, scalar, or text; an empty body returns `None`.
211
+ JSON arrays become immutable tuples. Invalid JSON is returned as text. A
212
+ function's own non-2xx response is returned when the version header proves it
213
+ ran; platform failures raise typed SDK errors.
214
+
215
+ `logs.search()` returns an immutable page of retained runtime or deployment log
216
+ events. Pass `next_cursor` back as `cursor` to continue a search. `logs.activity()`
217
+ returns immutable time buckets using the same resource selector and query syntax.
218
+ Both methods require an active user session.
219
+
220
+ Database selects, inserts, updates, deletes, and log reads refresh the captured
221
+ session after an HTTP 401 and retry the same request once. Concurrent requests reuse a successful
222
+ refresh for that session.
223
+ Replacing or signing out the session before replay, or while replay is in flight,
224
+ raises `SessionChangedError`. Requests do not wait for auth callbacks running on
225
+ another thread. A later callback-driven session change does not invalidate a
226
+ completed request.
227
+ A failed refresh preserves the original request error. HTTP 403 responses and
228
+ network failures do not trigger this retry. Mutations are replayed only after an
229
+ explicit authentication rejection, never after an ambiguous transport failure.
230
+
231
+ Database builders are immutable, so you can safely reuse a base query. Chain `neq()`, `gt()`,
232
+ `gte()`, `lt()`, and `lte()` for comparison filters:
233
+
234
+ ```python
235
+ base_query = client.database("main").from_("items").select("id", "priority")
236
+ rows = (
237
+ base_query.gte("priority", 3)
238
+ .lt("priority", 10)
239
+ .order("priority", ascending=False)
240
+ .order("id")
241
+ .limit(10)
242
+ .offset(20)
243
+ .execute()
244
+ )
245
+
246
+ matching_rows = (
247
+ client.database("main")
248
+ .from_("items")
249
+ .select("*")
250
+ .ilike("name", "%volcano%")
251
+ .is_("deleted_at", None)
252
+ .in_("status", ["draft", "published"])
253
+ .execute()
254
+ )
255
+
256
+ inserted_rows = (
257
+ client.database("main")
258
+ .from_("items")
259
+ .insert({"name": "Volcano", "status": "draft"})
260
+ .execute()
261
+ )
262
+
263
+ updated_rows = (
264
+ client.database("main")
265
+ .from_("items")
266
+ .update({"status": "published"})
267
+ .eq("name", "Volcano")
268
+ .execute()
269
+ )
270
+
271
+ deleted_rows = (
272
+ client.database("main").from_("items").delete().eq("name", "Volcano").execute()
273
+ )
274
+ ```
275
+
276
+ Updates and deletes require at least one filter; Volcano rejects filterless mutations.
277
+
278
+ Use `database_connection_string()` inside a Volcano function to select database
279
+ access without changing the advertised `DATABASE_URL` target:
280
+
281
+ ```python
282
+ import os
283
+
284
+ from volcano_sdk import database_connection_string
285
+
286
+ connection_string = database_connection_string(
287
+ os.environ["DATABASE_URL"],
288
+ user_id=event.get("__volcano_auth", {}).get("user_id"),
289
+ )
290
+ ```
291
+
292
+ Pass a user ID to enforce that user's Row-Level Security policies. Omit
293
+ `user_id` for full service access.
294
+ The helper preserves libpq connection syntax, including hostless and multi-host
295
+ targets, and leaves unrelated query values unchanged.
296
+
297
+ `sign_up()` returns an immutable acknowledgement without changing the session by default.
298
+ The signup acknowledgement is identical for new and existing email addresses. Pass
299
+ `sign_in_when_allowed=True` to follow it with `sign_in()` only when confirmation is not required:
300
+
301
+ ```python
302
+ result = client.auth.sign_up(
303
+ email="new-user@example.com", password="secret", sign_in_when_allowed=True
304
+ )
305
+ session = result.session # None when no follow-up sign-in ran.
306
+ ```
307
+
308
+ A successful follow-up stores the session and emits the normal sign-in event. A failed
309
+ follow-up raises its usual typed error; it does not undo the successful signup.
310
+
311
+ `get_session()` reads immutable local state. It does not refresh or validate the token.
312
+
313
+ Sessions returned by authentication retain the user payload in `session.user`,
314
+ including metadata. The snapshot is deeply immutable and available without a
315
+ request. It is cached data, not proof of authentication; use `auth.get_user()`
316
+ to fetch the server-validated profile. Existing three-field `Session` construction
317
+ still works, with `user=None`. An adopted snapshot must have the same user ID.
318
+
319
+ `get_user()` sends the active access token to Volcano and returns an immutable, server-validated
320
+ profile with the complete public AuthUser fields. Profile timestamps are timezone-aware `datetime`
321
+ values, and nested user and application metadata are immutable. The request does not replace the
322
+ session or cache the profile. If another authentication operation replaces the session while the
323
+ request is in flight, `get_user()` raises `SessionChangedError` instead of returning a profile for
324
+ stale credentials.
325
+
326
+ `update_user()` updates the current user's password, metadata, or both. Metadata is a shallow patch:
327
+ omitted keys remain unchanged, and setting a key to `None` removes it. The method returns the same
328
+ immutable profile type as `get_user()` and does not replace the active session. It also rejects a
329
+ response if another authentication operation replaces the session while the update is in flight.
330
+
331
+ Request a password reset email without creating or changing a session:
332
+
333
+ ```python
334
+ client.auth.reset_password_for_email(email="user@example.com")
335
+ ```
336
+
337
+ When transactional email is configured, Volcano sends the reset link. Success returns `None`, and
338
+ the response is intentionally identical whether or not the email belongs to an account. Failures
339
+ raise the same typed Volcano errors as other authentication operations.
340
+
341
+ Confirm an email address with the token from its confirmation link:
342
+
343
+ ```python
344
+ client.auth.confirm_email(token="confirmation-token")
345
+ ```
346
+
347
+ Success returns `None`. Confirmation does not sign in the confirmed account or change an unrelated
348
+ local session.
349
+
350
+ Request another confirmation email without revealing account state:
351
+
352
+ ```python
353
+ client.auth.resend_confirmation(email="user@example.com")
354
+ ```
355
+
356
+ Success returns `None` whether the account is unknown, already confirmed, or eligible. Volcano sends
357
+ mail only for an existing unconfirmed account when transactional email is configured. Rate limits
358
+ raise `RateLimitedError` with `retry_after` when the server supplies it.
359
+
360
+ Request confirmation for a new email address while keeping the current session:
361
+
362
+ ```python
363
+ result = client.auth.request_email_change(new_email="new@example.com")
364
+ print(result.new_email)
365
+ ```
366
+
367
+ The immutable result contains the server acknowledgement. Its `message` and `new_email` fields may
368
+ be `None`. The request fails if there is no active session or that session changes in flight.
369
+
370
+ Cancel the pending change while keeping the current session:
371
+
372
+ ```python
373
+ client.auth.cancel_email_change()
374
+ ```
375
+
376
+ Success returns `None`. A successful stale response is rejected if another authentication operation
377
+ replaces the session while cancellation is in flight.
378
+
379
+ Confirm the pending change with the token delivered to the new address:
380
+
381
+ ```python
382
+ user = client.auth.confirm_email_change(token="email-change-token")
383
+ print(user.email)
384
+ ```
385
+
386
+ The method returns the immutable updated user without replacing the active session. A successful
387
+ stale response is rejected if another authentication operation replaces that session in flight.
388
+
389
+ List sessions using the stable activity-ordered offset pagination:
390
+
391
+ ```python
392
+ page = client.auth.list_sessions(page=1, limit=20)
393
+ for session in page.sessions:
394
+ print(session.id, session.user_agent, session.is_current)
395
+ ```
396
+
397
+ The method returns immutable `SessionPage` and `AuthSession` values. It raises
398
+ `SessionChangedError` instead of returning a page for a session that was replaced while the request
399
+ was in flight. Sort, filter, and cursor controls are not yet exposed by this facade.
400
+
401
+ Build a managed hosted-auth URL:
402
+
403
+ ```python
404
+ import secrets
405
+
406
+ hosted_state = secrets.token_urlsafe(32)
407
+ hosted_url = client.auth.get_hosted_auth_url(
408
+ project_id="00000000-0000-4000-8000-000000000020",
409
+ action="signup",
410
+ state=hosted_state,
411
+ )
412
+ ```
413
+
414
+ Store `hosted_state` in the user's signed server-side session before redirecting to `hosted_url`.
415
+ After parsing the returned fragment into a `Session`, validate and adopt it atomically:
416
+
417
+ ```python
418
+ session = client.auth.adopt_hosted_auth_session(
419
+ returned_session,
420
+ state=returned_state,
421
+ expected_state=hosted_state,
422
+ )
423
+ ```
424
+
425
+ The SDK rejects a mismatched state before changing local authentication. It builds and adopts the
426
+ flow but does not parse browser URLs, navigate, or persist state. The `action` deep link applies to
427
+ Volcano's built-in page; a customized login page must implement its own signup or forgot-password
428
+ flow.
429
+
430
+ Build the URL that starts an OAuth sign-in flow:
431
+
432
+ ```python
433
+ import secrets
434
+
435
+ oauth_state = secrets.token_urlsafe(32)
436
+ authorization_url = client.auth.sign_in_with_oauth(
437
+ provider="github",
438
+ redirect_to="https://app.example.com/auth/callback",
439
+ state=oauth_state,
440
+ )
441
+ ```
442
+
443
+ Store `oauth_state` in the user's signed server-side session, then redirect the user to the returned
444
+ URL. In the callback, pass the returned and stored states to the SDK so it rejects login CSRF before
445
+ exchanging the one-time code:
446
+
447
+ ```python
448
+ session = client.auth.exchange_oauth_code(
449
+ code=callback_code,
450
+ redirect_to="https://app.example.com/auth/callback",
451
+ state=callback_state,
452
+ expected_state=stored_oauth_state,
453
+ )
454
+ ```
455
+
456
+ The callback URL must exactly match a registered project redirect. The exchange stores the returned
457
+ Volcano session on the client. The SDK does not open a browser or persist OAuth state between
458
+ requests; use your framework's signed session or equivalent storage for that state.
459
+
460
+ List the OAuth providers linked to the current account:
461
+
462
+ ```python
463
+ providers = client.auth.list_linked_oauth_providers()
464
+ for provider in providers:
465
+ print(provider.provider, provider.linked_at)
466
+ ```
467
+
468
+ The method returns an immutable tuple of `LinkedOAuthProvider` values and raises
469
+ `SessionChangedError` if the active session changes while the request is in flight.
470
+
471
+ Start linking another OAuth provider to the current account:
472
+
473
+ ```python
474
+ authorization_url = client.auth.link_oauth_provider(provider="github")
475
+ ```
476
+
477
+ Redirect the user to the returned URL to complete the provider flow. The method accepts `apple`,
478
+ `github`, `google`, or `microsoft` and raises `SessionChangedError` if the active session changes
479
+ while the request is in flight.
480
+
481
+ Unlink an OAuth provider from the current account:
482
+
483
+ ```python
484
+ client.auth.unlink_oauth_provider(provider="github")
485
+ ```
486
+
487
+ The server rejects removal of the account's only authentication method. A successful stale response
488
+ raises `SessionChangedError` instead of acknowledging work authorized by a replaced session.
489
+
490
+ Check whether Volcano has a valid server-held provider token:
491
+
492
+ ```python
493
+ status = client.auth.get_oauth_provider_token(provider="github")
494
+ print(status.provider, status.expires_in)
495
+ ```
496
+
497
+ The immutable `OAuthProviderTokenStatus` contains provider and expiry metadata, not the credential.
498
+ Volcano refreshes an expired token on the server. A stale result raises `SessionChangedError`.
499
+
500
+ Refresh a provider token explicitly:
501
+
502
+ ```python
503
+ status = client.auth.refresh_oauth_provider_token(provider="github")
504
+ print(status.provider, status.expires_in)
505
+ ```
506
+
507
+ The refresh credential and new access token remain on the server. A stale result raises
508
+ `SessionChangedError`.
509
+
510
+ Call a provider API through Volcano's fixed-host server proxy:
511
+
512
+ ```python
513
+ repos = client.auth.call_oauth_api(
514
+ provider="github",
515
+ endpoint="/user/repos",
516
+ )
517
+ print(repos[0]["name"])
518
+ ```
519
+
520
+ The method returns an immutable copy of the provider's JSON value. Volcano owns token refresh and
521
+ host validation. A stale result raises `SessionChangedError`.
522
+
523
+ Sign out every other device while keeping the current session active:
524
+
525
+ ```python
526
+ client.auth.delete_all_other_sessions()
527
+ ```
528
+
529
+ Success returns `None`. Do not replace the client's session while this request is in flight: the
530
+ server may revoke that replacement as an "other" session. If replacement occurs, the method raises
531
+ `SessionChangedError` instead of acknowledging a stale result.
532
+
533
+ Revoke one session by ID:
534
+
535
+ ```python
536
+ client.auth.delete_session(session_id="00000000-0000-4000-8000-000000000099")
537
+ ```
538
+
539
+ The request uses the current access token. Deleting that token's own session clears local
540
+ credentials, including when the request outcome is uncertain; deleting another session preserves
541
+ them. If another authentication operation replaces the session before deletion finishes, the method
542
+ raises `SessionChangedError` instead of clearing the replacement or acknowledging a stale result.
543
+
544
+ Create an anonymous account and make its tokens the current session:
545
+
546
+ ```python
547
+ session = client.auth.sign_in_anonymously(metadata={"device": "mobile"})
548
+ ```
549
+
550
+ Anonymous sign-ins must be enabled for the project. Convert the account before signing out if the
551
+ user needs to recover it later.
552
+
553
+ Attach email credentials without changing the anonymous user's ID or current session:
554
+
555
+ ```python
556
+ user = client.auth.convert_anonymous(
557
+ email="user@example.com",
558
+ password="secure-password",
559
+ metadata={"display_name": "Ada"},
560
+ )
561
+ ```
562
+
563
+ When email confirmation is required, confirm the new address before treating it as verified.
564
+
565
+ Set a new password with the recovery token from that email:
566
+
567
+ ```python
568
+ client.auth.reset_password(
569
+ token="recovery-token",
570
+ new_password="new-secret",
571
+ )
572
+ ```
573
+
574
+ Success returns `None`. The reset revokes the recovered account's existing sessions and does not
575
+ sign it in. The client keeps any unrelated local session unchanged; sign in with the new password
576
+ when the reset flow completes.
577
+
578
+ Copy a complete native session into another client's memory:
579
+
580
+ ```python
581
+ session = source.auth.get_session()
582
+ if session is not None:
583
+ fresh.auth.set_session(session)
584
+ ```
585
+
586
+ `set_session()` copies the session without making a request, persisting credentials, or notifying
587
+ auth-state subscribers. It raises `ValueError` when the session type or any credential field is
588
+ incomplete.
589
+
590
+ Password sign-in raises `SessionChangedError` if local session state changes while the request is
591
+ in flight. The late response does not replace the newer state or emit a sign-in notification.
592
+
593
+ Refresh the session with its current refresh token:
594
+
595
+ ```python
596
+ refreshed = client.auth.refresh_session()
597
+ assert client.auth.get_session() is refreshed
598
+ ```
599
+
600
+ On success, `refresh_session()` replaces the in-memory session and returns the immutable new
601
+ snapshot. An authentication failure clears the session that initiated the request. Server and
602
+ transport failures preserve it, and a late response never replaces a newer session. The SDK does
603
+ not persist sessions.
604
+
605
+ Observe local session transitions:
606
+
607
+ ```python
608
+ from volcano_sdk import AuthChangeEvent, Session
609
+
610
+
611
+ def handle_auth_change(event: AuthChangeEvent, session: Session | None) -> None:
612
+ print(event, session is not None)
613
+
614
+
615
+ subscription = client.auth.on_auth_state_change(handle_auth_change)
616
+ # Later, stop receiving events.
617
+ subscription.unsubscribe()
618
+ ```
619
+
620
+ Registration queues `INITIAL_SESSION`. It normally arrives before registration returns, but an
621
+ existing notification dispatch may deliver it afterward. Successful session creation, refresh, and
622
+ local clearing emit `SIGNED_IN`, `TOKEN_REFRESHED`, and `SIGNED_OUT`. Callbacks are delivered locally
623
+ in transition order after the state lock is released, and callback failures cannot interrupt auth
624
+ operations. Unsubscribing prevents queued and future delivery; a callback already selected for
625
+ delivery may finish after `unsubscribe()` returns. The SDK does not broadcast between processes or
626
+ persist sessions.
627
+
628
+ Sign out by revoking and clearing the current session:
629
+
630
+ ```python
631
+ client.auth.sign_out()
632
+ assert client.auth.get_session() is None
633
+ ```
634
+
635
+ Calling `sign_out()` without a session succeeds without a request. A revocation failure is raised
636
+ after the captured local session is cleared. A newer session established while sign-out is in
637
+ flight remains current.
638
+
639
+ Realtime is async. Channels wrap `centrifuge-python`; the underlying client and
640
+ subscription objects are not part of the public API.
641
+
642
+ ```python
643
+ stop_connect = client.realtime.on_connect(
644
+ lambda context: print("connected", context.client)
645
+ )
646
+ client.realtime.on_disconnect(
647
+ lambda context: print("disconnected", context.code, context.reason)
648
+ )
649
+ client.realtime.on_error(
650
+ lambda context: print("realtime error", context.code, context.message)
651
+ )
652
+
653
+ channel = client.realtime.channel("updates")
654
+ assert channel.name == "broadcast:updates"
655
+ channel.on("message", print)
656
+
657
+ await channel.subscribe()
658
+ assert client.realtime.is_connected
659
+ await channel.send({"event": "message", "value": "contract"})
660
+ await client.realtime.remove_channel("updates")
661
+ assert client.realtime.is_connected
662
+ await client.realtime.disconnect()
663
+ assert not client.realtime.is_connected
664
+ stop_connect()
665
+ ```
666
+
667
+ `await channel.subscribe()` returns after the server acknowledges the subscription.
668
+ Presence channels also wait for the initial roster refresh. If subscription fails
669
+ or the call is cancelled, the attempt is stopped and a later call can retry.
670
+ Other channels and shutdown operations can proceed while acknowledgement is pending.
671
+ Calling subscribe on an active channel returns immediately.
672
+ Pausing, removal, and disconnect invalidate earlier queued subscribe calls;
673
+ disconnect also cancels the active readiness wait. Call subscribe again to restart.
674
+
675
+ Broadcast channels use Centrifuge's native stream recovery when server history
676
+ is available. `await channel.unsubscribe()` pauses delivery while retaining the
677
+ in-memory recovery position; a later `await channel.subscribe()` resumes the
678
+ same subscription and requests missed publications. Removing the channel or
679
+ disconnecting the realtime client discards that position. Recovery is not
680
+ persisted across processes and never crosses an auth session lineage.
681
+ Explicitly pausing discards incoming messages and callbacks queued before the pause,
682
+ including presence joins, leaves, and snapshots. Pausing frees their queue capacity
683
+ so recovered messages can be delivered after resubscription.
684
+ A callback already running may finish; handlers remain registered for resubscription.
685
+ If unsubscribe or removal is cancelled, cancellation propagates after the native
686
+ unsubscribe finishes under its request timeout. This keeps replies valid and
687
+ prevents a subsequent operation from overtaking the stop.
688
+ Automatic reconnects preserve queued messages on broadcast and presence channels,
689
+ using the existing recovery position to request missed messages. Presence rosters
690
+ are refreshed after reconnecting.
691
+
692
+ Presence channels expose server-managed user metadata and join/leave events:
693
+
694
+ ```python
695
+ presence = client.realtime.channel("lobby", channel_type="presence")
696
+ presence.on("join", lambda info: print("joined", info.user, info.data))
697
+ presence.on("leave", lambda info: print("left", info.user))
698
+ stop_sync = presence.on_presence_sync(
699
+ lambda state: print("present clients", tuple(state))
700
+ )
701
+
702
+ await presence.subscribe()
703
+ await presence.track({"status": "online"})
704
+ assert presence.tracked_state == {"status": "online"}
705
+ current = presence.get_presence_state()
706
+ await client.realtime.remove_channel("lobby", channel_type="presence")
707
+ stop_sync()
708
+ ```
709
+
710
+ `remove_channel()` unsubscribes and forgets one channel. `remove_all_channels()`
711
+ does the same for every managed channel without disconnecting the shared
712
+ realtime transport, so later calls to `channel()` return fresh facades.
713
+ Removal and `disconnect()` stop SDK delivery and transport work without cancelling
714
+ or waiting for a running application callback. Queued delivery is discarded;
715
+ callbacks already running may finish and may call realtime methods themselves.
716
+ Callbacks run in order on each channel, including across disconnect and resubscribe.
717
+ A slow callback delays subsequent delivery on that channel. Application code owns
718
+ any work it starts and should await that work separately when shutting down.
719
+ Connection callbacks receive immutable contexts, may be synchronous or async,
720
+ and run outside the transport event processor. Each registration returns an
721
+ idempotent function that stops future delivery.
722
+ Access-token refreshes preserve a realtime connection only while the auth
723
+ session lineage remains current. After signing in again or changing users,
724
+ call `disconnect()` before subscribing channels for the new session; the SDK
725
+ refuses to rebind an existing connection across that identity boundary.
726
+ Presence state and client metadata are immutable snapshots. Volcano derives
727
+ the remote identity and metadata from the authenticated user; `track()` stores
728
+ optional local state in `tracked_state` but does not replace that server-managed
729
+ identity. Presence is resynchronized after reconnects. Query failures are
730
+ reported through `realtime.on_error()` and clear the current snapshot.
731
+ Unsubscribing or removing a presence channel discards an in-progress roster
732
+ refresh without interrupting other channels on the shared connection.
733
+
734
+ Postgres channels deliver immutable, RLS-scoped row changes and filter
735
+ callbacks by event, schema, and table:
736
+
737
+ ```python
738
+ client.realtime.set_database_name("app")
739
+ changes = client.realtime.channel(
740
+ "public:messages",
741
+ channel_type="postgres",
742
+ auto_fetch=True,
743
+ fetch_batch_window_ms=20,
744
+ fetch_max_batch_size=50,
745
+ )
746
+ stop_changes = changes.on_postgres_changes(
747
+ "INSERT",
748
+ schema="public",
749
+ table="messages",
750
+ callback=lambda change: print(change.record),
751
+ )
752
+ await changes.subscribe()
753
+ stop_changes()
754
+ ```
755
+
756
+ Binding a database automatically fetches the matching row for lightweight
757
+ `INSERT` and `UPDATE` notifications in the `public` schema. The fetch uses the
758
+ realtime connection's RLS-scoped access token. Compatible row lookups are
759
+ batched while callback delivery preserves publication order.
760
+ If the row is absent or the query fails, the callback receives the lightweight
761
+ notification with its `id` and `mode` intact. Non-public schemas also retain
762
+ that lightweight form. Lightweight deletes never query the database; they
763
+ preserve `old_record`, or provide `{"id": change.id}` when no old row was
764
+ included. Tune a channel's batching with `fetch_batch_window_ms` and
765
+ `fetch_max_batch_size`; the defaults are 20 milliseconds and 50 rows. Set
766
+ `auto_fetch=False` on a Postgres channel to keep lightweight notifications
767
+ without querying their rows. Pass `None` to `set_database_name()` to disable
768
+ row fetching for every channel.
769
+
770
+ ## Compatibility
771
+
772
+ CI tests the SDK on Python 3.11 and 3.14. Its public facade is intentionally
773
+ independent of generated httpx types. The bundled `openapi/openapi.yaml` matches
774
+ the public bundle from [Hosting #991](https://github.com/Kong/volcano-hosting/pull/991)
775
+ at commit `ef03f689e`.
776
+ Its SHA-256 is `076d97809c95f50567d8b100f4188c1fe2b74e73a388e335c79850e66edfc0e4`.
777
+
778
+ Generated operations are internal. Transport adapters use `sync_detailed()` or
779
+ `asyncio_detailed()` to inspect HTTP status before interpreting the parsed body.
780
+ The generated parsed-body-only shortcuts are not public SDK APIs.
781
+
782
+ The realtime wrapper includes a narrow compatibility adapter for Volcano's
783
+ project-prefixed publication channels. It still delegates connection,
784
+ subscription, publish, and disconnect behavior to `centrifuge-python` 0.6.
785
+
786
+ ## Develop locally
787
+
788
+ ```shell
789
+ uv sync --frozen
790
+ uv run python scripts/check_openapi.py
791
+ uv run ruff check .
792
+ uv run ruff format --check .
793
+ uv run mypy
794
+ uv run pyright
795
+ uv run pytest tests/unit -q
796
+ uv run python -m build
797
+ ```
798
+
799
+ Live contract scenarios require an isolated fixture produced by
800
+ `volcano-hosting/tests/sdk-contract/support/fixture.mjs`:
801
+
802
+ ```shell
803
+ VOLCANO_SDK_CONTRACT_FIXTURE=/absolute/path/to/fixture.json \
804
+ uv run behave features/contract --junit --junit-directory reports/behave
805
+ ```
806
+
807
+ The fixture must be an absolute path to a mode-`0600` JSON file.
808
+
809
+ ## Release to PyPI
810
+
811
+ Release Please creates a version and changelog PR from releasable commits.
812
+ After its required checks pass, the existing auto-merge policy merges the PR.
813
+ The Volcano GitHub App creates the stable GitHub release, which automatically
814
+ starts `publish.yml`. The workflow validates the tag, main ancestry, and package
815
+ identity; runs CI; builds and smoke-tests the wheel and source distribution;
816
+ then publishes them to PyPI and adds the version link to the GitHub release.
817
+
818
+ PyPI trusted publishing must match `Kong/volcano-sdk-python`, workflow
819
+ `publish.yml`, environment `pypi`, and project `volcano-sdk-python`. Only the
820
+ isolated upload job can request an OIDC token; it receives checked artifacts
821
+ and does not check out or execute SDK source. No PyPI API token is required.
822
+ Release runs queue without canceling pending versions.
823
+
824
+ For a transient failure, rerun the failed jobs on the release workflow. PyPI
825
+ versions cannot be overwritten: if an upload partially succeeded, inspect the
826
+ existing files before recovery. Earlier releases built as `volcano-sdk` are
827
+ not published by this workflow. The Release Please component remains
828
+ `volcano-sdk` to preserve its release branch and history.