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,913 @@
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 FrontendsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Create a new frontend deployment
23
+ # Creates and deploys a frontend for the project. If a frontend with the same name already exists in the project, this operation updates that frontend using the uploaded archive and starts a new deployment. A deployment that starts immediately returns `status: provisioning`, then transitions to `active`, `degraded`, or `failed`. If another deployment is running, the response preserves the frontend's current status and exposes the queued deployment through `pending_deployment_id`. Existing frontend traffic continues to use an available runtime while the new deployment builds and provisions. Each deployment publishes its own static assets before the runtimes switch to its build, and the live build's assets keep serving until the new deployment is live, so a page loaded mid-deployment resolves its assets whichever build served it. A failed redeploy puts the runtimes back on the build they were running, leaves the frontend `active` on the previous deployment, and records the attempted deployment as failed. `degraded` means the runtime remains available but edge synchronization requires recovery; Volcano retries the edge step without rebuilding. Only one deployment may run for a given frontend, while independent frontends and projects can deploy concurrently. For monorepos, provide `app_root` as a relative path from the uploaded archive root to the Next.js app that should be built. Omit it for single-app archives. Supported frontend environments are Next.js 15.x and 16.x with Node.js 22.x or 24.x. The Node.js runtime is inferred from `package.json` `engines.node`; if omitted, Volcano uses Node.js 22.x. The selected Node.js family must also satisfy the installed Next.js package's `engines.node` constraint. Volcano tests Next 15.5.25 (`^18.18.0 || ^19.8.0 || >=20.0.0`) and Next 16.3.4 (`>=20.9.0`). 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 images are built, the publish build enforces `LAMBDA_TARGET_CONTAINER_SIZE_LIMIT_MB` before pushing. This operation is limited by plan-based frontend deployment quotas (`FREE_FRONTEND_DEPLOYMENTS`, `PRO_FRONTEND_DEPLOYMENTS`). Each project can contain up to 10,000 frontends regardless of plan.
24
+ # @param id [String] Project ID
25
+ # @param name [String] DNS-safe frontend name
26
+ # @param archive [File] ZIP or tar.gz archive of the frontend project directory or monorepo workspace root. The API enforces SOURCE_ARCHIVE_SIZE_LIMIT_MB and stores a normalized tar.gz archive.
27
+ # @param [Hash] opts the optional parameters
28
+ # @option opts [String] :framework Next.js frontend. Supported Next.js majors are 15.x and 16.x. (default to 'nextjs')
29
+ # @option opts [String] :app_root Optional relative POSIX path from the uploaded archive root to the Next.js app to build, for example `apps/web`.
30
+ # @return [Frontend]
31
+ def create_frontend(id, name, archive, opts = {})
32
+ data, _status_code, _headers = create_frontend_with_http_info(id, name, archive, opts)
33
+ data
34
+ end
35
+
36
+ # Create a new frontend deployment
37
+ # Creates and deploys a frontend for the project. If a frontend with the same name already exists in the project, this operation updates that frontend using the uploaded archive and starts a new deployment. A deployment that starts immediately returns `status: provisioning`, then transitions to `active`, `degraded`, or `failed`. If another deployment is running, the response preserves the frontend's current status and exposes the queued deployment through `pending_deployment_id`. Existing frontend traffic continues to use an available runtime while the new deployment builds and provisions. Each deployment publishes its own static assets before the runtimes switch to its build, and the live build's assets keep serving until the new deployment is live, so a page loaded mid-deployment resolves its assets whichever build served it. A failed redeploy puts the runtimes back on the build they were running, leaves the frontend `active` on the previous deployment, and records the attempted deployment as failed. `degraded` means the runtime remains available but edge synchronization requires recovery; Volcano retries the edge step without rebuilding. Only one deployment may run for a given frontend, while independent frontends and projects can deploy concurrently. For monorepos, provide `app_root` as a relative path from the uploaded archive root to the Next.js app that should be built. Omit it for single-app archives. Supported frontend environments are Next.js 15.x and 16.x with Node.js 22.x or 24.x. The Node.js runtime is inferred from `package.json` `engines.node`; if omitted, Volcano uses Node.js 22.x. The selected Node.js family must also satisfy the installed Next.js package's `engines.node` constraint. Volcano tests Next 15.5.25 (`^18.18.0 || ^19.8.0 || >=20.0.0`) and Next 16.3.4 (`>=20.9.0`). 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 images are built, the publish build enforces `LAMBDA_TARGET_CONTAINER_SIZE_LIMIT_MB` before pushing. This operation is limited by plan-based frontend deployment quotas (`FREE_FRONTEND_DEPLOYMENTS`, `PRO_FRONTEND_DEPLOYMENTS`). Each project can contain up to 10,000 frontends regardless of plan.
38
+ # @param id [String] Project ID
39
+ # @param name [String] DNS-safe frontend name
40
+ # @param archive [File] ZIP or tar.gz archive of the frontend project directory or monorepo workspace root. The API enforces SOURCE_ARCHIVE_SIZE_LIMIT_MB and stores a normalized tar.gz archive.
41
+ # @param [Hash] opts the optional parameters
42
+ # @option opts [String] :framework Next.js frontend. Supported Next.js majors are 15.x and 16.x. (default to 'nextjs')
43
+ # @option opts [String] :app_root Optional relative POSIX path from the uploaded archive root to the Next.js app to build, for example `apps/web`.
44
+ # @return [Array<(Frontend, Integer, Hash)>] Frontend data, response status code and response headers
45
+ def create_frontend_with_http_info(id, name, archive, opts = {})
46
+ if @api_client.config.debugging
47
+ @api_client.config.logger.debug 'Calling API: FrontendsApi.create_frontend ...'
48
+ end
49
+ # verify the required parameter 'id' is set
50
+ if @api_client.config.client_side_validation && id.nil?
51
+ fail ArgumentError, "Missing the required parameter 'id' when calling FrontendsApi.create_frontend"
52
+ end
53
+ # verify the required parameter 'name' is set
54
+ if @api_client.config.client_side_validation && name.nil?
55
+ fail ArgumentError, "Missing the required parameter 'name' when calling FrontendsApi.create_frontend"
56
+ end
57
+ if @api_client.config.client_side_validation && name.to_s.length > 63
58
+ fail ArgumentError, 'invalid value for "name" when calling FrontendsApi.create_frontend, the character length must be smaller than or equal to 63.'
59
+ end
60
+
61
+ pattern = Regexp.new(/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/)
62
+ if @api_client.config.client_side_validation && name !~ pattern
63
+ fail ArgumentError, "invalid value for 'name' when calling FrontendsApi.create_frontend, must conform to the pattern #{pattern}."
64
+ end
65
+
66
+ # verify the required parameter 'archive' is set
67
+ if @api_client.config.client_side_validation && archive.nil?
68
+ fail ArgumentError, "Missing the required parameter 'archive' when calling FrontendsApi.create_frontend"
69
+ end
70
+ allowable_values = ["nextjs"]
71
+ if @api_client.config.client_side_validation && opts[:'framework'] && !allowable_values.include?(opts[:'framework'])
72
+ fail ArgumentError, "invalid value for \"framework\", must be one of #{allowable_values}"
73
+ end
74
+ if @api_client.config.client_side_validation && !opts[:'app_root'].nil? && opts[:'app_root'].to_s.length > 1024
75
+ fail ArgumentError, 'invalid value for "opts[:"app_root"]" when calling FrontendsApi.create_frontend, the character length must be smaller than or equal to 1024.'
76
+ end
77
+
78
+ # resource path
79
+ local_var_path = '/projects/{id}/frontends'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
80
+
81
+ # query parameters
82
+ query_params = opts[:query_params] || {}
83
+
84
+ # header parameters
85
+ header_params = opts[:header_params] || {}
86
+ # HTTP header 'Accept' (if needed)
87
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
88
+ # HTTP header 'Content-Type'
89
+ content_type = @api_client.select_header_content_type(['multipart/form-data'])
90
+ if !content_type.nil?
91
+ header_params['Content-Type'] = content_type
92
+ end
93
+
94
+ # form parameters
95
+ form_params = opts[:form_params] || {}
96
+ form_params['name'] = name
97
+ form_params['archive'] = archive
98
+ form_params['framework'] = opts[:'framework'] if !opts[:'framework'].nil?
99
+ form_params['app_root'] = opts[:'app_root'] if !opts[:'app_root'].nil?
100
+
101
+ # http body (model)
102
+ post_body = opts[:debug_body]
103
+
104
+ # return_type
105
+ return_type = opts[:debug_return_type] || 'Frontend'
106
+
107
+ # auth_names
108
+ auth_names = opts[:debug_auth_names] || ['UserToken']
109
+
110
+ new_options = opts.merge(
111
+ :operation => :"FrontendsApi.create_frontend",
112
+ :header_params => header_params,
113
+ :query_params => query_params,
114
+ :form_params => form_params,
115
+ :body => post_body,
116
+ :auth_names => auth_names,
117
+ :return_type => return_type
118
+ )
119
+
120
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
121
+ if @api_client.config.debugging
122
+ @api_client.config.logger.debug "API called: FrontendsApi#create_frontend\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
123
+ end
124
+ return data, status_code, headers
125
+ end
126
+
127
+ # Configure frontend custom domain (PRO)
128
+ # Configures one custom domain for a frontend. The default Volcano-generated frontend URL remains active. Wildcard Volcano frontend TLS remains valid and isolated from custom-domain certificate changes.
129
+ # @param id [String] Project ID
130
+ # @param frontend_id [String] Frontend ID
131
+ # @param create_frontend_custom_domain_request [CreateFrontendCustomDomainRequest]
132
+ # @param [Hash] opts the optional parameters
133
+ # @return [FrontendCustomDomainResponse]
134
+ def create_frontend_custom_domain(id, frontend_id, create_frontend_custom_domain_request, opts = {})
135
+ data, _status_code, _headers = create_frontend_custom_domain_with_http_info(id, frontend_id, create_frontend_custom_domain_request, opts)
136
+ data
137
+ end
138
+
139
+ # Configure frontend custom domain (PRO)
140
+ # Configures one custom domain for a frontend. The default Volcano-generated frontend URL remains active. Wildcard Volcano frontend TLS remains valid and isolated from custom-domain certificate changes.
141
+ # @param id [String] Project ID
142
+ # @param frontend_id [String] Frontend ID
143
+ # @param create_frontend_custom_domain_request [CreateFrontendCustomDomainRequest]
144
+ # @param [Hash] opts the optional parameters
145
+ # @return [Array<(FrontendCustomDomainResponse, Integer, Hash)>] FrontendCustomDomainResponse data, response status code and response headers
146
+ def create_frontend_custom_domain_with_http_info(id, frontend_id, create_frontend_custom_domain_request, opts = {})
147
+ if @api_client.config.debugging
148
+ @api_client.config.logger.debug 'Calling API: FrontendsApi.create_frontend_custom_domain ...'
149
+ end
150
+ # verify the required parameter 'id' is set
151
+ if @api_client.config.client_side_validation && id.nil?
152
+ fail ArgumentError, "Missing the required parameter 'id' when calling FrontendsApi.create_frontend_custom_domain"
153
+ end
154
+ # verify the required parameter 'frontend_id' is set
155
+ if @api_client.config.client_side_validation && frontend_id.nil?
156
+ fail ArgumentError, "Missing the required parameter 'frontend_id' when calling FrontendsApi.create_frontend_custom_domain"
157
+ end
158
+ # verify the required parameter 'create_frontend_custom_domain_request' is set
159
+ if @api_client.config.client_side_validation && create_frontend_custom_domain_request.nil?
160
+ fail ArgumentError, "Missing the required parameter 'create_frontend_custom_domain_request' when calling FrontendsApi.create_frontend_custom_domain"
161
+ end
162
+ # resource path
163
+ local_var_path = '/projects/{id}/frontends/{frontendId}/domain'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'frontendId' + '}', CGI.escape(frontend_id.to_s))
164
+
165
+ # query parameters
166
+ query_params = opts[:query_params] || {}
167
+
168
+ # header parameters
169
+ header_params = opts[:header_params] || {}
170
+ # HTTP header 'Accept' (if needed)
171
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
172
+ # HTTP header 'Content-Type'
173
+ content_type = @api_client.select_header_content_type(['application/json'])
174
+ if !content_type.nil?
175
+ header_params['Content-Type'] = content_type
176
+ end
177
+
178
+ # form parameters
179
+ form_params = opts[:form_params] || {}
180
+
181
+ # http body (model)
182
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_frontend_custom_domain_request)
183
+
184
+ # return_type
185
+ return_type = opts[:debug_return_type] || 'FrontendCustomDomainResponse'
186
+
187
+ # auth_names
188
+ auth_names = opts[:debug_auth_names] || ['UserToken']
189
+
190
+ new_options = opts.merge(
191
+ :operation => :"FrontendsApi.create_frontend_custom_domain",
192
+ :header_params => header_params,
193
+ :query_params => query_params,
194
+ :form_params => form_params,
195
+ :body => post_body,
196
+ :auth_names => auth_names,
197
+ :return_type => return_type
198
+ )
199
+
200
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
201
+ if @api_client.config.debugging
202
+ @api_client.config.logger.debug "API called: FrontendsApi#create_frontend_custom_domain\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
203
+ end
204
+ return data, status_code, headers
205
+ end
206
+
207
+ # Delete a frontend
208
+ # Schedules asynchronous frontend deletion. If another deployment is running, the frontend 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 frontend lists.
209
+ # @param id [String] Project ID
210
+ # @param frontend_id [String] Frontend ID
211
+ # @param [Hash] opts the optional parameters
212
+ # @return [nil]
213
+ def delete_frontend(id, frontend_id, opts = {})
214
+ delete_frontend_with_http_info(id, frontend_id, opts)
215
+ nil
216
+ end
217
+
218
+ # Delete a frontend
219
+ # Schedules asynchronous frontend deletion. If another deployment is running, the frontend 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 frontend lists.
220
+ # @param id [String] Project ID
221
+ # @param frontend_id [String] Frontend ID
222
+ # @param [Hash] opts the optional parameters
223
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
224
+ def delete_frontend_with_http_info(id, frontend_id, opts = {})
225
+ if @api_client.config.debugging
226
+ @api_client.config.logger.debug 'Calling API: FrontendsApi.delete_frontend ...'
227
+ end
228
+ # verify the required parameter 'id' is set
229
+ if @api_client.config.client_side_validation && id.nil?
230
+ fail ArgumentError, "Missing the required parameter 'id' when calling FrontendsApi.delete_frontend"
231
+ end
232
+ # verify the required parameter 'frontend_id' is set
233
+ if @api_client.config.client_side_validation && frontend_id.nil?
234
+ fail ArgumentError, "Missing the required parameter 'frontend_id' when calling FrontendsApi.delete_frontend"
235
+ end
236
+ # resource path
237
+ local_var_path = '/projects/{id}/frontends/{frontendId}'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'frontendId' + '}', CGI.escape(frontend_id.to_s))
238
+
239
+ # query parameters
240
+ query_params = opts[:query_params] || {}
241
+
242
+ # header parameters
243
+ header_params = opts[:header_params] || {}
244
+ # HTTP header 'Accept' (if needed)
245
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
246
+
247
+ # form parameters
248
+ form_params = opts[:form_params] || {}
249
+
250
+ # http body (model)
251
+ post_body = opts[:debug_body]
252
+
253
+ # return_type
254
+ return_type = opts[:debug_return_type]
255
+
256
+ # auth_names
257
+ auth_names = opts[:debug_auth_names] || ['UserToken']
258
+
259
+ new_options = opts.merge(
260
+ :operation => :"FrontendsApi.delete_frontend",
261
+ :header_params => header_params,
262
+ :query_params => query_params,
263
+ :form_params => form_params,
264
+ :body => post_body,
265
+ :auth_names => auth_names,
266
+ :return_type => return_type
267
+ )
268
+
269
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
270
+ if @api_client.config.debugging
271
+ @api_client.config.logger.debug "API called: FrontendsApi#delete_frontend\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
272
+ end
273
+ return data, status_code, headers
274
+ end
275
+
276
+ # Delete frontend custom domain
277
+ # @param id [String] Project ID
278
+ # @param frontend_id [String] Frontend ID
279
+ # @param [Hash] opts the optional parameters
280
+ # @return [nil]
281
+ def delete_frontend_custom_domain(id, frontend_id, opts = {})
282
+ delete_frontend_custom_domain_with_http_info(id, frontend_id, opts)
283
+ nil
284
+ end
285
+
286
+ # Delete frontend custom domain
287
+ # @param id [String] Project ID
288
+ # @param frontend_id [String] Frontend ID
289
+ # @param [Hash] opts the optional parameters
290
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
291
+ def delete_frontend_custom_domain_with_http_info(id, frontend_id, opts = {})
292
+ if @api_client.config.debugging
293
+ @api_client.config.logger.debug 'Calling API: FrontendsApi.delete_frontend_custom_domain ...'
294
+ end
295
+ # verify the required parameter 'id' is set
296
+ if @api_client.config.client_side_validation && id.nil?
297
+ fail ArgumentError, "Missing the required parameter 'id' when calling FrontendsApi.delete_frontend_custom_domain"
298
+ end
299
+ # verify the required parameter 'frontend_id' is set
300
+ if @api_client.config.client_side_validation && frontend_id.nil?
301
+ fail ArgumentError, "Missing the required parameter 'frontend_id' when calling FrontendsApi.delete_frontend_custom_domain"
302
+ end
303
+ # resource path
304
+ local_var_path = '/projects/{id}/frontends/{frontendId}/domain'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'frontendId' + '}', CGI.escape(frontend_id.to_s))
305
+
306
+ # query parameters
307
+ query_params = opts[:query_params] || {}
308
+
309
+ # header parameters
310
+ header_params = opts[:header_params] || {}
311
+ # HTTP header 'Accept' (if needed)
312
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
313
+
314
+ # form parameters
315
+ form_params = opts[:form_params] || {}
316
+
317
+ # http body (model)
318
+ post_body = opts[:debug_body]
319
+
320
+ # return_type
321
+ return_type = opts[:debug_return_type]
322
+
323
+ # auth_names
324
+ auth_names = opts[:debug_auth_names] || ['UserToken']
325
+
326
+ new_options = opts.merge(
327
+ :operation => :"FrontendsApi.delete_frontend_custom_domain",
328
+ :header_params => header_params,
329
+ :query_params => query_params,
330
+ :form_params => form_params,
331
+ :body => post_body,
332
+ :auth_names => auth_names,
333
+ :return_type => return_type
334
+ )
335
+
336
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
337
+ if @api_client.config.debugging
338
+ @api_client.config.logger.debug "API called: FrontendsApi#delete_frontend_custom_domain\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
339
+ end
340
+ return data, status_code, headers
341
+ end
342
+
343
+ # Get frontend details
344
+ # @param id [String] Project ID
345
+ # @param frontend_id [String] Frontend ID
346
+ # @param [Hash] opts the optional parameters
347
+ # @return [Frontend]
348
+ def get_frontend(id, frontend_id, opts = {})
349
+ data, _status_code, _headers = get_frontend_with_http_info(id, frontend_id, opts)
350
+ data
351
+ end
352
+
353
+ # Get frontend details
354
+ # @param id [String] Project ID
355
+ # @param frontend_id [String] Frontend ID
356
+ # @param [Hash] opts the optional parameters
357
+ # @return [Array<(Frontend, Integer, Hash)>] Frontend data, response status code and response headers
358
+ def get_frontend_with_http_info(id, frontend_id, opts = {})
359
+ if @api_client.config.debugging
360
+ @api_client.config.logger.debug 'Calling API: FrontendsApi.get_frontend ...'
361
+ end
362
+ # verify the required parameter 'id' is set
363
+ if @api_client.config.client_side_validation && id.nil?
364
+ fail ArgumentError, "Missing the required parameter 'id' when calling FrontendsApi.get_frontend"
365
+ end
366
+ # verify the required parameter 'frontend_id' is set
367
+ if @api_client.config.client_side_validation && frontend_id.nil?
368
+ fail ArgumentError, "Missing the required parameter 'frontend_id' when calling FrontendsApi.get_frontend"
369
+ end
370
+ # resource path
371
+ local_var_path = '/projects/{id}/frontends/{frontendId}'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'frontendId' + '}', CGI.escape(frontend_id.to_s))
372
+
373
+ # query parameters
374
+ query_params = opts[:query_params] || {}
375
+
376
+ # header parameters
377
+ header_params = opts[:header_params] || {}
378
+ # HTTP header 'Accept' (if needed)
379
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
380
+
381
+ # form parameters
382
+ form_params = opts[:form_params] || {}
383
+
384
+ # http body (model)
385
+ post_body = opts[:debug_body]
386
+
387
+ # return_type
388
+ return_type = opts[:debug_return_type] || 'Frontend'
389
+
390
+ # auth_names
391
+ auth_names = opts[:debug_auth_names] || ['UserToken']
392
+
393
+ new_options = opts.merge(
394
+ :operation => :"FrontendsApi.get_frontend",
395
+ :header_params => header_params,
396
+ :query_params => query_params,
397
+ :form_params => form_params,
398
+ :body => post_body,
399
+ :auth_names => auth_names,
400
+ :return_type => return_type
401
+ )
402
+
403
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
404
+ if @api_client.config.debugging
405
+ @api_client.config.logger.debug "API called: FrontendsApi#get_frontend\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
406
+ end
407
+ return data, status_code, headers
408
+ end
409
+
410
+ # Get frontend custom domain status
411
+ # @param id [String] Project ID
412
+ # @param frontend_id [String] Frontend ID
413
+ # @param [Hash] opts the optional parameters
414
+ # @return [FrontendCustomDomainResponse]
415
+ def get_frontend_custom_domain(id, frontend_id, opts = {})
416
+ data, _status_code, _headers = get_frontend_custom_domain_with_http_info(id, frontend_id, opts)
417
+ data
418
+ end
419
+
420
+ # Get frontend custom domain status
421
+ # @param id [String] Project ID
422
+ # @param frontend_id [String] Frontend ID
423
+ # @param [Hash] opts the optional parameters
424
+ # @return [Array<(FrontendCustomDomainResponse, Integer, Hash)>] FrontendCustomDomainResponse data, response status code and response headers
425
+ def get_frontend_custom_domain_with_http_info(id, frontend_id, opts = {})
426
+ if @api_client.config.debugging
427
+ @api_client.config.logger.debug 'Calling API: FrontendsApi.get_frontend_custom_domain ...'
428
+ end
429
+ # verify the required parameter 'id' is set
430
+ if @api_client.config.client_side_validation && id.nil?
431
+ fail ArgumentError, "Missing the required parameter 'id' when calling FrontendsApi.get_frontend_custom_domain"
432
+ end
433
+ # verify the required parameter 'frontend_id' is set
434
+ if @api_client.config.client_side_validation && frontend_id.nil?
435
+ fail ArgumentError, "Missing the required parameter 'frontend_id' when calling FrontendsApi.get_frontend_custom_domain"
436
+ end
437
+ # resource path
438
+ local_var_path = '/projects/{id}/frontends/{frontendId}/domain'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'frontendId' + '}', CGI.escape(frontend_id.to_s))
439
+
440
+ # query parameters
441
+ query_params = opts[:query_params] || {}
442
+
443
+ # header parameters
444
+ header_params = opts[:header_params] || {}
445
+ # HTTP header 'Accept' (if needed)
446
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
447
+
448
+ # form parameters
449
+ form_params = opts[:form_params] || {}
450
+
451
+ # http body (model)
452
+ post_body = opts[:debug_body]
453
+
454
+ # return_type
455
+ return_type = opts[:debug_return_type] || 'FrontendCustomDomainResponse'
456
+
457
+ # auth_names
458
+ auth_names = opts[:debug_auth_names] || ['UserToken']
459
+
460
+ new_options = opts.merge(
461
+ :operation => :"FrontendsApi.get_frontend_custom_domain",
462
+ :header_params => header_params,
463
+ :query_params => query_params,
464
+ :form_params => form_params,
465
+ :body => post_body,
466
+ :auth_names => auth_names,
467
+ :return_type => return_type
468
+ )
469
+
470
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
471
+ if @api_client.config.debugging
472
+ @api_client.config.logger.debug "API called: FrontendsApi#get_frontend_custom_domain\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
473
+ end
474
+ return data, status_code, headers
475
+ end
476
+
477
+ # Per-day request and error counts for a single frontend
478
+ # Returns a zero-filled daily series of request counts and 5xx error counts for one frontend, oldest first. Each entry is one UTC day; missing days (no traffic recorded) come back as `requests: 0, errors: 0` so the response always has exactly `days` entries. Backs the Monitoring section on the Frontend detail page in volcano-web. `days` defaults to 30 and is capped at 90 to keep the (frontend_id, day) index scan bounded.
479
+ # @param id [String] Project ID
480
+ # @param frontend_id [String] Frontend ID
481
+ # @param [Hash] opts the optional parameters
482
+ # @option opts [Integer] :days Number of trailing days to return (1–90, default 30). (default to 30)
483
+ # @return [FrontendUsageHistoryResponse]
484
+ def get_frontend_usage_history(id, frontend_id, opts = {})
485
+ data, _status_code, _headers = get_frontend_usage_history_with_http_info(id, frontend_id, opts)
486
+ data
487
+ end
488
+
489
+ # Per-day request and error counts for a single frontend
490
+ # Returns a zero-filled daily series of request counts and 5xx error counts for one frontend, oldest first. Each entry is one UTC day; missing days (no traffic recorded) come back as &#x60;requests: 0, errors: 0&#x60; so the response always has exactly &#x60;days&#x60; entries. Backs the Monitoring section on the Frontend detail page in volcano-web. &#x60;days&#x60; defaults to 30 and is capped at 90 to keep the (frontend_id, day) index scan bounded.
491
+ # @param id [String] Project ID
492
+ # @param frontend_id [String] Frontend ID
493
+ # @param [Hash] opts the optional parameters
494
+ # @option opts [Integer] :days Number of trailing days to return (1–90, default 30). (default to 30)
495
+ # @return [Array<(FrontendUsageHistoryResponse, Integer, Hash)>] FrontendUsageHistoryResponse data, response status code and response headers
496
+ def get_frontend_usage_history_with_http_info(id, frontend_id, opts = {})
497
+ if @api_client.config.debugging
498
+ @api_client.config.logger.debug 'Calling API: FrontendsApi.get_frontend_usage_history ...'
499
+ end
500
+ # verify the required parameter 'id' is set
501
+ if @api_client.config.client_side_validation && id.nil?
502
+ fail ArgumentError, "Missing the required parameter 'id' when calling FrontendsApi.get_frontend_usage_history"
503
+ end
504
+ # verify the required parameter 'frontend_id' is set
505
+ if @api_client.config.client_side_validation && frontend_id.nil?
506
+ fail ArgumentError, "Missing the required parameter 'frontend_id' when calling FrontendsApi.get_frontend_usage_history"
507
+ end
508
+ if @api_client.config.client_side_validation && !opts[:'days'].nil? && opts[:'days'] > 90
509
+ fail ArgumentError, 'invalid value for "opts[:"days"]" when calling FrontendsApi.get_frontend_usage_history, must be smaller than or equal to 90.'
510
+ end
511
+
512
+ if @api_client.config.client_side_validation && !opts[:'days'].nil? && opts[:'days'] < 1
513
+ fail ArgumentError, 'invalid value for "opts[:"days"]" when calling FrontendsApi.get_frontend_usage_history, must be greater than or equal to 1.'
514
+ end
515
+
516
+ # resource path
517
+ local_var_path = '/projects/{id}/frontends/{frontendId}/usage'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'frontendId' + '}', CGI.escape(frontend_id.to_s))
518
+
519
+ # query parameters
520
+ query_params = opts[:query_params] || {}
521
+ query_params[:'days'] = opts[:'days'] if !opts[:'days'].nil?
522
+
523
+ # header parameters
524
+ header_params = opts[:header_params] || {}
525
+ # HTTP header 'Accept' (if needed)
526
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
527
+
528
+ # form parameters
529
+ form_params = opts[:form_params] || {}
530
+
531
+ # http body (model)
532
+ post_body = opts[:debug_body]
533
+
534
+ # return_type
535
+ return_type = opts[:debug_return_type] || 'FrontendUsageHistoryResponse'
536
+
537
+ # auth_names
538
+ auth_names = opts[:debug_auth_names] || ['UserToken']
539
+
540
+ new_options = opts.merge(
541
+ :operation => :"FrontendsApi.get_frontend_usage_history",
542
+ :header_params => header_params,
543
+ :query_params => query_params,
544
+ :form_params => form_params,
545
+ :body => post_body,
546
+ :auth_names => auth_names,
547
+ :return_type => return_type
548
+ )
549
+
550
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
551
+ if @api_client.config.debugging
552
+ @api_client.config.logger.debug "API called: FrontendsApi#get_frontend_usage_history\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
553
+ end
554
+ return data, status_code, headers
555
+ end
556
+
557
+ # List frontend deployments
558
+ # @param id [String] Project ID
559
+ # @param frontend_id [String] Frontend ID
560
+ # @param [Hash] opts the optional parameters
561
+ # @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.
562
+ # @option opts [Integer] :limit Number of items per page (max 100) (default to 10)
563
+ # @return [PaginatedFrontendDeployments]
564
+ def list_frontend_deployments(id, frontend_id, opts = {})
565
+ data, _status_code, _headers = list_frontend_deployments_with_http_info(id, frontend_id, opts)
566
+ data
567
+ end
568
+
569
+ # List frontend deployments
570
+ # @param id [String] Project ID
571
+ # @param frontend_id [String] Frontend ID
572
+ # @param [Hash] opts the optional parameters
573
+ # @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.
574
+ # @option opts [Integer] :limit Number of items per page (max 100) (default to 10)
575
+ # @return [Array<(PaginatedFrontendDeployments, Integer, Hash)>] PaginatedFrontendDeployments data, response status code and response headers
576
+ def list_frontend_deployments_with_http_info(id, frontend_id, opts = {})
577
+ if @api_client.config.debugging
578
+ @api_client.config.logger.debug 'Calling API: FrontendsApi.list_frontend_deployments ...'
579
+ end
580
+ # verify the required parameter 'id' is set
581
+ if @api_client.config.client_side_validation && id.nil?
582
+ fail ArgumentError, "Missing the required parameter 'id' when calling FrontendsApi.list_frontend_deployments"
583
+ end
584
+ # verify the required parameter 'frontend_id' is set
585
+ if @api_client.config.client_side_validation && frontend_id.nil?
586
+ fail ArgumentError, "Missing the required parameter 'frontend_id' when calling FrontendsApi.list_frontend_deployments"
587
+ end
588
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
589
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling FrontendsApi.list_frontend_deployments, must be greater than or equal to 1.'
590
+ end
591
+
592
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
593
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling FrontendsApi.list_frontend_deployments, must be smaller than or equal to 100.'
594
+ end
595
+
596
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
597
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling FrontendsApi.list_frontend_deployments, must be greater than or equal to 1.'
598
+ end
599
+
600
+ # resource path
601
+ local_var_path = '/projects/{id}/frontends/{frontendId}/deployments'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'frontendId' + '}', CGI.escape(frontend_id.to_s))
602
+
603
+ # query parameters
604
+ query_params = opts[:query_params] || {}
605
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
606
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
607
+
608
+ # header parameters
609
+ header_params = opts[:header_params] || {}
610
+ # HTTP header 'Accept' (if needed)
611
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
612
+
613
+ # form parameters
614
+ form_params = opts[:form_params] || {}
615
+
616
+ # http body (model)
617
+ post_body = opts[:debug_body]
618
+
619
+ # return_type
620
+ return_type = opts[:debug_return_type] || 'PaginatedFrontendDeployments'
621
+
622
+ # auth_names
623
+ auth_names = opts[:debug_auth_names] || ['UserToken']
624
+
625
+ new_options = opts.merge(
626
+ :operation => :"FrontendsApi.list_frontend_deployments",
627
+ :header_params => header_params,
628
+ :query_params => query_params,
629
+ :form_params => form_params,
630
+ :body => post_body,
631
+ :auth_names => auth_names,
632
+ :return_type => return_type
633
+ )
634
+
635
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
636
+ if @api_client.config.debugging
637
+ @api_client.config.logger.debug "API called: FrontendsApi#list_frontend_deployments\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
638
+ end
639
+ return data, status_code, headers
640
+ end
641
+
642
+ # List all frontends in a project
643
+ # 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`. Sending both `page` and `cursor` (or `page` and `search`) returns 400.
644
+ # @param id [String] Project ID
645
+ # @param [Hash] opts the optional parameters
646
+ # @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.
647
+ # @option opts [Integer] :limit Number of items per page (max 100) (default to 10)
648
+ # @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.
649
+ # @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.
650
+ # @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)
651
+ # @option opts [String] :search Case-insensitive substring match on the resource &#x60;name&#x60;. See the endpoint description for supported pagination modes.
652
+ # @return [PaginatedFrontends]
653
+ def list_frontends(id, opts = {})
654
+ data, _status_code, _headers = list_frontends_with_http_info(id, opts)
655
+ data
656
+ end
657
+
658
+ # List all frontends in a project
659
+ # 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;. Sending both &#x60;page&#x60; and &#x60;cursor&#x60; (or &#x60;page&#x60; and &#x60;search&#x60;) returns 400.
660
+ # @param id [String] Project ID
661
+ # @param [Hash] opts the optional parameters
662
+ # @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.
663
+ # @option opts [Integer] :limit Number of items per page (max 100) (default to 10)
664
+ # @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.
665
+ # @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.
666
+ # @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)
667
+ # @option opts [String] :search Case-insensitive substring match on the resource &#x60;name&#x60;. See the endpoint description for supported pagination modes.
668
+ # @return [Array<(PaginatedFrontends, Integer, Hash)>] PaginatedFrontends data, response status code and response headers
669
+ def list_frontends_with_http_info(id, opts = {})
670
+ if @api_client.config.debugging
671
+ @api_client.config.logger.debug 'Calling API: FrontendsApi.list_frontends ...'
672
+ end
673
+ # verify the required parameter 'id' is set
674
+ if @api_client.config.client_side_validation && id.nil?
675
+ fail ArgumentError, "Missing the required parameter 'id' when calling FrontendsApi.list_frontends"
676
+ end
677
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
678
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling FrontendsApi.list_frontends, must be greater than or equal to 1.'
679
+ end
680
+
681
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
682
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling FrontendsApi.list_frontends, must be smaller than or equal to 100.'
683
+ end
684
+
685
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
686
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling FrontendsApi.list_frontends, must be greater than or equal to 1.'
687
+ end
688
+
689
+ if @api_client.config.client_side_validation && !opts[:'offset'].nil? && opts[:'offset'] < 0
690
+ fail ArgumentError, 'invalid value for "opts[:"offset"]" when calling FrontendsApi.list_frontends, must be greater than or equal to 0.'
691
+ end
692
+
693
+ if @api_client.config.client_side_validation && !opts[:'search'].nil? && opts[:'search'].to_s.length > 256
694
+ fail ArgumentError, 'invalid value for "opts[:"search"]" when calling FrontendsApi.list_frontends, the character length must be smaller than or equal to 256.'
695
+ end
696
+
697
+ # resource path
698
+ local_var_path = '/projects/{id}/frontends'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
699
+
700
+ # query parameters
701
+ query_params = opts[:query_params] || {}
702
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
703
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
704
+ query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
705
+ query_params[:'ending_before'] = opts[:'ending_before'] if !opts[:'ending_before'].nil?
706
+ query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
707
+ query_params[:'search'] = opts[:'search'] if !opts[:'search'].nil?
708
+
709
+ # header parameters
710
+ header_params = opts[:header_params] || {}
711
+ # HTTP header 'Accept' (if needed)
712
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
713
+
714
+ # form parameters
715
+ form_params = opts[:form_params] || {}
716
+
717
+ # http body (model)
718
+ post_body = opts[:debug_body]
719
+
720
+ # return_type
721
+ return_type = opts[:debug_return_type] || 'PaginatedFrontends'
722
+
723
+ # auth_names
724
+ auth_names = opts[:debug_auth_names] || ['UserToken']
725
+
726
+ new_options = opts.merge(
727
+ :operation => :"FrontendsApi.list_frontends",
728
+ :header_params => header_params,
729
+ :query_params => query_params,
730
+ :form_params => form_params,
731
+ :body => post_body,
732
+ :auth_names => auth_names,
733
+ :return_type => return_type
734
+ )
735
+
736
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
737
+ if @api_client.config.debugging
738
+ @api_client.config.logger.debug "API called: FrontendsApi#list_frontends\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
739
+ end
740
+ return data, status_code, headers
741
+ end
742
+
743
+ # List all custom domains in a project
744
+ # Project-scoped custom-domain list. Returns every active custom domain across every frontend in the project (excludes soft-deleted rows). Each item inlines the linked frontend's id and name so the UI does not need a second fetch to render the \"Linked to\" column.
745
+ # @param id [String] Project ID
746
+ # @param [Hash] opts the optional parameters
747
+ # @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.
748
+ # @option opts [Integer] :limit Number of items per page (max 100) (default to 10)
749
+ # @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.
750
+ # @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.
751
+ # @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)
752
+ # @option opts [String] :search Case-insensitive substring match on the resource &#x60;name&#x60;. See the endpoint description for supported pagination modes.
753
+ # @return [PaginatedProjectCustomDomains]
754
+ def list_project_custom_domains(id, opts = {})
755
+ data, _status_code, _headers = list_project_custom_domains_with_http_info(id, opts)
756
+ data
757
+ end
758
+
759
+ # List all custom domains in a project
760
+ # Project-scoped custom-domain list. Returns every active custom domain across every frontend in the project (excludes soft-deleted rows). Each item inlines the linked frontend&#39;s id and name so the UI does not need a second fetch to render the \&quot;Linked to\&quot; column.
761
+ # @param id [String] Project ID
762
+ # @param [Hash] opts the optional parameters
763
+ # @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.
764
+ # @option opts [Integer] :limit Number of items per page (max 100) (default to 10)
765
+ # @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.
766
+ # @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.
767
+ # @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)
768
+ # @option opts [String] :search Case-insensitive substring match on the resource &#x60;name&#x60;. See the endpoint description for supported pagination modes.
769
+ # @return [Array<(PaginatedProjectCustomDomains, Integer, Hash)>] PaginatedProjectCustomDomains data, response status code and response headers
770
+ def list_project_custom_domains_with_http_info(id, opts = {})
771
+ if @api_client.config.debugging
772
+ @api_client.config.logger.debug 'Calling API: FrontendsApi.list_project_custom_domains ...'
773
+ end
774
+ # verify the required parameter 'id' is set
775
+ if @api_client.config.client_side_validation && id.nil?
776
+ fail ArgumentError, "Missing the required parameter 'id' when calling FrontendsApi.list_project_custom_domains"
777
+ end
778
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
779
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling FrontendsApi.list_project_custom_domains, must be greater than or equal to 1.'
780
+ end
781
+
782
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
783
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling FrontendsApi.list_project_custom_domains, must be smaller than or equal to 100.'
784
+ end
785
+
786
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
787
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling FrontendsApi.list_project_custom_domains, must be greater than or equal to 1.'
788
+ end
789
+
790
+ if @api_client.config.client_side_validation && !opts[:'offset'].nil? && opts[:'offset'] < 0
791
+ fail ArgumentError, 'invalid value for "opts[:"offset"]" when calling FrontendsApi.list_project_custom_domains, must be greater than or equal to 0.'
792
+ end
793
+
794
+ if @api_client.config.client_side_validation && !opts[:'search'].nil? && opts[:'search'].to_s.length > 256
795
+ fail ArgumentError, 'invalid value for "opts[:"search"]" when calling FrontendsApi.list_project_custom_domains, the character length must be smaller than or equal to 256.'
796
+ end
797
+
798
+ # resource path
799
+ local_var_path = '/projects/{id}/domains'.sub('{' + 'id' + '}', CGI.escape(id.to_s))
800
+
801
+ # query parameters
802
+ query_params = opts[:query_params] || {}
803
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
804
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
805
+ query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
806
+ query_params[:'ending_before'] = opts[:'ending_before'] if !opts[:'ending_before'].nil?
807
+ query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
808
+ query_params[:'search'] = opts[:'search'] if !opts[:'search'].nil?
809
+
810
+ # header parameters
811
+ header_params = opts[:header_params] || {}
812
+ # HTTP header 'Accept' (if needed)
813
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
814
+
815
+ # form parameters
816
+ form_params = opts[:form_params] || {}
817
+
818
+ # http body (model)
819
+ post_body = opts[:debug_body]
820
+
821
+ # return_type
822
+ return_type = opts[:debug_return_type] || 'PaginatedProjectCustomDomains'
823
+
824
+ # auth_names
825
+ auth_names = opts[:debug_auth_names] || ['UserToken']
826
+
827
+ new_options = opts.merge(
828
+ :operation => :"FrontendsApi.list_project_custom_domains",
829
+ :header_params => header_params,
830
+ :query_params => query_params,
831
+ :form_params => form_params,
832
+ :body => post_body,
833
+ :auth_names => auth_names,
834
+ :return_type => return_type
835
+ )
836
+
837
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
838
+ if @api_client.config.debugging
839
+ @api_client.config.logger.debug "API called: FrontendsApi#list_project_custom_domains\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
840
+ end
841
+ return data, status_code, headers
842
+ end
843
+
844
+ # Redeploy frontend using latest uploaded artifact
845
+ # Starts a new frontend workflow using the latest stored artifact. A deployment that starts immediately returns `status: provisioning`, then transitions to `active`, `degraded`, or `failed`. An overlapping deployment preserves the frontend's current status, is exposed through `pending_deployment_id`, and supersedes any older queued deployment. The previous runtime and its published static assets remain available during provisioning, and a failed redeploy restores the regional runtimes to that build and keeps it serving while the attempted deployment is recorded as failed.
846
+ # @param id [String] Project ID
847
+ # @param frontend_id [String] Frontend ID
848
+ # @param [Hash] opts the optional parameters
849
+ # @return [Frontend]
850
+ def redeploy_frontend(id, frontend_id, opts = {})
851
+ data, _status_code, _headers = redeploy_frontend_with_http_info(id, frontend_id, opts)
852
+ data
853
+ end
854
+
855
+ # Redeploy frontend using latest uploaded artifact
856
+ # Starts a new frontend workflow using the latest stored artifact. A deployment that starts immediately returns &#x60;status: provisioning&#x60;, then transitions to &#x60;active&#x60;, &#x60;degraded&#x60;, or &#x60;failed&#x60;. An overlapping deployment preserves the frontend&#39;s current status, is exposed through &#x60;pending_deployment_id&#x60;, and supersedes any older queued deployment. The previous runtime and its published static assets remain available during provisioning, and a failed redeploy restores the regional runtimes to that build and keeps it serving while the attempted deployment is recorded as failed.
857
+ # @param id [String] Project ID
858
+ # @param frontend_id [String] Frontend ID
859
+ # @param [Hash] opts the optional parameters
860
+ # @return [Array<(Frontend, Integer, Hash)>] Frontend data, response status code and response headers
861
+ def redeploy_frontend_with_http_info(id, frontend_id, opts = {})
862
+ if @api_client.config.debugging
863
+ @api_client.config.logger.debug 'Calling API: FrontendsApi.redeploy_frontend ...'
864
+ end
865
+ # verify the required parameter 'id' is set
866
+ if @api_client.config.client_side_validation && id.nil?
867
+ fail ArgumentError, "Missing the required parameter 'id' when calling FrontendsApi.redeploy_frontend"
868
+ end
869
+ # verify the required parameter 'frontend_id' is set
870
+ if @api_client.config.client_side_validation && frontend_id.nil?
871
+ fail ArgumentError, "Missing the required parameter 'frontend_id' when calling FrontendsApi.redeploy_frontend"
872
+ end
873
+ # resource path
874
+ local_var_path = '/projects/{id}/frontends/{frontendId}/redeploy'.sub('{' + 'id' + '}', CGI.escape(id.to_s)).sub('{' + 'frontendId' + '}', CGI.escape(frontend_id.to_s))
875
+
876
+ # query parameters
877
+ query_params = opts[:query_params] || {}
878
+
879
+ # header parameters
880
+ header_params = opts[:header_params] || {}
881
+ # HTTP header 'Accept' (if needed)
882
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
883
+
884
+ # form parameters
885
+ form_params = opts[:form_params] || {}
886
+
887
+ # http body (model)
888
+ post_body = opts[:debug_body]
889
+
890
+ # return_type
891
+ return_type = opts[:debug_return_type] || 'Frontend'
892
+
893
+ # auth_names
894
+ auth_names = opts[:debug_auth_names] || ['UserToken']
895
+
896
+ new_options = opts.merge(
897
+ :operation => :"FrontendsApi.redeploy_frontend",
898
+ :header_params => header_params,
899
+ :query_params => query_params,
900
+ :form_params => form_params,
901
+ :body => post_body,
902
+ :auth_names => auth_names,
903
+ :return_type => return_type
904
+ )
905
+
906
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
907
+ if @api_client.config.debugging
908
+ @api_client.config.logger.debug "API called: FrontendsApi#redeploy_frontend\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
909
+ end
910
+ return data, status_code, headers
911
+ end
912
+ end
913
+ end