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
@@ -0,0 +1,176 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Volcano
4
+ # Delivers the messages a durable execution publishes in `seq` order, once
5
+ # each, from its realtime channel and from the messages list.
6
+ #
7
+ # A live message can only be delivered once everything before it has been
8
+ # listed, or the missed ones would fall below the last delivered `seq` and be
9
+ # skipped. So live messages are held until the first catch-up starts, while
10
+ # any catch-up is reading, and while any held message still follows a gap.
11
+ # A held message is released only once the message its broadcast names as
12
+ # the one before it has been delivered.
13
+ #
14
+ # After the first catch-up, every message is delivered from the stream's own
15
+ # task, one at a time. A live one is held and released there too, since a
16
+ # reconnect stops the connection's tasks midway and would leave the block's
17
+ # work on it unfinished.
18
+ #
19
+ # The channel itself drops publications while it is not subscribed, and
20
+ # reports each resubscription, which starts a catch-up of what it dropped.
21
+ # A broadcast naming a publish not yet delivered starts one too, since the
22
+ # broadcast before it was lost or has yet to arrive, and so does a
23
+ # publication the connection had no room for or that does not read as a
24
+ # message.
25
+ class DurableMessageStream
26
+ include DurableMessageResponses
27
+
28
+ Held = Data.define(:message, :prev_seq)
29
+ ENDED = 'the durable message subscription has ended'
30
+ private_constant :Held, :ENDED
31
+
32
+ # +list_after+ reads the page of published messages after a `seq`, and
33
+ # +on_failure+ hears about a catch-up that failed in the background or a
34
+ # handler that raised after the first catch-up.
35
+ def initialize(handler, list_after, on_failure)
36
+ require 'async/semaphore'
37
+ @handler = handler
38
+ @list_after = list_after
39
+ @on_failure = on_failure
40
+ @last_seq = @catch_ups = 0
41
+ @started = @closed = false
42
+ @held = DurableMessageBacklog.new
43
+ @reads = Async::Semaphore.new(1)
44
+ @background = DurableMessageCatchUps.new(
45
+ -> { read_missed }, -> { release_live }, -> { catch_up_in_background }, on_failure
46
+ )
47
+ end
48
+
49
+ def live(data)
50
+ held = published(data) unless @closed
51
+ return unless held
52
+
53
+ waiting = behind?
54
+ @held.hold(held)
55
+ return if waiting
56
+ return catch_up_in_background if held.prev_seq > @last_seq
57
+
58
+ @background.release
59
+ end
60
+
61
+ # Reads what was missed, then releases the held messages. Raises the
62
+ # list's or the handler's error, closing the stream before anything held
63
+ # is delivered, and raises Realtime::ClosedError if the stream was closed
64
+ # meanwhile. Call it from the task that subscribes, which the catch-ups
65
+ # the stream starts itself run under. Those start once it has read, so
66
+ # one asked for while subscribing cannot call the handler before the
67
+ # read whose errors the subscriber hears.
68
+ def catch_up
69
+ begin_catch_up
70
+ read_missed(first: true)
71
+ @background.start unless @closed
72
+ raise Realtime::ClosedError, ENDED if @closed
73
+ end
74
+
75
+ # Reads back what the channel lost, as when it resubscribes or had no room
76
+ # for a publication. One catch-up waiting its turn reads whatever more are
77
+ # asked for meanwhile, so a burst of dropped publications reads once.
78
+ def catch_up_in_background
79
+ return if @background.pending?
80
+
81
+ begin_catch_up
82
+ @background.request
83
+ end
84
+
85
+ # Not stopped: the handler a catch-up is running may be what closed it.
86
+ def close
87
+ @closed = true
88
+ @held.clear
89
+ @background.close
90
+ end
91
+
92
+ private
93
+
94
+ def behind? = !@started || @catch_ups.positive? || !@held.empty?
95
+
96
+ # Delivers the held live messages that follow on from the last one
97
+ # delivered, until a catch-up is asked for. One left behind a gap is read
98
+ # back.
99
+ def release_live
100
+ while @catch_ups.zero? && (held = @held.take_following(@last_seq))
101
+ deliver(held.message, report: true)
102
+ end
103
+ catch_up_in_background unless @held.empty?
104
+ end
105
+
106
+ # Counted before the read waits its turn, so nothing is delivered live
107
+ # meanwhile. A catch-up replaces the retry that was waiting.
108
+ def begin_catch_up
109
+ @started = true
110
+ @background.cancel_retry
111
+ @catch_ups += 1
112
+ end
113
+
114
+ def read_missed(first: false)
115
+ read = false
116
+ @reads.acquire do
117
+ read_pages(report: !first)
118
+ read = true
119
+ ensure
120
+ close if first && !read
121
+ # Released by the last catch-up only, and while still counted, so a
122
+ # live message that arrives meanwhile is held behind the released ones.
123
+ release(read, report: !first) if @catch_ups == 1
124
+ end
125
+ ensure
126
+ @catch_ups -= 1
127
+ end
128
+
129
+ def read_pages(report:)
130
+ until @closed
131
+ after = @last_seq
132
+ page = @list_after.call(after)
133
+ page.messages.each { |message| deliver(message, report:) }
134
+ # A page that delivered nothing would be asked for again unchanged.
135
+ return if !page.has_more || @last_seq == after
136
+ end
137
+ end
138
+
139
+ # Delivers the held messages that follow on from the last one delivered,
140
+ # and retries the read while any is left behind a gap or the read failed.
141
+ def release(read, report:)
142
+ while (held = @held.take_following(@last_seq))
143
+ deliver(held.message, report:)
144
+ end
145
+ ensure
146
+ read && @held.empty? ? @background.caught_up : @background.retry_later
147
+ end
148
+
149
+ def deliver(message, report:)
150
+ call_handler(message, report) unless @closed || message.seq <= @last_seq
151
+ end
152
+
153
+ # Only the first catch-up raises what the handler raised, to the caller
154
+ # that subscribes. Later the stream's own task would lose it, so it is
155
+ # reported and delivery goes on.
156
+ def call_handler(message, report)
157
+ @last_seq = message.seq
158
+ @handler.call(message)
159
+ rescue StandardError => e
160
+ raise unless report
161
+
162
+ @on_failure.call(e)
163
+ end
164
+
165
+ # A publication that does not read as a message is still one the
166
+ # execution published, so the list is read for it as for a dropped one.
167
+ def published(data)
168
+ message = durable_message(data)
169
+ Held.new(message:, prev_seq: broadcast_prev_seq(data)) if message.direction == 'out'
170
+ rescue TypeError
171
+ catch_up_in_background
172
+ nil
173
+ end
174
+ end
175
+ private_constant :DurableMessageStream
176
+ end
@@ -0,0 +1,217 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Volcano
4
+ # Messages an execution publishes, delivered to the block #subscribe took
5
+ # until #unsubscribe.
6
+ class DurableMessageSubscription
7
+ # Subscribes +channel+ and delivers what was published so far. Leaves the
8
+ # channel if that fails, or the task running it is stopped. +session+ can
9
+ # end the subscription from the first read on.
10
+ def self.open(session, stream, channel, realtime)
11
+ subscription = session.end_with(new(stream, channel, realtime))
12
+ finished = false
13
+ begin
14
+ channel.subscribe
15
+ stream.catch_up
16
+ finished = true
17
+ ensure
18
+ subscription.unsubscribe unless finished
19
+ end
20
+ subscription
21
+ end
22
+
23
+ def initialize(stream, channel, realtime)
24
+ @stream = stream
25
+ @channel = channel
26
+ @realtime = realtime
27
+ channel.on('message') { |data| stream.live(data) }
28
+ end
29
+
30
+ # Stops delivering messages and leaves the execution's channel. Safe to
31
+ # repeat, and to call from the block.
32
+ def unsubscribe
33
+ @stream.close
34
+ @realtime.__send__(:remove_durable_channel, @channel)
35
+ end
36
+
37
+ # The channel holds the client token and the realtime client the session,
38
+ # so inspection shows neither.
39
+ def inspect = '#<Volcano::DurableMessageSubscription>'
40
+ alias to_s inspect
41
+
42
+ def pretty_print(printer) = printer.text(inspect)
43
+ end
44
+
45
+ # Sends to, lists, and follows the messages of durable executions.
46
+ #
47
+ # Each method addresses an execution by its function's name or id and the
48
+ # execution's id. By default they use the application route with the
49
+ # client's credential, as Durable#start does; pass +client_token:+ where that
50
+ # credential needs it, as an anon key or a user who did not start the
51
+ # execution does. Pass +project_id:+ to use the owner's project route with
52
+ # the session's platform token instead.
53
+ class DurableMessages
54
+ include DurableArguments
55
+ include DurableMessageArguments
56
+ include DurableMessageResponses
57
+
58
+ Target = Data.define(:project_id, :function_id, :execution_id, :client_token)
59
+
60
+ # Reopens the generated record to mask its credential.
61
+ class Target
62
+ # @dynamic project_id, function_id, execution_id, client_token
63
+
64
+ # The client token is a bearer credential, so inspection masks it, as
65
+ # DurableExecution#inspect does.
66
+ def inspect
67
+ fields = to_h.map do |name, value|
68
+ "#{name}=#{name == :client_token && value ? Redaction::MARKER : value.inspect}"
69
+ end
70
+ "#<data #{self.class.name} #{fields.join(', ')}>"
71
+ end
72
+
73
+ def to_s = inspect
74
+
75
+ def pretty_print(printer) = printer.text(inspect)
76
+ end
77
+ private_constant :Target
78
+
79
+ SEND_OPTIONS = %i[idempotency_key client_token project_id].freeze
80
+ LIST_OPTIONS = %i[direction name after limit client_token project_id].freeze
81
+ private_constant :SEND_OPTIONS, :LIST_OPTIONS
82
+
83
+ def initialize(client, transport, realtime)
84
+ @client = client
85
+ @transport = transport
86
+ @realtime = realtime
87
+ end
88
+
89
+ # Sends a message to a running execution, queued until a wait for its
90
+ # +name+ takes it. +data+ is any JSON value. The returned message's
91
+ # +status+ is +delivered+ when a wait took it at once, +delivering+ while
92
+ # that handover is still being confirmed, and +queued+ otherwise. Sending
93
+ # again with an +idempotency_key:+ the same sender has used on the
94
+ # execution returns the message the first send stored, in its current
95
+ # status, and sends nothing. Sending to an execution that has ended raises
96
+ # Error::ConflictError, whose +code+ is +execution_not_running+, and to one
97
+ # holding 100 messages no wait has taken, +too_many_queued_messages+.
98
+ def send_message(function_name, execution_id, name, data = nil, **options)
99
+ target = message_target(function_name, execution_id, known_options(options, SEND_OPTIONS))
100
+ name = message_name(name)
101
+ key = bounded_text(options[:idempotency_key], 'idempotency_key', MAX_IDEMPOTENCY_KEY_LENGTH)
102
+ response = Transport.invoke do
103
+ @transport.send_durable_message(
104
+ authorization: authorization(target), target: target, name: name,
105
+ data: ImmutableRequestValue.capture(data), idempotency_key: key
106
+ )
107
+ end
108
+ durable_message(Transport.body(response, response.status == 200 ? 200 : 201))
109
+ end
110
+
111
+ # Lists an execution's messages in both directions, oldest first, filtered
112
+ # by any of +direction+ (+in+ or +out+), +name+, +after+ (a +seq+), and
113
+ # +limit+ (1 to 500), given as keywords with +client_token+ and
114
+ # +project_id+. Read the next page with +after+ set to the last message's
115
+ # +seq+.
116
+ def list(function_name, execution_id, filters = {})
117
+ filters = list_filters(filters)
118
+ target = message_target(function_name, execution_id, filters)
119
+ durable_message_page(Transport.body(list_messages(target, list_query(filters)), 200))
120
+ end
121
+
122
+ # Delivers every message the execution publishes to the block, in order,
123
+ # once each, and one call at a time. Messages it published before the
124
+ # call come first, and after a reconnect the ones published meanwhile are
125
+ # read back before live delivery resumes, over the owner's route when
126
+ # +project_id+ is given. Returns a
127
+ # DurableMessageSubscription once the messages published so far are
128
+ # delivered; a block that raises meanwhile ends the subscription and
129
+ # raises here, and a subscription ended meanwhile raises
130
+ # Realtime::ClosedError.
131
+ #
132
+ # Follows the execution on the client's realtime connection, so call it
133
+ # inside that connection's Async reactor, with a signed-in session. A
134
+ # connection an earlier session opened is closed, raising
135
+ # Error::SessionChangedError. A catch-up that fails in the background is
136
+ # reported to Realtime#on_error and retried, backing off to every 30
137
+ # seconds; a block that raises later is reported there too, and delivery
138
+ # goes on. Realtime#remove_all_channels and Realtime#disconnect end the
139
+ # subscription, and so does signing out, signing in again, or setting
140
+ # another session, though not a token refresh, and a reconnect the server
141
+ # refuses to restore the subscription on for good, which is reported to
142
+ # Realtime#on_error once. Raises
143
+ # Realtime::DuplicateSubscriptionError when this client already follows the
144
+ # execution.
145
+ def subscribe(function_name, execution_id, client_token: nil, project_id: nil, &handler)
146
+ raise ArgumentError, 'subscribe requires a block' unless block_given?
147
+
148
+ target = message_target(function_name, execution_id, { client_token: client_token, project_id: project_id })
149
+ session = DurableMessageSession.new(@realtime)
150
+ stream = session.stream(handler, reader(target), failure_reporter)
151
+ DurableMessageSubscription.open(session, stream, durable_channel(target, session), @realtime)
152
+ end
153
+
154
+ private
155
+
156
+ def durable_channel(target, session)
157
+ @realtime.__send__(:durable_channel, target.execution_id, target.client_token, session) ||
158
+ raise(Realtime::DuplicateSubscriptionError, 'already subscribed to this execution; unsubscribe first')
159
+ end
160
+
161
+ # Reads off the reactor, which the transport would block along with the
162
+ # connection's reads and heartbeats.
163
+ def reader(target)
164
+ lambda do |after|
165
+ authorization = authorization(target)
166
+ response = @realtime.__send__(:blocking) do
167
+ list_messages(target, { direction: 'out', after: after }, authorization)
168
+ end
169
+ durable_message_page(Transport.body(response, 200))
170
+ end
171
+ end
172
+
173
+ def list_messages(target, query, authorization = authorization(target))
174
+ Transport.invoke do
175
+ @transport.list_durable_messages(authorization: authorization, target: target, query: query)
176
+ end
177
+ end
178
+
179
+ def failure_reporter
180
+ ->(error) { @realtime.__send__(:report_channel_error, error) }
181
+ end
182
+
183
+ def authorization(target)
184
+ target.project_id ? @client.session_token : @client.function_token
185
+ end
186
+
187
+ def message_target(function_name, execution_id, options)
188
+ project_id = options[:project_id]
189
+ Target.new(
190
+ project_id: project_id.nil? ? nil : identifier(project_id, 'project_id'),
191
+ function_id: identifier(function_name, 'function_name'),
192
+ execution_id: identifier(execution_id, 'execution_id'),
193
+ client_token: bounded_text(options[:client_token], 'client_token', MAX_CLIENT_TOKEN_LENGTH)
194
+ )
195
+ end
196
+
197
+ def list_filters(filters)
198
+ raise TypeError, 'filters must be a Hash' unless filters.is_a?(Hash)
199
+
200
+ known_options(filters, LIST_OPTIONS)
201
+ end
202
+
203
+ def list_query(filters)
204
+ name = filters[:name]
205
+ {
206
+ direction: direction_filter(filters[:direction]), name: name.nil? ? nil : message_name(name),
207
+ after: after_argument(filters[:after]), limit: limit_argument(filters[:limit])
208
+ }.compact
209
+ end
210
+
211
+ def direction_filter(value)
212
+ return if value.nil?
213
+
214
+ DIRECTIONS.find { |direction| direction == value.to_s } || raise(ArgumentError, "direction must be 'in' or 'out'")
215
+ end
216
+ end
217
+ end
@@ -5,7 +5,7 @@ require_relative 'immutable_request_value'
5
5
 
6
6
  module Volcano
7
7
  DURABLE_EXECUTION_ATTRIBUTES = %i[
8
- id function_id name status region created_at result result_expired error completed_at
8
+ id function_id name status region created_at result result_expired error completed_at client_token
9
9
  ].freeze
10
10
  private_constant :DURABLE_EXECUTION_ATTRIBUTES
11
11
 
@@ -35,6 +35,10 @@ module Volcano
35
35
  # once its retention lapses. That is not the same as a function that returned
36
36
  # nothing, so read `result_expired` before concluding anything from a missing
37
37
  # result.
38
+ #
39
+ # `client_token` lets a browser, or a user who did not start the execution,
40
+ # reach its messages. Only the start that created the execution returns it;
41
+ # a repeat under the same name and every read leave it nil.
38
42
  DurableExecution = Data.define(*DURABLE_EXECUTION_ATTRIBUTES)
39
43
 
40
44
  # Reopens the generated record for checked initialization.
@@ -58,6 +62,17 @@ module Volcano
58
62
  DURABLE_TERMINAL_STATUSES.include?(status)
59
63
  end
60
64
 
65
+ # The client token is a bearer credential, so inspection masks it.
66
+ def inspect
67
+ fields = to_h.map do |name, value|
68
+ "#{name}=#{name == :client_token && value ? Redaction::MARKER : value.inspect}"
69
+ end
70
+ "#<data #{self.class.name} #{fields.join(', ')}>"
71
+ end
72
+ alias to_s inspect
73
+
74
+ def pretty_print(printer) = printer.text(inspect)
75
+
61
76
  private
62
77
 
63
78
  # `result` is the function's own JSON, so it is frozen all the way down.
@@ -92,15 +107,29 @@ module Volcano
92
107
 
93
108
  def durable_execution(payload)
94
109
  values = execution_payload(payload)
110
+ result, result_expired, error, completed_at = execution_outcome(values)
95
111
  DurableExecution.new(
96
112
  id: execution_text(values, 'id'), function_id: execution_text(values, 'function_id'),
97
113
  name: execution_text(values, 'name'), status: execution_text(values, 'status'),
98
114
  region: execution_text(values, 'region'), created_at: execution_time(values),
99
- result: execution_result(values['result']), result_expired: execution_expired(values['result_expired']),
100
- error: execution_error(values['error']), completed_at: parse_time(values['completed_at'])
115
+ result: result, result_expired: result_expired, error: error, completed_at: completed_at,
116
+ client_token: client_token(values['client_token'])
101
117
  )
102
118
  end
103
119
 
120
+ def execution_outcome(values)
121
+ [
122
+ execution_result(values['result']), execution_expired(values['result_expired']),
123
+ execution_error(values['error']), parse_time(values['completed_at'])
124
+ ]
125
+ end
126
+
127
+ def client_token(value)
128
+ return value if value.nil? || (value.is_a?(String) && !value.empty?)
129
+
130
+ raise TypeError, INCOMPLETE_EXECUTION
131
+ end
132
+
104
133
  def execution_payload(payload)
105
134
  raise TypeError, INCOMPLETE_EXECUTION unless payload.is_a?(Hash)
106
135
 
@@ -165,10 +194,6 @@ module Volcano
165
194
  value
166
195
  end
167
196
 
168
- def present_string?(value)
169
- value.is_a?(String) && !value.strip.empty?
170
- end
171
-
172
197
  def parse_time(value)
173
198
  return Time.iso8601(value) if value.is_a?(String)
174
199
  return value if value.nil? || value.is_a?(Time)
@@ -16,6 +16,11 @@ module Volcano
16
16
  end
17
17
 
18
18
  class AuthenticationError < VolcanoError; end
19
+
20
+ # Raised for HTTP 403: the credential is valid but may not do this. It
21
+ # remains an AuthenticationError so existing handlers still catch it.
22
+ class PermissionDeniedError < AuthenticationError; end
23
+
19
24
  class ValidationError < VolcanoError; end
20
25
  class NotFoundError < VolcanoError; end
21
26
  class ConflictError < VolcanoError; end
@@ -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
@@ -72,7 +72,7 @@ module Volcano::Generated
72
72
  return_type = opts[:debug_return_type] || 'AnonKey'
73
73
 
74
74
  # auth_names
75
- auth_names = opts[:debug_auth_names] || ['UserToken']
75
+ auth_names = opts[:debug_auth_names] || ['UserToken', 'ProjectAccessToken']
76
76
 
77
77
  new_options = opts.merge(
78
78
  :operation => :"AnonKeysApi.create_anon_key",
@@ -141,7 +141,7 @@ module Volcano::Generated
141
141
  return_type = opts[:debug_return_type] || 'AnonKey'
142
142
 
143
143
  # auth_names
144
- auth_names = opts[:debug_auth_names] || ['UserToken']
144
+ auth_names = opts[:debug_auth_names] || ['UserToken', 'ProjectAccessToken']
145
145
 
146
146
  new_options = opts.merge(
147
147
  :operation => :"AnonKeysApi.get_anon_key",
@@ -242,7 +242,7 @@ module Volcano::Generated
242
242
  return_type = opts[:debug_return_type] || 'ListAnonKeys200Response'
243
243
 
244
244
  # auth_names
245
- auth_names = opts[:debug_auth_names] || ['UserToken']
245
+ auth_names = opts[:debug_auth_names] || ['UserToken', 'ProjectAccessToken']
246
246
 
247
247
  new_options = opts.merge(
248
248
  :operation => :"AnonKeysApi.list_anon_keys",
@@ -311,7 +311,7 @@ module Volcano::Generated
311
311
  return_type = opts[:debug_return_type] || 'AnonKey'
312
312
 
313
313
  # auth_names
314
- auth_names = opts[:debug_auth_names] || ['UserToken']
314
+ auth_names = opts[:debug_auth_names] || ['UserToken', 'ProjectAccessToken']
315
315
 
316
316
  new_options = opts.merge(
317
317
  :operation => :"AnonKeysApi.regenerate_anon_key",
@@ -380,7 +380,7 @@ module Volcano::Generated
380
380
  return_type = opts[:debug_return_type]
381
381
 
382
382
  # auth_names
383
- auth_names = opts[:debug_auth_names] || ['UserToken']
383
+ auth_names = opts[:debug_auth_names] || ['UserToken', 'ProjectAccessToken']
384
384
 
385
385
  new_options = opts.merge(
386
386
  :operation => :"AnonKeysApi.revoke_anon_key",
@@ -449,7 +449,7 @@ module Volcano::Generated
449
449
  return_type = opts[:debug_return_type] || 'AnonKey'
450
450
 
451
451
  # auth_names
452
- auth_names = opts[:debug_auth_names] || ['UserToken']
452
+ auth_names = opts[:debug_auth_names] || ['UserToken', 'ProjectAccessToken']
453
453
 
454
454
  new_options = opts.merge(
455
455
  :operation => :"AnonKeysApi.set_default_anon_key",