volcano-sdk 0.33.0 → 0.35.0

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 (548) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +104 -4
  3. data/lib/volcano/auth_profile_fields.rb +2 -2
  4. data/lib/volcano/client.rb +1 -1
  5. data/lib/volcano/durable.rb +16 -38
  6. data/lib/volcano/durable_approval_models.rb +171 -0
  7. data/lib/volcano/durable_approval_responses.rb +222 -0
  8. data/lib/volcano/durable_approvals.rb +143 -0
  9. data/lib/volcano/durable_arguments.rb +59 -0
  10. data/lib/volcano/durable_message_arguments.rb +49 -0
  11. data/lib/volcano/durable_message_backlog.rb +38 -0
  12. data/lib/volcano/durable_message_catch_ups.rb +112 -0
  13. data/lib/volcano/durable_message_models.rb +62 -0
  14. data/lib/volcano/durable_message_responses.rb +107 -0
  15. data/lib/volcano/durable_message_session.rb +72 -0
  16. data/lib/volcano/durable_message_stream.rb +176 -0
  17. data/lib/volcano/durable_messages.rb +217 -0
  18. data/lib/volcano/durable_models.rb +32 -7
  19. data/lib/volcano/errors.rb +5 -0
  20. data/lib/volcano/generated/lib/volcano-generated/api/anon_keys_api.rb +8 -8
  21. data/lib/volcano/generated/lib/volcano-generated/api/auth_admin_api.rb +17 -17
  22. data/lib/volcano/generated/lib/volcano-generated/api/auth_configuration_api.rb +28 -28
  23. data/lib/volcano/generated/lib/volcano-generated/api/authentication_api.rb +4 -4
  24. data/lib/volcano/generated/lib/volcano-generated/api/autofix_api.rb +222 -0
  25. data/lib/volcano/generated/lib/volcano-generated/api/database_backups_api.rb +11 -11
  26. data/lib/volcano/generated/lib/volcano-generated/api/database_branches_api.rb +9 -9
  27. data/lib/volcano/generated/lib/volcano-generated/api/database_queries_api.rb +4 -4
  28. data/lib/volcano/generated/lib/volcano-generated/api/databases_api.rb +18 -18
  29. data/lib/volcano/generated/lib/volcano-generated/api/durable_functions_api.rb +1327 -51
  30. data/lib/volcano/generated/lib/volcano-generated/api/frontends_api.rb +337 -21
  31. data/lib/volcano/generated/lib/volcano-generated/api/functions_api.rb +33 -27
  32. data/lib/volcano/generated/lib/volcano-generated/api/git_connections_api.rb +19 -11
  33. data/lib/volcano/generated/lib/volcano-generated/api/issues_api.rb +254 -0
  34. data/lib/volcano/generated/lib/volcano-generated/api/locks_api.rb +2 -2
  35. data/lib/volcano/generated/lib/volcano-generated/api/logs_api.rb +11 -11
  36. data/lib/volcano/generated/lib/volcano-generated/api/o_auth_authentication_api.rb +2 -2
  37. data/lib/volcano/generated/lib/volcano-generated/api/o_auth_configuration_api.rb +8 -8
  38. data/lib/volcano/generated/lib/volcano-generated/api/project_access_tokens_api.rb +479 -0
  39. data/lib/volcano/generated/lib/volcano-generated/api/project_imports_api.rb +10 -2
  40. data/lib/volcano/generated/lib/volcano-generated/api/projects_api.rb +110 -30
  41. data/lib/volcano/generated/lib/volcano-generated/api/realtime_api.rb +5 -5
  42. data/lib/volcano/generated/lib/volcano-generated/api/sandboxes_api.rb +377 -18
  43. data/lib/volcano/generated/lib/volcano-generated/api/service_keys_api.rb +9 -9
  44. data/lib/volcano/generated/lib/volcano-generated/api/storage_admin_api.rb +4 -4
  45. data/lib/volcano/generated/lib/volcano-generated/api/storage_buckets_api.rb +7 -7
  46. data/lib/volcano/generated/lib/volcano-generated/api/storage_objects_api.rb +2 -2
  47. data/lib/volcano/generated/lib/volcano-generated/api/storage_policies_api.rb +5 -5
  48. data/lib/volcano/generated/lib/volcano-generated/api/system_api.rb +367 -2
  49. data/lib/volcano/generated/lib/volcano-generated/api/variable_environments_api.rb +373 -0
  50. data/lib/volcano/generated/lib/volcano-generated/api/variables_api.rb +13 -13
  51. data/lib/volcano/generated/lib/volcano-generated/api/verified_domains_api.rb +214 -0
  52. data/lib/volcano/generated/lib/volcano-generated/api_client.rb +2 -2
  53. data/lib/volcano/generated/lib/volcano-generated/api_error.rb +2 -2
  54. data/lib/volcano/generated/lib/volcano-generated/api_model_base.rb +2 -2
  55. data/lib/volcano/generated/lib/volcano-generated/configuration.rb +11 -3
  56. data/lib/volcano/generated/lib/volcano-generated/models/anon_key.rb +2 -2
  57. data/lib/volcano/generated/lib/volcano-generated/models/auth_config.rb +48 -6
  58. data/lib/volcano/generated/lib/volcano-generated/models/auth_confirm_email200_response.rb +2 -2
  59. data/lib/volcano/generated/lib/volcano-generated/models/auth_confirm_email_change200_response.rb +2 -2
  60. data/lib/volcano/generated/lib/volcano-generated/models/auth_confirm_email_change_request.rb +2 -2
  61. data/lib/volcano/generated/lib/volcano-generated/models/auth_confirm_email_request.rb +2 -2
  62. data/lib/volcano/generated/lib/volcano-generated/models/auth_convert_anonymous200_response.rb +2 -2
  63. data/lib/volcano/generated/lib/volcano-generated/models/auth_device_authorize_request.rb +2 -2
  64. data/lib/volcano/generated/lib/volcano-generated/models/auth_device_token_request.rb +2 -2
  65. data/lib/volcano/generated/lib/volcano-generated/models/auth_device_verify200_response.rb +2 -2
  66. data/lib/volcano/generated/lib/volcano-generated/models/auth_device_verify_request.rb +2 -2
  67. data/lib/volcano/generated/lib/volcano-generated/models/auth_forgot_password200_response.rb +2 -2
  68. data/lib/volcano/generated/lib/volcano-generated/models/auth_forgot_password_request.rb +2 -2
  69. data/lib/volcano/generated/lib/volcano-generated/models/auth_get_my_sessions200_response.rb +2 -2
  70. data/lib/volcano/generated/lib/volcano-generated/models/auth_hosted_page.rb +2 -2
  71. data/lib/volcano/generated/lib/volcano-generated/models/auth_hosted_page_defaults.rb +2 -2
  72. data/lib/volcano/generated/lib/volcano-generated/models/auth_hosted_page_response.rb +2 -2
  73. data/lib/volcano/generated/lib/volcano-generated/models/auth_hosted_page_runtime.rb +2 -2
  74. data/lib/volcano/generated/lib/volcano-generated/models/auth_identities_response.rb +2 -2
  75. data/lib/volcano/generated/lib/volcano-generated/models/auth_identity.rb +2 -2
  76. data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_interval.rb +2 -2
  77. data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_response.rb +2 -2
  78. data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_series_point.rb +175 -4
  79. data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_summary.rb +77 -5
  80. data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_window.rb +2 -2
  81. data/lib/volcano/generated/lib/volcano-generated/models/auth_link_o_auth_provider200_response.rb +2 -2
  82. data/lib/volcano/generated/lib/volcano-generated/models/auth_list_o_auth_providers200_response.rb +2 -2
  83. data/lib/volcano/generated/lib/volcano-generated/models/auth_list_o_auth_providers200_response_providers_inner.rb +2 -2
  84. data/lib/volcano/generated/lib/volcano-generated/models/auth_method_summary.rb +2 -2
  85. data/lib/volcano/generated/lib/volcano-generated/models/auth_methods_response.rb +2 -2
  86. data/lib/volcano/generated/lib/volcano-generated/models/auth_o_auth_exchange_request.rb +2 -2
  87. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_appearance_defaults.rb +2 -2
  88. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_appearance_options.rb +2 -2
  89. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_appearance_response.rb +2 -2
  90. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_density.rb +2 -2
  91. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_font.rb +2 -2
  92. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_layout.rb +2 -2
  93. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_radius.rb +2 -2
  94. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_scale.rb +2 -2
  95. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_theme.rb +2 -2
  96. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_theme_colors.rb +2 -2
  97. data/lib/volcano/generated/lib/volcano-generated/models/auth_password_policy.rb +2 -2
  98. data/lib/volcano/generated/lib/volcano-generated/models/auth_platform_exchange_request.rb +2 -2
  99. data/lib/volcano/generated/lib/volcano-generated/models/auth_refresh_request.rb +2 -2
  100. data/lib/volcano/generated/lib/volcano-generated/models/auth_request_email_change200_response.rb +2 -2
  101. data/lib/volcano/generated/lib/volcano-generated/models/auth_request_email_change_request.rb +2 -2
  102. data/lib/volcano/generated/lib/volcano-generated/models/auth_reset_password200_response.rb +2 -2
  103. data/lib/volcano/generated/lib/volcano-generated/models/auth_reset_password_request.rb +2 -2
  104. data/lib/volcano/generated/lib/volcano-generated/models/auth_session.rb +2 -2
  105. data/lib/volcano/generated/lib/volcano-generated/models/auth_signin_request.rb +2 -2
  106. data/lib/volcano/generated/lib/volcano-generated/models/auth_signup_anonymous_request.rb +2 -2
  107. data/lib/volcano/generated/lib/volcano-generated/models/auth_signup_request.rb +2 -2
  108. data/lib/volcano/generated/lib/volcano-generated/models/auth_signup_response.rb +2 -2
  109. data/lib/volcano/generated/lib/volcano-generated/models/auth_token_response.rb +2 -2
  110. data/lib/volcano/generated/lib/volcano-generated/models/auth_update_user_request.rb +2 -2
  111. data/lib/volcano/generated/lib/volcano-generated/models/auth_user.rb +2 -2
  112. data/lib/volcano/generated/lib/volcano-generated/models/autofix_model.rb +45 -0
  113. data/lib/volcano/generated/lib/volcano-generated/models/autofix_provider.rb +40 -0
  114. data/lib/volcano/generated/lib/volcano-generated/models/autofix_settings.rb +385 -0
  115. data/lib/volcano/generated/lib/volcano-generated/models/autofix_stage.rb +40 -0
  116. data/lib/volcano/generated/lib/volcano-generated/models/ban_auth_user_request.rb +2 -2
  117. data/lib/volcano/generated/lib/volcano-generated/models/ban_user_response.rb +2 -2
  118. data/lib/volcano/generated/lib/volcano-generated/models/batch_function_deploy_failure.rb +2 -2
  119. data/lib/volcano/generated/lib/volcano-generated/models/batch_function_deploy_response.rb +2 -2
  120. data/lib/volcano/generated/lib/volcano-generated/models/byoc_project_config_frontend_custom_domain_tls_config.rb +270 -0
  121. data/lib/volcano/generated/lib/volcano-generated/models/byoc_project_config_frontend_custom_domain_tls_config_not.rb +102 -0
  122. data/lib/volcano/generated/lib/volcano-generated/models/call_mcp200_response.rb +220 -0
  123. data/lib/volcano/generated/lib/volcano-generated/models/call_mcp200_response_error.rb +190 -0
  124. data/lib/volcano/generated/lib/volcano-generated/models/call_mcp200_response_id.rb +105 -0
  125. data/lib/volcano/generated/lib/volcano-generated/models/call_mcp_request.rb +236 -0
  126. data/lib/volcano/generated/lib/volcano-generated/models/call_mcp_request_id.rb +105 -0
  127. data/lib/volcano/generated/lib/volcano-generated/models/call_o_auth_provider_api200_response.rb +2 -2
  128. data/lib/volcano/generated/lib/volcano-generated/models/call_o_auth_provider_api_request.rb +2 -2
  129. data/lib/volcano/generated/lib/volcano-generated/models/capability.rb +214 -0
  130. data/lib/volcano/generated/lib/volcano-generated/models/capability_list.rb +166 -0
  131. data/lib/volcano/generated/lib/volcano-generated/models/capability_status.rb +40 -0
  132. data/lib/volcano/generated/lib/volcano-generated/models/complete_upload_session_response.rb +2 -2
  133. data/lib/volcano/generated/lib/volcano-generated/models/configure_auth_methods_request.rb +2 -2
  134. data/lib/volcano/generated/lib/volcano-generated/models/configure_auth_methods_request_oauth_providers_inner.rb +2 -2
  135. data/lib/volcano/generated/lib/volcano-generated/models/connect_project_git_request.rb +2 -2
  136. data/lib/volcano/generated/lib/volcano-generated/models/create_anon_key_request.rb +2 -2
  137. data/lib/volcano/generated/lib/volcano-generated/models/create_database_backup_request.rb +2 -2
  138. data/lib/volcano/generated/lib/volcano-generated/models/create_database_branch_request.rb +2 -2
  139. data/lib/volcano/generated/lib/volcano-generated/models/create_database_request.rb +6 -6
  140. data/lib/volcano/generated/lib/volcano-generated/models/create_database_restore_request.rb +2 -2
  141. data/lib/volcano/generated/lib/volcano-generated/models/create_email_template_request.rb +2 -2
  142. data/lib/volcano/generated/lib/volcano-generated/models/create_frontend_custom_domain_request.rb +12 -3
  143. data/lib/volcano/generated/lib/volcano-generated/models/create_frontend_function_route_request.rb +230 -0
  144. data/lib/volcano/generated/lib/volcano-generated/models/create_function_scheduler_request.rb +2 -2
  145. data/lib/volcano/generated/lib/volcano-generated/models/create_o_auth_config_request.rb +2 -2
  146. data/lib/volcano/generated/lib/volcano-generated/models/create_project_access_token_request.rb +241 -0
  147. data/lib/volcano/generated/lib/volcano-generated/models/create_project_request.rb +57 -3
  148. data/lib/volcano/generated/lib/volcano-generated/models/create_sandbox_session_request.rb +18 -57
  149. data/lib/volcano/generated/lib/volcano-generated/models/create_sandbox_template_request.rb +2 -2
  150. data/lib/volcano/generated/lib/volcano-generated/models/create_service_key_request.rb +2 -2
  151. data/lib/volcano/generated/lib/volcano-generated/models/create_storage_bucket_request.rb +2 -2
  152. data/lib/volcano/generated/lib/volcano-generated/models/create_storage_policy_request.rb +2 -2
  153. data/lib/volcano/generated/lib/volcano-generated/models/create_upload_session_request.rb +2 -2
  154. data/lib/volcano/generated/lib/volcano-generated/models/create_upload_session_response.rb +2 -2
  155. data/lib/volcano/generated/lib/volcano-generated/models/create_variable_environment_request.rb +176 -0
  156. data/lib/volcano/generated/lib/volcano-generated/models/create_variable_request.rb +3 -2
  157. data/lib/volcano/generated/lib/volcano-generated/models/created_project_access_token.rb +459 -0
  158. data/lib/volcano/generated/lib/volcano-generated/models/database.rb +2 -2
  159. data/lib/volcano/generated/lib/volcano-generated/models/database_backup.rb +2 -2
  160. data/lib/volcano/generated/lib/volcano-generated/models/database_backup_list.rb +2 -2
  161. data/lib/volcano/generated/lib/volcano-generated/models/database_backup_schedule.rb +2 -2
  162. data/lib/volcano/generated/lib/volcano-generated/models/database_backup_schedule_entry.rb +2 -2
  163. data/lib/volcano/generated/lib/volcano-generated/models/database_branch.rb +2 -2
  164. data/lib/volcano/generated/lib/volcano-generated/models/database_branch_list.rb +2 -2
  165. data/lib/volcano/generated/lib/volcano-generated/models/database_branch_storage.rb +2 -2
  166. data/lib/volcano/generated/lib/volcano-generated/models/database_delete_request.rb +2 -2
  167. data/lib/volcano/generated/lib/volcano-generated/models/database_insert_request.rb +3 -3
  168. data/lib/volcano/generated/lib/volcano-generated/models/database_query_filter.rb +2 -2
  169. data/lib/volcano/generated/lib/volcano-generated/models/database_query_filter_value.rb +3 -3
  170. data/lib/volcano/generated/lib/volcano-generated/models/database_query_filter_value_one_of_inner.rb +3 -3
  171. data/lib/volcano/generated/lib/volcano-generated/models/database_query_order.rb +2 -2
  172. data/lib/volcano/generated/lib/volcano-generated/models/database_query_performance_database.rb +2 -2
  173. data/lib/volcano/generated/lib/volcano-generated/models/database_query_performance_item.rb +4 -4
  174. data/lib/volcano/generated/lib/volcano-generated/models/database_query_performance_response.rb +2 -2
  175. data/lib/volcano/generated/lib/volcano-generated/models/database_query_result.rb +2 -2
  176. data/lib/volcano/generated/lib/volcano-generated/models/database_restore.rb +2 -2
  177. data/lib/volcano/generated/lib/volcano-generated/models/database_restore_list.rb +2 -2
  178. data/lib/volcano/generated/lib/volcano-generated/models/database_restore_window.rb +2 -2
  179. data/lib/volcano/generated/lib/volcano-generated/models/database_select_request.rb +2 -2
  180. data/lib/volcano/generated/lib/volcano-generated/models/database_stats.rb +2 -2
  181. data/lib/volcano/generated/lib/volcano-generated/models/database_update_request.rb +3 -3
  182. data/lib/volcano/generated/lib/volcano-generated/models/delete_database202_response.rb +2 -2
  183. data/lib/volcano/generated/lib/volcano-generated/models/delete_database_backup200_response.rb +2 -2
  184. data/lib/volcano/generated/lib/volcano-generated/models/delete_database_branch202_response.rb +2 -2
  185. data/lib/volcano/generated/lib/volcano-generated/models/deployment_phase.rb +2 -2
  186. data/lib/volcano/generated/lib/volcano-generated/models/deployment_progress.rb +2 -2
  187. data/lib/volcano/generated/lib/volcano-generated/models/deployment_reference.rb +2 -2
  188. data/lib/volcano/generated/lib/volcano-generated/models/device_authorization_response.rb +2 -2
  189. data/lib/volcano/generated/lib/volcano-generated/models/durable_approval.rb +406 -0
  190. data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_counts.rb +295 -0
  191. data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_daily_counts.rb +190 -0
  192. data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_decider.rb +191 -0
  193. data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_decision.rb +203 -0
  194. data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_decision_request.rb +167 -0
  195. data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_execution.rb +211 -0
  196. data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_function.rb +177 -0
  197. data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_function_counts.rb +190 -0
  198. data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_registration.rb +225 -0
  199. data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_stats.rb +339 -0
  200. data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_status.rb +43 -0
  201. data/lib/volcano/generated/lib/volcano-generated/models/durable_execution.rb +16 -6
  202. data/lib/volcano/generated/lib/volcano-generated/models/durable_execution_error.rb +2 -2
  203. data/lib/volcano/generated/lib/volcano-generated/models/durable_execution_invocation.rb +191 -0
  204. data/lib/volcano/generated/lib/volcano-generated/models/durable_execution_operation.rb +372 -0
  205. data/lib/volcano/generated/lib/volcano-generated/models/durable_execution_operation_attempt.rb +271 -0
  206. data/lib/volcano/generated/lib/volcano-generated/models/durable_execution_operation_list.rb +234 -0
  207. data/lib/volcano/generated/lib/volcano-generated/models/durable_execution_status.rb +2 -2
  208. data/lib/volcano/generated/lib/volcano-generated/models/durable_function.rb +31 -4
  209. data/lib/volcano/generated/lib/volcano-generated/models/durable_function_config.rb +2 -2
  210. data/lib/volcano/generated/lib/volcano-generated/models/durable_message.rb +396 -0
  211. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_direction.rb +40 -0
  212. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_list.rb +194 -0
  213. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_sender.rb +203 -0
  214. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_session_registration.rb +165 -0
  215. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_status.rb +43 -0
  216. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_wait.rb +278 -0
  217. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_wait_list.rb +167 -0
  218. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_wait_registration.rb +225 -0
  219. data/lib/volcano/generated/lib/volcano-generated/models/durable_message_wait_status.rb +43 -0
  220. data/lib/volcano/generated/lib/volcano-generated/models/email_template.rb +2 -2
  221. data/lib/volcano/generated/lib/volcano-generated/models/error.rb +2 -2
  222. data/lib/volcano/generated/lib/volcano-generated/models/export_project_source_request.rb +2 -2
  223. data/lib/volcano/generated/lib/volcano-generated/models/frontend.rb +95 -3
  224. data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_conflict_error.rb +191 -0
  225. data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_response.rb +50 -5
  226. data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_tls_config.rb +42 -18
  227. data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_tls_config_not.rb +103 -0
  228. data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_tls_config_not_any_of.rb +188 -0
  229. data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_tls_config_not_any_of1.rb +188 -0
  230. data/lib/volcano/generated/lib/volcano-generated/models/frontend_deployment.rb +24 -68
  231. data/lib/volcano/generated/lib/volcano-generated/models/frontend_domain_routing_record.rb +2 -2
  232. data/lib/volcano/generated/lib/volcano-generated/models/frontend_domain_verification_record.rb +3 -2
  233. data/lib/volcano/generated/lib/volcano-generated/models/frontend_function_route.rb +375 -0
  234. data/lib/volcano/generated/lib/volcano-generated/models/frontend_function_route_list.rb +166 -0
  235. data/lib/volcano/generated/lib/volcano-generated/models/frontend_usage_daily_entry.rb +2 -2
  236. data/lib/volcano/generated/lib/volcano-generated/models/frontend_usage_data.rb +2 -2
  237. data/lib/volcano/generated/lib/volcano-generated/models/frontend_usage_history_response.rb +2 -2
  238. data/lib/volcano/generated/lib/volcano-generated/models/function.rb +31 -14
  239. data/lib/volcano/generated/lib/volcano-generated/models/function_deployment.rb +24 -50
  240. data/lib/volcano/generated/lib/volcano-generated/models/function_http_auth_mode.rb +2 -2
  241. data/lib/volcano/generated/lib/volcano-generated/models/function_invocation_mode.rb +2 -2
  242. data/lib/volcano/generated/lib/volcano-generated/models/function_invocation_request.rb +2 -2
  243. data/lib/volcano/generated/lib/volcano-generated/models/function_kind.rb +2 -2
  244. data/lib/volcano/generated/lib/volcano-generated/models/function_kind_filter.rb +40 -0
  245. data/lib/volcano/generated/lib/volcano-generated/models/function_region.rb +2 -2
  246. data/lib/volcano/generated/lib/volcano-generated/models/function_runtime_deployment.rb +2 -2
  247. data/lib/volcano/generated/lib/volcano-generated/models/function_runtime_option.rb +30 -3
  248. data/lib/volcano/generated/lib/volcano-generated/models/function_runtimes_response.rb +2 -2
  249. data/lib/volcano/generated/lib/volcano-generated/models/function_scheduler.rb +2 -2
  250. data/lib/volcano/generated/lib/volcano-generated/models/function_scheduler_list_response.rb +2 -2
  251. data/lib/volcano/generated/lib/volcano-generated/models/function_visibility.rb +41 -0
  252. data/lib/volcano/generated/lib/volcano-generated/models/get_auth_methods200_response.rb +2 -2
  253. data/lib/volcano/generated/lib/volcano-generated/models/get_auth_methods200_response_email_password.rb +2 -2
  254. data/lib/volcano/generated/lib/volcano-generated/models/get_auth_methods200_response_oauth_providers_inner.rb +2 -2
  255. data/lib/volcano/generated/lib/volcano-generated/models/git_connect_start_response.rb +2 -2
  256. data/lib/volcano/generated/lib/volcano-generated/models/git_connection.rb +2 -2
  257. data/lib/volcano/generated/lib/volcano-generated/models/git_connections_response.rb +2 -2
  258. data/lib/volcano/generated/lib/volcano-generated/models/git_installation.rb +2 -2
  259. data/lib/volcano/generated/lib/volcano-generated/models/git_installations_response.rb +2 -2
  260. data/lib/volcano/generated/lib/volcano-generated/models/git_repositories_response.rb +2 -2
  261. data/lib/volcano/generated/lib/volcano-generated/models/git_repository.rb +2 -2
  262. data/lib/volcano/generated/lib/volcano-generated/models/hosted_auth_page_type.rb +2 -2
  263. data/lib/volcano/generated/lib/volcano-generated/models/hosted_login_email_check_request.rb +2 -2
  264. data/lib/volcano/generated/lib/volcano-generated/models/hosted_login_email_check_response.rb +2 -2
  265. data/lib/volcano/generated/lib/volcano-generated/models/hosted_login_options_response.rb +2 -2
  266. data/lib/volcano/generated/lib/volcano-generated/models/hosted_renderable_page_type.rb +2 -2
  267. data/lib/volcano/generated/lib/volcano-generated/models/import_connect_start_response.rb +2 -2
  268. data/lib/volcano/generated/lib/volcano-generated/models/import_connection.rb +2 -2
  269. data/lib/volcano/generated/lib/volcano-generated/models/import_connections_response.rb +2 -2
  270. data/lib/volcano/generated/lib/volcano-generated/models/import_provider.rb +2 -2
  271. data/lib/volcano/generated/lib/volcano-generated/models/import_source.rb +2 -2
  272. data/lib/volcano/generated/lib/volcano-generated/models/import_sources_response.rb +2 -2
  273. data/lib/volcano/generated/lib/volcano-generated/models/issue.rb +493 -0
  274. data/lib/volcano/generated/lib/volcano-generated/models/issue_status.rb +41 -0
  275. data/lib/volcano/generated/lib/volcano-generated/models/list_anon_keys200_response.rb +2 -2
  276. data/lib/volcano/generated/lib/volcano-generated/models/list_available_o_auth_providers200_response.rb +2 -2
  277. data/lib/volcano/generated/lib/volcano-generated/models/list_available_o_auth_providers200_response_providers_inner.rb +2 -2
  278. data/lib/volcano/generated/lib/volcano-generated/models/list_database_regions200_response_inner.rb +2 -2
  279. data/lib/volcano/generated/lib/volcano-generated/models/list_email_templates200_response.rb +2 -2
  280. data/lib/volcano/generated/lib/volcano-generated/models/list_o_auth_configs200_response.rb +2 -2
  281. data/lib/volcano/generated/lib/volcano-generated/models/list_postgres_versions200_response_inner.rb +14 -4
  282. data/lib/volcano/generated/lib/volcano-generated/models/list_storage_buckets200_response.rb +3 -3
  283. data/lib/volcano/generated/lib/volcano-generated/models/list_storage_objects_admin200_response.rb +2 -2
  284. data/lib/volcano/generated/lib/volcano-generated/models/live_log_level.rb +2 -2
  285. data/lib/volcano/generated/lib/volcano-generated/models/log_activity_bucket.rb +5 -5
  286. data/lib/volcano/generated/lib/volcano-generated/models/log_activity_bucket_counts.rb +2 -2
  287. data/lib/volcano/generated/lib/volcano-generated/models/log_activity_request.rb +5 -5
  288. data/lib/volcano/generated/lib/volcano-generated/models/log_activity_response.rb +2 -2
  289. data/lib/volcano/generated/lib/volcano-generated/models/log_database_request_resource.rb +2 -2
  290. data/lib/volcano/generated/lib/volcano-generated/models/log_deployment.rb +2 -2
  291. data/lib/volcano/generated/lib/volcano-generated/models/log_deployment_request_selector.rb +2 -2
  292. data/lib/volcano/generated/lib/volcano-generated/models/log_event.rb +2 -2
  293. data/lib/volcano/generated/lib/volcano-generated/models/log_event_body.rb +3 -3
  294. data/lib/volcano/generated/lib/volcano-generated/models/log_frontend_request_resource.rb +2 -2
  295. data/lib/volcano/generated/lib/volcano-generated/models/log_function_request_resource.rb +13 -3
  296. data/lib/volcano/generated/lib/volcano-generated/models/log_request_resource.rb +3 -3
  297. data/lib/volcano/generated/lib/volcano-generated/models/log_resource.rb +2 -2
  298. data/lib/volcano/generated/lib/volcano-generated/models/log_search_event.rb +2 -2
  299. data/lib/volcano/generated/lib/volcano-generated/models/log_search_request.rb +2 -2
  300. data/lib/volcano/generated/lib/volcano-generated/models/log_search_response.rb +4 -4
  301. data/lib/volcano/generated/lib/volcano-generated/models/log_stream_request.rb +2 -2
  302. data/lib/volcano/generated/lib/volcano-generated/models/managed_project_config_frontend_custom_domain_tls_config.rb +189 -0
  303. data/lib/volcano/generated/lib/volcano-generated/models/metric_usage_data.rb +3 -3
  304. data/lib/volcano/generated/lib/volcano-generated/models/o_auth_config.rb +2 -2
  305. data/lib/volcano/generated/lib/volcano-generated/models/o_auth_error_response.rb +2 -2
  306. data/lib/volcano/generated/lib/volcano-generated/models/open_durable_message_session_request.rb +228 -0
  307. data/lib/volcano/generated/lib/volcano-generated/models/paginated_auth_users.rb +2 -2
  308. data/lib/volcano/generated/lib/volcano-generated/models/paginated_databases.rb +2 -2
  309. data/lib/volcano/generated/lib/volcano-generated/models/paginated_durable_approvals.rb +274 -0
  310. data/lib/volcano/generated/lib/volcano-generated/models/paginated_durable_executions.rb +2 -2
  311. data/lib/volcano/generated/lib/volcano-generated/models/paginated_durable_functions.rb +2 -2
  312. data/lib/volcano/generated/lib/volcano-generated/models/paginated_frontend_deployments.rb +2 -2
  313. data/lib/volcano/generated/lib/volcano-generated/models/paginated_frontends.rb +2 -2
  314. data/lib/volcano/generated/lib/volcano-generated/models/paginated_function_deployments.rb +2 -2
  315. data/lib/volcano/generated/lib/volcano-generated/models/paginated_functions.rb +2 -2
  316. data/lib/volcano/generated/lib/volcano-generated/models/paginated_issues.rb +230 -0
  317. data/lib/volcano/generated/lib/volcano-generated/models/paginated_project_access_tokens.rb +279 -0
  318. data/lib/volcano/generated/lib/volcano-generated/models/paginated_project_custom_domains.rb +2 -2
  319. data/lib/volcano/generated/lib/volcano-generated/models/paginated_project_deployments.rb +2 -2
  320. data/lib/volcano/generated/lib/volcano-generated/models/paginated_projects.rb +2 -2
  321. data/lib/volcano/generated/lib/volcano-generated/models/paginated_service_keys.rb +2 -2
  322. data/lib/volcano/generated/lib/volcano-generated/models/paginated_storage_buckets.rb +2 -2
  323. data/lib/volcano/generated/lib/volcano-generated/models/paginated_variables.rb +2 -2
  324. data/lib/volcano/generated/lib/volcano-generated/models/platform_exchange_response.rb +2 -2
  325. data/lib/volcano/generated/lib/volcano-generated/models/preview_auth_page_request.rb +2 -2
  326. data/lib/volcano/generated/lib/volcano-generated/models/preview_auth_page_response.rb +2 -2
  327. data/lib/volcano/generated/lib/volcano-generated/models/project.rb +13 -13
  328. data/lib/volcano/generated/lib/volcano-generated/models/project_access_token.rb +426 -0
  329. data/lib/volcano/generated/lib/volcano-generated/models/project_access_token_scope.rb +40 -0
  330. data/lib/volcano/generated/lib/volcano-generated/models/project_access_token_usage.rb +299 -0
  331. data/lib/volcano/generated/lib/volcano-generated/models/project_access_token_usage_daily_entry.rb +191 -0
  332. data/lib/volcano/generated/lib/volcano-generated/models/project_config.rb +49 -6
  333. data/lib/volcano/generated/lib/volcano-generated/models/project_config_apply_result.rb +2 -2
  334. data/lib/volcano/generated/lib/volcano-generated/models/project_config_apply_result_entry.rb +2 -2
  335. data/lib/volcano/generated/lib/volcano-generated/models/project_config_apply_summary.rb +2 -2
  336. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth.rb +2 -2
  337. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_cors.rb +2 -2
  338. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email.rb +2 -2
  339. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email_from.rb +2 -2
  340. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email_password_provider.rb +2 -2
  341. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email_smtp.rb +2 -2
  342. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email_verification.rb +2 -2
  343. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_managed_pages.rb +2 -2
  344. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_page_appearance.rb +2 -2
  345. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_page_layouts.rb +2 -2
  346. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_password.rb +2 -2
  347. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_password_reset.rb +2 -2
  348. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_providers.rb +2 -2
  349. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_rate_limits.rb +2 -2
  350. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_redirects.rb +2 -2
  351. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_sessions.rb +2 -2
  352. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_signup.rb +2 -2
  353. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_tokens.rb +2 -2
  354. data/lib/volcano/generated/lib/volcano-generated/models/project_config_autofix.rb +206 -0
  355. data/lib/volcano/generated/lib/volcano-generated/models/project_config_bucket.rb +2 -2
  356. data/lib/volcano/generated/lib/volcano-generated/models/project_config_bucket_policy.rb +2 -2
  357. data/lib/volcano/generated/lib/volcano-generated/models/project_config_custom_domain.rb +14 -5
  358. data/lib/volcano/generated/lib/volcano-generated/models/project_config_database.rb +6 -6
  359. data/lib/volcano/generated/lib/volcano-generated/models/project_config_email_template.rb +2 -2
  360. data/lib/volcano/generated/lib/volcano-generated/models/project_config_email_templates.rb +2 -2
  361. data/lib/volcano/generated/lib/volcano-generated/models/project_config_frontend.rb +103 -6
  362. data/lib/volcano/generated/lib/volcano-generated/models/project_config_frontend_custom_domain_tls_config.rb +105 -0
  363. data/lib/volcano/generated/lib/volcano-generated/models/project_config_frontend_function_route.rb +240 -0
  364. data/lib/volcano/generated/lib/volcano-generated/models/project_config_function.rb +13 -4
  365. data/lib/volcano/generated/lib/volcano-generated/models/project_config_hosted_page.rb +2 -2
  366. data/lib/volcano/generated/lib/volcano-generated/models/project_config_hosted_pages.rb +2 -2
  367. data/lib/volcano/generated/lib/volcano-generated/models/project_config_missing_resource.rb +4 -4
  368. data/lib/volcano/generated/lib/volcano-generated/models/project_config_o_auth_provider.rb +2 -2
  369. data/lib/volcano/generated/lib/volcano-generated/models/project_config_project.rb +2 -2
  370. data/lib/volcano/generated/lib/volcano-generated/models/project_config_realtime.rb +2 -2
  371. data/lib/volcano/generated/lib/volcano-generated/models/project_config_sandbox.rb +289 -0
  372. data/lib/volcano/generated/lib/volcano-generated/models/project_config_scheduler.rb +2 -2
  373. data/lib/volcano/generated/lib/volcano-generated/models/project_config_skipped_resource.rb +4 -4
  374. data/lib/volcano/generated/lib/volcano-generated/models/project_config_validation_error.rb +2 -2
  375. data/lib/volcano/generated/lib/volcano-generated/models/project_config_validation_error_response.rb +2 -2
  376. data/lib/volcano/generated/lib/volcano-generated/models/project_config_variable.rb +3 -2
  377. data/lib/volcano/generated/lib/volcano-generated/models/project_deployment.rb +3 -12
  378. data/lib/volcano/generated/lib/volcano-generated/models/project_deployment_resource.rb +2 -2
  379. data/lib/volcano/generated/lib/volcano-generated/models/project_deployment_summary.rb +3 -3
  380. data/lib/volcano/generated/lib/volcano-generated/models/project_frontend_custom_domain.rb +50 -5
  381. data/lib/volcano/generated/lib/volcano-generated/models/project_frontend_custom_domain_all_of_frontend.rb +2 -2
  382. data/lib/volcano/generated/lib/volcano-generated/models/project_git_connection.rb +2 -2
  383. data/lib/volcano/generated/lib/volcano-generated/models/project_git_connection_summary.rb +2 -2
  384. data/lib/volcano/generated/lib/volcano-generated/models/project_git_deploy_settings.rb +2 -2
  385. data/lib/volcano/generated/lib/volcano-generated/models/project_health_category.rb +2 -2
  386. data/lib/volcano/generated/lib/volcano-generated/models/project_health_check.rb +2 -2
  387. data/lib/volcano/generated/lib/volcano-generated/models/project_health_data_status.rb +2 -2
  388. data/lib/volcano/generated/lib/volcano-generated/models/project_health_evidence.rb +2 -2
  389. data/lib/volcano/generated/lib/volcano-generated/models/project_health_resource.rb +2 -2
  390. data/lib/volcano/generated/lib/volcano-generated/models/project_health_response.rb +2 -2
  391. data/lib/volcano/generated/lib/volcano-generated/models/project_health_scope.rb +2 -2
  392. data/lib/volcano/generated/lib/volcano-generated/models/project_health_status.rb +2 -2
  393. data/lib/volcano/generated/lib/volcano-generated/models/project_health_summary.rb +2 -2
  394. data/lib/volcano/generated/lib/volcano-generated/models/project_import_action.rb +2 -2
  395. data/lib/volcano/generated/lib/volcano-generated/models/project_import_action_code.rb +2 -2
  396. data/lib/volcano/generated/lib/volcano-generated/models/project_import_destination.rb +2 -2
  397. data/lib/volcano/generated/lib/volcano-generated/models/project_import_destination_mode.rb +2 -2
  398. data/lib/volcano/generated/lib/volcano-generated/models/project_import_disposition.rb +2 -2
  399. data/lib/volcano/generated/lib/volcano-generated/models/project_import_finding.rb +2 -2
  400. data/lib/volcano/generated/lib/volcano-generated/models/project_import_impact.rb +2 -2
  401. data/lib/volcano/generated/lib/volcano-generated/models/project_import_preflight_request.rb +2 -2
  402. data/lib/volcano/generated/lib/volcano-generated/models/project_import_readiness.rb +2 -2
  403. data/lib/volcano/generated/lib/volcano-generated/models/project_import_report.rb +2 -2
  404. data/lib/volcano/generated/lib/volcano-generated/models/project_import_resource.rb +2 -2
  405. data/lib/volcano/generated/lib/volcano-generated/models/project_import_resource_kind.rb +2 -2
  406. data/lib/volcano/generated/lib/volcano-generated/models/project_import_run.rb +2 -2
  407. data/lib/volcano/generated/lib/volcano-generated/models/project_import_run_status.rb +2 -2
  408. data/lib/volcano/generated/lib/volcano-generated/models/project_import_start_request.rb +2 -2
  409. data/lib/volcano/generated/lib/volcano-generated/models/project_import_summary.rb +2 -2
  410. data/lib/volcano/generated/lib/volcano-generated/models/project_import_target.rb +2 -2
  411. data/lib/volcano/generated/lib/volcano-generated/models/project_lock_lease.rb +2 -2
  412. data/lib/volcano/generated/lib/volcano-generated/models/project_lock_lease_request.rb +2 -2
  413. data/lib/volcano/generated/lib/volcano-generated/models/project_lock_state.rb +2 -2
  414. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_data_status.rb +2 -2
  415. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_dimensions.rb +2 -2
  416. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_group_by.rb +2 -2
  417. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_metric.rb +2 -2
  418. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_query.rb +2 -2
  419. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_query_request.rb +2 -2
  420. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_query_response.rb +2 -2
  421. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_query_time_range.rb +2 -2
  422. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_result.rb +2 -2
  423. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_unit.rb +2 -2
  424. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_value.rb +2 -2
  425. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_window.rb +2 -2
  426. data/lib/volcano/generated/lib/volcano-generated/models/project_source_export.rb +2 -2
  427. data/lib/volcano/generated/lib/volcano-generated/models/project_source_export_omission.rb +2 -2
  428. data/lib/volcano/generated/lib/volcano-generated/models/project_source_export_skip.rb +2 -2
  429. data/lib/volcano/generated/lib/volcano-generated/models/project_source_export_state.rb +2 -2
  430. data/lib/volcano/generated/lib/volcano-generated/models/project_template_installation.rb +217 -0
  431. data/lib/volcano/generated/lib/volcano-generated/models/project_usage_response.rb +2 -2
  432. data/lib/volcano/generated/lib/volcano-generated/models/publish_durable_message_request.rb +205 -0
  433. data/lib/volcano/generated/lib/volcano-generated/models/publish_sandbox_preset_request.rb +2 -2
  434. data/lib/volcano/generated/lib/volcano-generated/models/realtime_config.rb +2 -2
  435. data/lib/volcano/generated/lib/volcano-generated/models/realtime_plan_limits.rb +2 -2
  436. data/lib/volcano/generated/lib/volcano-generated/models/realtime_stats.rb +2 -2
  437. data/lib/volcano/generated/lib/volcano-generated/models/refresh_o_auth_provider_token200_response.rb +2 -2
  438. data/lib/volcano/generated/lib/volcano-generated/models/register_durable_message_wait_request.rb +284 -0
  439. data/lib/volcano/generated/lib/volcano-generated/models/rename_variable_environment_request.rb +176 -0
  440. data/lib/volcano/generated/lib/volcano-generated/models/replace_frontend_shared_variables_request.rb +237 -0
  441. data/lib/volcano/generated/lib/volcano-generated/models/replace_shared_variables_request.rb +2 -2
  442. data/lib/volcano/generated/lib/volcano-generated/models/request_durable_approval_request.rb +355 -0
  443. data/lib/volcano/generated/lib/volcano-generated/models/reset_database_password200_response.rb +2 -2
  444. data/lib/volcano/generated/lib/volcano-generated/models/resolve_function_response.rb +13 -3
  445. data/lib/volcano/generated/lib/volcano-generated/models/resource_reference.rb +2 -2
  446. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_access.rb +2 -2
  447. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_access_request.rb +2 -2
  448. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_build_log_page.rb +176 -0
  449. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_build_log_page_data_inner.rb +190 -0
  450. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_capacity.rb +2 -2
  451. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_capacity_list.rb +2 -2
  452. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_command_request.rb +13 -14
  453. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_command_result.rb +2 -2
  454. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_deployment.rb +2 -2
  455. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_deployment_page.rb +2 -2
  456. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_execution_request.rb +53 -15
  457. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_execution_result.rb +2 -2
  458. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_file_read_request.rb +2 -2
  459. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_file_result.rb +2 -2
  460. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_file_write_request.rb +2 -2
  461. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_pagination.rb +2 -2
  462. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_preset.rb +2 -2
  463. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_preset_list.rb +2 -2
  464. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_session.rb +6 -32
  465. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_session_page.rb +2 -2
  466. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_subject_grant_request.rb +2 -2
  467. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_template.rb +2 -2
  468. data/lib/volcano/generated/lib/volcano-generated/models/sandbox_template_page.rb +2 -2
  469. data/lib/volcano/generated/lib/volcano-generated/models/schedule_request.rb +2 -2
  470. data/lib/volcano/generated/lib/volcano-generated/models/send_durable_message_request.rb +205 -0
  471. data/lib/volcano/generated/lib/volcano-generated/models/service_key.rb +2 -2
  472. data/lib/volcano/generated/lib/volcano-generated/models/set_project_git_production_branch_request.rb +2 -2
  473. data/lib/volcano/generated/lib/volcano-generated/models/storage_bucket.rb +2 -2
  474. data/lib/volcano/generated/lib/volcano-generated/models/storage_copy_request.rb +2 -2
  475. data/lib/volcano/generated/lib/volcano-generated/models/storage_list_response.rb +2 -2
  476. data/lib/volcano/generated/lib/volcano-generated/models/storage_move_request.rb +2 -2
  477. data/lib/volcano/generated/lib/volcano-generated/models/storage_object.rb +2 -2
  478. data/lib/volcano/generated/lib/volcano-generated/models/storage_object_with_bucket.rb +2 -2
  479. data/lib/volcano/generated/lib/volcano-generated/models/storage_policy.rb +2 -2
  480. data/lib/volcano/generated/lib/volcano-generated/models/storage_stats.rb +2 -2
  481. data/lib/volcano/generated/lib/volcano-generated/models/storage_visibility_request.rb +2 -2
  482. data/lib/volcano/generated/lib/volcano-generated/models/test_email_request.rb +2 -2
  483. data/lib/volcano/generated/lib/volcano-generated/models/test_email_response.rb +2 -2
  484. data/lib/volcano/generated/lib/volcano-generated/models/unban_user_response.rb +2 -2
  485. data/lib/volcano/generated/lib/volcano-generated/models/update_auth_config_request.rb +81 -3
  486. data/lib/volcano/generated/lib/volcano-generated/models/update_auth_hosted_page_request.rb +2 -2
  487. data/lib/volcano/generated/lib/volcano-generated/models/update_auth_page_layout_request.rb +2 -2
  488. data/lib/volcano/generated/lib/volcano-generated/models/update_auth_page_theme_request.rb +2 -2
  489. data/lib/volcano/generated/lib/volcano-generated/models/update_autofix_settings_request.rb +273 -0
  490. data/lib/volcano/generated/lib/volcano-generated/models/update_database_branch_request.rb +2 -2
  491. data/lib/volcano/generated/lib/volcano-generated/models/update_database_type_request.rb +2 -2
  492. data/lib/volcano/generated/lib/volcano-generated/models/update_email_template_request.rb +2 -2
  493. data/lib/volcano/generated/lib/volcano-generated/models/update_function_request.rb +13 -4
  494. data/lib/volcano/generated/lib/volcano-generated/models/update_function_scheduler_request.rb +2 -2
  495. data/lib/volcano/generated/lib/volcano-generated/models/update_issue_request.rb +186 -0
  496. data/lib/volcano/generated/lib/volcano-generated/models/update_o_auth_config_request.rb +2 -2
  497. data/lib/volcano/generated/lib/volcano-generated/models/update_project_git_deploy_settings_request.rb +2 -2
  498. data/lib/volcano/generated/lib/volcano-generated/models/update_project_request.rb +2 -2
  499. data/lib/volcano/generated/lib/volcano-generated/models/update_realtime_config_request.rb +2 -2
  500. data/lib/volcano/generated/lib/volcano-generated/models/update_sandbox_template_request.rb +2 -2
  501. data/lib/volcano/generated/lib/volcano-generated/models/update_storage_bucket_request.rb +2 -2
  502. data/lib/volcano/generated/lib/volcano-generated/models/update_variable_request.rb +2 -2
  503. data/lib/volcano/generated/lib/volcano-generated/models/upload_session_part.rb +2 -2
  504. data/lib/volcano/generated/lib/volcano-generated/models/upload_session_status_response.rb +2 -2
  505. data/lib/volcano/generated/lib/volcano-generated/models/upload_storage_object201_response.rb +3 -3
  506. data/lib/volcano/generated/lib/volcano-generated/models/usage_data_point.rb +2 -2
  507. data/lib/volcano/generated/lib/volcano-generated/models/variable.rb +13 -3
  508. data/lib/volcano/generated/lib/volcano-generated/models/variable_environment.rb +325 -0
  509. data/lib/volcano/generated/lib/volcano-generated/models/variable_environment_list.rb +175 -0
  510. data/lib/volcano/generated/lib/volcano-generated/models/verified_domain.rb +192 -0
  511. data/lib/volcano/generated/lib/volcano-generated/models/verified_domains_response.rb +166 -0
  512. data/lib/volcano/generated/lib/volcano-generated/models/verify_domain_request.rb +183 -0
  513. data/lib/volcano/generated/lib/volcano-generated/version.rb +2 -2
  514. data/lib/volcano/generated/lib/volcano-generated.rb +90 -2
  515. data/lib/volcano/generated_transport.rb +1 -0
  516. data/lib/volcano/generated_transport_durable.rb +59 -0
  517. data/lib/volcano/generated_transport_durable_messages.rb +57 -0
  518. data/lib/volcano/generated_transport_functions.rb +1 -1
  519. data/lib/volcano/generated_transport_sandbox.rb +33 -1
  520. data/lib/volcano/lock_response.rb +2 -2
  521. data/lib/volcano/realtime/channel_callbacks.rb +5 -1
  522. data/lib/volcano/realtime/channel_lifecycle.rb +4 -1
  523. data/lib/volcano/realtime/durable_channel.rb +47 -0
  524. data/lib/volcano/realtime/lifecycle.rb +37 -1
  525. data/lib/volcano/realtime/protocol.rb +7 -3
  526. data/lib/volcano/realtime/protocol_dispatch.rb +1 -1
  527. data/lib/volcano/realtime/protocol_io.rb +7 -4
  528. data/lib/volcano/realtime/protocol_lifecycle.rb +7 -0
  529. data/lib/volcano/realtime/protocol_recovery.rb +23 -12
  530. data/lib/volcano/realtime.rb +42 -8
  531. data/lib/volcano/redaction.rb +1 -1
  532. data/lib/volcano/sandbox_deployment_response.rb +39 -0
  533. data/lib/volcano/sandbox_deployments.rb +79 -0
  534. data/lib/volcano/sandbox_models.rb +8 -0
  535. data/lib/volcano/sandbox_request.rb +6 -0
  536. data/lib/volcano/sandboxes.rb +2 -0
  537. data/lib/volcano/storage_mutations.rb +2 -2
  538. data/lib/volcano/storage_object_response.rb +2 -2
  539. data/lib/volcano/transport.rb +1 -1
  540. data/lib/volcano/version.rb +1 -1
  541. data/lib/volcano.rb +14 -0
  542. data/sig/core_facades.rbs +29 -0
  543. data/sig/durable_approval_records.rbs +218 -0
  544. data/sig/durable_message_records.rbs +68 -0
  545. data/sig/durable_records.rbs +17 -9
  546. data/sig/errors.rbs +3 -0
  547. data/sig/sandboxes.rbs +42 -0
  548. metadata +115 -9
@@ -1,7 +1,7 @@
1
1
  =begin
2
- #Volcano Hosting API
2
+ #Volcano API
3
3
 
4
- #Public API for Volcano Hosting clients, SDKs, and CLI tooling (Port 8000). This specification intentionally excludes first-party/internal APIs. See api/openapi-internal.yaml for non-public internal and Builder operations.
4
+ #Public API for Volcano clients, SDKs, and CLI tooling (Port 8000). This specification intentionally excludes first-party/internal APIs. See api/openapi-internal.yaml for non-public internal and Builder operations.
5
5
 
6
6
  The version of the OpenAPI document: 3.0.0
7
7
  Contact: support@volcano.dev
@@ -74,12 +74,26 @@ Volcano::Generated.autoload :AuthSignupResponse, 'volcano-generated/models/auth_
74
74
  Volcano::Generated.autoload :AuthTokenResponse, 'volcano-generated/models/auth_token_response'
75
75
  Volcano::Generated.autoload :AuthUpdateUserRequest, 'volcano-generated/models/auth_update_user_request'
76
76
  Volcano::Generated.autoload :AuthUser, 'volcano-generated/models/auth_user'
77
+ Volcano::Generated.autoload :AutofixModel, 'volcano-generated/models/autofix_model'
78
+ Volcano::Generated.autoload :AutofixProvider, 'volcano-generated/models/autofix_provider'
79
+ Volcano::Generated.autoload :AutofixSettings, 'volcano-generated/models/autofix_settings'
80
+ Volcano::Generated.autoload :AutofixStage, 'volcano-generated/models/autofix_stage'
81
+ Volcano::Generated.autoload :BYOCProjectConfigFrontendCustomDomainTLSConfig, 'volcano-generated/models/byoc_project_config_frontend_custom_domain_tls_config'
82
+ Volcano::Generated.autoload :BYOCProjectConfigFrontendCustomDomainTLSConfigNot, 'volcano-generated/models/byoc_project_config_frontend_custom_domain_tls_config_not'
77
83
  Volcano::Generated.autoload :BanAuthUserRequest, 'volcano-generated/models/ban_auth_user_request'
78
84
  Volcano::Generated.autoload :BanUserResponse, 'volcano-generated/models/ban_user_response'
79
85
  Volcano::Generated.autoload :BatchFunctionDeployFailure, 'volcano-generated/models/batch_function_deploy_failure'
80
86
  Volcano::Generated.autoload :BatchFunctionDeployResponse, 'volcano-generated/models/batch_function_deploy_response'
87
+ Volcano::Generated.autoload :CallMCP200Response, 'volcano-generated/models/call_mcp200_response'
88
+ Volcano::Generated.autoload :CallMCP200ResponseError, 'volcano-generated/models/call_mcp200_response_error'
89
+ Volcano::Generated.autoload :CallMCP200ResponseId, 'volcano-generated/models/call_mcp200_response_id'
90
+ Volcano::Generated.autoload :CallMCPRequest, 'volcano-generated/models/call_mcp_request'
91
+ Volcano::Generated.autoload :CallMCPRequestId, 'volcano-generated/models/call_mcp_request_id'
81
92
  Volcano::Generated.autoload :CallOAuthProviderAPI200Response, 'volcano-generated/models/call_o_auth_provider_api200_response'
82
93
  Volcano::Generated.autoload :CallOAuthProviderAPIRequest, 'volcano-generated/models/call_o_auth_provider_api_request'
94
+ Volcano::Generated.autoload :Capability, 'volcano-generated/models/capability'
95
+ Volcano::Generated.autoload :CapabilityList, 'volcano-generated/models/capability_list'
96
+ Volcano::Generated.autoload :CapabilityStatus, 'volcano-generated/models/capability_status'
83
97
  Volcano::Generated.autoload :CompleteUploadSessionResponse, 'volcano-generated/models/complete_upload_session_response'
84
98
  Volcano::Generated.autoload :ConfigureAuthMethodsRequest, 'volcano-generated/models/configure_auth_methods_request'
85
99
  Volcano::Generated.autoload :ConfigureAuthMethodsRequestOauthProvidersInner, 'volcano-generated/models/configure_auth_methods_request_oauth_providers_inner'
@@ -91,8 +105,10 @@ Volcano::Generated.autoload :CreateDatabaseRequest, 'volcano-generated/models/cr
91
105
  Volcano::Generated.autoload :CreateDatabaseRestoreRequest, 'volcano-generated/models/create_database_restore_request'
92
106
  Volcano::Generated.autoload :CreateEmailTemplateRequest, 'volcano-generated/models/create_email_template_request'
93
107
  Volcano::Generated.autoload :CreateFrontendCustomDomainRequest, 'volcano-generated/models/create_frontend_custom_domain_request'
108
+ Volcano::Generated.autoload :CreateFrontendFunctionRouteRequest, 'volcano-generated/models/create_frontend_function_route_request'
94
109
  Volcano::Generated.autoload :CreateFunctionSchedulerRequest, 'volcano-generated/models/create_function_scheduler_request'
95
110
  Volcano::Generated.autoload :CreateOAuthConfigRequest, 'volcano-generated/models/create_o_auth_config_request'
111
+ Volcano::Generated.autoload :CreateProjectAccessTokenRequest, 'volcano-generated/models/create_project_access_token_request'
96
112
  Volcano::Generated.autoload :CreateProjectRequest, 'volcano-generated/models/create_project_request'
97
113
  Volcano::Generated.autoload :CreateSandboxSessionRequest, 'volcano-generated/models/create_sandbox_session_request'
98
114
  Volcano::Generated.autoload :CreateSandboxTemplateRequest, 'volcano-generated/models/create_sandbox_template_request'
@@ -101,7 +117,9 @@ Volcano::Generated.autoload :CreateStorageBucketRequest, 'volcano-generated/mode
101
117
  Volcano::Generated.autoload :CreateStoragePolicyRequest, 'volcano-generated/models/create_storage_policy_request'
102
118
  Volcano::Generated.autoload :CreateUploadSessionRequest, 'volcano-generated/models/create_upload_session_request'
103
119
  Volcano::Generated.autoload :CreateUploadSessionResponse, 'volcano-generated/models/create_upload_session_response'
120
+ Volcano::Generated.autoload :CreateVariableEnvironmentRequest, 'volcano-generated/models/create_variable_environment_request'
104
121
  Volcano::Generated.autoload :CreateVariableRequest, 'volcano-generated/models/create_variable_request'
122
+ Volcano::Generated.autoload :CreatedProjectAccessToken, 'volcano-generated/models/created_project_access_token'
105
123
  Volcano::Generated.autoload :Database, 'volcano-generated/models/database'
106
124
  Volcano::Generated.autoload :DatabaseBackup, 'volcano-generated/models/database_backup'
107
125
  Volcano::Generated.autoload :DatabaseBackupList, 'volcano-generated/models/database_backup_list'
@@ -133,20 +151,52 @@ Volcano::Generated.autoload :DeploymentPhase, 'volcano-generated/models/deployme
133
151
  Volcano::Generated.autoload :DeploymentProgress, 'volcano-generated/models/deployment_progress'
134
152
  Volcano::Generated.autoload :DeploymentReference, 'volcano-generated/models/deployment_reference'
135
153
  Volcano::Generated.autoload :DeviceAuthorizationResponse, 'volcano-generated/models/device_authorization_response'
154
+ Volcano::Generated.autoload :DurableApproval, 'volcano-generated/models/durable_approval'
155
+ Volcano::Generated.autoload :DurableApprovalCounts, 'volcano-generated/models/durable_approval_counts'
156
+ Volcano::Generated.autoload :DurableApprovalDailyCounts, 'volcano-generated/models/durable_approval_daily_counts'
157
+ Volcano::Generated.autoload :DurableApprovalDecider, 'volcano-generated/models/durable_approval_decider'
158
+ Volcano::Generated.autoload :DurableApprovalDecision, 'volcano-generated/models/durable_approval_decision'
159
+ Volcano::Generated.autoload :DurableApprovalDecisionRequest, 'volcano-generated/models/durable_approval_decision_request'
160
+ Volcano::Generated.autoload :DurableApprovalExecution, 'volcano-generated/models/durable_approval_execution'
161
+ Volcano::Generated.autoload :DurableApprovalFunction, 'volcano-generated/models/durable_approval_function'
162
+ Volcano::Generated.autoload :DurableApprovalFunctionCounts, 'volcano-generated/models/durable_approval_function_counts'
163
+ Volcano::Generated.autoload :DurableApprovalRegistration, 'volcano-generated/models/durable_approval_registration'
164
+ Volcano::Generated.autoload :DurableApprovalStats, 'volcano-generated/models/durable_approval_stats'
165
+ Volcano::Generated.autoload :DurableApprovalStatus, 'volcano-generated/models/durable_approval_status'
136
166
  Volcano::Generated.autoload :DurableExecution, 'volcano-generated/models/durable_execution'
137
167
  Volcano::Generated.autoload :DurableExecutionError, 'volcano-generated/models/durable_execution_error'
168
+ Volcano::Generated.autoload :DurableExecutionInvocation, 'volcano-generated/models/durable_execution_invocation'
169
+ Volcano::Generated.autoload :DurableExecutionOperation, 'volcano-generated/models/durable_execution_operation'
170
+ Volcano::Generated.autoload :DurableExecutionOperationAttempt, 'volcano-generated/models/durable_execution_operation_attempt'
171
+ Volcano::Generated.autoload :DurableExecutionOperationList, 'volcano-generated/models/durable_execution_operation_list'
138
172
  Volcano::Generated.autoload :DurableExecutionStatus, 'volcano-generated/models/durable_execution_status'
139
173
  Volcano::Generated.autoload :DurableFunction, 'volcano-generated/models/durable_function'
140
174
  Volcano::Generated.autoload :DurableFunctionConfig, 'volcano-generated/models/durable_function_config'
175
+ Volcano::Generated.autoload :DurableMessage, 'volcano-generated/models/durable_message'
176
+ Volcano::Generated.autoload :DurableMessageDirection, 'volcano-generated/models/durable_message_direction'
177
+ Volcano::Generated.autoload :DurableMessageList, 'volcano-generated/models/durable_message_list'
178
+ Volcano::Generated.autoload :DurableMessageSender, 'volcano-generated/models/durable_message_sender'
179
+ Volcano::Generated.autoload :DurableMessageSessionRegistration, 'volcano-generated/models/durable_message_session_registration'
180
+ Volcano::Generated.autoload :DurableMessageStatus, 'volcano-generated/models/durable_message_status'
181
+ Volcano::Generated.autoload :DurableMessageWait, 'volcano-generated/models/durable_message_wait'
182
+ Volcano::Generated.autoload :DurableMessageWaitList, 'volcano-generated/models/durable_message_wait_list'
183
+ Volcano::Generated.autoload :DurableMessageWaitRegistration, 'volcano-generated/models/durable_message_wait_registration'
184
+ Volcano::Generated.autoload :DurableMessageWaitStatus, 'volcano-generated/models/durable_message_wait_status'
141
185
  Volcano::Generated.autoload :EmailTemplate, 'volcano-generated/models/email_template'
142
186
  Volcano::Generated.autoload :Error, 'volcano-generated/models/error'
143
187
  Volcano::Generated.autoload :ExportProjectSourceRequest, 'volcano-generated/models/export_project_source_request'
144
188
  Volcano::Generated.autoload :Frontend, 'volcano-generated/models/frontend'
189
+ Volcano::Generated.autoload :FrontendCustomDomainConflictError, 'volcano-generated/models/frontend_custom_domain_conflict_error'
145
190
  Volcano::Generated.autoload :FrontendCustomDomainResponse, 'volcano-generated/models/frontend_custom_domain_response'
146
191
  Volcano::Generated.autoload :FrontendCustomDomainTLSConfig, 'volcano-generated/models/frontend_custom_domain_tls_config'
192
+ Volcano::Generated.autoload :FrontendCustomDomainTLSConfigNot, 'volcano-generated/models/frontend_custom_domain_tls_config_not'
193
+ Volcano::Generated.autoload :FrontendCustomDomainTLSConfigNotAnyOf, 'volcano-generated/models/frontend_custom_domain_tls_config_not_any_of'
194
+ Volcano::Generated.autoload :FrontendCustomDomainTLSConfigNotAnyOf1, 'volcano-generated/models/frontend_custom_domain_tls_config_not_any_of1'
147
195
  Volcano::Generated.autoload :FrontendDeployment, 'volcano-generated/models/frontend_deployment'
148
196
  Volcano::Generated.autoload :FrontendDomainRoutingRecord, 'volcano-generated/models/frontend_domain_routing_record'
149
197
  Volcano::Generated.autoload :FrontendDomainVerificationRecord, 'volcano-generated/models/frontend_domain_verification_record'
198
+ Volcano::Generated.autoload :FrontendFunctionRoute, 'volcano-generated/models/frontend_function_route'
199
+ Volcano::Generated.autoload :FrontendFunctionRouteList, 'volcano-generated/models/frontend_function_route_list'
150
200
  Volcano::Generated.autoload :FrontendUsageDailyEntry, 'volcano-generated/models/frontend_usage_daily_entry'
151
201
  Volcano::Generated.autoload :FrontendUsageData, 'volcano-generated/models/frontend_usage_data'
152
202
  Volcano::Generated.autoload :FrontendUsageHistoryResponse, 'volcano-generated/models/frontend_usage_history_response'
@@ -156,12 +206,14 @@ Volcano::Generated.autoload :FunctionHTTPAuthMode, 'volcano-generated/models/fun
156
206
  Volcano::Generated.autoload :FunctionInvocationMode, 'volcano-generated/models/function_invocation_mode'
157
207
  Volcano::Generated.autoload :FunctionInvocationRequest, 'volcano-generated/models/function_invocation_request'
158
208
  Volcano::Generated.autoload :FunctionKind, 'volcano-generated/models/function_kind'
209
+ Volcano::Generated.autoload :FunctionKindFilter, 'volcano-generated/models/function_kind_filter'
159
210
  Volcano::Generated.autoload :FunctionRegion, 'volcano-generated/models/function_region'
160
211
  Volcano::Generated.autoload :FunctionRuntimeDeployment, 'volcano-generated/models/function_runtime_deployment'
161
212
  Volcano::Generated.autoload :FunctionRuntimeOption, 'volcano-generated/models/function_runtime_option'
162
213
  Volcano::Generated.autoload :FunctionRuntimesResponse, 'volcano-generated/models/function_runtimes_response'
163
214
  Volcano::Generated.autoload :FunctionScheduler, 'volcano-generated/models/function_scheduler'
164
215
  Volcano::Generated.autoload :FunctionSchedulerListResponse, 'volcano-generated/models/function_scheduler_list_response'
216
+ Volcano::Generated.autoload :FunctionVisibility, 'volcano-generated/models/function_visibility'
165
217
  Volcano::Generated.autoload :GetAuthMethods200Response, 'volcano-generated/models/get_auth_methods200_response'
166
218
  Volcano::Generated.autoload :GetAuthMethods200ResponseEmailPassword, 'volcano-generated/models/get_auth_methods200_response_email_password'
167
219
  Volcano::Generated.autoload :GetAuthMethods200ResponseOauthProvidersInner, 'volcano-generated/models/get_auth_methods200_response_oauth_providers_inner'
@@ -183,6 +235,8 @@ Volcano::Generated.autoload :ImportConnectionsResponse, 'volcano-generated/model
183
235
  Volcano::Generated.autoload :ImportProvider, 'volcano-generated/models/import_provider'
184
236
  Volcano::Generated.autoload :ImportSource, 'volcano-generated/models/import_source'
185
237
  Volcano::Generated.autoload :ImportSourcesResponse, 'volcano-generated/models/import_sources_response'
238
+ Volcano::Generated.autoload :Issue, 'volcano-generated/models/issue'
239
+ Volcano::Generated.autoload :IssueStatus, 'volcano-generated/models/issue_status'
186
240
  Volcano::Generated.autoload :ListAnonKeys200Response, 'volcano-generated/models/list_anon_keys200_response'
187
241
  Volcano::Generated.autoload :ListAvailableOAuthProviders200Response, 'volcano-generated/models/list_available_o_auth_providers200_response'
188
242
  Volcano::Generated.autoload :ListAvailableOAuthProviders200ResponseProvidersInner, 'volcano-generated/models/list_available_o_auth_providers200_response_providers_inner'
@@ -210,17 +264,22 @@ Volcano::Generated.autoload :LogSearchEvent, 'volcano-generated/models/log_searc
210
264
  Volcano::Generated.autoload :LogSearchRequest, 'volcano-generated/models/log_search_request'
211
265
  Volcano::Generated.autoload :LogSearchResponse, 'volcano-generated/models/log_search_response'
212
266
  Volcano::Generated.autoload :LogStreamRequest, 'volcano-generated/models/log_stream_request'
267
+ Volcano::Generated.autoload :ManagedProjectConfigFrontendCustomDomainTLSConfig, 'volcano-generated/models/managed_project_config_frontend_custom_domain_tls_config'
213
268
  Volcano::Generated.autoload :MetricUsageData, 'volcano-generated/models/metric_usage_data'
214
269
  Volcano::Generated.autoload :OAuthConfig, 'volcano-generated/models/o_auth_config'
215
270
  Volcano::Generated.autoload :OAuthErrorResponse, 'volcano-generated/models/o_auth_error_response'
271
+ Volcano::Generated.autoload :OpenDurableMessageSessionRequest, 'volcano-generated/models/open_durable_message_session_request'
216
272
  Volcano::Generated.autoload :PaginatedAuthUsers, 'volcano-generated/models/paginated_auth_users'
217
273
  Volcano::Generated.autoload :PaginatedDatabases, 'volcano-generated/models/paginated_databases'
274
+ Volcano::Generated.autoload :PaginatedDurableApprovals, 'volcano-generated/models/paginated_durable_approvals'
218
275
  Volcano::Generated.autoload :PaginatedDurableExecutions, 'volcano-generated/models/paginated_durable_executions'
219
276
  Volcano::Generated.autoload :PaginatedDurableFunctions, 'volcano-generated/models/paginated_durable_functions'
220
277
  Volcano::Generated.autoload :PaginatedFrontendDeployments, 'volcano-generated/models/paginated_frontend_deployments'
221
278
  Volcano::Generated.autoload :PaginatedFrontends, 'volcano-generated/models/paginated_frontends'
222
279
  Volcano::Generated.autoload :PaginatedFunctionDeployments, 'volcano-generated/models/paginated_function_deployments'
223
280
  Volcano::Generated.autoload :PaginatedFunctions, 'volcano-generated/models/paginated_functions'
281
+ Volcano::Generated.autoload :PaginatedIssues, 'volcano-generated/models/paginated_issues'
282
+ Volcano::Generated.autoload :PaginatedProjectAccessTokens, 'volcano-generated/models/paginated_project_access_tokens'
224
283
  Volcano::Generated.autoload :PaginatedProjectCustomDomains, 'volcano-generated/models/paginated_project_custom_domains'
225
284
  Volcano::Generated.autoload :PaginatedProjectDeployments, 'volcano-generated/models/paginated_project_deployments'
226
285
  Volcano::Generated.autoload :PaginatedProjects, 'volcano-generated/models/paginated_projects'
@@ -231,6 +290,10 @@ Volcano::Generated.autoload :PlatformExchangeResponse, 'volcano-generated/models
231
290
  Volcano::Generated.autoload :PreviewAuthPageRequest, 'volcano-generated/models/preview_auth_page_request'
232
291
  Volcano::Generated.autoload :PreviewAuthPageResponse, 'volcano-generated/models/preview_auth_page_response'
233
292
  Volcano::Generated.autoload :Project, 'volcano-generated/models/project'
293
+ Volcano::Generated.autoload :ProjectAccessToken, 'volcano-generated/models/project_access_token'
294
+ Volcano::Generated.autoload :ProjectAccessTokenScope, 'volcano-generated/models/project_access_token_scope'
295
+ Volcano::Generated.autoload :ProjectAccessTokenUsage, 'volcano-generated/models/project_access_token_usage'
296
+ Volcano::Generated.autoload :ProjectAccessTokenUsageDailyEntry, 'volcano-generated/models/project_access_token_usage_daily_entry'
234
297
  Volcano::Generated.autoload :ProjectConfig, 'volcano-generated/models/project_config'
235
298
  Volcano::Generated.autoload :ProjectConfigApplyResult, 'volcano-generated/models/project_config_apply_result'
236
299
  Volcano::Generated.autoload :ProjectConfigApplyResultEntry, 'volcano-generated/models/project_config_apply_result_entry'
@@ -253,6 +316,7 @@ Volcano::Generated.autoload :ProjectConfigAuthRedirects, 'volcano-generated/mode
253
316
  Volcano::Generated.autoload :ProjectConfigAuthSessions, 'volcano-generated/models/project_config_auth_sessions'
254
317
  Volcano::Generated.autoload :ProjectConfigAuthSignup, 'volcano-generated/models/project_config_auth_signup'
255
318
  Volcano::Generated.autoload :ProjectConfigAuthTokens, 'volcano-generated/models/project_config_auth_tokens'
319
+ Volcano::Generated.autoload :ProjectConfigAutofix, 'volcano-generated/models/project_config_autofix'
256
320
  Volcano::Generated.autoload :ProjectConfigBucket, 'volcano-generated/models/project_config_bucket'
257
321
  Volcano::Generated.autoload :ProjectConfigBucketPolicy, 'volcano-generated/models/project_config_bucket_policy'
258
322
  Volcano::Generated.autoload :ProjectConfigCustomDomain, 'volcano-generated/models/project_config_custom_domain'
@@ -260,6 +324,8 @@ Volcano::Generated.autoload :ProjectConfigDatabase, 'volcano-generated/models/pr
260
324
  Volcano::Generated.autoload :ProjectConfigEmailTemplate, 'volcano-generated/models/project_config_email_template'
261
325
  Volcano::Generated.autoload :ProjectConfigEmailTemplates, 'volcano-generated/models/project_config_email_templates'
262
326
  Volcano::Generated.autoload :ProjectConfigFrontend, 'volcano-generated/models/project_config_frontend'
327
+ Volcano::Generated.autoload :ProjectConfigFrontendCustomDomainTLSConfig, 'volcano-generated/models/project_config_frontend_custom_domain_tls_config'
328
+ Volcano::Generated.autoload :ProjectConfigFrontendFunctionRoute, 'volcano-generated/models/project_config_frontend_function_route'
263
329
  Volcano::Generated.autoload :ProjectConfigFunction, 'volcano-generated/models/project_config_function'
264
330
  Volcano::Generated.autoload :ProjectConfigHostedPage, 'volcano-generated/models/project_config_hosted_page'
265
331
  Volcano::Generated.autoload :ProjectConfigHostedPages, 'volcano-generated/models/project_config_hosted_pages'
@@ -267,6 +333,7 @@ Volcano::Generated.autoload :ProjectConfigMissingResource, 'volcano-generated/mo
267
333
  Volcano::Generated.autoload :ProjectConfigOAuthProvider, 'volcano-generated/models/project_config_o_auth_provider'
268
334
  Volcano::Generated.autoload :ProjectConfigProject, 'volcano-generated/models/project_config_project'
269
335
  Volcano::Generated.autoload :ProjectConfigRealtime, 'volcano-generated/models/project_config_realtime'
336
+ Volcano::Generated.autoload :ProjectConfigSandbox, 'volcano-generated/models/project_config_sandbox'
270
337
  Volcano::Generated.autoload :ProjectConfigScheduler, 'volcano-generated/models/project_config_scheduler'
271
338
  Volcano::Generated.autoload :ProjectConfigSkippedResource, 'volcano-generated/models/project_config_skipped_resource'
272
339
  Volcano::Generated.autoload :ProjectConfigValidationError, 'volcano-generated/models/project_config_validation_error'
@@ -325,18 +392,26 @@ Volcano::Generated.autoload :ProjectSourceExport, 'volcano-generated/models/proj
325
392
  Volcano::Generated.autoload :ProjectSourceExportOmission, 'volcano-generated/models/project_source_export_omission'
326
393
  Volcano::Generated.autoload :ProjectSourceExportSkip, 'volcano-generated/models/project_source_export_skip'
327
394
  Volcano::Generated.autoload :ProjectSourceExportState, 'volcano-generated/models/project_source_export_state'
395
+ Volcano::Generated.autoload :ProjectTemplateInstallation, 'volcano-generated/models/project_template_installation'
328
396
  Volcano::Generated.autoload :ProjectUsageResponse, 'volcano-generated/models/project_usage_response'
397
+ Volcano::Generated.autoload :PublishDurableMessageRequest, 'volcano-generated/models/publish_durable_message_request'
329
398
  Volcano::Generated.autoload :PublishSandboxPresetRequest, 'volcano-generated/models/publish_sandbox_preset_request'
330
399
  Volcano::Generated.autoload :RealtimeConfig, 'volcano-generated/models/realtime_config'
331
400
  Volcano::Generated.autoload :RealtimePlanLimits, 'volcano-generated/models/realtime_plan_limits'
332
401
  Volcano::Generated.autoload :RealtimeStats, 'volcano-generated/models/realtime_stats'
333
402
  Volcano::Generated.autoload :RefreshOAuthProviderToken200Response, 'volcano-generated/models/refresh_o_auth_provider_token200_response'
403
+ Volcano::Generated.autoload :RegisterDurableMessageWaitRequest, 'volcano-generated/models/register_durable_message_wait_request'
404
+ Volcano::Generated.autoload :RenameVariableEnvironmentRequest, 'volcano-generated/models/rename_variable_environment_request'
405
+ Volcano::Generated.autoload :ReplaceFrontendSharedVariablesRequest, 'volcano-generated/models/replace_frontend_shared_variables_request'
334
406
  Volcano::Generated.autoload :ReplaceSharedVariablesRequest, 'volcano-generated/models/replace_shared_variables_request'
407
+ Volcano::Generated.autoload :RequestDurableApprovalRequest, 'volcano-generated/models/request_durable_approval_request'
335
408
  Volcano::Generated.autoload :ResetDatabasePassword200Response, 'volcano-generated/models/reset_database_password200_response'
336
409
  Volcano::Generated.autoload :ResolveFunctionResponse, 'volcano-generated/models/resolve_function_response'
337
410
  Volcano::Generated.autoload :ResourceReference, 'volcano-generated/models/resource_reference'
338
411
  Volcano::Generated.autoload :SandboxAccess, 'volcano-generated/models/sandbox_access'
339
412
  Volcano::Generated.autoload :SandboxAccessRequest, 'volcano-generated/models/sandbox_access_request'
413
+ Volcano::Generated.autoload :SandboxBuildLogPage, 'volcano-generated/models/sandbox_build_log_page'
414
+ Volcano::Generated.autoload :SandboxBuildLogPageDataInner, 'volcano-generated/models/sandbox_build_log_page_data_inner'
340
415
  Volcano::Generated.autoload :SandboxCapacity, 'volcano-generated/models/sandbox_capacity'
341
416
  Volcano::Generated.autoload :SandboxCapacityList, 'volcano-generated/models/sandbox_capacity_list'
342
417
  Volcano::Generated.autoload :SandboxCommandRequest, 'volcano-generated/models/sandbox_command_request'
@@ -357,6 +432,7 @@ Volcano::Generated.autoload :SandboxSubjectGrantRequest, 'volcano-generated/mode
357
432
  Volcano::Generated.autoload :SandboxTemplate, 'volcano-generated/models/sandbox_template'
358
433
  Volcano::Generated.autoload :SandboxTemplatePage, 'volcano-generated/models/sandbox_template_page'
359
434
  Volcano::Generated.autoload :ScheduleRequest, 'volcano-generated/models/schedule_request'
435
+ Volcano::Generated.autoload :SendDurableMessageRequest, 'volcano-generated/models/send_durable_message_request'
360
436
  Volcano::Generated.autoload :ServiceKey, 'volcano-generated/models/service_key'
361
437
  Volcano::Generated.autoload :SetProjectGitProductionBranchRequest, 'volcano-generated/models/set_project_git_production_branch_request'
362
438
  Volcano::Generated.autoload :StorageBucket, 'volcano-generated/models/storage_bucket'
@@ -375,11 +451,13 @@ Volcano::Generated.autoload :UpdateAuthConfigRequest, 'volcano-generated/models/
375
451
  Volcano::Generated.autoload :UpdateAuthHostedPageRequest, 'volcano-generated/models/update_auth_hosted_page_request'
376
452
  Volcano::Generated.autoload :UpdateAuthPageLayoutRequest, 'volcano-generated/models/update_auth_page_layout_request'
377
453
  Volcano::Generated.autoload :UpdateAuthPageThemeRequest, 'volcano-generated/models/update_auth_page_theme_request'
454
+ Volcano::Generated.autoload :UpdateAutofixSettingsRequest, 'volcano-generated/models/update_autofix_settings_request'
378
455
  Volcano::Generated.autoload :UpdateDatabaseBranchRequest, 'volcano-generated/models/update_database_branch_request'
379
456
  Volcano::Generated.autoload :UpdateDatabaseTypeRequest, 'volcano-generated/models/update_database_type_request'
380
457
  Volcano::Generated.autoload :UpdateEmailTemplateRequest, 'volcano-generated/models/update_email_template_request'
381
458
  Volcano::Generated.autoload :UpdateFunctionRequest, 'volcano-generated/models/update_function_request'
382
459
  Volcano::Generated.autoload :UpdateFunctionSchedulerRequest, 'volcano-generated/models/update_function_scheduler_request'
460
+ Volcano::Generated.autoload :UpdateIssueRequest, 'volcano-generated/models/update_issue_request'
383
461
  Volcano::Generated.autoload :UpdateOAuthConfigRequest, 'volcano-generated/models/update_o_auth_config_request'
384
462
  Volcano::Generated.autoload :UpdateProjectGitDeploySettingsRequest, 'volcano-generated/models/update_project_git_deploy_settings_request'
385
463
  Volcano::Generated.autoload :UpdateProjectRequest, 'volcano-generated/models/update_project_request'
@@ -392,12 +470,18 @@ Volcano::Generated.autoload :UploadSessionStatusResponse, 'volcano-generated/mod
392
470
  Volcano::Generated.autoload :UploadStorageObject201Response, 'volcano-generated/models/upload_storage_object201_response'
393
471
  Volcano::Generated.autoload :UsageDataPoint, 'volcano-generated/models/usage_data_point'
394
472
  Volcano::Generated.autoload :Variable, 'volcano-generated/models/variable'
473
+ Volcano::Generated.autoload :VariableEnvironment, 'volcano-generated/models/variable_environment'
474
+ Volcano::Generated.autoload :VariableEnvironmentList, 'volcano-generated/models/variable_environment_list'
475
+ Volcano::Generated.autoload :VerifiedDomain, 'volcano-generated/models/verified_domain'
476
+ Volcano::Generated.autoload :VerifiedDomainsResponse, 'volcano-generated/models/verified_domains_response'
477
+ Volcano::Generated.autoload :VerifyDomainRequest, 'volcano-generated/models/verify_domain_request'
395
478
 
396
479
  # APIs
397
480
  Volcano::Generated.autoload :AnonKeysApi, 'volcano-generated/api/anon_keys_api'
398
481
  Volcano::Generated.autoload :AuthAdminApi, 'volcano-generated/api/auth_admin_api'
399
482
  Volcano::Generated.autoload :AuthConfigurationApi, 'volcano-generated/api/auth_configuration_api'
400
483
  Volcano::Generated.autoload :AuthenticationApi, 'volcano-generated/api/authentication_api'
484
+ Volcano::Generated.autoload :AutofixApi, 'volcano-generated/api/autofix_api'
401
485
  Volcano::Generated.autoload :DatabaseBackupsApi, 'volcano-generated/api/database_backups_api'
402
486
  Volcano::Generated.autoload :DatabaseBranchesApi, 'volcano-generated/api/database_branches_api'
403
487
  Volcano::Generated.autoload :DatabaseQueriesApi, 'volcano-generated/api/database_queries_api'
@@ -406,10 +490,12 @@ Volcano::Generated.autoload :DurableFunctionsApi, 'volcano-generated/api/durable
406
490
  Volcano::Generated.autoload :FrontendsApi, 'volcano-generated/api/frontends_api'
407
491
  Volcano::Generated.autoload :FunctionsApi, 'volcano-generated/api/functions_api'
408
492
  Volcano::Generated.autoload :GitConnectionsApi, 'volcano-generated/api/git_connections_api'
493
+ Volcano::Generated.autoload :IssuesApi, 'volcano-generated/api/issues_api'
409
494
  Volcano::Generated.autoload :LocksApi, 'volcano-generated/api/locks_api'
410
495
  Volcano::Generated.autoload :LogsApi, 'volcano-generated/api/logs_api'
411
496
  Volcano::Generated.autoload :OAuthAuthenticationApi, 'volcano-generated/api/o_auth_authentication_api'
412
497
  Volcano::Generated.autoload :OAuthConfigurationApi, 'volcano-generated/api/o_auth_configuration_api'
498
+ Volcano::Generated.autoload :ProjectAccessTokensApi, 'volcano-generated/api/project_access_tokens_api'
413
499
  Volcano::Generated.autoload :ProjectImportsApi, 'volcano-generated/api/project_imports_api'
414
500
  Volcano::Generated.autoload :ProjectsApi, 'volcano-generated/api/projects_api'
415
501
  Volcano::Generated.autoload :RealtimeApi, 'volcano-generated/api/realtime_api'
@@ -420,7 +506,9 @@ Volcano::Generated.autoload :StorageBucketsApi, 'volcano-generated/api/storage_b
420
506
  Volcano::Generated.autoload :StorageObjectsApi, 'volcano-generated/api/storage_objects_api'
421
507
  Volcano::Generated.autoload :StoragePoliciesApi, 'volcano-generated/api/storage_policies_api'
422
508
  Volcano::Generated.autoload :SystemApi, 'volcano-generated/api/system_api'
509
+ Volcano::Generated.autoload :VariableEnvironmentsApi, 'volcano-generated/api/variable_environments_api'
423
510
  Volcano::Generated.autoload :VariablesApi, 'volcano-generated/api/variables_api'
511
+ Volcano::Generated.autoload :VerifiedDomainsApi, 'volcano-generated/api/verified_domains_api'
424
512
 
425
513
  module Volcano::Generated
426
514
  class << self
@@ -29,6 +29,7 @@ module Volcano
29
29
  require_relative 'generated_transport_logs'
30
30
  require_relative 'generated_transport_functions'
31
31
  require_relative 'generated_transport_durable'
32
+ require_relative 'generated_transport_durable_messages'
32
33
  require_relative 'generated_transport_sandbox'
33
34
  require_relative 'generated_transport_storage'
34
35
  require_relative 'generated_transport_upload_sessions'
@@ -46,5 +46,64 @@ module Volcano
46
46
  response(data, status, headers)
47
47
  end
48
48
  end
49
+
50
+ def list_durable_approvals(authorization:, project_id:, options:)
51
+ invoke do
52
+ apis = @api_factory.call(authorization)
53
+ data, status, headers = apis.durable.list_durable_approvals_with_http_info(
54
+ project_id, options.merge(debug_return_type: 'Object')
55
+ )
56
+ response(data, status, headers)
57
+ end
58
+ end
59
+
60
+ def get_durable_approval(authorization:, project_id:, approval_id:)
61
+ invoke do
62
+ apis = @api_factory.call(authorization)
63
+ data, status, headers = apis.durable.get_durable_approval_with_http_info(
64
+ project_id, approval_id, debug_return_type: 'Object'
65
+ )
66
+ response(data, status, headers)
67
+ end
68
+ end
69
+
70
+ def get_durable_approval_stats(authorization:, project_id:, options:)
71
+ invoke do
72
+ apis = @api_factory.call(authorization)
73
+ data, status, headers = apis.durable.get_durable_approval_stats_with_http_info(
74
+ project_id, options.merge(debug_return_type: 'Object')
75
+ )
76
+ response(data, status, headers)
77
+ end
78
+ end
79
+
80
+ def approve_durable_approval(authorization:, project_id:, approval_id:, comment:)
81
+ invoke do
82
+ apis = @api_factory.call(authorization)
83
+ data, status, headers = apis.durable.approve_durable_approval_with_http_info(
84
+ project_id, approval_id, durable_approval_decision(comment)
85
+ )
86
+ response(data, status, headers)
87
+ end
88
+ end
89
+
90
+ def deny_durable_approval(authorization:, project_id:, approval_id:, comment:)
91
+ invoke do
92
+ apis = @api_factory.call(authorization)
93
+ data, status, headers = apis.durable.deny_durable_approval_with_http_info(
94
+ project_id, approval_id, durable_approval_decision(comment)
95
+ )
96
+ response(data, status, headers)
97
+ end
98
+ end
99
+
100
+ private
101
+
102
+ # The body is optional on the wire, but an empty object is valid whether
103
+ # or not the server tolerates a missing one.
104
+ def durable_approval_decision(comment)
105
+ body = Generated::DurableApprovalDecisionRequest.new(comment.nil? ? {} : { comment: comment })
106
+ { durable_approval_decision_request: body, debug_return_type: 'Object' }
107
+ end
49
108
  end
50
109
  end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Volcano
4
+ # Durable message operations for the internal generated transport. A target
5
+ # with a project id takes the owner's project route; one without takes the
6
+ # application route, with the execution's client token when there is one.
7
+ class GeneratedTransport
8
+ def send_durable_message(authorization:, target:, name:, data:, idempotency_key:)
9
+ invoke do
10
+ durable = @api_factory.call(authorization).durable
11
+ body = Generated::SendDurableMessageRequest.new(name: name, data: data)
12
+ payload, status, headers = send_on_route(durable, target, body, idempotency_key)
13
+ response(payload, status, headers)
14
+ end
15
+ end
16
+
17
+ def list_durable_messages(authorization:, target:, query:)
18
+ invoke do
19
+ data, status, headers = list_on_route(@api_factory.call(authorization).durable, target, query)
20
+ response(data, status, headers)
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ def send_on_route(durable, target, body, idempotency_key)
27
+ if target.project_id
28
+ durable.send_durable_message_with_http_info(
29
+ target.project_id, target.function_id, target.execution_id, body,
30
+ durable_message_options(idempotency_key: idempotency_key)
31
+ )
32
+ else
33
+ durable.send_durable_message_from_application_with_http_info(
34
+ target.function_id, target.execution_id, body,
35
+ durable_message_options(idempotency_key: idempotency_key, x_volcano_client_token: target.client_token)
36
+ )
37
+ end
38
+ end
39
+
40
+ def list_on_route(durable, target, query)
41
+ if target.project_id
42
+ durable.list_durable_messages_with_http_info(
43
+ target.project_id, target.function_id, target.execution_id, durable_message_options(**query)
44
+ )
45
+ else
46
+ durable.list_durable_messages_from_application_with_http_info(
47
+ target.function_id, target.execution_id,
48
+ durable_message_options(**query, x_volcano_client_token: target.client_token)
49
+ )
50
+ end
51
+ end
52
+
53
+ def durable_message_options(**options)
54
+ options.compact.merge(debug_return_type: 'Object')
55
+ end
56
+ end
57
+ end
@@ -115,7 +115,7 @@ module Volcano
115
115
  def function_json?(text, headers)
116
116
  return true if text.start_with?('{', '[')
117
117
 
118
- headers.to_h.any? do |key, value|
118
+ (headers || {}).any? do |key, value|
119
119
  key.casecmp?('Content-Type') && value.to_s.downcase.include?('application/json')
120
120
  end
121
121
  end
@@ -4,6 +4,27 @@ module Volcano
4
4
  # Dispatch only the generated operations exposed by the Sandbox facade.
5
5
  class GeneratedTransport
6
6
  SANDBOX_OPERATIONS = {
7
+ list_sandbox_deployments: lambda { |api, request|
8
+ api.list_sandbox_deployments_with_http_info(request.resource_id, request.subject_id,
9
+ cursor: request.cursor, limit: request.limit,
10
+ debug_return_type: 'Object')
11
+ },
12
+ get_sandbox_deployment: lambda { |api, request|
13
+ api.get_sandbox_deployment_with_http_info(request.resource_id, request.subject_id, request.deployment_id,
14
+ debug_return_type: 'Object')
15
+ },
16
+ get_sandbox_deployment_source: lambda { |api, request|
17
+ api.get_sandbox_deployment_source_with_http_info(request.resource_id, request.subject_id, request.deployment_id,
18
+ debug_return_type: 'String')
19
+ },
20
+ get_sandbox_deployment_logs: lambda { |api, request|
21
+ api.get_sandbox_deployment_logs_with_http_info(request.resource_id, request.subject_id, request.deployment_id,
22
+ request.region, cursor: request.cursor, limit: request.limit,
23
+ debug_return_type: 'Object')
24
+ },
25
+ delete_sandbox: lambda { |api, request|
26
+ api.delete_sandbox_with_http_info(request.resource_id, request.subject_id, debug_return_type: 'Object')
27
+ },
7
28
  list_sandbox_presets: lambda { |api, _request|
8
29
  api.list_sandbox_presets_with_http_info(debug_return_type: 'Object')
9
30
  },
@@ -53,13 +74,24 @@ module Volcano
53
74
  def sandbox_request(authorization:, request:)
54
75
  invoke do
55
76
  api = sandbox_api(authorization, request.timeout)
56
- data, status, headers = SANDBOX_OPERATIONS.fetch(request.operation).call(api, request)
77
+ data, status, headers = sandbox_result(api, request)
57
78
  response(data, status, headers)
58
79
  end
59
80
  end
60
81
 
61
82
  private
62
83
 
84
+ def sandbox_result(api, request)
85
+ return SANDBOX_OPERATIONS.fetch(request.operation).call(api, request) unless request.operation == :deploy_sandbox
86
+
87
+ with_upload_file('source.tar.gz', request.archive) do |file|
88
+ body = request.deployment_body
89
+ options = { memory_mb: body[:memory_mb], ports: JSON.generate(body[:ports]), debug_return_type: 'Object' }
90
+ api.deploy_sandbox_with_http_info(request.resource_id, request.subject_id, request.request_id,
91
+ body[:name], file, options)
92
+ end
93
+ end
94
+
63
95
  def sandbox_api(authorization, timeout)
64
96
  configuration = generated_configuration(authorization)
65
97
  configuration.timeout = [configuration.timeout, (timeout * 1_000).round].max
@@ -27,8 +27,8 @@ module Volcano
27
27
  end
28
28
 
29
29
  def lock_held(value)
30
- return true if value == true
31
- return false if value == false
30
+ return true if value.equal?(true)
31
+ return false if value.equal?(false)
32
32
 
33
33
  raise Error::TransportError, 'invalid lock held flag'
34
34
  end
@@ -61,14 +61,18 @@ module Volcano
61
61
  end
62
62
  end
63
63
 
64
+ # A durable message has no event field; everything the server publishes
65
+ # on its channel is one.
64
66
  def deliver_publication(event, data)
65
67
  if postgres?
66
68
  dispatch_postgres_change(data)
67
- elsif event == 'message'
69
+ elsif event == 'message' || durable?
68
70
  emit('message', data)
69
71
  end
70
72
  end
71
73
 
74
+ def durable? = @type == :durable
75
+
72
76
  def emit(event, data, before_delivery: nil)
73
77
  callbacks = @callbacks[event].dup
74
78
  return if callbacks.empty?
@@ -10,6 +10,7 @@ module Volcano
10
10
  def mark_closed
11
11
  @closed = true
12
12
  @subscription_desired = @subscribed = false
13
+ @follower&.close
13
14
  end_postgres_delivery
14
15
  reset_presence
15
16
  end
@@ -81,7 +82,9 @@ module Volcano
81
82
  detach_publication_handler(protocol)
82
83
  end
83
84
 
84
- def subscription_options(binding) = { recovery: binding&.last, recoverable: presence?, join_leave: presence? }
85
+ def subscription_options(binding)
86
+ { recovery: binding&.last, recoverable: presence?, join_leave: presence?, data: @subscribe_data }
87
+ end
85
88
 
86
89
  def recovery_binding
87
90
  return unless broadcast?
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Volcano
4
+ class Realtime
5
+ # Follows a durable execution's messages on a channel.
6
+ module DurableChannel
7
+ # @dynamic durable?
8
+
9
+ private
10
+
11
+ # +data+ goes with every subscribe, including the ones a reconnect
12
+ # restores. +follower+ is asked before each of those restores, hears each
13
+ # one and each publication the connection dropped, and is closed with the
14
+ # channel.
15
+ def follow_durable(data, follower)
16
+ @subscribe_data = data
17
+ @follower = follower
18
+ end
19
+
20
+ # A durable channel's follower reads back what the connection dropped.
21
+ def publication_rejection(protocol, generation)
22
+ follower = @follower
23
+ follower ? ->(_publication) { follower.dropped } : super
24
+ end
25
+
26
+ # The server refuses a durable subscribe for good once the execution is
27
+ # gone or hidden from the session, so the follower ends the subscription
28
+ # instead of the reconnect retrying it, and the refusal says so.
29
+ def restore_refused(error)
30
+ follower = @follower
31
+ return error unless follower
32
+ return error if error.temporary?
33
+
34
+ follower.refused
35
+ ServerError.new("#{error.message}; the durable message subscription has ended", code: error.code)
36
+ end
37
+
38
+ # The server authorizes a durable subscribe by the socket's session, so
39
+ # the socket must belong to the client's current one.
40
+ def prepare_protocol_subscription(protocol, epoch)
41
+ @realtime.__send__(:capture_protocol_session) if durable?
42
+ super
43
+ end
44
+ end
45
+ private_constant :DurableChannel
46
+ end
47
+ end
@@ -4,7 +4,7 @@ module Volcano
4
4
  class Realtime
5
5
  # Channel collection and connection-state lifecycle operations.
6
6
  module Lifecycle
7
- # @dynamic channel_lock, normalize_channel_type
7
+ # @dynamic channel_lock, normalize_channel_type, report_channel_error, protocol
8
8
  def connected? = !@closed && (@protocol&.connected? || false)
9
9
 
10
10
  def remove_channel(name, type: :broadcast)
@@ -34,6 +34,42 @@ module Volcano
34
34
  @channels.delete(name)
35
35
  end
36
36
 
37
+ # Leaves a durable channel unless a later subscription replaced it. Once
38
+ # the connection is closed there is nothing left to leave.
39
+ def remove_durable_channel(channel)
40
+ channel_lock.acquire do
41
+ leave_durable_channel(channel) if forget_durable_channel(channel) && !@closed
42
+ end
43
+ nil
44
+ rescue Async::Cancel
45
+ # Stopped waiting for the lock, so the channel is still subscribed.
46
+ abandon_durable_leave(channel) { protocol.drop } if forget_durable_channel(channel)
47
+ raise
48
+ end
49
+
50
+ def forget_durable_channel(channel)
51
+ @channels.delete(channel.name) if @channels[channel.name].equal?(channel)
52
+ end
53
+
54
+ # A leave the server did not confirm may have left the subscription in
55
+ # place, so the connection is dropped, which ends it. The reconnect
56
+ # restores only the channels still in use.
57
+ def leave_durable_channel(channel)
58
+ channel.__send__(:remove)
59
+ rescue StandardError => e
60
+ abandon_durable_leave(channel) { protocol.close }
61
+ report_channel_error(e)
62
+ rescue Async::Cancel
63
+ # Closing here would start the reconnect in the task being stopped.
64
+ abandon_durable_leave(channel) { protocol.drop }
65
+ raise
66
+ end
67
+
68
+ def abandon_durable_leave(channel)
69
+ channel.mark_closed
70
+ yield if connected?
71
+ end
72
+
37
73
  def remove_channel_entry(name, channel)
38
74
  channel.__send__(:remove)
39
75
  @channels.delete(name)