volcano-sdk 0.33.0 → 0.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +104 -4
- data/lib/volcano/auth_profile_fields.rb +2 -2
- data/lib/volcano/client.rb +1 -1
- data/lib/volcano/durable.rb +16 -38
- data/lib/volcano/durable_approval_models.rb +171 -0
- data/lib/volcano/durable_approval_responses.rb +222 -0
- data/lib/volcano/durable_approvals.rb +143 -0
- data/lib/volcano/durable_arguments.rb +59 -0
- data/lib/volcano/durable_message_arguments.rb +49 -0
- data/lib/volcano/durable_message_backlog.rb +38 -0
- data/lib/volcano/durable_message_catch_ups.rb +112 -0
- data/lib/volcano/durable_message_models.rb +62 -0
- data/lib/volcano/durable_message_responses.rb +107 -0
- data/lib/volcano/durable_message_session.rb +72 -0
- data/lib/volcano/durable_message_stream.rb +176 -0
- data/lib/volcano/durable_messages.rb +217 -0
- data/lib/volcano/durable_models.rb +32 -7
- data/lib/volcano/errors.rb +5 -0
- data/lib/volcano/generated/lib/volcano-generated/api/anon_keys_api.rb +8 -8
- data/lib/volcano/generated/lib/volcano-generated/api/auth_admin_api.rb +17 -17
- data/lib/volcano/generated/lib/volcano-generated/api/auth_configuration_api.rb +28 -28
- data/lib/volcano/generated/lib/volcano-generated/api/authentication_api.rb +4 -4
- data/lib/volcano/generated/lib/volcano-generated/api/autofix_api.rb +222 -0
- data/lib/volcano/generated/lib/volcano-generated/api/database_backups_api.rb +11 -11
- data/lib/volcano/generated/lib/volcano-generated/api/database_branches_api.rb +9 -9
- data/lib/volcano/generated/lib/volcano-generated/api/database_queries_api.rb +4 -4
- data/lib/volcano/generated/lib/volcano-generated/api/databases_api.rb +18 -18
- data/lib/volcano/generated/lib/volcano-generated/api/durable_functions_api.rb +1327 -51
- data/lib/volcano/generated/lib/volcano-generated/api/frontends_api.rb +337 -21
- data/lib/volcano/generated/lib/volcano-generated/api/functions_api.rb +33 -27
- data/lib/volcano/generated/lib/volcano-generated/api/git_connections_api.rb +19 -11
- data/lib/volcano/generated/lib/volcano-generated/api/issues_api.rb +254 -0
- data/lib/volcano/generated/lib/volcano-generated/api/locks_api.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/api/logs_api.rb +11 -11
- data/lib/volcano/generated/lib/volcano-generated/api/o_auth_authentication_api.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/api/o_auth_configuration_api.rb +8 -8
- data/lib/volcano/generated/lib/volcano-generated/api/project_access_tokens_api.rb +479 -0
- data/lib/volcano/generated/lib/volcano-generated/api/project_imports_api.rb +10 -2
- data/lib/volcano/generated/lib/volcano-generated/api/projects_api.rb +110 -30
- data/lib/volcano/generated/lib/volcano-generated/api/realtime_api.rb +5 -5
- data/lib/volcano/generated/lib/volcano-generated/api/sandboxes_api.rb +377 -18
- data/lib/volcano/generated/lib/volcano-generated/api/service_keys_api.rb +9 -9
- data/lib/volcano/generated/lib/volcano-generated/api/storage_admin_api.rb +4 -4
- data/lib/volcano/generated/lib/volcano-generated/api/storage_buckets_api.rb +7 -7
- data/lib/volcano/generated/lib/volcano-generated/api/storage_objects_api.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/api/storage_policies_api.rb +5 -5
- data/lib/volcano/generated/lib/volcano-generated/api/system_api.rb +367 -2
- data/lib/volcano/generated/lib/volcano-generated/api/variable_environments_api.rb +373 -0
- data/lib/volcano/generated/lib/volcano-generated/api/variables_api.rb +13 -13
- data/lib/volcano/generated/lib/volcano-generated/api/verified_domains_api.rb +214 -0
- data/lib/volcano/generated/lib/volcano-generated/api_client.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/api_error.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/api_model_base.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/configuration.rb +11 -3
- data/lib/volcano/generated/lib/volcano-generated/models/anon_key.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_config.rb +48 -6
- data/lib/volcano/generated/lib/volcano-generated/models/auth_confirm_email200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_confirm_email_change200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_confirm_email_change_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_confirm_email_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_convert_anonymous200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_device_authorize_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_device_token_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_device_verify200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_device_verify_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_forgot_password200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_forgot_password_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_get_my_sessions200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_hosted_page.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_hosted_page_defaults.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_hosted_page_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_hosted_page_runtime.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_identities_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_identity.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_interval.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_series_point.rb +175 -4
- data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_summary.rb +77 -5
- data/lib/volcano/generated/lib/volcano-generated/models/auth_insights_window.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_link_o_auth_provider200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_list_o_auth_providers200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_list_o_auth_providers200_response_providers_inner.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_method_summary.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_methods_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_o_auth_exchange_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_page_appearance_defaults.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_page_appearance_options.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_page_appearance_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_page_density.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_page_font.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_page_layout.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_page_radius.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_page_scale.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_page_theme.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_page_theme_colors.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_password_policy.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_platform_exchange_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_refresh_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_request_email_change200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_request_email_change_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_reset_password200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_reset_password_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_session.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_signin_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_signup_anonymous_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_signup_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_signup_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_token_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_update_user_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/auth_user.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/autofix_model.rb +45 -0
- data/lib/volcano/generated/lib/volcano-generated/models/autofix_provider.rb +40 -0
- data/lib/volcano/generated/lib/volcano-generated/models/autofix_settings.rb +385 -0
- data/lib/volcano/generated/lib/volcano-generated/models/autofix_stage.rb +40 -0
- data/lib/volcano/generated/lib/volcano-generated/models/ban_auth_user_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/ban_user_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/batch_function_deploy_failure.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/batch_function_deploy_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/byoc_project_config_frontend_custom_domain_tls_config.rb +270 -0
- data/lib/volcano/generated/lib/volcano-generated/models/byoc_project_config_frontend_custom_domain_tls_config_not.rb +102 -0
- data/lib/volcano/generated/lib/volcano-generated/models/call_mcp200_response.rb +220 -0
- data/lib/volcano/generated/lib/volcano-generated/models/call_mcp200_response_error.rb +190 -0
- data/lib/volcano/generated/lib/volcano-generated/models/call_mcp200_response_id.rb +105 -0
- data/lib/volcano/generated/lib/volcano-generated/models/call_mcp_request.rb +236 -0
- data/lib/volcano/generated/lib/volcano-generated/models/call_mcp_request_id.rb +105 -0
- data/lib/volcano/generated/lib/volcano-generated/models/call_o_auth_provider_api200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/call_o_auth_provider_api_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/capability.rb +214 -0
- data/lib/volcano/generated/lib/volcano-generated/models/capability_list.rb +166 -0
- data/lib/volcano/generated/lib/volcano-generated/models/capability_status.rb +40 -0
- data/lib/volcano/generated/lib/volcano-generated/models/complete_upload_session_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/configure_auth_methods_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/configure_auth_methods_request_oauth_providers_inner.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/connect_project_git_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/create_anon_key_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/create_database_backup_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/create_database_branch_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/create_database_request.rb +6 -6
- data/lib/volcano/generated/lib/volcano-generated/models/create_database_restore_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/create_email_template_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/create_frontend_custom_domain_request.rb +12 -3
- data/lib/volcano/generated/lib/volcano-generated/models/create_frontend_function_route_request.rb +230 -0
- data/lib/volcano/generated/lib/volcano-generated/models/create_function_scheduler_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/create_o_auth_config_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/create_project_access_token_request.rb +241 -0
- data/lib/volcano/generated/lib/volcano-generated/models/create_project_request.rb +57 -3
- data/lib/volcano/generated/lib/volcano-generated/models/create_sandbox_session_request.rb +18 -57
- data/lib/volcano/generated/lib/volcano-generated/models/create_sandbox_template_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/create_service_key_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/create_storage_bucket_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/create_storage_policy_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/create_upload_session_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/create_upload_session_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/create_variable_environment_request.rb +176 -0
- data/lib/volcano/generated/lib/volcano-generated/models/create_variable_request.rb +3 -2
- data/lib/volcano/generated/lib/volcano-generated/models/created_project_access_token.rb +459 -0
- data/lib/volcano/generated/lib/volcano-generated/models/database.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_backup.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_backup_list.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_backup_schedule.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_backup_schedule_entry.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_branch.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_branch_list.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_branch_storage.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_delete_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_insert_request.rb +3 -3
- data/lib/volcano/generated/lib/volcano-generated/models/database_query_filter.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_query_filter_value.rb +3 -3
- data/lib/volcano/generated/lib/volcano-generated/models/database_query_filter_value_one_of_inner.rb +3 -3
- data/lib/volcano/generated/lib/volcano-generated/models/database_query_order.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_query_performance_database.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_query_performance_item.rb +4 -4
- data/lib/volcano/generated/lib/volcano-generated/models/database_query_performance_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_query_result.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_restore.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_restore_list.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_restore_window.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_select_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_stats.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/database_update_request.rb +3 -3
- data/lib/volcano/generated/lib/volcano-generated/models/delete_database202_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/delete_database_backup200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/delete_database_branch202_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/deployment_phase.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/deployment_progress.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/deployment_reference.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/device_authorization_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/durable_approval.rb +406 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_counts.rb +295 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_daily_counts.rb +190 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_decider.rb +191 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_decision.rb +203 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_decision_request.rb +167 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_execution.rb +211 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_function.rb +177 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_function_counts.rb +190 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_registration.rb +225 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_stats.rb +339 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_approval_status.rb +43 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_execution.rb +16 -6
- data/lib/volcano/generated/lib/volcano-generated/models/durable_execution_error.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/durable_execution_invocation.rb +191 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_execution_operation.rb +372 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_execution_operation_attempt.rb +271 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_execution_operation_list.rb +234 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_execution_status.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/durable_function.rb +31 -4
- data/lib/volcano/generated/lib/volcano-generated/models/durable_function_config.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/durable_message.rb +396 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_message_direction.rb +40 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_message_list.rb +194 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_message_sender.rb +203 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_message_session_registration.rb +165 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_message_status.rb +43 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_message_wait.rb +278 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_message_wait_list.rb +167 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_message_wait_registration.rb +225 -0
- data/lib/volcano/generated/lib/volcano-generated/models/durable_message_wait_status.rb +43 -0
- data/lib/volcano/generated/lib/volcano-generated/models/email_template.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/error.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/export_project_source_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/frontend.rb +95 -3
- data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_conflict_error.rb +191 -0
- data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_response.rb +50 -5
- data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_tls_config.rb +42 -18
- data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_tls_config_not.rb +103 -0
- data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_tls_config_not_any_of.rb +188 -0
- data/lib/volcano/generated/lib/volcano-generated/models/frontend_custom_domain_tls_config_not_any_of1.rb +188 -0
- data/lib/volcano/generated/lib/volcano-generated/models/frontend_deployment.rb +24 -68
- data/lib/volcano/generated/lib/volcano-generated/models/frontend_domain_routing_record.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/frontend_domain_verification_record.rb +3 -2
- data/lib/volcano/generated/lib/volcano-generated/models/frontend_function_route.rb +375 -0
- data/lib/volcano/generated/lib/volcano-generated/models/frontend_function_route_list.rb +166 -0
- data/lib/volcano/generated/lib/volcano-generated/models/frontend_usage_daily_entry.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/frontend_usage_data.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/frontend_usage_history_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/function.rb +31 -14
- data/lib/volcano/generated/lib/volcano-generated/models/function_deployment.rb +24 -50
- data/lib/volcano/generated/lib/volcano-generated/models/function_http_auth_mode.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/function_invocation_mode.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/function_invocation_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/function_kind.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/function_kind_filter.rb +40 -0
- data/lib/volcano/generated/lib/volcano-generated/models/function_region.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/function_runtime_deployment.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/function_runtime_option.rb +30 -3
- data/lib/volcano/generated/lib/volcano-generated/models/function_runtimes_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/function_scheduler.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/function_scheduler_list_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/function_visibility.rb +41 -0
- data/lib/volcano/generated/lib/volcano-generated/models/get_auth_methods200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/get_auth_methods200_response_email_password.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/get_auth_methods200_response_oauth_providers_inner.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/git_connect_start_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/git_connection.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/git_connections_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/git_installation.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/git_installations_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/git_repositories_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/git_repository.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/hosted_auth_page_type.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/hosted_login_email_check_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/hosted_login_email_check_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/hosted_login_options_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/hosted_renderable_page_type.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/import_connect_start_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/import_connection.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/import_connections_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/import_provider.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/import_source.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/import_sources_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/issue.rb +493 -0
- data/lib/volcano/generated/lib/volcano-generated/models/issue_status.rb +41 -0
- data/lib/volcano/generated/lib/volcano-generated/models/list_anon_keys200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/list_available_o_auth_providers200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/list_available_o_auth_providers200_response_providers_inner.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/list_database_regions200_response_inner.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/list_email_templates200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/list_o_auth_configs200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/list_postgres_versions200_response_inner.rb +14 -4
- data/lib/volcano/generated/lib/volcano-generated/models/list_storage_buckets200_response.rb +3 -3
- data/lib/volcano/generated/lib/volcano-generated/models/list_storage_objects_admin200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/live_log_level.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/log_activity_bucket.rb +5 -5
- data/lib/volcano/generated/lib/volcano-generated/models/log_activity_bucket_counts.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/log_activity_request.rb +5 -5
- data/lib/volcano/generated/lib/volcano-generated/models/log_activity_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/log_database_request_resource.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/log_deployment.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/log_deployment_request_selector.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/log_event.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/log_event_body.rb +3 -3
- data/lib/volcano/generated/lib/volcano-generated/models/log_frontend_request_resource.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/log_function_request_resource.rb +13 -3
- data/lib/volcano/generated/lib/volcano-generated/models/log_request_resource.rb +3 -3
- data/lib/volcano/generated/lib/volcano-generated/models/log_resource.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/log_search_event.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/log_search_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/log_search_response.rb +4 -4
- data/lib/volcano/generated/lib/volcano-generated/models/log_stream_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/managed_project_config_frontend_custom_domain_tls_config.rb +189 -0
- data/lib/volcano/generated/lib/volcano-generated/models/metric_usage_data.rb +3 -3
- data/lib/volcano/generated/lib/volcano-generated/models/o_auth_config.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/o_auth_error_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/open_durable_message_session_request.rb +228 -0
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_auth_users.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_databases.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_durable_approvals.rb +274 -0
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_durable_executions.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_durable_functions.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_frontend_deployments.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_frontends.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_function_deployments.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_functions.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_issues.rb +230 -0
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_project_access_tokens.rb +279 -0
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_project_custom_domains.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_project_deployments.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_projects.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_service_keys.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_storage_buckets.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/paginated_variables.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/platform_exchange_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/preview_auth_page_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/preview_auth_page_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project.rb +13 -13
- data/lib/volcano/generated/lib/volcano-generated/models/project_access_token.rb +426 -0
- data/lib/volcano/generated/lib/volcano-generated/models/project_access_token_scope.rb +40 -0
- data/lib/volcano/generated/lib/volcano-generated/models/project_access_token_usage.rb +299 -0
- data/lib/volcano/generated/lib/volcano-generated/models/project_access_token_usage_daily_entry.rb +191 -0
- data/lib/volcano/generated/lib/volcano-generated/models/project_config.rb +49 -6
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_apply_result.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_apply_result_entry.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_apply_summary.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_cors.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email_from.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email_password_provider.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email_smtp.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_email_verification.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_managed_pages.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_page_appearance.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_page_layouts.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_password.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_password_reset.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_providers.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_rate_limits.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_redirects.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_sessions.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_signup.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_auth_tokens.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_autofix.rb +206 -0
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_bucket.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_bucket_policy.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_custom_domain.rb +14 -5
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_database.rb +6 -6
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_email_template.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_email_templates.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_frontend.rb +103 -6
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_frontend_custom_domain_tls_config.rb +105 -0
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_frontend_function_route.rb +240 -0
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_function.rb +13 -4
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_hosted_page.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_hosted_pages.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_missing_resource.rb +4 -4
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_o_auth_provider.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_project.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_realtime.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_sandbox.rb +289 -0
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_scheduler.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_skipped_resource.rb +4 -4
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_validation_error.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_validation_error_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_config_variable.rb +3 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_deployment.rb +3 -12
- data/lib/volcano/generated/lib/volcano-generated/models/project_deployment_resource.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_deployment_summary.rb +3 -3
- data/lib/volcano/generated/lib/volcano-generated/models/project_frontend_custom_domain.rb +50 -5
- data/lib/volcano/generated/lib/volcano-generated/models/project_frontend_custom_domain_all_of_frontend.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_git_connection.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_git_connection_summary.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_git_deploy_settings.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_health_category.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_health_check.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_health_data_status.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_health_evidence.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_health_resource.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_health_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_health_scope.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_health_status.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_health_summary.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_action.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_action_code.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_destination.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_destination_mode.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_disposition.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_finding.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_impact.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_preflight_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_readiness.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_report.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_resource.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_resource_kind.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_run.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_run_status.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_start_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_summary.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_import_target.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_lock_lease.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_lock_lease_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_lock_state.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_data_status.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_dimensions.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_group_by.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_metric.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_query.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_query_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_query_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_query_time_range.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_result.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_unit.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_value.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_metrics_window.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_source_export.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_source_export_omission.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_source_export_skip.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_source_export_state.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/project_template_installation.rb +217 -0
- data/lib/volcano/generated/lib/volcano-generated/models/project_usage_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/publish_durable_message_request.rb +205 -0
- data/lib/volcano/generated/lib/volcano-generated/models/publish_sandbox_preset_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/realtime_config.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/realtime_plan_limits.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/realtime_stats.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/refresh_o_auth_provider_token200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/register_durable_message_wait_request.rb +284 -0
- data/lib/volcano/generated/lib/volcano-generated/models/rename_variable_environment_request.rb +176 -0
- data/lib/volcano/generated/lib/volcano-generated/models/replace_frontend_shared_variables_request.rb +237 -0
- data/lib/volcano/generated/lib/volcano-generated/models/replace_shared_variables_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/request_durable_approval_request.rb +355 -0
- data/lib/volcano/generated/lib/volcano-generated/models/reset_database_password200_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/resolve_function_response.rb +13 -3
- data/lib/volcano/generated/lib/volcano-generated/models/resource_reference.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_access.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_access_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_build_log_page.rb +176 -0
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_build_log_page_data_inner.rb +190 -0
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_capacity.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_capacity_list.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_command_request.rb +13 -14
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_command_result.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_deployment.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_deployment_page.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_execution_request.rb +53 -15
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_execution_result.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_file_read_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_file_result.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_file_write_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_pagination.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_preset.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_preset_list.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_session.rb +6 -32
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_session_page.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_subject_grant_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_template.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/sandbox_template_page.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/schedule_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/send_durable_message_request.rb +205 -0
- data/lib/volcano/generated/lib/volcano-generated/models/service_key.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/set_project_git_production_branch_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/storage_bucket.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/storage_copy_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/storage_list_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/storage_move_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/storage_object.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/storage_object_with_bucket.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/storage_policy.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/storage_stats.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/storage_visibility_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/test_email_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/test_email_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/unban_user_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/update_auth_config_request.rb +81 -3
- data/lib/volcano/generated/lib/volcano-generated/models/update_auth_hosted_page_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/update_auth_page_layout_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/update_auth_page_theme_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/update_autofix_settings_request.rb +273 -0
- data/lib/volcano/generated/lib/volcano-generated/models/update_database_branch_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/update_database_type_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/update_email_template_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/update_function_request.rb +13 -4
- data/lib/volcano/generated/lib/volcano-generated/models/update_function_scheduler_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/update_issue_request.rb +186 -0
- data/lib/volcano/generated/lib/volcano-generated/models/update_o_auth_config_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/update_project_git_deploy_settings_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/update_project_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/update_realtime_config_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/update_sandbox_template_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/update_storage_bucket_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/update_variable_request.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/upload_session_part.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/upload_session_status_response.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/upload_storage_object201_response.rb +3 -3
- data/lib/volcano/generated/lib/volcano-generated/models/usage_data_point.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated/models/variable.rb +13 -3
- data/lib/volcano/generated/lib/volcano-generated/models/variable_environment.rb +325 -0
- data/lib/volcano/generated/lib/volcano-generated/models/variable_environment_list.rb +175 -0
- data/lib/volcano/generated/lib/volcano-generated/models/verified_domain.rb +192 -0
- data/lib/volcano/generated/lib/volcano-generated/models/verified_domains_response.rb +166 -0
- data/lib/volcano/generated/lib/volcano-generated/models/verify_domain_request.rb +183 -0
- data/lib/volcano/generated/lib/volcano-generated/version.rb +2 -2
- data/lib/volcano/generated/lib/volcano-generated.rb +90 -2
- data/lib/volcano/generated_transport.rb +1 -0
- data/lib/volcano/generated_transport_durable.rb +59 -0
- data/lib/volcano/generated_transport_durable_messages.rb +57 -0
- data/lib/volcano/generated_transport_functions.rb +1 -1
- data/lib/volcano/generated_transport_sandbox.rb +33 -1
- data/lib/volcano/lock_response.rb +2 -2
- data/lib/volcano/realtime/channel_callbacks.rb +5 -1
- data/lib/volcano/realtime/channel_lifecycle.rb +4 -1
- data/lib/volcano/realtime/durable_channel.rb +47 -0
- data/lib/volcano/realtime/lifecycle.rb +37 -1
- data/lib/volcano/realtime/protocol.rb +7 -3
- data/lib/volcano/realtime/protocol_dispatch.rb +1 -1
- data/lib/volcano/realtime/protocol_io.rb +7 -4
- data/lib/volcano/realtime/protocol_lifecycle.rb +7 -0
- data/lib/volcano/realtime/protocol_recovery.rb +23 -12
- data/lib/volcano/realtime.rb +42 -8
- data/lib/volcano/redaction.rb +1 -1
- data/lib/volcano/sandbox_deployment_response.rb +39 -0
- data/lib/volcano/sandbox_deployments.rb +79 -0
- data/lib/volcano/sandbox_models.rb +8 -0
- data/lib/volcano/sandbox_request.rb +6 -0
- data/lib/volcano/sandboxes.rb +2 -0
- data/lib/volcano/storage_mutations.rb +2 -2
- data/lib/volcano/storage_object_response.rb +2 -2
- data/lib/volcano/transport.rb +1 -1
- data/lib/volcano/version.rb +1 -1
- data/lib/volcano.rb +14 -0
- data/sig/core_facades.rbs +29 -0
- data/sig/durable_approval_records.rbs +218 -0
- data/sig/durable_message_records.rbs +68 -0
- data/sig/durable_records.rbs +17 -9
- data/sig/errors.rbs +3 -0
- data/sig/sandboxes.rbs +42 -0
- metadata +115 -9
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Volcano
|
|
4
|
+
# Delivers the messages a durable execution publishes in `seq` order, once
|
|
5
|
+
# each, from its realtime channel and from the messages list.
|
|
6
|
+
#
|
|
7
|
+
# A live message can only be delivered once everything before it has been
|
|
8
|
+
# listed, or the missed ones would fall below the last delivered `seq` and be
|
|
9
|
+
# skipped. So live messages are held until the first catch-up starts, while
|
|
10
|
+
# any catch-up is reading, and while any held message still follows a gap.
|
|
11
|
+
# A held message is released only once the message its broadcast names as
|
|
12
|
+
# the one before it has been delivered.
|
|
13
|
+
#
|
|
14
|
+
# After the first catch-up, every message is delivered from the stream's own
|
|
15
|
+
# task, one at a time. A live one is held and released there too, since a
|
|
16
|
+
# reconnect stops the connection's tasks midway and would leave the block's
|
|
17
|
+
# work on it unfinished.
|
|
18
|
+
#
|
|
19
|
+
# The channel itself drops publications while it is not subscribed, and
|
|
20
|
+
# reports each resubscription, which starts a catch-up of what it dropped.
|
|
21
|
+
# A broadcast naming a publish not yet delivered starts one too, since the
|
|
22
|
+
# broadcast before it was lost or has yet to arrive, and so does a
|
|
23
|
+
# publication the connection had no room for or that does not read as a
|
|
24
|
+
# message.
|
|
25
|
+
class DurableMessageStream
|
|
26
|
+
include DurableMessageResponses
|
|
27
|
+
|
|
28
|
+
Held = Data.define(:message, :prev_seq)
|
|
29
|
+
ENDED = 'the durable message subscription has ended'
|
|
30
|
+
private_constant :Held, :ENDED
|
|
31
|
+
|
|
32
|
+
# +list_after+ reads the page of published messages after a `seq`, and
|
|
33
|
+
# +on_failure+ hears about a catch-up that failed in the background or a
|
|
34
|
+
# handler that raised after the first catch-up.
|
|
35
|
+
def initialize(handler, list_after, on_failure)
|
|
36
|
+
require 'async/semaphore'
|
|
37
|
+
@handler = handler
|
|
38
|
+
@list_after = list_after
|
|
39
|
+
@on_failure = on_failure
|
|
40
|
+
@last_seq = @catch_ups = 0
|
|
41
|
+
@started = @closed = false
|
|
42
|
+
@held = DurableMessageBacklog.new
|
|
43
|
+
@reads = Async::Semaphore.new(1)
|
|
44
|
+
@background = DurableMessageCatchUps.new(
|
|
45
|
+
-> { read_missed }, -> { release_live }, -> { catch_up_in_background }, on_failure
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def live(data)
|
|
50
|
+
held = published(data) unless @closed
|
|
51
|
+
return unless held
|
|
52
|
+
|
|
53
|
+
waiting = behind?
|
|
54
|
+
@held.hold(held)
|
|
55
|
+
return if waiting
|
|
56
|
+
return catch_up_in_background if held.prev_seq > @last_seq
|
|
57
|
+
|
|
58
|
+
@background.release
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Reads what was missed, then releases the held messages. Raises the
|
|
62
|
+
# list's or the handler's error, closing the stream before anything held
|
|
63
|
+
# is delivered, and raises Realtime::ClosedError if the stream was closed
|
|
64
|
+
# meanwhile. Call it from the task that subscribes, which the catch-ups
|
|
65
|
+
# the stream starts itself run under. Those start once it has read, so
|
|
66
|
+
# one asked for while subscribing cannot call the handler before the
|
|
67
|
+
# read whose errors the subscriber hears.
|
|
68
|
+
def catch_up
|
|
69
|
+
begin_catch_up
|
|
70
|
+
read_missed(first: true)
|
|
71
|
+
@background.start unless @closed
|
|
72
|
+
raise Realtime::ClosedError, ENDED if @closed
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Reads back what the channel lost, as when it resubscribes or had no room
|
|
76
|
+
# for a publication. One catch-up waiting its turn reads whatever more are
|
|
77
|
+
# asked for meanwhile, so a burst of dropped publications reads once.
|
|
78
|
+
def catch_up_in_background
|
|
79
|
+
return if @background.pending?
|
|
80
|
+
|
|
81
|
+
begin_catch_up
|
|
82
|
+
@background.request
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Not stopped: the handler a catch-up is running may be what closed it.
|
|
86
|
+
def close
|
|
87
|
+
@closed = true
|
|
88
|
+
@held.clear
|
|
89
|
+
@background.close
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
private
|
|
93
|
+
|
|
94
|
+
def behind? = !@started || @catch_ups.positive? || !@held.empty?
|
|
95
|
+
|
|
96
|
+
# Delivers the held live messages that follow on from the last one
|
|
97
|
+
# delivered, until a catch-up is asked for. One left behind a gap is read
|
|
98
|
+
# back.
|
|
99
|
+
def release_live
|
|
100
|
+
while @catch_ups.zero? && (held = @held.take_following(@last_seq))
|
|
101
|
+
deliver(held.message, report: true)
|
|
102
|
+
end
|
|
103
|
+
catch_up_in_background unless @held.empty?
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# Counted before the read waits its turn, so nothing is delivered live
|
|
107
|
+
# meanwhile. A catch-up replaces the retry that was waiting.
|
|
108
|
+
def begin_catch_up
|
|
109
|
+
@started = true
|
|
110
|
+
@background.cancel_retry
|
|
111
|
+
@catch_ups += 1
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def read_missed(first: false)
|
|
115
|
+
read = false
|
|
116
|
+
@reads.acquire do
|
|
117
|
+
read_pages(report: !first)
|
|
118
|
+
read = true
|
|
119
|
+
ensure
|
|
120
|
+
close if first && !read
|
|
121
|
+
# Released by the last catch-up only, and while still counted, so a
|
|
122
|
+
# live message that arrives meanwhile is held behind the released ones.
|
|
123
|
+
release(read, report: !first) if @catch_ups == 1
|
|
124
|
+
end
|
|
125
|
+
ensure
|
|
126
|
+
@catch_ups -= 1
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def read_pages(report:)
|
|
130
|
+
until @closed
|
|
131
|
+
after = @last_seq
|
|
132
|
+
page = @list_after.call(after)
|
|
133
|
+
page.messages.each { |message| deliver(message, report:) }
|
|
134
|
+
# A page that delivered nothing would be asked for again unchanged.
|
|
135
|
+
return if !page.has_more || @last_seq == after
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
# Delivers the held messages that follow on from the last one delivered,
|
|
140
|
+
# and retries the read while any is left behind a gap or the read failed.
|
|
141
|
+
def release(read, report:)
|
|
142
|
+
while (held = @held.take_following(@last_seq))
|
|
143
|
+
deliver(held.message, report:)
|
|
144
|
+
end
|
|
145
|
+
ensure
|
|
146
|
+
read && @held.empty? ? @background.caught_up : @background.retry_later
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def deliver(message, report:)
|
|
150
|
+
call_handler(message, report) unless @closed || message.seq <= @last_seq
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
# Only the first catch-up raises what the handler raised, to the caller
|
|
154
|
+
# that subscribes. Later the stream's own task would lose it, so it is
|
|
155
|
+
# reported and delivery goes on.
|
|
156
|
+
def call_handler(message, report)
|
|
157
|
+
@last_seq = message.seq
|
|
158
|
+
@handler.call(message)
|
|
159
|
+
rescue StandardError => e
|
|
160
|
+
raise unless report
|
|
161
|
+
|
|
162
|
+
@on_failure.call(e)
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
# A publication that does not read as a message is still one the
|
|
166
|
+
# execution published, so the list is read for it as for a dropped one.
|
|
167
|
+
def published(data)
|
|
168
|
+
message = durable_message(data)
|
|
169
|
+
Held.new(message:, prev_seq: broadcast_prev_seq(data)) if message.direction == 'out'
|
|
170
|
+
rescue TypeError
|
|
171
|
+
catch_up_in_background
|
|
172
|
+
nil
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
private_constant :DurableMessageStream
|
|
176
|
+
end
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Volcano
|
|
4
|
+
# Messages an execution publishes, delivered to the block #subscribe took
|
|
5
|
+
# until #unsubscribe.
|
|
6
|
+
class DurableMessageSubscription
|
|
7
|
+
# Subscribes +channel+ and delivers what was published so far. Leaves the
|
|
8
|
+
# channel if that fails, or the task running it is stopped. +session+ can
|
|
9
|
+
# end the subscription from the first read on.
|
|
10
|
+
def self.open(session, stream, channel, realtime)
|
|
11
|
+
subscription = session.end_with(new(stream, channel, realtime))
|
|
12
|
+
finished = false
|
|
13
|
+
begin
|
|
14
|
+
channel.subscribe
|
|
15
|
+
stream.catch_up
|
|
16
|
+
finished = true
|
|
17
|
+
ensure
|
|
18
|
+
subscription.unsubscribe unless finished
|
|
19
|
+
end
|
|
20
|
+
subscription
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def initialize(stream, channel, realtime)
|
|
24
|
+
@stream = stream
|
|
25
|
+
@channel = channel
|
|
26
|
+
@realtime = realtime
|
|
27
|
+
channel.on('message') { |data| stream.live(data) }
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Stops delivering messages and leaves the execution's channel. Safe to
|
|
31
|
+
# repeat, and to call from the block.
|
|
32
|
+
def unsubscribe
|
|
33
|
+
@stream.close
|
|
34
|
+
@realtime.__send__(:remove_durable_channel, @channel)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# The channel holds the client token and the realtime client the session,
|
|
38
|
+
# so inspection shows neither.
|
|
39
|
+
def inspect = '#<Volcano::DurableMessageSubscription>'
|
|
40
|
+
alias to_s inspect
|
|
41
|
+
|
|
42
|
+
def pretty_print(printer) = printer.text(inspect)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Sends to, lists, and follows the messages of durable executions.
|
|
46
|
+
#
|
|
47
|
+
# Each method addresses an execution by its function's name or id and the
|
|
48
|
+
# execution's id. By default they use the application route with the
|
|
49
|
+
# client's credential, as Durable#start does; pass +client_token:+ where that
|
|
50
|
+
# credential needs it, as an anon key or a user who did not start the
|
|
51
|
+
# execution does. Pass +project_id:+ to use the owner's project route with
|
|
52
|
+
# the session's platform token instead.
|
|
53
|
+
class DurableMessages
|
|
54
|
+
include DurableArguments
|
|
55
|
+
include DurableMessageArguments
|
|
56
|
+
include DurableMessageResponses
|
|
57
|
+
|
|
58
|
+
Target = Data.define(:project_id, :function_id, :execution_id, :client_token)
|
|
59
|
+
|
|
60
|
+
# Reopens the generated record to mask its credential.
|
|
61
|
+
class Target
|
|
62
|
+
# @dynamic project_id, function_id, execution_id, client_token
|
|
63
|
+
|
|
64
|
+
# The client token is a bearer credential, so inspection masks it, as
|
|
65
|
+
# DurableExecution#inspect does.
|
|
66
|
+
def inspect
|
|
67
|
+
fields = to_h.map do |name, value|
|
|
68
|
+
"#{name}=#{name == :client_token && value ? Redaction::MARKER : value.inspect}"
|
|
69
|
+
end
|
|
70
|
+
"#<data #{self.class.name} #{fields.join(', ')}>"
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def to_s = inspect
|
|
74
|
+
|
|
75
|
+
def pretty_print(printer) = printer.text(inspect)
|
|
76
|
+
end
|
|
77
|
+
private_constant :Target
|
|
78
|
+
|
|
79
|
+
SEND_OPTIONS = %i[idempotency_key client_token project_id].freeze
|
|
80
|
+
LIST_OPTIONS = %i[direction name after limit client_token project_id].freeze
|
|
81
|
+
private_constant :SEND_OPTIONS, :LIST_OPTIONS
|
|
82
|
+
|
|
83
|
+
def initialize(client, transport, realtime)
|
|
84
|
+
@client = client
|
|
85
|
+
@transport = transport
|
|
86
|
+
@realtime = realtime
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# Sends a message to a running execution, queued until a wait for its
|
|
90
|
+
# +name+ takes it. +data+ is any JSON value. The returned message's
|
|
91
|
+
# +status+ is +delivered+ when a wait took it at once, +delivering+ while
|
|
92
|
+
# that handover is still being confirmed, and +queued+ otherwise. Sending
|
|
93
|
+
# again with an +idempotency_key:+ the same sender has used on the
|
|
94
|
+
# execution returns the message the first send stored, in its current
|
|
95
|
+
# status, and sends nothing. Sending to an execution that has ended raises
|
|
96
|
+
# Error::ConflictError, whose +code+ is +execution_not_running+, and to one
|
|
97
|
+
# holding 100 messages no wait has taken, +too_many_queued_messages+.
|
|
98
|
+
def send_message(function_name, execution_id, name, data = nil, **options)
|
|
99
|
+
target = message_target(function_name, execution_id, known_options(options, SEND_OPTIONS))
|
|
100
|
+
name = message_name(name)
|
|
101
|
+
key = bounded_text(options[:idempotency_key], 'idempotency_key', MAX_IDEMPOTENCY_KEY_LENGTH)
|
|
102
|
+
response = Transport.invoke do
|
|
103
|
+
@transport.send_durable_message(
|
|
104
|
+
authorization: authorization(target), target: target, name: name,
|
|
105
|
+
data: ImmutableRequestValue.capture(data), idempotency_key: key
|
|
106
|
+
)
|
|
107
|
+
end
|
|
108
|
+
durable_message(Transport.body(response, response.status == 200 ? 200 : 201))
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# Lists an execution's messages in both directions, oldest first, filtered
|
|
112
|
+
# by any of +direction+ (+in+ or +out+), +name+, +after+ (a +seq+), and
|
|
113
|
+
# +limit+ (1 to 500), given as keywords with +client_token+ and
|
|
114
|
+
# +project_id+. Read the next page with +after+ set to the last message's
|
|
115
|
+
# +seq+.
|
|
116
|
+
def list(function_name, execution_id, filters = {})
|
|
117
|
+
filters = list_filters(filters)
|
|
118
|
+
target = message_target(function_name, execution_id, filters)
|
|
119
|
+
durable_message_page(Transport.body(list_messages(target, list_query(filters)), 200))
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
# Delivers every message the execution publishes to the block, in order,
|
|
123
|
+
# once each, and one call at a time. Messages it published before the
|
|
124
|
+
# call come first, and after a reconnect the ones published meanwhile are
|
|
125
|
+
# read back before live delivery resumes, over the owner's route when
|
|
126
|
+
# +project_id+ is given. Returns a
|
|
127
|
+
# DurableMessageSubscription once the messages published so far are
|
|
128
|
+
# delivered; a block that raises meanwhile ends the subscription and
|
|
129
|
+
# raises here, and a subscription ended meanwhile raises
|
|
130
|
+
# Realtime::ClosedError.
|
|
131
|
+
#
|
|
132
|
+
# Follows the execution on the client's realtime connection, so call it
|
|
133
|
+
# inside that connection's Async reactor, with a signed-in session. A
|
|
134
|
+
# connection an earlier session opened is closed, raising
|
|
135
|
+
# Error::SessionChangedError. A catch-up that fails in the background is
|
|
136
|
+
# reported to Realtime#on_error and retried, backing off to every 30
|
|
137
|
+
# seconds; a block that raises later is reported there too, and delivery
|
|
138
|
+
# goes on. Realtime#remove_all_channels and Realtime#disconnect end the
|
|
139
|
+
# subscription, and so does signing out, signing in again, or setting
|
|
140
|
+
# another session, though not a token refresh, and a reconnect the server
|
|
141
|
+
# refuses to restore the subscription on for good, which is reported to
|
|
142
|
+
# Realtime#on_error once. Raises
|
|
143
|
+
# Realtime::DuplicateSubscriptionError when this client already follows the
|
|
144
|
+
# execution.
|
|
145
|
+
def subscribe(function_name, execution_id, client_token: nil, project_id: nil, &handler)
|
|
146
|
+
raise ArgumentError, 'subscribe requires a block' unless block_given?
|
|
147
|
+
|
|
148
|
+
target = message_target(function_name, execution_id, { client_token: client_token, project_id: project_id })
|
|
149
|
+
session = DurableMessageSession.new(@realtime)
|
|
150
|
+
stream = session.stream(handler, reader(target), failure_reporter)
|
|
151
|
+
DurableMessageSubscription.open(session, stream, durable_channel(target, session), @realtime)
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
private
|
|
155
|
+
|
|
156
|
+
def durable_channel(target, session)
|
|
157
|
+
@realtime.__send__(:durable_channel, target.execution_id, target.client_token, session) ||
|
|
158
|
+
raise(Realtime::DuplicateSubscriptionError, 'already subscribed to this execution; unsubscribe first')
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
# Reads off the reactor, which the transport would block along with the
|
|
162
|
+
# connection's reads and heartbeats.
|
|
163
|
+
def reader(target)
|
|
164
|
+
lambda do |after|
|
|
165
|
+
authorization = authorization(target)
|
|
166
|
+
response = @realtime.__send__(:blocking) do
|
|
167
|
+
list_messages(target, { direction: 'out', after: after }, authorization)
|
|
168
|
+
end
|
|
169
|
+
durable_message_page(Transport.body(response, 200))
|
|
170
|
+
end
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
def list_messages(target, query, authorization = authorization(target))
|
|
174
|
+
Transport.invoke do
|
|
175
|
+
@transport.list_durable_messages(authorization: authorization, target: target, query: query)
|
|
176
|
+
end
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
def failure_reporter
|
|
180
|
+
->(error) { @realtime.__send__(:report_channel_error, error) }
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
def authorization(target)
|
|
184
|
+
target.project_id ? @client.session_token : @client.function_token
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
def message_target(function_name, execution_id, options)
|
|
188
|
+
project_id = options[:project_id]
|
|
189
|
+
Target.new(
|
|
190
|
+
project_id: project_id.nil? ? nil : identifier(project_id, 'project_id'),
|
|
191
|
+
function_id: identifier(function_name, 'function_name'),
|
|
192
|
+
execution_id: identifier(execution_id, 'execution_id'),
|
|
193
|
+
client_token: bounded_text(options[:client_token], 'client_token', MAX_CLIENT_TOKEN_LENGTH)
|
|
194
|
+
)
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
def list_filters(filters)
|
|
198
|
+
raise TypeError, 'filters must be a Hash' unless filters.is_a?(Hash)
|
|
199
|
+
|
|
200
|
+
known_options(filters, LIST_OPTIONS)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def list_query(filters)
|
|
204
|
+
name = filters[:name]
|
|
205
|
+
{
|
|
206
|
+
direction: direction_filter(filters[:direction]), name: name.nil? ? nil : message_name(name),
|
|
207
|
+
after: after_argument(filters[:after]), limit: limit_argument(filters[:limit])
|
|
208
|
+
}.compact
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
def direction_filter(value)
|
|
212
|
+
return if value.nil?
|
|
213
|
+
|
|
214
|
+
DIRECTIONS.find { |direction| direction == value.to_s } || raise(ArgumentError, "direction must be 'in' or 'out'")
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
end
|
|
@@ -5,7 +5,7 @@ require_relative 'immutable_request_value'
|
|
|
5
5
|
|
|
6
6
|
module Volcano
|
|
7
7
|
DURABLE_EXECUTION_ATTRIBUTES = %i[
|
|
8
|
-
id function_id name status region created_at result result_expired error completed_at
|
|
8
|
+
id function_id name status region created_at result result_expired error completed_at client_token
|
|
9
9
|
].freeze
|
|
10
10
|
private_constant :DURABLE_EXECUTION_ATTRIBUTES
|
|
11
11
|
|
|
@@ -35,6 +35,10 @@ module Volcano
|
|
|
35
35
|
# once its retention lapses. That is not the same as a function that returned
|
|
36
36
|
# nothing, so read `result_expired` before concluding anything from a missing
|
|
37
37
|
# result.
|
|
38
|
+
#
|
|
39
|
+
# `client_token` lets a browser, or a user who did not start the execution,
|
|
40
|
+
# reach its messages. Only the start that created the execution returns it;
|
|
41
|
+
# a repeat under the same name and every read leave it nil.
|
|
38
42
|
DurableExecution = Data.define(*DURABLE_EXECUTION_ATTRIBUTES)
|
|
39
43
|
|
|
40
44
|
# Reopens the generated record for checked initialization.
|
|
@@ -58,6 +62,17 @@ module Volcano
|
|
|
58
62
|
DURABLE_TERMINAL_STATUSES.include?(status)
|
|
59
63
|
end
|
|
60
64
|
|
|
65
|
+
# The client token is a bearer credential, so inspection masks it.
|
|
66
|
+
def inspect
|
|
67
|
+
fields = to_h.map do |name, value|
|
|
68
|
+
"#{name}=#{name == :client_token && value ? Redaction::MARKER : value.inspect}"
|
|
69
|
+
end
|
|
70
|
+
"#<data #{self.class.name} #{fields.join(', ')}>"
|
|
71
|
+
end
|
|
72
|
+
alias to_s inspect
|
|
73
|
+
|
|
74
|
+
def pretty_print(printer) = printer.text(inspect)
|
|
75
|
+
|
|
61
76
|
private
|
|
62
77
|
|
|
63
78
|
# `result` is the function's own JSON, so it is frozen all the way down.
|
|
@@ -92,15 +107,29 @@ module Volcano
|
|
|
92
107
|
|
|
93
108
|
def durable_execution(payload)
|
|
94
109
|
values = execution_payload(payload)
|
|
110
|
+
result, result_expired, error, completed_at = execution_outcome(values)
|
|
95
111
|
DurableExecution.new(
|
|
96
112
|
id: execution_text(values, 'id'), function_id: execution_text(values, 'function_id'),
|
|
97
113
|
name: execution_text(values, 'name'), status: execution_text(values, 'status'),
|
|
98
114
|
region: execution_text(values, 'region'), created_at: execution_time(values),
|
|
99
|
-
result:
|
|
100
|
-
|
|
115
|
+
result: result, result_expired: result_expired, error: error, completed_at: completed_at,
|
|
116
|
+
client_token: client_token(values['client_token'])
|
|
101
117
|
)
|
|
102
118
|
end
|
|
103
119
|
|
|
120
|
+
def execution_outcome(values)
|
|
121
|
+
[
|
|
122
|
+
execution_result(values['result']), execution_expired(values['result_expired']),
|
|
123
|
+
execution_error(values['error']), parse_time(values['completed_at'])
|
|
124
|
+
]
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def client_token(value)
|
|
128
|
+
return value if value.nil? || (value.is_a?(String) && !value.empty?)
|
|
129
|
+
|
|
130
|
+
raise TypeError, INCOMPLETE_EXECUTION
|
|
131
|
+
end
|
|
132
|
+
|
|
104
133
|
def execution_payload(payload)
|
|
105
134
|
raise TypeError, INCOMPLETE_EXECUTION unless payload.is_a?(Hash)
|
|
106
135
|
|
|
@@ -165,10 +194,6 @@ module Volcano
|
|
|
165
194
|
value
|
|
166
195
|
end
|
|
167
196
|
|
|
168
|
-
def present_string?(value)
|
|
169
|
-
value.is_a?(String) && !value.strip.empty?
|
|
170
|
-
end
|
|
171
|
-
|
|
172
197
|
def parse_time(value)
|
|
173
198
|
return Time.iso8601(value) if value.is_a?(String)
|
|
174
199
|
return value if value.nil? || value.is_a?(Time)
|
data/lib/volcano/errors.rb
CHANGED
|
@@ -16,6 +16,11 @@ module Volcano
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
class AuthenticationError < VolcanoError; end
|
|
19
|
+
|
|
20
|
+
# Raised for HTTP 403: the credential is valid but may not do this. It
|
|
21
|
+
# remains an AuthenticationError so existing handlers still catch it.
|
|
22
|
+
class PermissionDeniedError < AuthenticationError; end
|
|
23
|
+
|
|
19
24
|
class ValidationError < VolcanoError; end
|
|
20
25
|
class NotFoundError < VolcanoError; end
|
|
21
26
|
class ConflictError < VolcanoError; end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
=begin
|
|
2
|
-
#Volcano
|
|
2
|
+
#Volcano API
|
|
3
3
|
|
|
4
|
-
#Public API for Volcano
|
|
4
|
+
#Public API for Volcano clients, SDKs, and CLI tooling (Port 8000). This specification intentionally excludes first-party/internal APIs. See api/openapi-internal.yaml for non-public internal and Builder operations.
|
|
5
5
|
|
|
6
6
|
The version of the OpenAPI document: 3.0.0
|
|
7
7
|
Contact: support@volcano.dev
|
|
@@ -72,7 +72,7 @@ module Volcano::Generated
|
|
|
72
72
|
return_type = opts[:debug_return_type] || 'AnonKey'
|
|
73
73
|
|
|
74
74
|
# auth_names
|
|
75
|
-
auth_names = opts[:debug_auth_names] || ['UserToken']
|
|
75
|
+
auth_names = opts[:debug_auth_names] || ['UserToken', 'ProjectAccessToken']
|
|
76
76
|
|
|
77
77
|
new_options = opts.merge(
|
|
78
78
|
:operation => :"AnonKeysApi.create_anon_key",
|
|
@@ -141,7 +141,7 @@ module Volcano::Generated
|
|
|
141
141
|
return_type = opts[:debug_return_type] || 'AnonKey'
|
|
142
142
|
|
|
143
143
|
# auth_names
|
|
144
|
-
auth_names = opts[:debug_auth_names] || ['UserToken']
|
|
144
|
+
auth_names = opts[:debug_auth_names] || ['UserToken', 'ProjectAccessToken']
|
|
145
145
|
|
|
146
146
|
new_options = opts.merge(
|
|
147
147
|
:operation => :"AnonKeysApi.get_anon_key",
|
|
@@ -242,7 +242,7 @@ module Volcano::Generated
|
|
|
242
242
|
return_type = opts[:debug_return_type] || 'ListAnonKeys200Response'
|
|
243
243
|
|
|
244
244
|
# auth_names
|
|
245
|
-
auth_names = opts[:debug_auth_names] || ['UserToken']
|
|
245
|
+
auth_names = opts[:debug_auth_names] || ['UserToken', 'ProjectAccessToken']
|
|
246
246
|
|
|
247
247
|
new_options = opts.merge(
|
|
248
248
|
:operation => :"AnonKeysApi.list_anon_keys",
|
|
@@ -311,7 +311,7 @@ module Volcano::Generated
|
|
|
311
311
|
return_type = opts[:debug_return_type] || 'AnonKey'
|
|
312
312
|
|
|
313
313
|
# auth_names
|
|
314
|
-
auth_names = opts[:debug_auth_names] || ['UserToken']
|
|
314
|
+
auth_names = opts[:debug_auth_names] || ['UserToken', 'ProjectAccessToken']
|
|
315
315
|
|
|
316
316
|
new_options = opts.merge(
|
|
317
317
|
:operation => :"AnonKeysApi.regenerate_anon_key",
|
|
@@ -380,7 +380,7 @@ module Volcano::Generated
|
|
|
380
380
|
return_type = opts[:debug_return_type]
|
|
381
381
|
|
|
382
382
|
# auth_names
|
|
383
|
-
auth_names = opts[:debug_auth_names] || ['UserToken']
|
|
383
|
+
auth_names = opts[:debug_auth_names] || ['UserToken', 'ProjectAccessToken']
|
|
384
384
|
|
|
385
385
|
new_options = opts.merge(
|
|
386
386
|
:operation => :"AnonKeysApi.revoke_anon_key",
|
|
@@ -449,7 +449,7 @@ module Volcano::Generated
|
|
|
449
449
|
return_type = opts[:debug_return_type] || 'AnonKey'
|
|
450
450
|
|
|
451
451
|
# auth_names
|
|
452
|
-
auth_names = opts[:debug_auth_names] || ['UserToken']
|
|
452
|
+
auth_names = opts[:debug_auth_names] || ['UserToken', 'ProjectAccessToken']
|
|
453
453
|
|
|
454
454
|
new_options = opts.merge(
|
|
455
455
|
:operation => :"AnonKeysApi.set_default_anon_key",
|