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
@@ -16,10 +16,14 @@ module Volcano
16
16
 
17
17
  # @dynamic code
18
18
 
19
- def initialize(message, code: nil)
19
+ def initialize(message, code: nil, temporary: false)
20
20
  super(message)
21
21
  @code = code.is_a?(String) ? code.dup.freeze : code
22
+ @temporary = temporary == true
22
23
  end
24
+
25
+ # Whether the server expects the same command to succeed later.
26
+ def temporary? = @temporary
23
27
  end
24
28
 
25
29
  class ClosedError < StandardError; end
@@ -93,12 +97,12 @@ module Volcano
93
97
  result.tap { @connected = true }
94
98
  end
95
99
 
96
- def subscribe(channel:, recoverable: false, join_leave: false, recovery: nil)
100
+ def subscribe(channel:, recoverable: false, join_leave: false, recovery: nil, data: nil)
97
101
  @subscription_lock.acquire do
98
102
  ensure_open!
99
103
  raise DuplicateSubscriptionError, "already subscribed to #{channel}" if @subscriptions.include?(channel)
100
104
 
101
- result = subscribe_request(channel:, recoverable:, join_leave:, recovery:)
105
+ result = subscribe_request(channel:, recoverable:, join_leave:, recovery:, data:)
102
106
  ensure_open!
103
107
  @subscriptions.add(channel)
104
108
  result
@@ -59,7 +59,7 @@ module Volcano
59
59
  raise TypeError, 'realtime error must be an object' unless error.is_a?(Hash)
60
60
 
61
61
  message = error['message'] || 'realtime command failed'
62
- Protocol::Failure.new(error: ServerError.new(message, code: error['code']))
62
+ Protocol::Failure.new(error: ServerError.new(message, code: error['code'], temporary: error['temporary']))
63
63
  end
64
64
 
65
65
  def successful_reply(frame, reply_key)
@@ -10,11 +10,13 @@ module Volcano
10
10
 
11
11
  private
12
12
 
13
- def request(reply_key, on_reply: nil)
13
+ # on_write runs once the frame holds the write lock, when the server may
14
+ # start to receive it.
15
+ def request(reply_key, on_reply: nil, on_write: nil)
14
16
  # @type var registered_id: Integer?
15
17
  ensure_open!
16
18
  registered_id, reply_queue = register_request(reply_key, on_reply)
17
- write_frame(yield(registered_id || raise(TypeError, 'invalid realtime request id')))
19
+ write_frame(yield(registered_id || raise(TypeError, 'invalid realtime request id')), on_write)
18
20
  reply = await_reply(reply_queue)
19
21
  raise reply.error if reply.is_a?(Failure)
20
22
 
@@ -36,10 +38,11 @@ module Volcano
36
38
  [@next_id, queue]
37
39
  end
38
40
 
39
- def write_frame(frame) = write_serialized_frame("#{JSON.generate(frame)}\n")
41
+ def write_frame(frame, on_write = nil) = write_serialized_frame("#{JSON.generate(frame)}\n", on_write)
40
42
 
41
- def write_serialized_frame(frame)
43
+ def write_serialized_frame(frame, on_write = nil)
42
44
  @write_lock.acquire do
45
+ on_write&.call
43
46
  @socket.write(frame)
44
47
  @socket.flush
45
48
  end
@@ -9,6 +9,13 @@ module Volcano
9
9
  # @dynamic dispatch_publication_batches, read_loop
10
10
  def connected? = @connected && !@closed
11
11
 
12
+ # Ends the connection from the reader, as a loss would, so the reconnect
13
+ # runs in the protocol's tasks rather than the caller's.
14
+ def drop
15
+ close_socket
16
+ nil
17
+ end
18
+
12
19
  def on_publication(channel, on_rejection: nil, &handler)
13
20
  ensure_open!
14
21
  @publication_handlers[channel] << ProtocolPublicationDispatch::Registration.new(
@@ -6,27 +6,38 @@ module Volcano
6
6
  module ProtocolRecovery
7
7
  # @dynamic class, request, dispatch_recovered_publications, recovery_position
8
8
  # @dynamic delete_recovery_state, set_recovery_position, mark_unknown_gap
9
- # @dynamic mark_publication_gap, same_epoch?
9
+ # @dynamic mark_publication_gap, same_epoch?, close_socket
10
10
 
11
11
  private
12
12
 
13
- def subscribe_request(channel:, recoverable:, join_leave:, recovery:)
14
- on_reply = nil
15
- if recovery
16
- on_reply = lambda do |reply|
17
- publications = parse_recovery_result(channel: channel, recovery: recovery, result: reply)
18
- dispatch_recovered_publications(channel, publications)
19
- end
20
- end
21
-
22
- request('subscribe', on_reply:) do |id|
23
- self.class.subscribe(
13
+ def subscribe_request(channel:, recoverable:, join_leave:, recovery:, data:)
14
+ writing = false
15
+ request('subscribe', on_reply: recovery_reply(channel, recovery), on_write: -> { writing = true }) do |id|
16
+ command = self.class.subscribe(
24
17
  id: id,
25
18
  channel: channel,
26
19
  recoverable: recoverable,
27
20
  join_leave: join_leave,
28
21
  recovery: recovery
29
22
  )
23
+ command['subscribe']['data'] = data if data
24
+ command
25
+ end
26
+ rescue Async::Cancel
27
+ # Once the frame is being written the server may subscribe, and nothing
28
+ # would leave the channel. Closing the socket has the reader end the
29
+ # connection, as on a loss, so the reconnect is not cancelled along with
30
+ # this task. Stopped before that, there is nothing to leave.
31
+ close_socket if writing
32
+ raise
33
+ end
34
+
35
+ def recovery_reply(channel, recovery)
36
+ return unless recovery
37
+
38
+ lambda do |reply|
39
+ publications = parse_recovery_result(channel: channel, recovery: recovery, result: reply)
40
+ dispatch_recovered_publications(channel, publications)
30
41
  end
31
42
  end
32
43
 
@@ -16,6 +16,7 @@ require_relative 'realtime/postgres_batch'
16
16
  require_relative 'realtime/postgres_delivery'
17
17
  require_relative 'realtime/broadcast_delivery'
18
18
  require_relative 'realtime/channel_callbacks'
19
+ require_relative 'realtime/durable_channel'
19
20
 
20
21
  module Volcano
21
22
  # Manages a project's realtime connection and broadcast channels.
@@ -68,6 +69,9 @@ module Volcano
68
69
  end
69
70
 
70
71
  CHANNEL_TYPES = %i[broadcast presence postgres].freeze
72
+ # A channel that fetches no rows still takes a batch configuration.
73
+ UNBATCHED = PostgresBatchConfig.new(auto_fetch: false, batch_window_ms: 1, max_batch_size: 1)
74
+ private_constant :UNBATCHED
71
75
 
72
76
  # Owns the public realtime facade and its channel collection.
73
77
  module Core
@@ -152,6 +156,8 @@ module Volcano
152
156
 
153
157
  def report_channel_error(error) = protocol_error(public_error(error))
154
158
 
159
+ def blocking(&) = BlockingCall.call(&)
160
+
155
161
  def cached_channel(channel, batch_config)
156
162
  channel.__send__(:ensure_fetch_config!, batch_config)
157
163
  channel
@@ -161,6 +167,20 @@ module Volcano
161
167
  Channel.new(self, -> { protocol }, name, type, batch_config:)
162
168
  end
163
169
 
170
+ # Opens the channel an execution publishes its messages on, or answers
171
+ # nil when this client already follows the execution.
172
+ def durable_channel(execution_id, client_token, follower)
173
+ channel_lock.acquire do
174
+ ensure_open!
175
+ name = "durable:#{execution_id}"
176
+ next if @channels.key?(name)
177
+
178
+ channel = build_channel(name, :durable, UNBATCHED)
179
+ channel.__send__(:follow_durable, client_token && { 'client_token' => client_token }, follower)
180
+ @channels[name] = channel
181
+ end
182
+ end
183
+
164
184
  def protocol_lock
165
185
  require 'async/semaphore'
166
186
  @protocol_lock ||= Async::Semaphore.new(1)
@@ -186,6 +206,7 @@ module Volcano
186
206
  include PostgresDelivery
187
207
  include BroadcastDelivery
188
208
  include ChannelCallbacks
209
+ include DurableChannel
189
210
 
190
211
  attr_reader :name
191
212
 
@@ -194,7 +215,7 @@ module Volcano
194
215
  @protocol_provider = protocol_provider
195
216
  @name = name.freeze
196
217
  @handler_registered = @subscribed = @subscription_desired = @closed = false
197
- @lifecycle_lock = nil
218
+ @lifecycle_lock = @subscribe_data = @follower = nil
198
219
  initialize_recovery_state
199
220
  initialize_callback_dispatch
200
221
  initialize_presence(type)
@@ -230,13 +251,13 @@ module Volcano
230
251
  def restoration_needed? = subscription_desired? && !@subscribed
231
252
 
232
253
  def restore_subscription(protocol)
233
- state = with_lifecycle_lock do
234
- restoration_needed? ? subscribe_protocol(protocol) : nil
235
- end
236
- if state
237
- subscribed_protocol, epoch = state
238
- sync_presence(subscribed_protocol, epoch)
239
- end
254
+ ask_follower_to_restore
255
+ state = resubscribe(protocol)
256
+ return unless state
257
+
258
+ subscribed_protocol, epoch = state
259
+ sync_presence(subscribed_protocol, epoch)
260
+ @follower&.resubscribed
240
261
  nil
241
262
  end
242
263
 
@@ -247,6 +268,7 @@ module Volcano
247
268
  clear_broadcast_recovery_state
248
269
  clear_channel_recovery_state
249
270
  mark_removed
271
+ @follower&.close
250
272
  end
251
273
  nil
252
274
  end
@@ -273,6 +295,18 @@ module Volcano
273
295
  raise
274
296
  end
275
297
 
298
+ # Outside the lifecycle lock: a follower that refuses may leave the channel.
299
+ def ask_follower_to_restore
300
+ @follower&.restoring if restoration_needed?
301
+ end
302
+
303
+ # The refusal is handled outside the lifecycle lock too, for the same reason.
304
+ def resubscribe(protocol)
305
+ with_lifecycle_lock { restoration_needed? ? subscribe_protocol(protocol) : nil }
306
+ rescue ServerError => e
307
+ raise restore_refused(e)
308
+ end
309
+
276
310
  def with_lifecycle_lock(&)
277
311
  require 'async/semaphore'
278
312
  lock = @lifecycle_lock ||= Async::Semaphore.new(1)
@@ -25,7 +25,7 @@ module Volcano
25
25
  return copy_volcano_error(error, redacted_message)
26
26
  end
27
27
  if defined?(Realtime::ServerError) && error.is_a?(Realtime::ServerError)
28
- return error.class.new(redacted_message, code: error.code)
28
+ return error.class.new(redacted_message, code: error.code, temporary: error.temporary?)
29
29
  end
30
30
 
31
31
  error.exception(redacted_message)
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Volcano
4
+ # Validate custom-image deployment responses before exposing typed values.
5
+ module SandboxDeploymentResponse
6
+ def self.deployment(value)
7
+ data = Transport.json_object(value)
8
+ SandboxDeployment.new(id: SandboxResponse.text(data['id']), status: SandboxResponse.text(data['status']),
9
+ created_at: SandboxResponse.text(data['created_at']),
10
+ updated_at: SandboxResponse.text(data['updated_at']))
11
+ end
12
+
13
+ def self.page(value)
14
+ data = Transport.json_object(value)
15
+ pagination = Transport.json_object(data['pagination'])
16
+ SandboxDeploymentPage.new(data: SandboxResponse.array(data['data']).map { |row| deployment(row) }.freeze,
17
+ limit: SandboxResponse.integer(pagination['limit']),
18
+ has_more: SandboxResponse.flag(pagination['has_more']),
19
+ next_cursor: optional_text(pagination['next_cursor']))
20
+ end
21
+
22
+ def self.logs(value)
23
+ data = Transport.json_object(value)
24
+ SandboxBuildLogPage.new(data: SandboxResponse.array(data['data']).map { |row| log(row) }.freeze,
25
+ next_cursor: optional_text(data['next_cursor']))
26
+ end
27
+
28
+ def self.log(value)
29
+ data = Transport.json_object(value)
30
+ SandboxBuildLog.new(timestamp: SandboxResponse.text(data['timestamp']),
31
+ message: SandboxResponse.text(data['message']))
32
+ end
33
+
34
+ def self.optional_text(value)
35
+ value.nil? ? nil : SandboxResponse.text(value)
36
+ end
37
+ private_class_method :log, :optional_text
38
+ end
39
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Volcano
4
+ # Build, inspect, and export custom templates from source archives.
5
+ module SandboxDeployments
6
+ def deploy( # rubocop:disable Metrics/ParameterLists -- Preserve explicit typed facade keywords.
7
+ project_id, sandbox_id, source, name:, memory_mb: 1024, ports: [], request_id: nil
8
+ )
9
+ validate_source(source, ports)
10
+ # @type var options: sandbox_request_options
11
+ options = { operation: :deploy_sandbox, archive: source.dup.freeze,
12
+ body: { name: name, memory_mb: memory_mb, ports: ports },
13
+ request_id: SandboxRequests.request_id({ request_id: request_id }.compact) }
14
+ request = deployment_request(project_id, sandbox_id, options)
15
+ SandboxDeploymentResponse.deployment(@requests.service_scope.call(request, status: 202))
16
+ end
17
+
18
+ def deployments(project_id, sandbox_id, cursor: nil, limit: 10)
19
+ request = deployment_request(project_id, sandbox_id,
20
+ { operation: :list_sandbox_deployments, cursor: cursor, limit: limit })
21
+ SandboxDeploymentResponse.page(@requests.service_scope.call(request))
22
+ end
23
+
24
+ def deployment(project_id, sandbox_id, deployment_id)
25
+ request = deployment_request(project_id, sandbox_id, operation: :get_sandbox_deployment,
26
+ deployment_id: SandboxRequests.identifier(deployment_id))
27
+ SandboxDeploymentResponse.deployment(@requests.service_scope.call(request))
28
+ end
29
+
30
+ def source(project_id, sandbox_id, deployment_id)
31
+ request = deployment_request(project_id, sandbox_id, operation: :get_sandbox_deployment_source,
32
+ deployment_id: SandboxRequests.identifier(deployment_id))
33
+ SandboxResponse.text(@requests.service_scope.call(request)).b
34
+ end
35
+
36
+ def logs( # rubocop:disable Metrics/ParameterLists -- Preserve explicit typed facade keywords.
37
+ project_id, sandbox_id, deployment_id, region:, cursor: nil, limit: 100
38
+ )
39
+ # @type var options: sandbox_request_options
40
+ options = { operation: :get_sandbox_deployment_logs, deployment_id: SandboxRequests.identifier(deployment_id),
41
+ region: region, cursor: cursor, limit: limit }
42
+ SandboxDeploymentResponse.logs(@requests.service_scope.call(deployment_request(project_id, sandbox_id, options)))
43
+ end
44
+
45
+ def delete_template(project_id, sandbox_id)
46
+ @requests.service_scope.call(deployment_request(project_id, sandbox_id, operation: :delete_sandbox), status: 202)
47
+ nil
48
+ end
49
+
50
+ private
51
+
52
+ def deployment_request(project_id, sandbox_id, options)
53
+ options[:resource_id] = SandboxRequests.identifier(project_id)
54
+ options[:subject_id] = SandboxRequests.identifier(sandbox_id)
55
+ SandboxRequest.new(options)
56
+ end
57
+
58
+ def validate_source(source, ports)
59
+ if source.bytesize > 32 * 1024 * 1024
60
+ raise Error::ValidationError, 'Sandbox source archives are limited to 32 MiB'
61
+ end
62
+
63
+ validate_ports(ports)
64
+ end
65
+
66
+ def validate_ports(ports)
67
+ if ports.length > 16 || ports.uniq.length != ports.length
68
+ raise Error::ValidationError, 'Sandbox ports must be unique and contain at most 16 entries'
69
+ end
70
+ return if ports.all? { |port| valid_port?(port) }
71
+
72
+ raise Error::ValidationError, 'Sandbox ports must be between 1 and 65532'
73
+ end
74
+
75
+ def valid_port?(port)
76
+ port.is_a?(Integer) && port.between?(1, 65_532)
77
+ end
78
+ end
79
+ end
@@ -8,6 +8,14 @@ module Volcano
8
8
  :stderr_truncated, :session_id, :region, :duration_ms)
9
9
  # A published preset and its available memory and regions.
10
10
  SandboxPreset = Data.define(:id, :memory_mb, :regions)
11
+ # Immutable build status for a custom template version.
12
+ SandboxDeployment = Data.define(:id, :status, :created_at, :updated_at)
13
+ # A page of custom template versions.
14
+ SandboxDeploymentPage = Data.define(:data, :limit, :has_more, :next_cursor)
15
+ # One regional build message.
16
+ SandboxBuildLog = Data.define(:timestamp, :message)
17
+ # A page of regional build output.
18
+ SandboxBuildLogPage = Data.define(:data, :next_cursor)
11
19
  # Expiring HTTP access credentials are redacted from inspection.
12
20
  class SandboxAccess
13
21
  attr_reader :url, :token, :expires_at
@@ -19,6 +19,12 @@ module Volcano
19
19
  def subject_id = @options[:subject_id]
20
20
  def body = @options[:body]
21
21
  def request_id = @options[:request_id]
22
+ def deployment_id = @options[:deployment_id]
23
+ def archive = @options.fetch(:archive)
24
+ def deployment_body = @options.fetch(:body)
25
+ def cursor = @options[:cursor]
26
+ def region = @options[:region]
27
+ def limit = @options[:limit]
22
28
  def timeout = @options.fetch(:timeout, 0)
23
29
  end
24
30
 
@@ -3,6 +3,8 @@
3
3
  module Volcano
4
4
  # Create isolated sessions or execute a command to completion.
5
5
  class Sandboxes
6
+ include SandboxDeployments
7
+
6
8
  def initialize(client, transport)
7
9
  @requests = SandboxRequests.new(client, transport)
8
10
  end
@@ -79,8 +79,8 @@ module Volcano
79
79
  end
80
80
 
81
81
  def visibility_value(value)
82
- return true if value == true
83
- return false if value == false
82
+ return true if value.equal?(true)
83
+ return false if value.equal?(false)
84
84
 
85
85
  raise ArgumentError, 'public must be true or false'
86
86
  end
@@ -50,8 +50,8 @@ module Volcano
50
50
  end
51
51
 
52
52
  def storage_boolean(value)
53
- return true if value == true
54
- return false if value == false
53
+ return true if value.equal?(true)
54
+ return false if value.equal?(false)
55
55
 
56
56
  raise Error::TransportError, 'invalid storage boolean'
57
57
  end
@@ -11,7 +11,7 @@ module Volcano
11
11
  ERROR_TYPES = {
12
12
  400 => Error::ValidationError,
13
13
  401 => Error::AuthenticationError,
14
- 403 => Error::AuthenticationError,
14
+ 403 => Error::PermissionDeniedError,
15
15
  404 => Error::NotFoundError,
16
16
  409 => Error::ConflictError,
17
17
  422 => Error::ValidationError,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Volcano
4
- VERSION = '0.33.0'
4
+ VERSION = '0.35.0'
5
5
  end
data/lib/volcano.rb CHANGED
@@ -8,6 +8,8 @@ require_relative 'volcano/session'
8
8
  require_relative 'volcano/session_credentials'
9
9
  require_relative 'volcano/function_response'
10
10
  require_relative 'volcano/durable_models'
11
+ require_relative 'volcano/durable_approval_models'
12
+ require_relative 'volcano/durable_message_models'
11
13
  require_relative 'volcano/log_responses'
12
14
  require_relative 'volcano/storage_models'
13
15
  require_relative 'volcano/storage_upload_models'
@@ -44,6 +46,16 @@ require_relative 'volcano/auth_reset_password'
44
46
  require_relative 'volcano/database'
45
47
  require_relative 'volcano/function_resolution'
46
48
  require_relative 'volcano/functions'
49
+ require_relative 'volcano/durable_arguments'
50
+ require_relative 'volcano/durable_approval_responses'
51
+ require_relative 'volcano/durable_approvals'
52
+ require_relative 'volcano/durable_message_arguments'
53
+ require_relative 'volcano/durable_message_responses'
54
+ require_relative 'volcano/durable_message_catch_ups'
55
+ require_relative 'volcano/durable_message_backlog'
56
+ require_relative 'volcano/durable_message_stream'
57
+ require_relative 'volcano/durable_message_session'
58
+ require_relative 'volcano/durable_messages'
47
59
  require_relative 'volcano/durable'
48
60
  require_relative 'volcano/logs'
49
61
  require_relative 'volcano/storage_session_adapter'
@@ -69,6 +81,8 @@ require_relative 'volcano/sandbox_request'
69
81
  require_relative 'volcano/sandbox_response'
70
82
  require_relative 'volcano/sandbox_files'
71
83
  require_relative 'volcano/sandbox_session'
84
+ require_relative 'volcano/sandbox_deployment_response'
85
+ require_relative 'volcano/sandbox_deployments'
72
86
  require_relative 'volcano/sandboxes'
73
87
  require_relative 'volcano/client'
74
88
 
data/sig/core_facades.rbs CHANGED
@@ -1,6 +1,8 @@
1
1
  module Volcano
2
2
  type sdk_json = nil | bool | Integer | Float | String | Time | Array[sdk_json] | Hash[String | Symbol, sdk_json]
3
3
  type sdk_payload = Hash[String | Symbol, sdk_json]
4
+ type durable_message_filters = { ?direction: (String | Symbol)?, ?name: String?, ?after: Integer?, ?limit: Integer?, ?client_token: String?, ?project_id: String? }
5
+ type durable_approval_filters = { ?status: String?, ?function: String?, ?execution_id: String?, ?from: (Time | String)?, ?to: (Time | String)?, ?page: Integer?, ?limit: Integer? }
4
6
  type database_rows = Array[Hash[String, json_value]]
5
7
 
6
8
  class Database
@@ -67,7 +69,34 @@ module Volcano
67
69
  def invoke: (String name, ?sdk_payload payload) -> FunctionResponse
68
70
  end
69
71
 
72
+ class DurableApprovals
73
+ MAX_FUNCTION_LENGTH: Integer
74
+ MAX_COMMENT_LENGTH: Integer
75
+
76
+ def list: (String project_id, ?durable_approval_filters filters) -> DurableApprovalPage
77
+ def get: (String project_id, String approval_id) -> DurableApproval
78
+ def stats: (String project_id, ?function: String?, ?from: (Time | String)?, ?to: (Time | String)?) -> DurableApprovalStats
79
+ def approve: (String project_id, String approval_id, ?comment: String?) -> DurableApproval
80
+ def deny: (String project_id, String approval_id, ?comment: String?) -> DurableApproval
81
+ end
82
+
83
+ class DurableMessageSubscription
84
+ def unsubscribe: () -> nil
85
+ def inspect: () -> String
86
+ def to_s: () -> String
87
+ def pretty_print: (DurableExecution::_PrettyPrinter printer) -> void
88
+ end
89
+
90
+ class DurableMessages
91
+ def send_message: (String function_name, String execution_id, String name, ?sdk_json data, **String? options) -> DurableMessage
92
+ def list: (String function_name, String execution_id, ?durable_message_filters filters) -> DurableMessagePage
93
+ def subscribe: (String function_name, String execution_id, ?client_token: String?, ?project_id: String?) { (DurableMessage) -> void } -> DurableMessageSubscription
94
+ end
95
+
70
96
  class Durable
97
+ attr_reader approvals: DurableApprovals
98
+ attr_reader messages: DurableMessages
99
+
71
100
  def start: (String function_name, ?sdk_payload payload, ?execution_name: String?) -> DurableExecution
72
101
  def get: (String project_id, String function_name, String execution_id) -> DurableExecution
73
102
  def list: (String project_id, String function_name, ?status: String?, ?page: Integer?, ?limit: Integer?) -> DurableExecutionPage