volcano-sdk 0.5.2

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 (458) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +203 -0
  3. data/README.md +758 -0
  4. data/lib/volcano/auth.rb +113 -0
  5. data/lib/volcano/auth_anonymous.rb +51 -0
  6. data/lib/volcano/auth_confirm_email.rb +19 -0
  7. data/lib/volcano/auth_email_change.rb +75 -0
  8. data/lib/volcano/auth_get_user.rb +110 -0
  9. data/lib/volcano/auth_hosted.rb +43 -0
  10. data/lib/volcano/auth_oauth.rb +102 -0
  11. data/lib/volcano/auth_oauth_api.rb +51 -0
  12. data/lib/volcano/auth_oauth_sign_in.rb +61 -0
  13. data/lib/volcano/auth_oauth_token.rb +51 -0
  14. data/lib/volcano/auth_refresh.rb +117 -0
  15. data/lib/volcano/auth_resend_confirmation.rb +19 -0
  16. data/lib/volcano/auth_reset_password.rb +23 -0
  17. data/lib/volcano/auth_reset_password_for_email.rb +19 -0
  18. data/lib/volcano/auth_sessions.rb +139 -0
  19. data/lib/volcano/auth_sign_up.rb +40 -0
  20. data/lib/volcano/auth_state.rb +148 -0
  21. data/lib/volcano/auth_update_user.rb +32 -0
  22. data/lib/volcano/client.rb +121 -0
  23. data/lib/volcano/connection_string.rb +85 -0
  24. data/lib/volcano/database.rb +243 -0
  25. data/lib/volcano/errors.rb +38 -0
  26. data/lib/volcano/function_resolution.rb +120 -0
  27. data/lib/volcano/function_response.rb +26 -0
  28. data/lib/volcano/functions.rb +136 -0
  29. data/lib/volcano/generated/lib/volcano-generated/api/anon_keys_api.rb +471 -0
  30. data/lib/volcano/generated/lib/volcano-generated/api/auth_admin_api.rb +739 -0
  31. data/lib/volcano/generated/lib/volcano-generated/api/auth_configuration_api.rb +1798 -0
  32. data/lib/volcano/generated/lib/volcano-generated/api/authentication_api.rb +1523 -0
  33. data/lib/volcano/generated/lib/volcano-generated/api/database_backups_api.rb +791 -0
  34. data/lib/volcano/generated/lib/volcano-generated/api/database_branches_api.rb +665 -0
  35. data/lib/volcano/generated/lib/volcano-generated/api/database_queries_api.rb +905 -0
  36. data/lib/volcano/generated/lib/volcano-generated/api/databases_api.rb +819 -0
  37. data/lib/volcano/generated/lib/volcano-generated/api/frontends_api.rb +913 -0
  38. data/lib/volcano/generated/lib/volcano-generated/api/functions_api.rb +1355 -0
  39. data/lib/volcano/generated/lib/volcano-generated/api/git_connections_api.rb +1012 -0
  40. data/lib/volcano/generated/lib/volcano-generated/api/locks_api.rb +480 -0
  41. data/lib/volcano/generated/lib/volcano-generated/api/logs_api.rb +250 -0
  42. data/lib/volcano/generated/lib/volcano-generated/api/o_auth_authentication_api.rb +962 -0
  43. data/lib/volcano/generated/lib/volcano-generated/api/o_auth_configuration_api.rb +452 -0
  44. data/lib/volcano/generated/lib/volcano-generated/api/project_imports_api.rb +599 -0
  45. data/lib/volcano/generated/lib/volcano-generated/api/projects_api.rb +1862 -0
  46. data/lib/volcano/generated/lib/volcano-generated/api/realtime_api.rb +222 -0
  47. data/lib/volcano/generated/lib/volcano-generated/api/service_keys_api.rb +402 -0
  48. data/lib/volcano/generated/lib/volcano-generated/api/storage_admin_api.rb +189 -0
  49. data/lib/volcano/generated/lib/volcano-generated/api/storage_buckets_api.rb +437 -0
  50. data/lib/volcano/generated/lib/volcano-generated/api/storage_objects_api.rb +857 -0
  51. data/lib/volcano/generated/lib/volcano-generated/api/storage_policies_api.rb +277 -0
  52. data/lib/volcano/generated/lib/volcano-generated/api/system_api.rb +79 -0
  53. data/lib/volcano/generated/lib/volcano-generated/api/variables_api.rb +454 -0
  54. data/lib/volcano/generated/lib/volcano-generated/api_client.rb +393 -0
  55. data/lib/volcano/generated/lib/volcano-generated/api_error.rb +58 -0
  56. data/lib/volcano/generated/lib/volcano-generated/api_model_base.rb +88 -0
  57. data/lib/volcano/generated/lib/volcano-generated/configuration.rb +337 -0
  58. data/lib/volcano/generated/lib/volcano-generated/models/anon_key.rb +257 -0
  59. data/lib/volcano/generated/lib/volcano-generated/models/auth_config.rb +728 -0
  60. data/lib/volcano/generated/lib/volcano-generated/models/auth_confirm_email200_response.rb +181 -0
  61. data/lib/volcano/generated/lib/volcano-generated/models/auth_confirm_email_change200_response.rb +156 -0
  62. data/lib/volcano/generated/lib/volcano-generated/models/auth_confirm_email_change_request.rb +164 -0
  63. data/lib/volcano/generated/lib/volcano-generated/models/auth_confirm_email_request.rb +165 -0
  64. data/lib/volcano/generated/lib/volcano-generated/models/auth_convert_anonymous200_response.rb +147 -0
  65. data/lib/volcano/generated/lib/volcano-generated/models/auth_device_authorize_request.rb +165 -0
  66. data/lib/volcano/generated/lib/volcano-generated/models/auth_device_token_request.rb +240 -0
  67. data/lib/volcano/generated/lib/volcano-generated/models/auth_device_verify200_response.rb +156 -0
  68. data/lib/volcano/generated/lib/volcano-generated/models/auth_device_verify_request.rb +209 -0
  69. data/lib/volcano/generated/lib/volcano-generated/models/auth_forgot_password200_response.rb +147 -0
  70. data/lib/volcano/generated/lib/volcano-generated/models/auth_forgot_password_request.rb +164 -0
  71. data/lib/volcano/generated/lib/volcano-generated/models/auth_get_my_sessions200_response.rb +231 -0
  72. data/lib/volcano/generated/lib/volcano-generated/models/auth_hosted_page.rb +225 -0
  73. data/lib/volcano/generated/lib/volcano-generated/models/auth_hosted_page_defaults.rb +193 -0
  74. data/lib/volcano/generated/lib/volcano-generated/models/auth_hosted_page_response.rb +203 -0
  75. data/lib/volcano/generated/lib/volcano-generated/models/auth_hosted_page_runtime.rb +220 -0
  76. data/lib/volcano/generated/lib/volcano-generated/models/auth_identities_response.rb +166 -0
  77. data/lib/volcano/generated/lib/volcano-generated/models/auth_identity.rb +273 -0
  78. data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_interval.rb +41 -0
  79. data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_response.rb +270 -0
  80. data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_series_point.rb +263 -0
  81. data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_summary.rb +210 -0
  82. data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_window.rb +238 -0
  83. data/lib/volcano/generated/lib/volcano-generated/models/auth_link_o_auth_provider200_response.rb +147 -0
  84. data/lib/volcano/generated/lib/volcano-generated/models/auth_list_o_auth_providers200_response.rb +149 -0
  85. data/lib/volcano/generated/lib/volcano-generated/models/auth_list_o_auth_providers200_response_providers_inner.rb +165 -0
  86. data/lib/volcano/generated/lib/volcano-generated/models/auth_method_summary.rb +370 -0
  87. data/lib/volcano/generated/lib/volcano-generated/models/auth_methods_response.rb +166 -0
  88. data/lib/volcano/generated/lib/volcano-generated/models/auth_o_auth_exchange_request.rb +190 -0
  89. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_appearance_defaults.rb +212 -0
  90. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_appearance_options.rb +306 -0
  91. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_appearance_response.rb +299 -0
  92. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_density.rb +41 -0
  93. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_font.rb +43 -0
  94. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_layout.rb +41 -0
  95. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_radius.rb +42 -0
  96. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_scale.rb +41 -0
  97. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_theme.rb +318 -0
  98. data/lib/volcano/generated/lib/volcano-generated/models/auth_page_theme_colors.rb +323 -0
  99. data/lib/volcano/generated/lib/volcano-generated/models/auth_password_policy.rb +409 -0
  100. data/lib/volcano/generated/lib/volcano-generated/models/auth_platform_exchange_request.rb +164 -0
  101. data/lib/volcano/generated/lib/volcano-generated/models/auth_refresh_request.rb +190 -0
  102. data/lib/volcano/generated/lib/volcano-generated/models/auth_request_email_change200_response.rb +156 -0
  103. data/lib/volcano/generated/lib/volcano-generated/models/auth_request_email_change_request.rb +164 -0
  104. data/lib/volcano/generated/lib/volcano-generated/models/auth_reset_password200_response.rb +147 -0
  105. data/lib/volcano/generated/lib/volcano-generated/models/auth_reset_password_request.rb +192 -0
  106. data/lib/volcano/generated/lib/volcano-generated/models/auth_session.rb +393 -0
  107. data/lib/volcano/generated/lib/volcano-generated/models/auth_signin_request.rb +233 -0
  108. data/lib/volcano/generated/lib/volcano-generated/models/auth_signup_anonymous_request.rb +150 -0
  109. data/lib/volcano/generated/lib/volcano-generated/models/auth_signup_request.rb +202 -0
  110. data/lib/volcano/generated/lib/volcano-generated/models/auth_signup_response.rb +193 -0
  111. data/lib/volcano/generated/lib/volcano-generated/models/auth_token_response.rb +254 -0
  112. data/lib/volcano/generated/lib/volcano-generated/models/auth_update_user_request.rb +160 -0
  113. data/lib/volcano/generated/lib/volcano-generated/models/auth_user.rb +330 -0
  114. data/lib/volcano/generated/lib/volcano-generated/models/ban_auth_user_request.rb +148 -0
  115. data/lib/volcano/generated/lib/volcano-generated/models/ban_user_response.rb +278 -0
  116. data/lib/volcano/generated/lib/volcano-generated/models/batch_function_deploy_failure.rb +242 -0
  117. data/lib/volcano/generated/lib/volcano-generated/models/batch_function_deploy_response.rb +205 -0
  118. data/lib/volcano/generated/lib/volcano-generated/models/call_o_auth_provider_api200_response.rb +272 -0
  119. data/lib/volcano/generated/lib/volcano-generated/models/call_o_auth_provider_api_request.rb +223 -0
  120. data/lib/volcano/generated/lib/volcano-generated/models/complete_upload_session_response.rb +148 -0
  121. data/lib/volcano/generated/lib/volcano-generated/models/configure_auth_methods_request.rb +167 -0
  122. data/lib/volcano/generated/lib/volcano-generated/models/configure_auth_methods_request_oauth_providers_inner.rb +156 -0
  123. data/lib/volcano/generated/lib/volcano-generated/models/connect_project_git_request.rb +250 -0
  124. data/lib/volcano/generated/lib/volcano-generated/models/create_anon_key_request.rb +228 -0
  125. data/lib/volcano/generated/lib/volcano-generated/models/create_database_backup_request.rb +185 -0
  126. data/lib/volcano/generated/lib/volcano-generated/models/create_database_branch_request.rb +223 -0
  127. data/lib/volcano/generated/lib/volcano-generated/models/create_database_request.rb +290 -0
  128. data/lib/volcano/generated/lib/volcano-generated/models/create_database_restore_request.rb +187 -0
  129. data/lib/volcano/generated/lib/volcano-generated/models/create_email_template_request.rb +270 -0
  130. data/lib/volcano/generated/lib/volcano-generated/models/create_frontend_custom_domain_request.rb +191 -0
  131. data/lib/volcano/generated/lib/volcano-generated/models/create_function_scheduler_request.rb +252 -0
  132. data/lib/volcano/generated/lib/volcano-generated/models/create_o_auth_config_request.rb +230 -0
  133. data/lib/volcano/generated/lib/volcano-generated/models/create_project_request.rb +219 -0
  134. data/lib/volcano/generated/lib/volcano-generated/models/create_service_key_request.rb +206 -0
  135. data/lib/volcano/generated/lib/volcano-generated/models/create_storage_bucket_request.rb +216 -0
  136. data/lib/volcano/generated/lib/volcano-generated/models/create_storage_policy_request.rb +243 -0
  137. data/lib/volcano/generated/lib/volcano-generated/models/create_upload_session_request.rb +276 -0
  138. data/lib/volcano/generated/lib/volcano-generated/models/create_upload_session_response.rb +179 -0
  139. data/lib/volcano/generated/lib/volcano-generated/models/create_variable_request.rb +219 -0
  140. data/lib/volcano/generated/lib/volcano-generated/models/database.rb +442 -0
  141. data/lib/volcano/generated/lib/volcano-generated/models/database_backup.rb +283 -0
  142. data/lib/volcano/generated/lib/volcano-generated/models/database_backup_list.rb +175 -0
  143. data/lib/volcano/generated/lib/volcano-generated/models/database_backup_schedule.rb +167 -0
  144. data/lib/volcano/generated/lib/volcano-generated/models/database_backup_schedule_entry.rb +301 -0
  145. data/lib/volcano/generated/lib/volcano-generated/models/database_branch.rb +480 -0
  146. data/lib/volcano/generated/lib/volcano-generated/models/database_branch_list.rb +166 -0
  147. data/lib/volcano/generated/lib/volcano-generated/models/database_branch_storage.rb +228 -0
  148. data/lib/volcano/generated/lib/volcano-generated/models/database_delete_request.rb +203 -0
  149. data/lib/volcano/generated/lib/volcano-generated/models/database_insert_request.rb +194 -0
  150. data/lib/volcano/generated/lib/volcano-generated/models/database_query_filter.rb +242 -0
  151. data/lib/volcano/generated/lib/volcano-generated/models/database_query_filter_value.rb +106 -0
  152. data/lib/volcano/generated/lib/volcano-generated/models/database_query_filter_value_one_of_inner.rb +105 -0
  153. data/lib/volcano/generated/lib/volcano-generated/models/database_query_order.rb +187 -0
  154. data/lib/volcano/generated/lib/volcano-generated/models/database_query_performance_database.rb +190 -0
  155. data/lib/volcano/generated/lib/volcano-generated/models/database_query_performance_item.rb +411 -0
  156. data/lib/volcano/generated/lib/volcano-generated/models/database_query_performance_response.rb +166 -0
  157. data/lib/volcano/generated/lib/volcano-generated/models/database_query_result.rb +161 -0
  158. data/lib/volcano/generated/lib/volcano-generated/models/database_restore.rb +388 -0
  159. data/lib/volcano/generated/lib/volcano-generated/models/database_restore_list.rb +166 -0
  160. data/lib/volcano/generated/lib/volcano-generated/models/database_restore_window.rb +159 -0
  161. data/lib/volcano/generated/lib/volcano-generated/models/database_select_request.rb +268 -0
  162. data/lib/volcano/generated/lib/volcano-generated/models/database_stats.rb +447 -0
  163. data/lib/volcano/generated/lib/volcano-generated/models/database_update_request.rb +232 -0
  164. data/lib/volcano/generated/lib/volcano-generated/models/delete_database202_response.rb +156 -0
  165. data/lib/volcano/generated/lib/volcano-generated/models/delete_database_backup200_response.rb +190 -0
  166. data/lib/volcano/generated/lib/volcano-generated/models/delete_database_branch202_response.rb +190 -0
  167. data/lib/volcano/generated/lib/volcano-generated/models/deployment_phase.rb +263 -0
  168. data/lib/volcano/generated/lib/volcano-generated/models/deployment_progress.rb +324 -0
  169. data/lib/volcano/generated/lib/volcano-generated/models/deployment_reference.rb +165 -0
  170. data/lib/volcano/generated/lib/volcano-generated/models/device_authorization_response.rb +296 -0
  171. data/lib/volcano/generated/lib/volcano-generated/models/email_template.rb +305 -0
  172. data/lib/volcano/generated/lib/volcano-generated/models/error.rb +174 -0
  173. data/lib/volcano/generated/lib/volcano-generated/models/export_project_source_request.rb +174 -0
  174. data/lib/volcano/generated/lib/volcano-generated/models/frontend.rb +504 -0
  175. data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_response.rb +370 -0
  176. data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_tls_config.rb +253 -0
  177. data/lib/volcano/generated/lib/volcano-generated/models/frontend_deployment.rb +487 -0
  178. data/lib/volcano/generated/lib/volcano-generated/models/frontend_domain_routing_record.rb +240 -0
  179. data/lib/volcano/generated/lib/volcano-generated/models/frontend_domain_verification_record.rb +216 -0
  180. data/lib/volcano/generated/lib/volcano-generated/models/frontend_usage_daily_entry.rb +247 -0
  181. data/lib/volcano/generated/lib/volcano-generated/models/frontend_usage_data.rb +204 -0
  182. data/lib/volcano/generated/lib/volcano-generated/models/frontend_usage_history_response.rb +298 -0
  183. data/lib/volcano/generated/lib/volcano-generated/models/function.rb +565 -0
  184. data/lib/volcano/generated/lib/volcano-generated/models/function_deployment.rb +477 -0
  185. data/lib/volcano/generated/lib/volcano-generated/models/function_http_auth_mode.rb +40 -0
  186. data/lib/volcano/generated/lib/volcano-generated/models/function_invocation_mode.rb +40 -0
  187. data/lib/volcano/generated/lib/volcano-generated/models/function_invocation_request.rb +150 -0
  188. data/lib/volcano/generated/lib/volcano-generated/models/function_region.rb +219 -0
  189. data/lib/volcano/generated/lib/volcano-generated/models/function_runtime_deployment.rb +250 -0
  190. data/lib/volcano/generated/lib/volcano-generated/models/function_runtime_option.rb +245 -0
  191. data/lib/volcano/generated/lib/volcano-generated/models/function_runtimes_response.rb +166 -0
  192. data/lib/volcano/generated/lib/volcano-generated/models/function_scheduler.rb +330 -0
  193. data/lib/volcano/generated/lib/volcano-generated/models/function_scheduler_list_response.rb +290 -0
  194. data/lib/volcano/generated/lib/volcano-generated/models/get_auth_methods200_response.rb +178 -0
  195. data/lib/volcano/generated/lib/volcano-generated/models/get_auth_methods200_response_email_password.rb +165 -0
  196. data/lib/volcano/generated/lib/volcano-generated/models/get_auth_methods200_response_oauth_providers_inner.rb +194 -0
  197. data/lib/volcano/generated/lib/volcano-generated/models/git_connect_start_response.rb +164 -0
  198. data/lib/volcano/generated/lib/volcano-generated/models/git_connection.rb +346 -0
  199. data/lib/volcano/generated/lib/volcano-generated/models/git_connections_response.rb +166 -0
  200. data/lib/volcano/generated/lib/volcano-generated/models/git_installation.rb +242 -0
  201. data/lib/volcano/generated/lib/volcano-generated/models/git_installations_response.rb +166 -0
  202. data/lib/volcano/generated/lib/volcano-generated/models/git_repositories_response.rb +166 -0
  203. data/lib/volcano/generated/lib/volcano-generated/models/git_repository.rb +270 -0
  204. data/lib/volcano/generated/lib/volcano-generated/models/hosted_auth_page_type.rb +44 -0
  205. data/lib/volcano/generated/lib/volcano-generated/models/hosted_login_email_check_request.rb +164 -0
  206. data/lib/volcano/generated/lib/volcano-generated/models/hosted_login_email_check_response.rb +147 -0
  207. data/lib/volcano/generated/lib/volcano-generated/models/hosted_login_options_response.rb +185 -0
  208. data/lib/volcano/generated/lib/volcano-generated/models/hosted_renderable_page_type.rb +43 -0
  209. data/lib/volcano/generated/lib/volcano-generated/models/import_connect_start_response.rb +164 -0
  210. data/lib/volcano/generated/lib/volcano-generated/models/import_connection.rb +432 -0
  211. data/lib/volcano/generated/lib/volcano-generated/models/import_connections_response.rb +166 -0
  212. data/lib/volcano/generated/lib/volcano-generated/models/import_provider.rb +39 -0
  213. data/lib/volcano/generated/lib/volcano-generated/models/import_source.rb +242 -0
  214. data/lib/volcano/generated/lib/volcano-generated/models/import_sources_response.rb +166 -0
  215. data/lib/volcano/generated/lib/volcano-generated/models/list_anon_keys200_response.rb +189 -0
  216. data/lib/volcano/generated/lib/volcano-generated/models/list_available_o_auth_providers200_response.rb +149 -0
  217. data/lib/volcano/generated/lib/volcano-generated/models/list_available_o_auth_providers200_response_providers_inner.rb +167 -0
  218. data/lib/volcano/generated/lib/volcano-generated/models/list_database_regions200_response_inner.rb +158 -0
  219. data/lib/volcano/generated/lib/volcano-generated/models/list_email_templates200_response.rb +149 -0
  220. data/lib/volcano/generated/lib/volcano-generated/models/list_o_auth_configs200_response.rb +149 -0
  221. data/lib/volcano/generated/lib/volcano-generated/models/list_postgres_versions200_response_inner.rb +178 -0
  222. data/lib/volcano/generated/lib/volcano-generated/models/list_storage_buckets200_response.rb +104 -0
  223. data/lib/volcano/generated/lib/volcano-generated/models/list_storage_objects_admin200_response.rb +205 -0
  224. data/lib/volcano/generated/lib/volcano-generated/models/live_log_level.rb +44 -0
  225. data/lib/volcano/generated/lib/volcano-generated/models/log_activity_bucket.rb +246 -0
  226. data/lib/volcano/generated/lib/volcano-generated/models/log_activity_bucket_counts.rb +226 -0
  227. data/lib/volcano/generated/lib/volcano-generated/models/log_activity_request.rb +252 -0
  228. data/lib/volcano/generated/lib/volcano-generated/models/log_activity_response.rb +194 -0
  229. data/lib/volcano/generated/lib/volcano-generated/models/log_database_request_resource.rb +221 -0
  230. data/lib/volcano/generated/lib/volcano-generated/models/log_deployment.rb +210 -0
  231. data/lib/volcano/generated/lib/volcano-generated/models/log_deployment_request_selector.rb +170 -0
  232. data/lib/volcano/generated/lib/volcano-generated/models/log_event.rb +257 -0
  233. data/lib/volcano/generated/lib/volcano-generated/models/log_event_body.rb +108 -0
  234. data/lib/volcano/generated/lib/volcano-generated/models/log_frontend_request_resource.rb +230 -0
  235. data/lib/volcano/generated/lib/volcano-generated/models/log_function_request_resource.rb +230 -0
  236. data/lib/volcano/generated/lib/volcano-generated/models/log_request_resource.rb +58 -0
  237. data/lib/volcano/generated/lib/volcano-generated/models/log_resource.rb +227 -0
  238. data/lib/volcano/generated/lib/volcano-generated/models/log_search_event.rb +297 -0
  239. data/lib/volcano/generated/lib/volcano-generated/models/log_search_request.rb +264 -0
  240. data/lib/volcano/generated/lib/volcano-generated/models/log_search_response.rb +232 -0
  241. data/lib/volcano/generated/lib/volcano-generated/models/log_stream_request.rb +244 -0
  242. data/lib/volcano/generated/lib/volcano-generated/models/metric_usage_data.rb +278 -0
  243. data/lib/volcano/generated/lib/volcano-generated/models/o_auth_config.rb +256 -0
  244. data/lib/volcano/generated/lib/volcano-generated/models/o_auth_error_response.rb +173 -0
  245. data/lib/volcano/generated/lib/volcano-generated/models/paginated_auth_users.rb +284 -0
  246. data/lib/volcano/generated/lib/volcano-generated/models/paginated_databases.rb +304 -0
  247. data/lib/volcano/generated/lib/volcano-generated/models/paginated_frontend_deployments.rb +284 -0
  248. data/lib/volcano/generated/lib/volcano-generated/models/paginated_frontends.rb +304 -0
  249. data/lib/volcano/generated/lib/volcano-generated/models/paginated_function_deployments.rb +284 -0
  250. data/lib/volcano/generated/lib/volcano-generated/models/paginated_functions.rb +304 -0
  251. data/lib/volcano/generated/lib/volcano-generated/models/paginated_project_custom_domains.rb +284 -0
  252. data/lib/volcano/generated/lib/volcano-generated/models/paginated_project_deployments.rb +306 -0
  253. data/lib/volcano/generated/lib/volcano-generated/models/paginated_projects.rb +368 -0
  254. data/lib/volcano/generated/lib/volcano-generated/models/paginated_service_keys.rb +304 -0
  255. data/lib/volcano/generated/lib/volcano-generated/models/paginated_storage_buckets.rb +251 -0
  256. data/lib/volcano/generated/lib/volcano-generated/models/paginated_variables.rb +304 -0
  257. data/lib/volcano/generated/lib/volcano-generated/models/platform_exchange_response.rb +242 -0
  258. data/lib/volcano/generated/lib/volcano-generated/models/preview_auth_page_request.rb +221 -0
  259. data/lib/volcano/generated/lib/volcano-generated/models/preview_auth_page_response.rb +190 -0
  260. data/lib/volcano/generated/lib/volcano-generated/models/project.rb +419 -0
  261. data/lib/volcano/generated/lib/volcano-generated/models/project_config.rb +273 -0
  262. data/lib/volcano/generated/lib/volcano-generated/models/project_config_apply_result.rb +261 -0
  263. data/lib/volcano/generated/lib/volcano-generated/models/project_config_apply_result_entry.rb +245 -0
  264. data/lib/volcano/generated/lib/volcano-generated/models/project_config_apply_summary.rb +320 -0
  265. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth.rb +238 -0
  266. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_cors.rb +176 -0
  267. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email.rb +175 -0
  268. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email_from.rb +156 -0
  269. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email_password_provider.rb +147 -0
  270. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email_smtp.rb +184 -0
  271. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email_verification.rb +158 -0
  272. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_managed_pages.rb +175 -0
  273. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_page_appearance.rb +156 -0
  274. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_page_layouts.rb +214 -0
  275. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_password.rb +211 -0
  276. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_password_reset.rb +167 -0
  277. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_providers.rb +159 -0
  278. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_rate_limits.rb +175 -0
  279. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_redirects.rb +180 -0
  280. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_sessions.rb +158 -0
  281. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_signup.rb +232 -0
  282. data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_tokens.rb +175 -0
  283. data/lib/volcano/generated/lib/volcano-generated/models/project_config_bucket.rb +226 -0
  284. data/lib/volcano/generated/lib/volcano-generated/models/project_config_bucket_policy.rb +250 -0
  285. data/lib/volcano/generated/lib/volcano-generated/models/project_config_custom_domain.rb +175 -0
  286. data/lib/volcano/generated/lib/volcano-generated/models/project_config_database.rb +274 -0
  287. data/lib/volcano/generated/lib/volcano-generated/models/project_config_email_template.rb +205 -0
  288. data/lib/volcano/generated/lib/volcano-generated/models/project_config_email_templates.rb +175 -0
  289. data/lib/volcano/generated/lib/volcano-generated/models/project_config_frontend.rb +183 -0
  290. data/lib/volcano/generated/lib/volcano-generated/models/project_config_function.rb +248 -0
  291. data/lib/volcano/generated/lib/volcano-generated/models/project_config_hosted_page.rb +203 -0
  292. data/lib/volcano/generated/lib/volcano-generated/models/project_config_hosted_pages.rb +193 -0
  293. data/lib/volcano/generated/lib/volcano-generated/models/project_config_missing_resource.rb +214 -0
  294. data/lib/volcano/generated/lib/volcano-generated/models/project_config_o_auth_provider.rb +238 -0
  295. data/lib/volcano/generated/lib/volcano-generated/models/project_config_project.rb +209 -0
  296. data/lib/volcano/generated/lib/volcano-generated/models/project_config_realtime.rb +174 -0
  297. data/lib/volcano/generated/lib/volcano-generated/models/project_config_scheduler.rb +229 -0
  298. data/lib/volcano/generated/lib/volcano-generated/models/project_config_skipped_resource.rb +240 -0
  299. data/lib/volcano/generated/lib/volcano-generated/models/project_config_validation_error.rb +201 -0
  300. data/lib/volcano/generated/lib/volcano-generated/models/project_config_validation_error_response.rb +193 -0
  301. data/lib/volcano/generated/lib/volcano-generated/models/project_config_variable.rb +199 -0
  302. data/lib/volcano/generated/lib/volcano-generated/models/project_deployment.rb +412 -0
  303. data/lib/volcano/generated/lib/volcano-generated/models/project_deployment_resource.rb +241 -0
  304. data/lib/volcano/generated/lib/volcano-generated/models/project_deployment_summary.rb +312 -0
  305. data/lib/volcano/generated/lib/volcano-generated/models/project_frontend_custom_domain.rb +403 -0
  306. data/lib/volcano/generated/lib/volcano-generated/models/project_frontend_custom_domain_all_of_frontend.rb +191 -0
  307. data/lib/volcano/generated/lib/volcano-generated/models/project_git_connection.rb +296 -0
  308. data/lib/volcano/generated/lib/volcano-generated/models/project_git_connection_summary.rb +294 -0
  309. data/lib/volcano/generated/lib/volcano-generated/models/project_git_deploy_settings.rb +239 -0
  310. data/lib/volcano/generated/lib/volcano-generated/models/project_health_category.rb +40 -0
  311. data/lib/volcano/generated/lib/volcano-generated/models/project_health_check.rb +316 -0
  312. data/lib/volcano/generated/lib/volcano-generated/models/project_health_data_status.rb +42 -0
  313. data/lib/volcano/generated/lib/volcano-generated/models/project_health_evidence.rb +251 -0
  314. data/lib/volcano/generated/lib/volcano-generated/models/project_health_resource.rb +240 -0
  315. data/lib/volcano/generated/lib/volcano-generated/models/project_health_response.rb +356 -0
  316. data/lib/volcano/generated/lib/volcano-generated/models/project_health_scope.rb +164 -0
  317. data/lib/volcano/generated/lib/volcano-generated/models/project_health_status.rb +42 -0
  318. data/lib/volcano/generated/lib/volcano-generated/models/project_health_summary.rb +186 -0
  319. data/lib/volcano/generated/lib/volcano-generated/models/project_import_action.rb +238 -0
  320. data/lib/volcano/generated/lib/volcano-generated/models/project_import_action_code.rb +42 -0
  321. data/lib/volcano/generated/lib/volcano-generated/models/project_import_destination.rb +238 -0
  322. data/lib/volcano/generated/lib/volcano-generated/models/project_import_destination_mode.rb +39 -0
  323. data/lib/volcano/generated/lib/volcano-generated/models/project_import_disposition.rb +42 -0
  324. data/lib/volcano/generated/lib/volcano-generated/models/project_import_finding.rb +327 -0
  325. data/lib/volcano/generated/lib/volcano-generated/models/project_import_impact.rb +41 -0
  326. data/lib/volcano/generated/lib/volcano-generated/models/project_import_preflight_request.rb +305 -0
  327. data/lib/volcano/generated/lib/volcano-generated/models/project_import_readiness.rb +41 -0
  328. data/lib/volcano/generated/lib/volcano-generated/models/project_import_report.rb +476 -0
  329. data/lib/volcano/generated/lib/volcano-generated/models/project_import_resource.rb +270 -0
  330. data/lib/volcano/generated/lib/volcano-generated/models/project_import_resource_kind.rb +43 -0
  331. data/lib/volcano/generated/lib/volcano-generated/models/project_import_run.rb +412 -0
  332. data/lib/volcano/generated/lib/volcano-generated/models/project_import_run_status.rb +43 -0
  333. data/lib/volcano/generated/lib/volcano-generated/models/project_import_start_request.rb +365 -0
  334. data/lib/volcano/generated/lib/volcano-generated/models/project_import_summary.rb +348 -0
  335. data/lib/volcano/generated/lib/volcano-generated/models/project_import_target.rb +39 -0
  336. data/lib/volcano/generated/lib/volcano-generated/models/project_lock_lease.rb +192 -0
  337. data/lib/volcano/generated/lib/volcano-generated/models/project_lock_lease_request.rb +183 -0
  338. data/lib/volcano/generated/lib/volcano-generated/models/project_lock_state.rb +185 -0
  339. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_data_status.rb +41 -0
  340. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_dimensions.rb +190 -0
  341. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_group_by.rb +40 -0
  342. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_metric.rb +42 -0
  343. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_query.rb +250 -0
  344. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_query_request.rb +210 -0
  345. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_query_response.rb +227 -0
  346. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_query_time_range.rb +188 -0
  347. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_result.rb +292 -0
  348. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_unit.rb +41 -0
  349. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_value.rb +199 -0
  350. data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_window.rb +190 -0
  351. data/lib/volcano/generated/lib/volcano-generated/models/project_source_export.rb +302 -0
  352. data/lib/volcano/generated/lib/volcano-generated/models/project_source_export_omission.rb +218 -0
  353. data/lib/volcano/generated/lib/volcano-generated/models/project_source_export_skip.rb +217 -0
  354. data/lib/volcano/generated/lib/volcano-generated/models/project_source_export_state.rb +228 -0
  355. data/lib/volcano/generated/lib/volcano-generated/models/project_usage_response.rb +234 -0
  356. data/lib/volcano/generated/lib/volcano-generated/models/realtime_config.rb +217 -0
  357. data/lib/volcano/generated/lib/volcano-generated/models/realtime_plan_limits.rb +189 -0
  358. data/lib/volcano/generated/lib/volcano-generated/models/realtime_stats.rb +178 -0
  359. data/lib/volcano/generated/lib/volcano-generated/models/refresh_o_auth_provider_token200_response.rb +165 -0
  360. data/lib/volcano/generated/lib/volcano-generated/models/reset_database_password200_response.rb +177 -0
  361. data/lib/volcano/generated/lib/volcano-generated/models/resolve_function_response.rb +248 -0
  362. data/lib/volcano/generated/lib/volcano-generated/models/resource_reference.rb +241 -0
  363. data/lib/volcano/generated/lib/volcano-generated/models/schedule_request.rb +210 -0
  364. data/lib/volcano/generated/lib/volcano-generated/models/service_key.rb +294 -0
  365. data/lib/volcano/generated/lib/volcano-generated/models/set_project_git_production_branch_request.rb +183 -0
  366. data/lib/volcano/generated/lib/volcano-generated/models/storage_bucket.rb +282 -0
  367. data/lib/volcano/generated/lib/volcano-generated/models/storage_copy_request.rb +192 -0
  368. data/lib/volcano/generated/lib/volcano-generated/models/storage_list_response.rb +159 -0
  369. data/lib/volcano/generated/lib/volcano-generated/models/storage_move_request.rb +192 -0
  370. data/lib/volcano/generated/lib/volcano-generated/models/storage_object.rb +359 -0
  371. data/lib/volcano/generated/lib/volcano-generated/models/storage_object_with_bucket.rb +383 -0
  372. data/lib/volcano/generated/lib/volcano-generated/models/storage_policy.rb +313 -0
  373. data/lib/volcano/generated/lib/volcano-generated/models/storage_stats.rb +220 -0
  374. data/lib/volcano/generated/lib/volcano-generated/models/storage_visibility_request.rb +165 -0
  375. data/lib/volcano/generated/lib/volcano-generated/models/test_email_request.rb +234 -0
  376. data/lib/volcano/generated/lib/volcano-generated/models/test_email_response.rb +164 -0
  377. data/lib/volcano/generated/lib/volcano-generated/models/unban_user_response.rb +267 -0
  378. data/lib/volcano/generated/lib/volcano-generated/models/update_auth_config_request.rb +626 -0
  379. data/lib/volcano/generated/lib/volcano-generated/models/update_auth_hosted_page_request.rb +175 -0
  380. data/lib/volcano/generated/lib/volcano-generated/models/update_auth_page_layout_request.rb +186 -0
  381. data/lib/volcano/generated/lib/volcano-generated/models/update_auth_page_theme_request.rb +164 -0
  382. data/lib/volcano/generated/lib/volcano-generated/models/update_database_branch_request.rb +184 -0
  383. data/lib/volcano/generated/lib/volcano-generated/models/update_database_type_request.rb +190 -0
  384. data/lib/volcano/generated/lib/volcano-generated/models/update_email_template_request.rb +165 -0
  385. data/lib/volcano/generated/lib/volcano-generated/models/update_function_request.rb +201 -0
  386. data/lib/volcano/generated/lib/volcano-generated/models/update_function_scheduler_request.rb +225 -0
  387. data/lib/volcano/generated/lib/volcano-generated/models/update_o_auth_config_request.rb +187 -0
  388. data/lib/volcano/generated/lib/volcano-generated/models/update_project_git_deploy_settings_request.rb +211 -0
  389. data/lib/volcano/generated/lib/volcano-generated/models/update_project_request.rb +198 -0
  390. data/lib/volcano/generated/lib/volcano-generated/models/update_realtime_config_request.rb +179 -0
  391. data/lib/volcano/generated/lib/volcano-generated/models/update_storage_bucket_request.rb +158 -0
  392. data/lib/volcano/generated/lib/volcano-generated/models/update_variable_request.rb +164 -0
  393. data/lib/volcano/generated/lib/volcano-generated/models/upload_session_part.rb +169 -0
  394. data/lib/volcano/generated/lib/volcano-generated/models/upload_session_status_response.rb +295 -0
  395. data/lib/volcano/generated/lib/volcano-generated/models/upload_storage_object201_response.rb +104 -0
  396. data/lib/volcano/generated/lib/volcano-generated/models/usage_data_point.rb +193 -0
  397. data/lib/volcano/generated/lib/volcano-generated/models/variable.rb +389 -0
  398. data/lib/volcano/generated/lib/volcano-generated/version.rb +15 -0
  399. data/lib/volcano/generated/lib/volcano-generated.rb +405 -0
  400. data/lib/volcano/generated_transport.rb +131 -0
  401. data/lib/volcano/generated_transport_anonymous.rb +34 -0
  402. data/lib/volcano/generated_transport_auth.rb +108 -0
  403. data/lib/volcano/generated_transport_confirmation.rb +30 -0
  404. data/lib/volcano/generated_transport_database.rb +54 -0
  405. data/lib/volcano/generated_transport_email_change.rb +44 -0
  406. data/lib/volcano/generated_transport_functions.rb +108 -0
  407. data/lib/volcano/generated_transport_logs.rb +31 -0
  408. data/lib/volcano/generated_transport_oauth.rb +64 -0
  409. data/lib/volcano/generated_transport_sessions.rb +27 -0
  410. data/lib/volcano/generated_transport_storage.rb +86 -0
  411. data/lib/volcano/generated_transport_support.rb +221 -0
  412. data/lib/volcano/generated_transport_upload_session_api.rb +69 -0
  413. data/lib/volcano/generated_transport_upload_sessions.rb +67 -0
  414. data/lib/volcano/lock_auto_renewal.rb +51 -0
  415. data/lib/volcano/lock_guard.rb +135 -0
  416. data/lib/volcano/lock_lease_clock.rb +39 -0
  417. data/lib/volcano/lock_renewer.rb +73 -0
  418. data/lib/volcano/lock_session.rb +70 -0
  419. data/lib/volcano/locks.rb +109 -0
  420. data/lib/volcano/log_responses.rb +39 -0
  421. data/lib/volcano/logs.rb +82 -0
  422. data/lib/volcano/models.rb +115 -0
  423. data/lib/volcano/realtime/blocking_call.rb +32 -0
  424. data/lib/volcano/realtime/broadcast_delivery.rb +63 -0
  425. data/lib/volcano/realtime/channel_callbacks.rb +127 -0
  426. data/lib/volcano/realtime/channel_lifecycle.rb +133 -0
  427. data/lib/volcano/realtime/connection.rb +114 -0
  428. data/lib/volcano/realtime/connection_callbacks.rb +126 -0
  429. data/lib/volcano/realtime/lifecycle.rb +46 -0
  430. data/lib/volcano/realtime/postgres_batch.rb +89 -0
  431. data/lib/volcano/realtime/postgres_changes.rb +107 -0
  432. data/lib/volcano/realtime/postgres_database.rb +63 -0
  433. data/lib/volcano/realtime/postgres_delivery.rb +113 -0
  434. data/lib/volcano/realtime/postgres_expansion.rb +66 -0
  435. data/lib/volcano/realtime/presence.rb +122 -0
  436. data/lib/volcano/realtime/presence_state.rb +61 -0
  437. data/lib/volcano/realtime/protocol.rb +150 -0
  438. data/lib/volcano/realtime/protocol_dispatch.rb +114 -0
  439. data/lib/volcano/realtime/protocol_io.rb +96 -0
  440. data/lib/volcano/realtime/protocol_lifecycle.rb +122 -0
  441. data/lib/volcano/realtime/protocol_publication_dispatch.rb +121 -0
  442. data/lib/volcano/realtime/protocol_recovery.rb +117 -0
  443. data/lib/volcano/realtime/protocol_recovery_dispatch.rb +106 -0
  444. data/lib/volcano/realtime/protocol_recovery_position.rb +95 -0
  445. data/lib/volcano/realtime/reconnect.rb +88 -0
  446. data/lib/volcano/realtime.rb +260 -0
  447. data/lib/volcano/redaction.rb +60 -0
  448. data/lib/volcano/sign_up_result.rb +9 -0
  449. data/lib/volcano/storage.rb +120 -0
  450. data/lib/volcano/storage_models.rb +121 -0
  451. data/lib/volcano/storage_mutations.rb +81 -0
  452. data/lib/volcano/storage_public_url.rb +64 -0
  453. data/lib/volcano/storage_resumable_upload.rb +90 -0
  454. data/lib/volcano/storage_upload_sessions.rb +116 -0
  455. data/lib/volcano/transport.rb +60 -0
  456. data/lib/volcano/version.rb +5 -0
  457. data/lib/volcano.rb +58 -0
  458. metadata +580 -0
@@ -0,0 +1,1355 @@
1
+ =begin
2
+ #Volcano Hosting API
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.
5
+
6
+ The version of the OpenAPI document: 3.0.0
7
+ Contact: support@volcano.dev
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.17.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module Volcano::Generated
16
+ class FunctionsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Create or update function code
23
+ # Upload a serverless function source bundle. Direct API clients may send the function code as a ZIP or tar.gz archive via multipart/form-data. The API stores a normalized tar.gz source archive. Cloud deploys should include source files and dependency manifests/lockfiles, not installed dependency directories. Volcano installs Node.js, Python, and Ruby dependencies during the function compile build. Source archive size is enforced by the API with `SOURCE_ARCHIVE_SIZE_LIMIT_MB`; the CLI does not apply its own source archive size limit. After the final container image is built, the publish build enforces `LAMBDA_TARGET_CONTAINER_SIZE_LIMIT_MB` before pushing. Uploaded source archives cannot contain symlink entries. Safe symlinks created during the cloud build are materialized before publish. Volcano builds and deploys the function asynchronously after upload. A deployment that starts immediately returns a Function resource with `status: provisioning`, then transitions to `active` or `failed`. If another deployment is running, the response preserves the resource's current status and exposes the queued deployment through `pending_deployment_id`. Existing function traffic continues to use the last known-good runtime during an update. A failed update keeps that runtime available and records the attempted deployment as failed. Only one deployment runs for a given function. A newer request supersedes any queued request and starts after the running deployment. Different functions and projects deploy concurrently. If a function with the same name already exists in the project, this operation updates that function's runtime, handler, and source bundle and returns `200 OK`. Each project can contain up to 10,000 functions. Creating a new function over this cap returns 403.
24
+ # @param id [String] Project ID
25
+ # @param name [String] DNS-safe function name (lowercase letters, numbers, hyphens; cannot start or end with hyphen)
26
+ # @param code [File] ZIP or tar.gz archive containing function source code plus dependency manifests/lockfiles. The API enforces SOURCE_ARCHIVE_SIZE_LIMIT_MB and stores a normalized tar.gz source archive.
27
+ # @param runtime [String] Runtime environment. Required. - Node.js: nodejs22.x, nodejs24.x - Python: python3.10, python3.11, python3.12, python3.13, python3.14 - Ruby: ruby3.3, ruby3.4, ruby4.0
28
+ # @param [Hash] opts the optional parameters
29
+ # @option opts [String] :handler The name of the function to invoke. Defaults to \\\"handler\\\" if not specified. Your code must export/define a function with this name: - Node.js: exports.handler (in index.js) - Python: def handler() (in main.py) - Ruby: def handler() (in main.rb) (default to 'handler')
30
+ # @option opts [Boolean] :is_public Whether the function can be reached through public invocation ingress. (default to false)
31
+ # @option opts [FunctionInvocationMode] :invocation_mode
32
+ # @option opts [FunctionHTTPAuthMode] :http_auth_mode
33
+ # @option opts [String] :openapi_spec JSON-encoded OpenAPI 3.0 or 3.1 metadata for an HTTP-mode function.
34
+ # @return [Function]
35
+ def create_function(id, name, code, runtime, opts = {})
36
+ data, _status_code, _headers = create_function_with_http_info(id, name, code, runtime, opts)
37
+ data
38
+ end
39
+
40
+ # Create or update function code
41
+ # Upload a serverless function source bundle. Direct API clients may send the function code as a ZIP or tar.gz archive via multipart/form-data. The API stores a normalized tar.gz source archive. Cloud deploys should include source files and dependency manifests/lockfiles, not installed dependency directories. Volcano installs Node.js, Python, and Ruby dependencies during the function compile build. Source archive size is enforced by the API with `SOURCE_ARCHIVE_SIZE_LIMIT_MB`; the CLI does not apply its own source archive size limit. After the final container image is built, the publish build enforces `LAMBDA_TARGET_CONTAINER_SIZE_LIMIT_MB` before pushing. Uploaded source archives cannot contain symlink entries. Safe symlinks created during the cloud build are materialized before publish. Volcano builds and deploys the function asynchronously after upload. A deployment that starts immediately returns a Function resource with `status: provisioning`, then transitions to `active` or `failed`. If another deployment is running, the response preserves the resource's current status and exposes the queued deployment through `pending_deployment_id`. Existing function traffic continues to use the last known-good runtime during an update. A failed update keeps that runtime available and records the attempted deployment as failed. Only one deployment runs for a given function. A newer request supersedes any queued request and starts after the running deployment. Different functions and projects deploy concurrently. If a function with the same name already exists in the project, this operation updates that function's runtime, handler, and source bundle and returns `200 OK`. Each project can contain up to 10,000 functions. Creating a new function over this cap returns 403.
42
+ # @param id [String] Project ID
43
+ # @param name [String] DNS-safe function name (lowercase letters, numbers, hyphens; cannot start or end with hyphen)
44
+ # @param code [File] ZIP or tar.gz archive containing function source code plus dependency manifests/lockfiles. The API enforces SOURCE_ARCHIVE_SIZE_LIMIT_MB and stores a normalized tar.gz source archive.
45
+ # @param runtime [String] Runtime environment. Required. - Node.js: nodejs22.x, nodejs24.x - Python: python3.10, python3.11, python3.12, python3.13, python3.14 - Ruby: ruby3.3, ruby3.4, ruby4.0
46
+ # @param [Hash] opts the optional parameters
47
+ # @option opts [String] :handler The name of the function to invoke. Defaults to \\\"handler\\\" if not specified. Your code must export/define a function with this name: - Node.js: exports.handler (in index.js) - Python: def handler() (in main.py) - Ruby: def handler() (in main.rb) (default to 'handler')
48
+ # @option opts [Boolean] :is_public Whether the function can be reached through public invocation ingress. (default to false)
49
+ # @option opts [FunctionInvocationMode] :invocation_mode
50
+ # @option opts [FunctionHTTPAuthMode] :http_auth_mode
51
+ # @option opts [String] :openapi_spec JSON-encoded OpenAPI 3.0 or 3.1 metadata for an HTTP-mode function.
52
+ # @return [Array<(Function, Integer, Hash)>] Function data, response status code and response headers
53
+ def create_function_with_http_info(id, name, code, runtime, opts = {})
54
+ if @api_client.config.debugging
55
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.create_function ...'
56
+ end
57
+ # verify the required parameter 'id' is set
58
+ if @api_client.config.client_side_validation && id.nil?
59
+ fail ArgumentError, "Missing the required parameter 'id' when calling FunctionsApi.create_function"
60
+ end
61
+ # verify the required parameter 'name' is set
62
+ if @api_client.config.client_side_validation && name.nil?
63
+ fail ArgumentError, "Missing the required parameter 'name' when calling FunctionsApi.create_function"
64
+ end
65
+ if @api_client.config.client_side_validation && name.to_s.length > 63
66
+ fail ArgumentError, 'invalid value for "name" when calling FunctionsApi.create_function, the character length must be smaller than or equal to 63.'
67
+ end
68
+
69
+ pattern = Regexp.new(/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/)
70
+ if @api_client.config.client_side_validation && name !~ pattern
71
+ fail ArgumentError, "invalid value for 'name' when calling FunctionsApi.create_function, must conform to the pattern #{pattern}."
72
+ end
73
+
74
+ # verify the required parameter 'code' is set
75
+ if @api_client.config.client_side_validation && code.nil?
76
+ fail ArgumentError, "Missing the required parameter 'code' when calling FunctionsApi.create_function"
77
+ end
78
+ # verify the required parameter 'runtime' is set
79
+ if @api_client.config.client_side_validation && runtime.nil?
80
+ fail ArgumentError, "Missing the required parameter 'runtime' when calling FunctionsApi.create_function"
81
+ end
82
+ # verify enum value
83
+ allowable_values = ["nodejs22.x", "nodejs24.x", "python3.10", "python3.11", "python3.12", "python3.13", "python3.14", "ruby3.3", "ruby3.4", "ruby4.0"]
84
+ if @api_client.config.client_side_validation && !allowable_values.include?(runtime)
85
+ fail ArgumentError, "invalid value for \"runtime\", must be one of #{allowable_values}"
86
+ end
87
+ # resource path
88
+ local_var_path = '/projects/{id}/functions'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
89
+
90
+ # query parameters
91
+ query_params = opts[:query_params] || {}
92
+
93
+ # header parameters
94
+ header_params = opts[:header_params] || {}
95
+ # HTTP header 'Accept' (if needed)
96
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
97
+ # HTTP header 'Content-Type'
98
+ content_type = @api_client.select_header_content_type(['multipart/form-data'])
99
+ if !content_type.nil?
100
+ header_params['Content-Type'] = content_type
101
+ end
102
+
103
+ # form parameters
104
+ form_params = opts[:form_params] || {}
105
+ form_params['name'] = name
106
+ form_params['code'] = code
107
+ form_params['runtime'] = runtime
108
+ form_params['handler'] = opts[:'handler'] if !opts[:'handler'].nil?
109
+ form_params['is_public'] = opts[:'is_public'] if !opts[:'is_public'].nil?
110
+ form_params['invocation_mode'] = opts[:'invocation_mode'] if !opts[:'invocation_mode'].nil?
111
+ form_params['http_auth_mode'] = opts[:'http_auth_mode'] if !opts[:'http_auth_mode'].nil?
112
+ form_params['openapi_spec'] = opts[:'openapi_spec'] if !opts[:'openapi_spec'].nil?
113
+
114
+ # http body (model)
115
+ post_body = opts[:debug_body]
116
+
117
+ # return_type
118
+ return_type = opts[:debug_return_type] || 'Function'
119
+
120
+ # auth_names
121
+ auth_names = opts[:debug_auth_names] || ['UserToken']
122
+
123
+ new_options = opts.merge(
124
+ :operation => :"FunctionsApi.create_function",
125
+ :header_params => header_params,
126
+ :query_params => query_params,
127
+ :form_params => form_params,
128
+ :body => post_body,
129
+ :auth_names => auth_names,
130
+ :return_type => return_type
131
+ )
132
+
133
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
134
+ if @api_client.config.debugging
135
+ @api_client.config.logger.debug "API called: FunctionsApi#create_function\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
136
+ end
137
+ return data, status_code, headers
138
+ end
139
+
140
+ # Create a scheduler for a function
141
+ # Creates regional scheduled invocation jobs. Requested regions must be a subset of the function's deployed regions.
142
+ # @param id [String] Project ID
143
+ # @param function_id [String] Function ID
144
+ # @param create_function_scheduler_request [CreateFunctionSchedulerRequest]
145
+ # @param [Hash] opts the optional parameters
146
+ # @return [FunctionScheduler]
147
+ def create_function_scheduler(id, function_id, create_function_scheduler_request, opts = {})
148
+ data, _status_code, _headers = create_function_scheduler_with_http_info(id, function_id, create_function_scheduler_request, opts)
149
+ data
150
+ end
151
+
152
+ # Create a scheduler for a function
153
+ # Creates regional scheduled invocation jobs. Requested regions must be a subset of the function&#39;s deployed regions.
154
+ # @param id [String] Project ID
155
+ # @param function_id [String] Function ID
156
+ # @param create_function_scheduler_request [CreateFunctionSchedulerRequest]
157
+ # @param [Hash] opts the optional parameters
158
+ # @return [Array<(FunctionScheduler, Integer, Hash)>] FunctionScheduler data, response status code and response headers
159
+ def create_function_scheduler_with_http_info(id, function_id, create_function_scheduler_request, opts = {})
160
+ if @api_client.config.debugging
161
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.create_function_scheduler ...'
162
+ end
163
+ # verify the required parameter 'id' is set
164
+ if @api_client.config.client_side_validation && id.nil?
165
+ fail ArgumentError, "Missing the required parameter 'id' when calling FunctionsApi.create_function_scheduler"
166
+ end
167
+ # verify the required parameter 'function_id' is set
168
+ if @api_client.config.client_side_validation && function_id.nil?
169
+ fail ArgumentError, "Missing the required parameter 'function_id' when calling FunctionsApi.create_function_scheduler"
170
+ end
171
+ # verify the required parameter 'create_function_scheduler_request' is set
172
+ if @api_client.config.client_side_validation && create_function_scheduler_request.nil?
173
+ fail ArgumentError, "Missing the required parameter 'create_function_scheduler_request' when calling FunctionsApi.create_function_scheduler"
174
+ end
175
+ # resource path
176
+ local_var_path = '/projects/{id}/functions/{functionId}/schedulers'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'functionId' + '}', CGI.escape(function_id.to_s))
177
+
178
+ # query parameters
179
+ query_params = opts[:query_params] || {}
180
+
181
+ # header parameters
182
+ header_params = opts[:header_params] || {}
183
+ # HTTP header 'Accept' (if needed)
184
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
185
+ # HTTP header 'Content-Type'
186
+ content_type = @api_client.select_header_content_type(['application/json'])
187
+ if !content_type.nil?
188
+ header_params['Content-Type'] = content_type
189
+ end
190
+
191
+ # form parameters
192
+ form_params = opts[:form_params] || {}
193
+
194
+ # http body (model)
195
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_function_scheduler_request)
196
+
197
+ # return_type
198
+ return_type = opts[:debug_return_type] || 'FunctionScheduler'
199
+
200
+ # auth_names
201
+ auth_names = opts[:debug_auth_names] || ['UserToken']
202
+
203
+ new_options = opts.merge(
204
+ :operation => :"FunctionsApi.create_function_scheduler",
205
+ :header_params => header_params,
206
+ :query_params => query_params,
207
+ :form_params => form_params,
208
+ :body => post_body,
209
+ :auth_names => auth_names,
210
+ :return_type => return_type
211
+ )
212
+
213
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
214
+ if @api_client.config.debugging
215
+ @api_client.config.logger.debug "API called: FunctionsApi#create_function_scheduler\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
216
+ end
217
+ return data, status_code, headers
218
+ end
219
+
220
+ # Deploy multiple functions in one request
221
+ # Upload multiple function source archives in one multipart request. Each archive should contain source files plus dependency manifests/lockfiles, not installed dependency directories. ZIP and tar.gz uploads are accepted and normalized to tar.gz before storage. The API enforces `SOURCE_ARCHIVE_SIZE_LIMIT_MB` for each uploaded and normalized source archive. The server records a shared deployment batch ID for the resulting function deployments. Each function deployment runs its own compile/publish workflow concurrently, and each publish build enforces `LAMBDA_TARGET_CONTAINER_SIZE_LIMIT_MB` for the final container image. One batch request can include up to 100 functions. Submit multiple batch requests for larger projects. If one function fails before its workflow starts, already-started function deployments are left running and the failed function is reported in the `failed` array. Failed new functions are deleted; failed updates are rolled back to their previous metadata/status where possible.
222
+ # @param id [String] Project ID
223
+ # @param functions [String] JSON array of functions with &#x60;name&#x60;, &#x60;runtime&#x60;, optional &#x60;handler&#x60;, and &#x60;file_field&#x60;. Each &#x60;file_field&#x60; must name a multipart file field containing that function&#39;s ZIP or tar.gz source bundle.
224
+ # @param [Hash] opts the optional parameters
225
+ # @option opts [File] :code_0 Function ZIP or tar.gz archive referenced by the first manifest entry&#39;s &#x60;file_field&#x60;; additional code_N file fields may be included. Each archive is subject to SOURCE_ARCHIVE_SIZE_LIMIT_MB.
226
+ # @return [BatchFunctionDeployResponse]
227
+ def create_functions_batch(id, functions, opts = {})
228
+ data, _status_code, _headers = create_functions_batch_with_http_info(id, functions, opts)
229
+ data
230
+ end
231
+
232
+ # Deploy multiple functions in one request
233
+ # Upload multiple function source archives in one multipart request. Each archive should contain source files plus dependency manifests/lockfiles, not installed dependency directories. ZIP and tar.gz uploads are accepted and normalized to tar.gz before storage. The API enforces &#x60;SOURCE_ARCHIVE_SIZE_LIMIT_MB&#x60; for each uploaded and normalized source archive. The server records a shared deployment batch ID for the resulting function deployments. Each function deployment runs its own compile/publish workflow concurrently, and each publish build enforces &#x60;LAMBDA_TARGET_CONTAINER_SIZE_LIMIT_MB&#x60; for the final container image. One batch request can include up to 100 functions. Submit multiple batch requests for larger projects. If one function fails before its workflow starts, already-started function deployments are left running and the failed function is reported in the &#x60;failed&#x60; array. Failed new functions are deleted; failed updates are rolled back to their previous metadata/status where possible.
234
+ # @param id [String] Project ID
235
+ # @param functions [String] JSON array of functions with &#x60;name&#x60;, &#x60;runtime&#x60;, optional &#x60;handler&#x60;, and &#x60;file_field&#x60;. Each &#x60;file_field&#x60; must name a multipart file field containing that function&#39;s ZIP or tar.gz source bundle.
236
+ # @param [Hash] opts the optional parameters
237
+ # @option opts [File] :code_0 Function ZIP or tar.gz archive referenced by the first manifest entry&#39;s &#x60;file_field&#x60;; additional code_N file fields may be included. Each archive is subject to SOURCE_ARCHIVE_SIZE_LIMIT_MB.
238
+ # @return [Array<(BatchFunctionDeployResponse, Integer, Hash)>] BatchFunctionDeployResponse data, response status code and response headers
239
+ def create_functions_batch_with_http_info(id, functions, opts = {})
240
+ if @api_client.config.debugging
241
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.create_functions_batch ...'
242
+ end
243
+ # verify the required parameter 'id' is set
244
+ if @api_client.config.client_side_validation && id.nil?
245
+ fail ArgumentError, "Missing the required parameter 'id' when calling FunctionsApi.create_functions_batch"
246
+ end
247
+ # verify the required parameter 'functions' is set
248
+ if @api_client.config.client_side_validation && functions.nil?
249
+ fail ArgumentError, "Missing the required parameter 'functions' when calling FunctionsApi.create_functions_batch"
250
+ end
251
+ # resource path
252
+ local_var_path = '/projects/{id}/functions/batch'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
253
+
254
+ # query parameters
255
+ query_params = opts[:query_params] || {}
256
+
257
+ # header parameters
258
+ header_params = opts[:header_params] || {}
259
+ # HTTP header 'Accept' (if needed)
260
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
261
+ # HTTP header 'Content-Type'
262
+ content_type = @api_client.select_header_content_type(['multipart/form-data'])
263
+ if !content_type.nil?
264
+ header_params['Content-Type'] = content_type
265
+ end
266
+
267
+ # form parameters
268
+ form_params = opts[:form_params] || {}
269
+ form_params['functions'] = functions
270
+ form_params['code_0'] = opts[:'code_0'] if !opts[:'code_0'].nil?
271
+
272
+ # http body (model)
273
+ post_body = opts[:debug_body]
274
+
275
+ # return_type
276
+ return_type = opts[:debug_return_type] || 'BatchFunctionDeployResponse'
277
+
278
+ # auth_names
279
+ auth_names = opts[:debug_auth_names] || ['UserToken']
280
+
281
+ new_options = opts.merge(
282
+ :operation => :"FunctionsApi.create_functions_batch",
283
+ :header_params => header_params,
284
+ :query_params => query_params,
285
+ :form_params => form_params,
286
+ :body => post_body,
287
+ :auth_names => auth_names,
288
+ :return_type => return_type
289
+ )
290
+
291
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
292
+ if @api_client.config.debugging
293
+ @api_client.config.logger.debug "API called: FunctionsApi#create_functions_batch\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
294
+ end
295
+ return data, status_code, headers
296
+ end
297
+
298
+ # Delete a function
299
+ # Schedules asynchronous function deletion. If another deployment is running, the function preserves its current status and exposes the queued deletion through `pending_deployment_id`. Its status changes to `deleting` when cleanup starts. After cleanup, it returns 404 and no longer appears in function lists.
300
+ # @param id [String] Project ID
301
+ # @param function_id [String] Function ID
302
+ # @param [Hash] opts the optional parameters
303
+ # @return [nil]
304
+ def delete_function(id, function_id, opts = {})
305
+ delete_function_with_http_info(id, function_id, opts)
306
+ nil
307
+ end
308
+
309
+ # Delete a function
310
+ # Schedules asynchronous function deletion. If another deployment is running, the function preserves its current status and exposes the queued deletion through &#x60;pending_deployment_id&#x60;. Its status changes to &#x60;deleting&#x60; when cleanup starts. After cleanup, it returns 404 and no longer appears in function lists.
311
+ # @param id [String] Project ID
312
+ # @param function_id [String] Function ID
313
+ # @param [Hash] opts the optional parameters
314
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
315
+ def delete_function_with_http_info(id, function_id, opts = {})
316
+ if @api_client.config.debugging
317
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.delete_function ...'
318
+ end
319
+ # verify the required parameter 'id' is set
320
+ if @api_client.config.client_side_validation && id.nil?
321
+ fail ArgumentError, "Missing the required parameter 'id' when calling FunctionsApi.delete_function"
322
+ end
323
+ # verify the required parameter 'function_id' is set
324
+ if @api_client.config.client_side_validation && function_id.nil?
325
+ fail ArgumentError, "Missing the required parameter 'function_id' when calling FunctionsApi.delete_function"
326
+ end
327
+ # resource path
328
+ local_var_path = '/projects/{id}/functions/{functionId}'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'functionId' + '}', CGI.escape(function_id.to_s))
329
+
330
+ # query parameters
331
+ query_params = opts[:query_params] || {}
332
+
333
+ # header parameters
334
+ header_params = opts[:header_params] || {}
335
+ # HTTP header 'Accept' (if needed)
336
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
337
+
338
+ # form parameters
339
+ form_params = opts[:form_params] || {}
340
+
341
+ # http body (model)
342
+ post_body = opts[:debug_body]
343
+
344
+ # return_type
345
+ return_type = opts[:debug_return_type]
346
+
347
+ # auth_names
348
+ auth_names = opts[:debug_auth_names] || ['UserToken']
349
+
350
+ new_options = opts.merge(
351
+ :operation => :"FunctionsApi.delete_function",
352
+ :header_params => header_params,
353
+ :query_params => query_params,
354
+ :form_params => form_params,
355
+ :body => post_body,
356
+ :auth_names => auth_names,
357
+ :return_type => return_type
358
+ )
359
+
360
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
361
+ if @api_client.config.debugging
362
+ @api_client.config.logger.debug "API called: FunctionsApi#delete_function\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
363
+ end
364
+ return data, status_code, headers
365
+ end
366
+
367
+ # Delete a function scheduler
368
+ # @param id [String] Project ID
369
+ # @param function_id [String] Function ID
370
+ # @param scheduler_id [String] Function scheduler ID
371
+ # @param [Hash] opts the optional parameters
372
+ # @return [nil]
373
+ def delete_function_scheduler(id, function_id, scheduler_id, opts = {})
374
+ delete_function_scheduler_with_http_info(id, function_id, scheduler_id, opts)
375
+ nil
376
+ end
377
+
378
+ # Delete a function scheduler
379
+ # @param id [String] Project ID
380
+ # @param function_id [String] Function ID
381
+ # @param scheduler_id [String] Function scheduler ID
382
+ # @param [Hash] opts the optional parameters
383
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
384
+ def delete_function_scheduler_with_http_info(id, function_id, scheduler_id, opts = {})
385
+ if @api_client.config.debugging
386
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.delete_function_scheduler ...'
387
+ end
388
+ # verify the required parameter 'id' is set
389
+ if @api_client.config.client_side_validation && id.nil?
390
+ fail ArgumentError, "Missing the required parameter 'id' when calling FunctionsApi.delete_function_scheduler"
391
+ end
392
+ # verify the required parameter 'function_id' is set
393
+ if @api_client.config.client_side_validation && function_id.nil?
394
+ fail ArgumentError, "Missing the required parameter 'function_id' when calling FunctionsApi.delete_function_scheduler"
395
+ end
396
+ # verify the required parameter 'scheduler_id' is set
397
+ if @api_client.config.client_side_validation && scheduler_id.nil?
398
+ fail ArgumentError, "Missing the required parameter 'scheduler_id' when calling FunctionsApi.delete_function_scheduler"
399
+ end
400
+ # resource path
401
+ local_var_path = '/projects/{id}/functions/{functionId}/schedulers/{schedulerId}'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'functionId' + '}', CGI.escape(function_id.to_s)).sub('{' + 'schedulerId' + '}', CGI.escape(scheduler_id.to_s))
402
+
403
+ # query parameters
404
+ query_params = opts[:query_params] || {}
405
+
406
+ # header parameters
407
+ header_params = opts[:header_params] || {}
408
+
409
+ # form parameters
410
+ form_params = opts[:form_params] || {}
411
+
412
+ # http body (model)
413
+ post_body = opts[:debug_body]
414
+
415
+ # return_type
416
+ return_type = opts[:debug_return_type]
417
+
418
+ # auth_names
419
+ auth_names = opts[:debug_auth_names] || ['UserToken']
420
+
421
+ new_options = opts.merge(
422
+ :operation => :"FunctionsApi.delete_function_scheduler",
423
+ :header_params => header_params,
424
+ :query_params => query_params,
425
+ :form_params => form_params,
426
+ :body => post_body,
427
+ :auth_names => auth_names,
428
+ :return_type => return_type
429
+ )
430
+
431
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
432
+ if @api_client.config.debugging
433
+ @api_client.config.logger.debug "API called: FunctionsApi#delete_function_scheduler\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
434
+ end
435
+ return data, status_code, headers
436
+ end
437
+
438
+ # Get function by ID
439
+ # @param id [String] Project ID
440
+ # @param function_id [String] Function ID
441
+ # @param [Hash] opts the optional parameters
442
+ # @return [Function]
443
+ def get_function(id, function_id, opts = {})
444
+ data, _status_code, _headers = get_function_with_http_info(id, function_id, opts)
445
+ data
446
+ end
447
+
448
+ # Get function by ID
449
+ # @param id [String] Project ID
450
+ # @param function_id [String] Function ID
451
+ # @param [Hash] opts the optional parameters
452
+ # @return [Array<(Function, Integer, Hash)>] Function data, response status code and response headers
453
+ def get_function_with_http_info(id, function_id, opts = {})
454
+ if @api_client.config.debugging
455
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.get_function ...'
456
+ end
457
+ # verify the required parameter 'id' is set
458
+ if @api_client.config.client_side_validation && id.nil?
459
+ fail ArgumentError, "Missing the required parameter 'id' when calling FunctionsApi.get_function"
460
+ end
461
+ # verify the required parameter 'function_id' is set
462
+ if @api_client.config.client_side_validation && function_id.nil?
463
+ fail ArgumentError, "Missing the required parameter 'function_id' when calling FunctionsApi.get_function"
464
+ end
465
+ # resource path
466
+ local_var_path = '/projects/{id}/functions/{functionId}'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'functionId' + '}', CGI.escape(function_id.to_s))
467
+
468
+ # query parameters
469
+ query_params = opts[:query_params] || {}
470
+
471
+ # header parameters
472
+ header_params = opts[:header_params] || {}
473
+ # HTTP header 'Accept' (if needed)
474
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
475
+
476
+ # form parameters
477
+ form_params = opts[:form_params] || {}
478
+
479
+ # http body (model)
480
+ post_body = opts[:debug_body]
481
+
482
+ # return_type
483
+ return_type = opts[:debug_return_type] || 'Function'
484
+
485
+ # auth_names
486
+ auth_names = opts[:debug_auth_names] || ['UserToken']
487
+
488
+ new_options = opts.merge(
489
+ :operation => :"FunctionsApi.get_function",
490
+ :header_params => header_params,
491
+ :query_params => query_params,
492
+ :form_params => form_params,
493
+ :body => post_body,
494
+ :auth_names => auth_names,
495
+ :return_type => return_type
496
+ )
497
+
498
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
499
+ if @api_client.config.debugging
500
+ @api_client.config.logger.debug "API called: FunctionsApi#get_function\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
501
+ end
502
+ return data, status_code, headers
503
+ end
504
+
505
+ # Get a function scheduler
506
+ # @param id [String] Project ID
507
+ # @param function_id [String] Function ID
508
+ # @param scheduler_id [String] Function scheduler ID
509
+ # @param [Hash] opts the optional parameters
510
+ # @return [FunctionScheduler]
511
+ def get_function_scheduler(id, function_id, scheduler_id, opts = {})
512
+ data, _status_code, _headers = get_function_scheduler_with_http_info(id, function_id, scheduler_id, opts)
513
+ data
514
+ end
515
+
516
+ # Get a function scheduler
517
+ # @param id [String] Project ID
518
+ # @param function_id [String] Function ID
519
+ # @param scheduler_id [String] Function scheduler ID
520
+ # @param [Hash] opts the optional parameters
521
+ # @return [Array<(FunctionScheduler, Integer, Hash)>] FunctionScheduler data, response status code and response headers
522
+ def get_function_scheduler_with_http_info(id, function_id, scheduler_id, opts = {})
523
+ if @api_client.config.debugging
524
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.get_function_scheduler ...'
525
+ end
526
+ # verify the required parameter 'id' is set
527
+ if @api_client.config.client_side_validation && id.nil?
528
+ fail ArgumentError, "Missing the required parameter 'id' when calling FunctionsApi.get_function_scheduler"
529
+ end
530
+ # verify the required parameter 'function_id' is set
531
+ if @api_client.config.client_side_validation && function_id.nil?
532
+ fail ArgumentError, "Missing the required parameter 'function_id' when calling FunctionsApi.get_function_scheduler"
533
+ end
534
+ # verify the required parameter 'scheduler_id' is set
535
+ if @api_client.config.client_side_validation && scheduler_id.nil?
536
+ fail ArgumentError, "Missing the required parameter 'scheduler_id' when calling FunctionsApi.get_function_scheduler"
537
+ end
538
+ # resource path
539
+ local_var_path = '/projects/{id}/functions/{functionId}/schedulers/{schedulerId}'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'functionId' + '}', CGI.escape(function_id.to_s)).sub('{' + 'schedulerId' + '}', CGI.escape(scheduler_id.to_s))
540
+
541
+ # query parameters
542
+ query_params = opts[:query_params] || {}
543
+
544
+ # header parameters
545
+ header_params = opts[:header_params] || {}
546
+ # HTTP header 'Accept' (if needed)
547
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
548
+
549
+ # form parameters
550
+ form_params = opts[:form_params] || {}
551
+
552
+ # http body (model)
553
+ post_body = opts[:debug_body]
554
+
555
+ # return_type
556
+ return_type = opts[:debug_return_type] || 'FunctionScheduler'
557
+
558
+ # auth_names
559
+ auth_names = opts[:debug_auth_names] || ['UserToken']
560
+
561
+ new_options = opts.merge(
562
+ :operation => :"FunctionsApi.get_function_scheduler",
563
+ :header_params => header_params,
564
+ :query_params => query_params,
565
+ :form_params => form_params,
566
+ :body => post_body,
567
+ :auth_names => auth_names,
568
+ :return_type => return_type
569
+ )
570
+
571
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
572
+ if @api_client.config.debugging
573
+ @api_client.config.logger.debug "API called: FunctionsApi#get_function_scheduler\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
574
+ end
575
+ return data, status_code, headers
576
+ end
577
+
578
+ # Invoke a function
579
+ # Invoke a serverless function. **With Service Key** (admin/background operations): - Use for background jobs, webhooks, cron, admin operations - Function receives payload only (no user context) - Database queries bypass RLS (admin access) **With Auth User Token** (user-facing): - Use for user-initiated actions - Function receives payload + `__volcano_auth` context: ```javascript { user_id: \"uuid\", email: \"user@example.com\", project_id: \"uuid\", role: \"authenticated\" or \"anonymous\" } ``` - Database queries enforce RLS (user-scoped data) **With Anon Key** (public function only): - Requires anon key permission: `functions.invoke` - Function must have `is_public: true` - Function receives payload only (no `__volcano_auth`) **Transport and CORS:** - This operation is the authenticated direct RPC endpoint and always uses the POST `{payload: ...}` contract, including for functions whose DNS ingress is configured in HTTP mode. - The geo-routed DNS ingress is `https://{functionId}.functions.<domain>/`. - RPC-mode DNS ingress accepts POST at `/`. HTTP-mode DNS ingress accepts GET, HEAD, POST, PUT, PATCH, and DELETE at `/` and nested paths. - Direct and RPC-mode CORS preflight advertises `POST, OPTIONS`. HTTP-mode DNS preflight advertises `GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS`. - `http_auth_mode: none` applies only to public HTTP-mode DNS ingress; this direct operation always requires a Volcano credential.
580
+ # @param function_id [String] Function ID
581
+ # @param function_invocation_request [FunctionInvocationRequest]
582
+ # @param [Hash] opts the optional parameters
583
+ # @return [Hash<String, Object>]
584
+ def invoke_function(function_id, function_invocation_request, opts = {})
585
+ data, _status_code, _headers = invoke_function_with_http_info(function_id, function_invocation_request, opts)
586
+ data
587
+ end
588
+
589
+ # Invoke a function
590
+ # Invoke a serverless function. **With Service Key** (admin/background operations): - Use for background jobs, webhooks, cron, admin operations - Function receives payload only (no user context) - Database queries bypass RLS (admin access) **With Auth User Token** (user-facing): - Use for user-initiated actions - Function receives payload + &#x60;__volcano_auth&#x60; context: &#x60;&#x60;&#x60;javascript { user_id: \&quot;uuid\&quot;, email: \&quot;user@example.com\&quot;, project_id: \&quot;uuid\&quot;, role: \&quot;authenticated\&quot; or \&quot;anonymous\&quot; } &#x60;&#x60;&#x60; - Database queries enforce RLS (user-scoped data) **With Anon Key** (public function only): - Requires anon key permission: &#x60;functions.invoke&#x60; - Function must have &#x60;is_public: true&#x60; - Function receives payload only (no &#x60;__volcano_auth&#x60;) **Transport and CORS:** - This operation is the authenticated direct RPC endpoint and always uses the POST &#x60;{payload: ...}&#x60; contract, including for functions whose DNS ingress is configured in HTTP mode. - The geo-routed DNS ingress is &#x60;https://{functionId}.functions.&lt;domain&gt;/&#x60;. - RPC-mode DNS ingress accepts POST at &#x60;/&#x60;. HTTP-mode DNS ingress accepts GET, HEAD, POST, PUT, PATCH, and DELETE at &#x60;/&#x60; and nested paths. - Direct and RPC-mode CORS preflight advertises &#x60;POST, OPTIONS&#x60;. HTTP-mode DNS preflight advertises &#x60;GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS&#x60;. - &#x60;http_auth_mode: none&#x60; applies only to public HTTP-mode DNS ingress; this direct operation always requires a Volcano credential.
591
+ # @param function_id [String] Function ID
592
+ # @param function_invocation_request [FunctionInvocationRequest]
593
+ # @param [Hash] opts the optional parameters
594
+ # @return [Array<(Hash<String, Object>, Integer, Hash)>] Hash<String, Object> data, response status code and response headers
595
+ def invoke_function_with_http_info(function_id, function_invocation_request, opts = {})
596
+ if @api_client.config.debugging
597
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.invoke_function ...'
598
+ end
599
+ # verify the required parameter 'function_id' is set
600
+ if @api_client.config.client_side_validation && function_id.nil?
601
+ fail ArgumentError, "Missing the required parameter 'function_id' when calling FunctionsApi.invoke_function"
602
+ end
603
+ # verify the required parameter 'function_invocation_request' is set
604
+ if @api_client.config.client_side_validation && function_invocation_request.nil?
605
+ fail ArgumentError, "Missing the required parameter 'function_invocation_request' when calling FunctionsApi.invoke_function"
606
+ end
607
+ # resource path
608
+ local_var_path = '/functions/{functionId}/invoke'.sub('{' + 'functionId' + '}', CGI.escape(function_id.to_s))
609
+
610
+ # query parameters
611
+ query_params = opts[:query_params] || {}
612
+
613
+ # header parameters
614
+ header_params = opts[:header_params] || {}
615
+ # HTTP header 'Accept' (if needed)
616
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
617
+ # HTTP header 'Content-Type'
618
+ content_type = @api_client.select_header_content_type(['application/json'])
619
+ if !content_type.nil?
620
+ header_params['Content-Type'] = content_type
621
+ end
622
+
623
+ # form parameters
624
+ form_params = opts[:form_params] || {}
625
+
626
+ # http body (model)
627
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(function_invocation_request)
628
+
629
+ # return_type
630
+ return_type = opts[:debug_return_type] || 'Hash<String, Object>'
631
+
632
+ # auth_names
633
+ auth_names = opts[:debug_auth_names] || ['ServiceRoleKey', 'AuthUserAccessToken', 'AnonKey']
634
+
635
+ new_options = opts.merge(
636
+ :operation => :"FunctionsApi.invoke_function",
637
+ :header_params => header_params,
638
+ :query_params => query_params,
639
+ :form_params => form_params,
640
+ :body => post_body,
641
+ :auth_names => auth_names,
642
+ :return_type => return_type
643
+ )
644
+
645
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
646
+ if @api_client.config.debugging
647
+ @api_client.config.logger.debug "API called: FunctionsApi#invoke_function\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
648
+ end
649
+ return data, status_code, headers
650
+ end
651
+
652
+ # List function deployments
653
+ # @param id [String] Project ID
654
+ # @param function_id [String] Function ID
655
+ # @param [Hash] opts the optional parameters
656
+ # @option opts [Integer] :page Page number (1-indexed) for offset pagination. Declares no schema default so the request validator does not inject one: handlers that omit &#x60;page&#x60; see it unset (nil) and default to 1 in code, while cursor-first endpoints (e.g. the project deployments feed) can detect its absence to stay in keyset/search mode. Supplying &#x60;page&#x60; selects offset pagination.
657
+ # @option opts [Integer] :limit Number of items per page (max 100) (default to 10)
658
+ # @return [PaginatedFunctionDeployments]
659
+ def list_function_deployments(id, function_id, opts = {})
660
+ data, _status_code, _headers = list_function_deployments_with_http_info(id, function_id, opts)
661
+ data
662
+ end
663
+
664
+ # List function deployments
665
+ # @param id [String] Project ID
666
+ # @param function_id [String] Function ID
667
+ # @param [Hash] opts the optional parameters
668
+ # @option opts [Integer] :page Page number (1-indexed) for offset pagination. Declares no schema default so the request validator does not inject one: handlers that omit &#x60;page&#x60; see it unset (nil) and default to 1 in code, while cursor-first endpoints (e.g. the project deployments feed) can detect its absence to stay in keyset/search mode. Supplying &#x60;page&#x60; selects offset pagination.
669
+ # @option opts [Integer] :limit Number of items per page (max 100) (default to 10)
670
+ # @return [Array<(PaginatedFunctionDeployments, Integer, Hash)>] PaginatedFunctionDeployments data, response status code and response headers
671
+ def list_function_deployments_with_http_info(id, function_id, opts = {})
672
+ if @api_client.config.debugging
673
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.list_function_deployments ...'
674
+ end
675
+ # verify the required parameter 'id' is set
676
+ if @api_client.config.client_side_validation && id.nil?
677
+ fail ArgumentError, "Missing the required parameter 'id' when calling FunctionsApi.list_function_deployments"
678
+ end
679
+ # verify the required parameter 'function_id' is set
680
+ if @api_client.config.client_side_validation && function_id.nil?
681
+ fail ArgumentError, "Missing the required parameter 'function_id' when calling FunctionsApi.list_function_deployments"
682
+ end
683
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
684
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling FunctionsApi.list_function_deployments, must be greater than or equal to 1.'
685
+ end
686
+
687
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
688
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling FunctionsApi.list_function_deployments, must be smaller than or equal to 100.'
689
+ end
690
+
691
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
692
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling FunctionsApi.list_function_deployments, must be greater than or equal to 1.'
693
+ end
694
+
695
+ # resource path
696
+ local_var_path = '/projects/{id}/functions/{functionId}/deployments'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'functionId' + '}', CGI.escape(function_id.to_s))
697
+
698
+ # query parameters
699
+ query_params = opts[:query_params] || {}
700
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
701
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
702
+
703
+ # header parameters
704
+ header_params = opts[:header_params] || {}
705
+ # HTTP header 'Accept' (if needed)
706
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
707
+
708
+ # form parameters
709
+ form_params = opts[:form_params] || {}
710
+
711
+ # http body (model)
712
+ post_body = opts[:debug_body]
713
+
714
+ # return_type
715
+ return_type = opts[:debug_return_type] || 'PaginatedFunctionDeployments'
716
+
717
+ # auth_names
718
+ auth_names = opts[:debug_auth_names] || ['UserToken']
719
+
720
+ new_options = opts.merge(
721
+ :operation => :"FunctionsApi.list_function_deployments",
722
+ :header_params => header_params,
723
+ :query_params => query_params,
724
+ :form_params => form_params,
725
+ :body => post_body,
726
+ :auth_names => auth_names,
727
+ :return_type => return_type
728
+ )
729
+
730
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
731
+ if @api_client.config.debugging
732
+ @api_client.config.logger.debug "API called: FunctionsApi#list_function_deployments\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
733
+ end
734
+ return data, status_code, headers
735
+ end
736
+
737
+ # List available regions for function deployment
738
+ # Returns the configured regions where functions can be deployed, each annotated with a human-readable label and country flag emoji for use in UI pickers. This is a public endpoint that doesn't require authentication.
739
+ # @param [Hash] opts the optional parameters
740
+ # @return [Array<FunctionRegion>]
741
+ def list_function_regions(opts = {})
742
+ data, _status_code, _headers = list_function_regions_with_http_info(opts)
743
+ data
744
+ end
745
+
746
+ # List available regions for function deployment
747
+ # Returns the configured regions where functions can be deployed, each annotated with a human-readable label and country flag emoji for use in UI pickers. This is a public endpoint that doesn&#39;t require authentication.
748
+ # @param [Hash] opts the optional parameters
749
+ # @return [Array<(Array<FunctionRegion>, Integer, Hash)>] Array<FunctionRegion> data, response status code and response headers
750
+ def list_function_regions_with_http_info(opts = {})
751
+ if @api_client.config.debugging
752
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.list_function_regions ...'
753
+ end
754
+ # resource path
755
+ local_var_path = '/functions/regions'
756
+
757
+ # query parameters
758
+ query_params = opts[:query_params] || {}
759
+
760
+ # header parameters
761
+ header_params = opts[:header_params] || {}
762
+ # HTTP header 'Accept' (if needed)
763
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
764
+
765
+ # form parameters
766
+ form_params = opts[:form_params] || {}
767
+
768
+ # http body (model)
769
+ post_body = opts[:debug_body]
770
+
771
+ # return_type
772
+ return_type = opts[:debug_return_type] || 'Array<FunctionRegion>'
773
+
774
+ # auth_names
775
+ auth_names = opts[:debug_auth_names] || []
776
+
777
+ new_options = opts.merge(
778
+ :operation => :"FunctionsApi.list_function_regions",
779
+ :header_params => header_params,
780
+ :query_params => query_params,
781
+ :form_params => form_params,
782
+ :body => post_body,
783
+ :auth_names => auth_names,
784
+ :return_type => return_type
785
+ )
786
+
787
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
788
+ if @api_client.config.debugging
789
+ @api_client.config.logger.debug "API called: FunctionsApi#list_function_regions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
790
+ end
791
+ return data, status_code, headers
792
+ end
793
+
794
+ # List supported function runtimes
795
+ # Returns the public function runtime catalog used by CLI clients to select supported runtimes, language defaults, and local source packaging metadata for deployments. This is a public endpoint that doesn't require authentication.
796
+ # @param [Hash] opts the optional parameters
797
+ # @return [FunctionRuntimesResponse]
798
+ def list_function_runtimes(opts = {})
799
+ data, _status_code, _headers = list_function_runtimes_with_http_info(opts)
800
+ data
801
+ end
802
+
803
+ # List supported function runtimes
804
+ # Returns the public function runtime catalog used by CLI clients to select supported runtimes, language defaults, and local source packaging metadata for deployments. This is a public endpoint that doesn&#39;t require authentication.
805
+ # @param [Hash] opts the optional parameters
806
+ # @return [Array<(FunctionRuntimesResponse, Integer, Hash)>] FunctionRuntimesResponse data, response status code and response headers
807
+ def list_function_runtimes_with_http_info(opts = {})
808
+ if @api_client.config.debugging
809
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.list_function_runtimes ...'
810
+ end
811
+ # resource path
812
+ local_var_path = '/functions/runtimes'
813
+
814
+ # query parameters
815
+ query_params = opts[:query_params] || {}
816
+
817
+ # header parameters
818
+ header_params = opts[:header_params] || {}
819
+ # HTTP header 'Accept' (if needed)
820
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
821
+
822
+ # form parameters
823
+ form_params = opts[:form_params] || {}
824
+
825
+ # http body (model)
826
+ post_body = opts[:debug_body]
827
+
828
+ # return_type
829
+ return_type = opts[:debug_return_type] || 'FunctionRuntimesResponse'
830
+
831
+ # auth_names
832
+ auth_names = opts[:debug_auth_names] || []
833
+
834
+ new_options = opts.merge(
835
+ :operation => :"FunctionsApi.list_function_runtimes",
836
+ :header_params => header_params,
837
+ :query_params => query_params,
838
+ :form_params => form_params,
839
+ :body => post_body,
840
+ :auth_names => auth_names,
841
+ :return_type => return_type
842
+ )
843
+
844
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
845
+ if @api_client.config.debugging
846
+ @api_client.config.logger.debug "API called: FunctionsApi#list_function_runtimes\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
847
+ end
848
+ return data, status_code, headers
849
+ end
850
+
851
+ # List schedulers for a function
852
+ # @param id [String] Project ID
853
+ # @param function_id [String] Function ID
854
+ # @param [Hash] opts the optional parameters
855
+ # @return [FunctionSchedulerListResponse]
856
+ def list_function_schedulers(id, function_id, opts = {})
857
+ data, _status_code, _headers = list_function_schedulers_with_http_info(id, function_id, opts)
858
+ data
859
+ end
860
+
861
+ # List schedulers for a function
862
+ # @param id [String] Project ID
863
+ # @param function_id [String] Function ID
864
+ # @param [Hash] opts the optional parameters
865
+ # @return [Array<(FunctionSchedulerListResponse, Integer, Hash)>] FunctionSchedulerListResponse data, response status code and response headers
866
+ def list_function_schedulers_with_http_info(id, function_id, opts = {})
867
+ if @api_client.config.debugging
868
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.list_function_schedulers ...'
869
+ end
870
+ # verify the required parameter 'id' is set
871
+ if @api_client.config.client_side_validation && id.nil?
872
+ fail ArgumentError, "Missing the required parameter 'id' when calling FunctionsApi.list_function_schedulers"
873
+ end
874
+ # verify the required parameter 'function_id' is set
875
+ if @api_client.config.client_side_validation && function_id.nil?
876
+ fail ArgumentError, "Missing the required parameter 'function_id' when calling FunctionsApi.list_function_schedulers"
877
+ end
878
+ # resource path
879
+ local_var_path = '/projects/{id}/functions/{functionId}/schedulers'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'functionId' + '}', CGI.escape(function_id.to_s))
880
+
881
+ # query parameters
882
+ query_params = opts[:query_params] || {}
883
+
884
+ # header parameters
885
+ header_params = opts[:header_params] || {}
886
+ # HTTP header 'Accept' (if needed)
887
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
888
+
889
+ # form parameters
890
+ form_params = opts[:form_params] || {}
891
+
892
+ # http body (model)
893
+ post_body = opts[:debug_body]
894
+
895
+ # return_type
896
+ return_type = opts[:debug_return_type] || 'FunctionSchedulerListResponse'
897
+
898
+ # auth_names
899
+ auth_names = opts[:debug_auth_names] || ['UserToken']
900
+
901
+ new_options = opts.merge(
902
+ :operation => :"FunctionsApi.list_function_schedulers",
903
+ :header_params => header_params,
904
+ :query_params => query_params,
905
+ :form_params => form_params,
906
+ :body => post_body,
907
+ :auth_names => auth_names,
908
+ :return_type => return_type
909
+ )
910
+
911
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
912
+ if @api_client.config.debugging
913
+ @api_client.config.logger.debug "API called: FunctionsApi#list_function_schedulers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
914
+ end
915
+ return data, status_code, headers
916
+ end
917
+
918
+ # List all functions in a project
919
+ # Supports two mutually exclusive pagination modes. Offset mode uses `page` and `limit` and returns `next` (URL). Cursor mode uses `cursor` and `limit`, supports `search` (case-insensitive name match), and returns `next_cursor`/`prev_cursor`. Sending both `page` and `cursor` (or `page` and `search`) returns 400.
920
+ # @param id [String] Project ID
921
+ # @param [Hash] opts the optional parameters
922
+ # @option opts [Integer] :page Page number (1-indexed) for offset pagination. Declares no schema default so the request validator does not inject one: handlers that omit &#x60;page&#x60; see it unset (nil) and default to 1 in code, while cursor-first endpoints (e.g. the project deployments feed) can detect its absence to stay in keyset/search mode. Supplying &#x60;page&#x60; selects offset pagination.
923
+ # @option opts [Integer] :limit Number of items per page (max 100) (default to 10)
924
+ # @option opts [String] :cursor Opaque keyset pagination cursor from a previous response&#39;s &#x60;next_cursor&#x60; — pages forward. Mutually exclusive with &#x60;page&#x60; and &#x60;ending_before&#x60;; combining them returns 400. When supplied, the request&#39;s &#x60;search&#x60; and &#x60;limit&#x60; must match the values bound to the cursor or the request returns 400.
925
+ # @option opts [String] :ending_before Opaque keyset pagination cursor from a previous response&#39;s &#x60;prev_cursor&#x60; — pages backward (the page immediately preceding this cursor). Mutually exclusive with &#x60;page&#x60; and &#x60;cursor&#x60;; combining them returns 400. &#x60;search&#x60; and &#x60;limit&#x60; must match the values bound to the cursor or the request returns 400.
926
+ # @option opts [Integer] :offset Bounded row offset past the keyset anchor named by &#x60;cursor&#x60; (forward) or &#x60;ending_before&#x60; (backward) — the hybrid jump. Seek to the anchor, then skip this many rows within. Used for numbered jump-to-page: from the current page, seek to its next/prev cursor and offset the remaining pages. Only honored on the cursor pagination path; ignored otherwise. (default to 0)
927
+ # @option opts [String] :search Case-insensitive substring match on the resource &#x60;name&#x60;. See the endpoint description for supported pagination modes.
928
+ # @return [PaginatedFunctions]
929
+ def list_functions(id, opts = {})
930
+ data, _status_code, _headers = list_functions_with_http_info(id, opts)
931
+ data
932
+ end
933
+
934
+ # List all functions in a project
935
+ # Supports two mutually exclusive pagination modes. Offset mode uses &#x60;page&#x60; and &#x60;limit&#x60; and returns &#x60;next&#x60; (URL). Cursor mode uses &#x60;cursor&#x60; and &#x60;limit&#x60;, supports &#x60;search&#x60; (case-insensitive name match), and returns &#x60;next_cursor&#x60;/&#x60;prev_cursor&#x60;. Sending both &#x60;page&#x60; and &#x60;cursor&#x60; (or &#x60;page&#x60; and &#x60;search&#x60;) returns 400.
936
+ # @param id [String] Project ID
937
+ # @param [Hash] opts the optional parameters
938
+ # @option opts [Integer] :page Page number (1-indexed) for offset pagination. Declares no schema default so the request validator does not inject one: handlers that omit &#x60;page&#x60; see it unset (nil) and default to 1 in code, while cursor-first endpoints (e.g. the project deployments feed) can detect its absence to stay in keyset/search mode. Supplying &#x60;page&#x60; selects offset pagination.
939
+ # @option opts [Integer] :limit Number of items per page (max 100) (default to 10)
940
+ # @option opts [String] :cursor Opaque keyset pagination cursor from a previous response&#39;s &#x60;next_cursor&#x60; — pages forward. Mutually exclusive with &#x60;page&#x60; and &#x60;ending_before&#x60;; combining them returns 400. When supplied, the request&#39;s &#x60;search&#x60; and &#x60;limit&#x60; must match the values bound to the cursor or the request returns 400.
941
+ # @option opts [String] :ending_before Opaque keyset pagination cursor from a previous response&#39;s &#x60;prev_cursor&#x60; — pages backward (the page immediately preceding this cursor). Mutually exclusive with &#x60;page&#x60; and &#x60;cursor&#x60;; combining them returns 400. &#x60;search&#x60; and &#x60;limit&#x60; must match the values bound to the cursor or the request returns 400.
942
+ # @option opts [Integer] :offset Bounded row offset past the keyset anchor named by &#x60;cursor&#x60; (forward) or &#x60;ending_before&#x60; (backward) — the hybrid jump. Seek to the anchor, then skip this many rows within. Used for numbered jump-to-page: from the current page, seek to its next/prev cursor and offset the remaining pages. Only honored on the cursor pagination path; ignored otherwise. (default to 0)
943
+ # @option opts [String] :search Case-insensitive substring match on the resource &#x60;name&#x60;. See the endpoint description for supported pagination modes.
944
+ # @return [Array<(PaginatedFunctions, Integer, Hash)>] PaginatedFunctions data, response status code and response headers
945
+ def list_functions_with_http_info(id, opts = {})
946
+ if @api_client.config.debugging
947
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.list_functions ...'
948
+ end
949
+ # verify the required parameter 'id' is set
950
+ if @api_client.config.client_side_validation && id.nil?
951
+ fail ArgumentError, "Missing the required parameter 'id' when calling FunctionsApi.list_functions"
952
+ end
953
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
954
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling FunctionsApi.list_functions, must be greater than or equal to 1.'
955
+ end
956
+
957
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
958
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling FunctionsApi.list_functions, must be smaller than or equal to 100.'
959
+ end
960
+
961
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
962
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling FunctionsApi.list_functions, must be greater than or equal to 1.'
963
+ end
964
+
965
+ if @api_client.config.client_side_validation && !opts[:'offset'].nil? && opts[:'offset'] < 0
966
+ fail ArgumentError, 'invalid value for "opts[:"offset"]" when calling FunctionsApi.list_functions, must be greater than or equal to 0.'
967
+ end
968
+
969
+ if @api_client.config.client_side_validation && !opts[:'search'].nil? && opts[:'search'].to_s.length > 256
970
+ fail ArgumentError, 'invalid value for "opts[:"search"]" when calling FunctionsApi.list_functions, the character length must be smaller than or equal to 256.'
971
+ end
972
+
973
+ # resource path
974
+ local_var_path = '/projects/{id}/functions'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
975
+
976
+ # query parameters
977
+ query_params = opts[:query_params] || {}
978
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
979
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
980
+ query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
981
+ query_params[:'ending_before'] = opts[:'ending_before'] if !opts[:'ending_before'].nil?
982
+ query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
983
+ query_params[:'search'] = opts[:'search'] if !opts[:'search'].nil?
984
+
985
+ # header parameters
986
+ header_params = opts[:header_params] || {}
987
+ # HTTP header 'Accept' (if needed)
988
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
989
+
990
+ # form parameters
991
+ form_params = opts[:form_params] || {}
992
+
993
+ # http body (model)
994
+ post_body = opts[:debug_body]
995
+
996
+ # return_type
997
+ return_type = opts[:debug_return_type] || 'PaginatedFunctions'
998
+
999
+ # auth_names
1000
+ auth_names = opts[:debug_auth_names] || ['UserToken']
1001
+
1002
+ new_options = opts.merge(
1003
+ :operation => :"FunctionsApi.list_functions",
1004
+ :header_params => header_params,
1005
+ :query_params => query_params,
1006
+ :form_params => form_params,
1007
+ :body => post_body,
1008
+ :auth_names => auth_names,
1009
+ :return_type => return_type
1010
+ )
1011
+
1012
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1013
+ if @api_client.config.debugging
1014
+ @api_client.config.logger.debug "API called: FunctionsApi#list_functions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1015
+ end
1016
+ return data, status_code, headers
1017
+ end
1018
+
1019
+ # List every function scheduler in a project
1020
+ # Project-scoped counterpart to `/projects/{id}/functions/{functionId}/schedulers`. Returns schedulers across all functions in the project, ordered by creation time descending, with standard page/limit pagination so clients don't have to fan out one request per function.
1021
+ # @param id [String] Project ID
1022
+ # @param [Hash] opts the optional parameters
1023
+ # @option opts [Integer] :page Page number (1-indexed) for offset pagination. Declares no schema default so the request validator does not inject one: handlers that omit &#x60;page&#x60; see it unset (nil) and default to 1 in code, while cursor-first endpoints (e.g. the project deployments feed) can detect its absence to stay in keyset/search mode. Supplying &#x60;page&#x60; selects offset pagination.
1024
+ # @option opts [Integer] :limit Number of items per page (max 100) (default to 10)
1025
+ # @option opts [String] :cursor Opaque keyset pagination cursor from a previous response&#39;s &#x60;next_cursor&#x60; — pages forward. Mutually exclusive with &#x60;page&#x60; and &#x60;ending_before&#x60;; combining them returns 400. When supplied, the request&#39;s &#x60;search&#x60; and &#x60;limit&#x60; must match the values bound to the cursor or the request returns 400.
1026
+ # @option opts [String] :ending_before Opaque keyset pagination cursor from a previous response&#39;s &#x60;prev_cursor&#x60; — pages backward (the page immediately preceding this cursor). Mutually exclusive with &#x60;page&#x60; and &#x60;cursor&#x60;; combining them returns 400. &#x60;search&#x60; and &#x60;limit&#x60; must match the values bound to the cursor or the request returns 400.
1027
+ # @option opts [Integer] :offset Bounded row offset past the keyset anchor named by &#x60;cursor&#x60; (forward) or &#x60;ending_before&#x60; (backward) — the hybrid jump. Seek to the anchor, then skip this many rows within. Used for numbered jump-to-page: from the current page, seek to its next/prev cursor and offset the remaining pages. Only honored on the cursor pagination path; ignored otherwise. (default to 0)
1028
+ # @option opts [String] :search Case-insensitive substring match on the resource &#x60;name&#x60;. See the endpoint description for supported pagination modes.
1029
+ # @return [FunctionSchedulerListResponse]
1030
+ def list_project_schedulers(id, opts = {})
1031
+ data, _status_code, _headers = list_project_schedulers_with_http_info(id, opts)
1032
+ data
1033
+ end
1034
+
1035
+ # List every function scheduler in a project
1036
+ # Project-scoped counterpart to &#x60;/projects/{id}/functions/{functionId}/schedulers&#x60;. Returns schedulers across all functions in the project, ordered by creation time descending, with standard page/limit pagination so clients don&#39;t have to fan out one request per function.
1037
+ # @param id [String] Project ID
1038
+ # @param [Hash] opts the optional parameters
1039
+ # @option opts [Integer] :page Page number (1-indexed) for offset pagination. Declares no schema default so the request validator does not inject one: handlers that omit &#x60;page&#x60; see it unset (nil) and default to 1 in code, while cursor-first endpoints (e.g. the project deployments feed) can detect its absence to stay in keyset/search mode. Supplying &#x60;page&#x60; selects offset pagination.
1040
+ # @option opts [Integer] :limit Number of items per page (max 100) (default to 10)
1041
+ # @option opts [String] :cursor Opaque keyset pagination cursor from a previous response&#39;s &#x60;next_cursor&#x60; — pages forward. Mutually exclusive with &#x60;page&#x60; and &#x60;ending_before&#x60;; combining them returns 400. When supplied, the request&#39;s &#x60;search&#x60; and &#x60;limit&#x60; must match the values bound to the cursor or the request returns 400.
1042
+ # @option opts [String] :ending_before Opaque keyset pagination cursor from a previous response&#39;s &#x60;prev_cursor&#x60; — pages backward (the page immediately preceding this cursor). Mutually exclusive with &#x60;page&#x60; and &#x60;cursor&#x60;; combining them returns 400. &#x60;search&#x60; and &#x60;limit&#x60; must match the values bound to the cursor or the request returns 400.
1043
+ # @option opts [Integer] :offset Bounded row offset past the keyset anchor named by &#x60;cursor&#x60; (forward) or &#x60;ending_before&#x60; (backward) — the hybrid jump. Seek to the anchor, then skip this many rows within. Used for numbered jump-to-page: from the current page, seek to its next/prev cursor and offset the remaining pages. Only honored on the cursor pagination path; ignored otherwise. (default to 0)
1044
+ # @option opts [String] :search Case-insensitive substring match on the resource &#x60;name&#x60;. See the endpoint description for supported pagination modes.
1045
+ # @return [Array<(FunctionSchedulerListResponse, Integer, Hash)>] FunctionSchedulerListResponse data, response status code and response headers
1046
+ def list_project_schedulers_with_http_info(id, opts = {})
1047
+ if @api_client.config.debugging
1048
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.list_project_schedulers ...'
1049
+ end
1050
+ # verify the required parameter 'id' is set
1051
+ if @api_client.config.client_side_validation && id.nil?
1052
+ fail ArgumentError, "Missing the required parameter 'id' when calling FunctionsApi.list_project_schedulers"
1053
+ end
1054
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
1055
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling FunctionsApi.list_project_schedulers, must be greater than or equal to 1.'
1056
+ end
1057
+
1058
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
1059
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling FunctionsApi.list_project_schedulers, must be smaller than or equal to 100.'
1060
+ end
1061
+
1062
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
1063
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling FunctionsApi.list_project_schedulers, must be greater than or equal to 1.'
1064
+ end
1065
+
1066
+ if @api_client.config.client_side_validation && !opts[:'offset'].nil? && opts[:'offset'] < 0
1067
+ fail ArgumentError, 'invalid value for "opts[:"offset"]" when calling FunctionsApi.list_project_schedulers, must be greater than or equal to 0.'
1068
+ end
1069
+
1070
+ if @api_client.config.client_side_validation && !opts[:'search'].nil? && opts[:'search'].to_s.length > 256
1071
+ fail ArgumentError, 'invalid value for "opts[:"search"]" when calling FunctionsApi.list_project_schedulers, the character length must be smaller than or equal to 256.'
1072
+ end
1073
+
1074
+ # resource path
1075
+ local_var_path = '/projects/{id}/schedulers'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
1076
+
1077
+ # query parameters
1078
+ query_params = opts[:query_params] || {}
1079
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
1080
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
1081
+ query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
1082
+ query_params[:'ending_before'] = opts[:'ending_before'] if !opts[:'ending_before'].nil?
1083
+ query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
1084
+ query_params[:'search'] = opts[:'search'] if !opts[:'search'].nil?
1085
+
1086
+ # header parameters
1087
+ header_params = opts[:header_params] || {}
1088
+ # HTTP header 'Accept' (if needed)
1089
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1090
+
1091
+ # form parameters
1092
+ form_params = opts[:form_params] || {}
1093
+
1094
+ # http body (model)
1095
+ post_body = opts[:debug_body]
1096
+
1097
+ # return_type
1098
+ return_type = opts[:debug_return_type] || 'FunctionSchedulerListResponse'
1099
+
1100
+ # auth_names
1101
+ auth_names = opts[:debug_auth_names] || ['UserToken']
1102
+
1103
+ new_options = opts.merge(
1104
+ :operation => :"FunctionsApi.list_project_schedulers",
1105
+ :header_params => header_params,
1106
+ :query_params => query_params,
1107
+ :form_params => form_params,
1108
+ :body => post_body,
1109
+ :auth_names => auth_names,
1110
+ :return_type => return_type
1111
+ )
1112
+
1113
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1114
+ if @api_client.config.debugging
1115
+ @api_client.config.logger.debug "API called: FunctionsApi#list_project_schedulers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1116
+ end
1117
+ return data, status_code, headers
1118
+ end
1119
+
1120
+ # Resolve function name for invocation
1121
+ # Resolves a DNS-safe function name to its function ID within the caller's project. SDKs use this endpoint internally to invoke by function name while routing by function ID. **With Service Key**: - Allowed **With Auth User Token**: - Allowed **With Anon Key**: - Requires anon key permission: `functions.invoke` - Function must have `is_public: true`
1122
+ # @param name [String] DNS-safe function name (lowercase letters, numbers, hyphens; cannot start or end with hyphen)
1123
+ # @param [Hash] opts the optional parameters
1124
+ # @return [ResolveFunctionResponse]
1125
+ def resolve_function_for_invocation(name, opts = {})
1126
+ data, _status_code, _headers = resolve_function_for_invocation_with_http_info(name, opts)
1127
+ data
1128
+ end
1129
+
1130
+ # Resolve function name for invocation
1131
+ # Resolves a DNS-safe function name to its function ID within the caller&#39;s project. SDKs use this endpoint internally to invoke by function name while routing by function ID. **With Service Key**: - Allowed **With Auth User Token**: - Allowed **With Anon Key**: - Requires anon key permission: &#x60;functions.invoke&#x60; - Function must have &#x60;is_public: true&#x60;
1132
+ # @param name [String] DNS-safe function name (lowercase letters, numbers, hyphens; cannot start or end with hyphen)
1133
+ # @param [Hash] opts the optional parameters
1134
+ # @return [Array<(ResolveFunctionResponse, Integer, Hash)>] ResolveFunctionResponse data, response status code and response headers
1135
+ def resolve_function_for_invocation_with_http_info(name, opts = {})
1136
+ if @api_client.config.debugging
1137
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.resolve_function_for_invocation ...'
1138
+ end
1139
+ # verify the required parameter 'name' is set
1140
+ if @api_client.config.client_side_validation && name.nil?
1141
+ fail ArgumentError, "Missing the required parameter 'name' when calling FunctionsApi.resolve_function_for_invocation"
1142
+ end
1143
+ if @api_client.config.client_side_validation && name.to_s.length > 63
1144
+ fail ArgumentError, 'invalid value for "name" when calling FunctionsApi.resolve_function_for_invocation, the character length must be smaller than or equal to 63.'
1145
+ end
1146
+
1147
+ pattern = Regexp.new(/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/)
1148
+ if @api_client.config.client_side_validation && name !~ pattern
1149
+ fail ArgumentError, "invalid value for 'name' when calling FunctionsApi.resolve_function_for_invocation, must conform to the pattern #{pattern}."
1150
+ end
1151
+
1152
+ # resource path
1153
+ local_var_path = '/functions/resolve'
1154
+
1155
+ # query parameters
1156
+ query_params = opts[:query_params] || {}
1157
+ query_params[:'name'] = name
1158
+
1159
+ # header parameters
1160
+ header_params = opts[:header_params] || {}
1161
+ # HTTP header 'Accept' (if needed)
1162
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1163
+
1164
+ # form parameters
1165
+ form_params = opts[:form_params] || {}
1166
+
1167
+ # http body (model)
1168
+ post_body = opts[:debug_body]
1169
+
1170
+ # return_type
1171
+ return_type = opts[:debug_return_type] || 'ResolveFunctionResponse'
1172
+
1173
+ # auth_names
1174
+ auth_names = opts[:debug_auth_names] || ['ServiceRoleKey', 'AuthUserAccessToken', 'AnonKey']
1175
+
1176
+ new_options = opts.merge(
1177
+ :operation => :"FunctionsApi.resolve_function_for_invocation",
1178
+ :header_params => header_params,
1179
+ :query_params => query_params,
1180
+ :form_params => form_params,
1181
+ :body => post_body,
1182
+ :auth_names => auth_names,
1183
+ :return_type => return_type
1184
+ )
1185
+
1186
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1187
+ if @api_client.config.debugging
1188
+ @api_client.config.logger.debug "API called: FunctionsApi#resolve_function_for_invocation\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1189
+ end
1190
+ return data, status_code, headers
1191
+ end
1192
+
1193
+ # Update function settings
1194
+ # @param id [String] Project ID
1195
+ # @param function_id [String] Function ID
1196
+ # @param update_function_request [UpdateFunctionRequest]
1197
+ # @param [Hash] opts the optional parameters
1198
+ # @return [Function]
1199
+ def update_function(id, function_id, update_function_request, opts = {})
1200
+ data, _status_code, _headers = update_function_with_http_info(id, function_id, update_function_request, opts)
1201
+ data
1202
+ end
1203
+
1204
+ # Update function settings
1205
+ # @param id [String] Project ID
1206
+ # @param function_id [String] Function ID
1207
+ # @param update_function_request [UpdateFunctionRequest]
1208
+ # @param [Hash] opts the optional parameters
1209
+ # @return [Array<(Function, Integer, Hash)>] Function data, response status code and response headers
1210
+ def update_function_with_http_info(id, function_id, update_function_request, opts = {})
1211
+ if @api_client.config.debugging
1212
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.update_function ...'
1213
+ end
1214
+ # verify the required parameter 'id' is set
1215
+ if @api_client.config.client_side_validation && id.nil?
1216
+ fail ArgumentError, "Missing the required parameter 'id' when calling FunctionsApi.update_function"
1217
+ end
1218
+ # verify the required parameter 'function_id' is set
1219
+ if @api_client.config.client_side_validation && function_id.nil?
1220
+ fail ArgumentError, "Missing the required parameter 'function_id' when calling FunctionsApi.update_function"
1221
+ end
1222
+ # verify the required parameter 'update_function_request' is set
1223
+ if @api_client.config.client_side_validation && update_function_request.nil?
1224
+ fail ArgumentError, "Missing the required parameter 'update_function_request' when calling FunctionsApi.update_function"
1225
+ end
1226
+ # resource path
1227
+ local_var_path = '/projects/{id}/functions/{functionId}'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'functionId' + '}', CGI.escape(function_id.to_s))
1228
+
1229
+ # query parameters
1230
+ query_params = opts[:query_params] || {}
1231
+
1232
+ # header parameters
1233
+ header_params = opts[:header_params] || {}
1234
+ # HTTP header 'Accept' (if needed)
1235
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1236
+ # HTTP header 'Content-Type'
1237
+ content_type = @api_client.select_header_content_type(['application/json'])
1238
+ if !content_type.nil?
1239
+ header_params['Content-Type'] = content_type
1240
+ end
1241
+
1242
+ # form parameters
1243
+ form_params = opts[:form_params] || {}
1244
+
1245
+ # http body (model)
1246
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(update_function_request)
1247
+
1248
+ # return_type
1249
+ return_type = opts[:debug_return_type] || 'Function'
1250
+
1251
+ # auth_names
1252
+ auth_names = opts[:debug_auth_names] || ['UserToken']
1253
+
1254
+ new_options = opts.merge(
1255
+ :operation => :"FunctionsApi.update_function",
1256
+ :header_params => header_params,
1257
+ :query_params => query_params,
1258
+ :form_params => form_params,
1259
+ :body => post_body,
1260
+ :auth_names => auth_names,
1261
+ :return_type => return_type
1262
+ )
1263
+
1264
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
1265
+ if @api_client.config.debugging
1266
+ @api_client.config.logger.debug "API called: FunctionsApi#update_function\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1267
+ end
1268
+ return data, status_code, headers
1269
+ end
1270
+
1271
+ # Update a function scheduler
1272
+ # @param id [String] Project ID
1273
+ # @param function_id [String] Function ID
1274
+ # @param scheduler_id [String] Function scheduler ID
1275
+ # @param update_function_scheduler_request [UpdateFunctionSchedulerRequest]
1276
+ # @param [Hash] opts the optional parameters
1277
+ # @return [FunctionScheduler]
1278
+ def update_function_scheduler(id, function_id, scheduler_id, update_function_scheduler_request, opts = {})
1279
+ data, _status_code, _headers = update_function_scheduler_with_http_info(id, function_id, scheduler_id, update_function_scheduler_request, opts)
1280
+ data
1281
+ end
1282
+
1283
+ # Update a function scheduler
1284
+ # @param id [String] Project ID
1285
+ # @param function_id [String] Function ID
1286
+ # @param scheduler_id [String] Function scheduler ID
1287
+ # @param update_function_scheduler_request [UpdateFunctionSchedulerRequest]
1288
+ # @param [Hash] opts the optional parameters
1289
+ # @return [Array<(FunctionScheduler, Integer, Hash)>] FunctionScheduler data, response status code and response headers
1290
+ def update_function_scheduler_with_http_info(id, function_id, scheduler_id, update_function_scheduler_request, opts = {})
1291
+ if @api_client.config.debugging
1292
+ @api_client.config.logger.debug 'Calling API: FunctionsApi.update_function_scheduler ...'
1293
+ end
1294
+ # verify the required parameter 'id' is set
1295
+ if @api_client.config.client_side_validation && id.nil?
1296
+ fail ArgumentError, "Missing the required parameter 'id' when calling FunctionsApi.update_function_scheduler"
1297
+ end
1298
+ # verify the required parameter 'function_id' is set
1299
+ if @api_client.config.client_side_validation && function_id.nil?
1300
+ fail ArgumentError, "Missing the required parameter 'function_id' when calling FunctionsApi.update_function_scheduler"
1301
+ end
1302
+ # verify the required parameter 'scheduler_id' is set
1303
+ if @api_client.config.client_side_validation && scheduler_id.nil?
1304
+ fail ArgumentError, "Missing the required parameter 'scheduler_id' when calling FunctionsApi.update_function_scheduler"
1305
+ end
1306
+ # verify the required parameter 'update_function_scheduler_request' is set
1307
+ if @api_client.config.client_side_validation && update_function_scheduler_request.nil?
1308
+ fail ArgumentError, "Missing the required parameter 'update_function_scheduler_request' when calling FunctionsApi.update_function_scheduler"
1309
+ end
1310
+ # resource path
1311
+ local_var_path = '/projects/{id}/functions/{functionId}/schedulers/{schedulerId}'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'functionId' + '}', CGI.escape(function_id.to_s)).sub('{' + 'schedulerId' + '}', CGI.escape(scheduler_id.to_s))
1312
+
1313
+ # query parameters
1314
+ query_params = opts[:query_params] || {}
1315
+
1316
+ # header parameters
1317
+ header_params = opts[:header_params] || {}
1318
+ # HTTP header 'Accept' (if needed)
1319
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1320
+ # HTTP header 'Content-Type'
1321
+ content_type = @api_client.select_header_content_type(['application/json'])
1322
+ if !content_type.nil?
1323
+ header_params['Content-Type'] = content_type
1324
+ end
1325
+
1326
+ # form parameters
1327
+ form_params = opts[:form_params] || {}
1328
+
1329
+ # http body (model)
1330
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(update_function_scheduler_request)
1331
+
1332
+ # return_type
1333
+ return_type = opts[:debug_return_type] || 'FunctionScheduler'
1334
+
1335
+ # auth_names
1336
+ auth_names = opts[:debug_auth_names] || ['UserToken']
1337
+
1338
+ new_options = opts.merge(
1339
+ :operation => :"FunctionsApi.update_function_scheduler",
1340
+ :header_params => header_params,
1341
+ :query_params => query_params,
1342
+ :form_params => form_params,
1343
+ :body => post_body,
1344
+ :auth_names => auth_names,
1345
+ :return_type => return_type
1346
+ )
1347
+
1348
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
1349
+ if @api_client.config.debugging
1350
+ @api_client.config.logger.debug "API called: FunctionsApi#update_function_scheduler\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1351
+ end
1352
+ return data, status_code, headers
1353
+ end
1354
+ end
1355
+ end