vapi_server_sdk 0.0.0.pre.alpha7 → 0.2.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/lib/requests.rb +2 -10
- data/lib/types_export.rb +184 -26
- data/lib/vapi_server_sdk/analytics/client.rb +14 -43
- data/lib/vapi_server_sdk/assistants/client.rb +57 -60
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_client_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_model.rb +39 -0
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_server_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_transcriber.rb +27 -1
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_voice.rb +26 -0
- data/lib/vapi_server_sdk/calls/client.rb +58 -28
- data/lib/vapi_server_sdk/knowledge_bases/client.rb +394 -0
- data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_create_request.rb +96 -0
- data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_create_response.rb +96 -0
- data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_delete_response.rb +96 -0
- data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_get_response.rb +96 -0
- data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_list_response_item.rb +96 -0
- data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_update_response.rb +96 -0
- data/lib/vapi_server_sdk/logs/client.rb +10 -6
- data/lib/vapi_server_sdk/squads/client.rb +56 -32
- data/lib/vapi_server_sdk/tools/client.rb +4 -0
- data/lib/vapi_server_sdk/tools/types/tools_create_request.rb +39 -0
- data/lib/vapi_server_sdk/tools/types/tools_create_response.rb +39 -0
- data/lib/vapi_server_sdk/tools/types/tools_delete_response.rb +39 -0
- data/lib/vapi_server_sdk/tools/types/tools_get_response.rb +39 -0
- data/lib/vapi_server_sdk/tools/types/tools_list_response_item.rb +39 -0
- data/lib/vapi_server_sdk/tools/types/tools_update_response.rb +39 -0
- data/lib/vapi_server_sdk/types/analytics_query_dto.rb +59 -0
- data/lib/vapi_server_sdk/types/anthropic_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/anthropic_model.rb +21 -13
- data/lib/vapi_server_sdk/types/anthropic_model_model.rb +2 -0
- data/lib/vapi_server_sdk/types/anyscale_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/anyscale_model.rb +21 -13
- data/lib/vapi_server_sdk/types/assembly_ai_credential.rb +111 -0
- data/lib/vapi_server_sdk/types/assembly_ai_transcriber.rb +97 -0
- data/lib/vapi_server_sdk/types/assistant.rb +42 -64
- data/lib/vapi_server_sdk/types/assistant_client_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/assistant_custom_endpointing_rule.rb +100 -0
- data/lib/vapi_server_sdk/types/assistant_model.rb +39 -0
- data/lib/vapi_server_sdk/types/assistant_overrides.rb +57 -65
- data/lib/vapi_server_sdk/types/assistant_overrides_client_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/assistant_overrides_model.rb +39 -0
- data/lib/vapi_server_sdk/types/assistant_overrides_server_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/assistant_overrides_transcriber.rb +27 -1
- data/lib/vapi_server_sdk/types/assistant_overrides_voice.rb +26 -0
- data/lib/vapi_server_sdk/types/assistant_server_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/assistant_transcriber.rb +27 -1
- data/lib/vapi_server_sdk/types/assistant_voice.rb +26 -0
- data/lib/vapi_server_sdk/types/auto_reload_plan.rb +65 -0
- data/lib/vapi_server_sdk/types/auto_reload_plan_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/azure_credential.rb +129 -0
- data/lib/vapi_server_sdk/types/azure_credential_region.rb +23 -0
- data/lib/vapi_server_sdk/types/azure_open_ai_credential.rb +12 -2
- data/lib/vapi_server_sdk/types/azure_open_ai_credential_models_item.rb +1 -0
- data/lib/vapi_server_sdk/types/azure_open_ai_credential_region.rb +1 -0
- data/lib/vapi_server_sdk/types/azure_voice.rb +25 -21
- data/lib/vapi_server_sdk/types/bash_tool.rb +194 -0
- data/lib/vapi_server_sdk/types/bash_tool_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/block_complete_message.rb +29 -4
- data/lib/vapi_server_sdk/types/block_start_message.rb +29 -4
- data/lib/vapi_server_sdk/types/both_custom_endpointing_rule.rb +126 -0
- data/lib/vapi_server_sdk/types/byo_sip_trunk_credential.rb +29 -9
- data/lib/vapi_server_sdk/types/call.rb +15 -1
- data/lib/vapi_server_sdk/types/call_ended_reason.rb +49 -24
- data/lib/vapi_server_sdk/types/call_log_privileged.rb +88 -0
- data/lib/vapi_server_sdk/types/call_log_privileged_level.rb +12 -0
- data/lib/vapi_server_sdk/types/call_logs_paginated_response.rb +75 -0
- data/lib/vapi_server_sdk/types/cartesia_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/cartesia_voice.rb +25 -21
- data/lib/vapi_server_sdk/types/cartesia_voice_language.rb +9 -1
- data/lib/vapi_server_sdk/types/client_inbound_message_add_message.rb +25 -3
- data/lib/vapi_server_sdk/types/client_inbound_message_message.rb +13 -0
- data/lib/vapi_server_sdk/types/client_inbound_message_transfer.rb +63 -0
- data/lib/vapi_server_sdk/types/client_inbound_message_transfer_destination.rb +96 -0
- data/lib/vapi_server_sdk/types/{client_message_language_changed.rb → client_message_language_change_detected.rb} +5 -5
- data/lib/vapi_server_sdk/types/client_message_message.rb +22 -9
- data/lib/vapi_server_sdk/types/client_message_tool_calls_tool_with_tool_call_list_item.rb +77 -77
- data/lib/vapi_server_sdk/types/client_message_transfer_update.rb +116 -0
- data/lib/vapi_server_sdk/types/client_message_transfer_update_destination.rb +122 -0
- data/lib/vapi_server_sdk/types/computer_tool.rb +218 -0
- data/lib/vapi_server_sdk/types/computer_tool_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/condition.rb +9 -9
- data/lib/vapi_server_sdk/types/create_anthropic_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_anyscale_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_assembly_ai_credential_dto.rb +74 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto.rb +43 -65
- data/lib/vapi_server_sdk/types/create_assistant_dto_client_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto_model.rb +39 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto_server_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto_transcriber.rb +27 -1
- data/lib/vapi_server_sdk/types/create_assistant_dto_voice.rb +26 -0
- data/lib/vapi_server_sdk/types/create_azure_credential_dto.rb +95 -0
- data/lib/vapi_server_sdk/types/create_azure_credential_dto_region.rb +23 -0
- data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto.rb +13 -3
- data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_models_item.rb +1 -0
- data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_region.rb +1 -0
- data/lib/vapi_server_sdk/types/create_bash_tool_dto.rb +161 -0
- data/lib/vapi_server_sdk/types/create_bash_tool_dto_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/create_byo_sip_trunk_credential_dto.rb +31 -11
- data/lib/vapi_server_sdk/types/create_cartesia_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_computer_tool_dto.rb +185 -0
- data/lib/vapi_server_sdk/types/create_computer_tool_dto_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/create_custom_knowledge_base_dto.rb +137 -0
- data/lib/vapi_server_sdk/types/create_custom_llm_credential_dto.rb +31 -2
- data/lib/vapi_server_sdk/types/create_deep_infra_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_deepgram_credential_dto.rb +9 -2
- data/lib/vapi_server_sdk/types/create_eleven_labs_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_gcp_credential_dto.rb +10 -10
- data/lib/vapi_server_sdk/types/create_gladia_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_go_high_level_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_google_credential_dto.rb +76 -0
- data/lib/vapi_server_sdk/types/create_groq_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_inflection_ai_credential_dto.rb +76 -0
- data/lib/vapi_server_sdk/types/create_langfuse_credential_dto.rb +96 -0
- data/lib/vapi_server_sdk/types/create_lmnt_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_make_credential_dto.rb +17 -2
- data/lib/vapi_server_sdk/types/create_open_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_open_router_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_org_dto.rb +21 -2
- data/lib/vapi_server_sdk/types/create_org_dto_channel.rb +10 -0
- data/lib/vapi_server_sdk/types/create_perplexity_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_play_ht_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_rime_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_runpod_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_s_3_credential_dto.rb +13 -3
- data/lib/vapi_server_sdk/types/{knowledge_base.rb → create_tavus_credential_dto.rb} +21 -21
- data/lib/vapi_server_sdk/types/create_text_editor_tool_dto.rb +161 -0
- data/lib/vapi_server_sdk/types/create_text_editor_tool_dto_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/create_together_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/create_trieve_knowledge_base_dto.rb +109 -0
- data/lib/vapi_server_sdk/types/create_twilio_credential_dto.rb +16 -2
- data/lib/vapi_server_sdk/types/create_vapi_phone_number_dto.rb +20 -2
- data/lib/vapi_server_sdk/types/create_vonage_credential_dto.rb +16 -2
- data/lib/vapi_server_sdk/types/create_webhook_credential_dto.rb +84 -0
- data/lib/vapi_server_sdk/types/create_x_ai_credential_dto.rb +76 -0
- data/lib/vapi_server_sdk/types/credits_buy_dto.rb +55 -0
- data/lib/vapi_server_sdk/types/custom_knowledge_base.rb +154 -0
- data/lib/vapi_server_sdk/types/custom_llm_credential.rb +46 -3
- data/lib/vapi_server_sdk/types/custom_llm_model.rb +23 -15
- data/lib/vapi_server_sdk/types/custom_message.rb +92 -0
- data/lib/vapi_server_sdk/types/custom_transcriber.rb +125 -0
- data/lib/vapi_server_sdk/types/custom_voice.rb +132 -0
- data/lib/vapi_server_sdk/types/customer_custom_endpointing_rule.rb +100 -0
- data/lib/vapi_server_sdk/types/deep_infra_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/deep_infra_model.rb +21 -13
- data/lib/vapi_server_sdk/types/deepgram_credential.rb +9 -1
- data/lib/vapi_server_sdk/types/deepgram_transcriber.rb +69 -11
- data/lib/vapi_server_sdk/types/deepgram_voice.rb +17 -17
- data/lib/vapi_server_sdk/types/eleven_labs_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/eleven_labs_voice.rb +28 -24
- data/lib/vapi_server_sdk/types/fallback_azure_voice.rb +100 -0
- data/lib/vapi_server_sdk/types/fallback_azure_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/fallback_azure_voice_voice_id.rb +9 -0
- data/lib/vapi_server_sdk/types/fallback_cartesia_voice.rb +100 -0
- data/lib/vapi_server_sdk/types/fallback_cartesia_voice_language.rb +23 -0
- data/lib/vapi_server_sdk/types/fallback_cartesia_voice_model.rb +10 -0
- data/lib/vapi_server_sdk/types/fallback_custom_voice.rb +117 -0
- data/lib/vapi_server_sdk/types/fallback_deepgram_voice.rb +81 -0
- data/lib/vapi_server_sdk/types/fallback_deepgram_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/fallback_deepgram_voice_id_enum.rb +18 -0
- data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice.rb +164 -0
- data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice_id.rb +54 -0
- data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice_id_enum.rb +21 -0
- data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice_model.rb +12 -0
- data/lib/vapi_server_sdk/types/fallback_lmnt_voice.rb +88 -0
- data/lib/vapi_server_sdk/types/fallback_lmnt_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/fallback_lmnt_voice_id_enum.rb +8 -0
- data/lib/vapi_server_sdk/types/fallback_neets_voice.rb +81 -0
- data/lib/vapi_server_sdk/types/fallback_neets_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/fallback_neets_voice_id_enum.rb +7 -0
- data/lib/vapi_server_sdk/types/fallback_open_ai_voice.rb +87 -0
- data/lib/vapi_server_sdk/types/fallback_open_ai_voice_id.rb +20 -0
- data/lib/vapi_server_sdk/types/fallback_plan.rb +61 -0
- data/lib/vapi_server_sdk/types/fallback_plan_voices_item.rb +211 -0
- data/lib/vapi_server_sdk/types/fallback_play_ht_voice.rb +172 -0
- data/lib/vapi_server_sdk/types/fallback_play_ht_voice_emotion.rb +19 -0
- data/lib/vapi_server_sdk/types/fallback_play_ht_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/fallback_play_ht_voice_id_enum.rb +16 -0
- data/lib/vapi_server_sdk/types/fallback_play_ht_voice_language.rb +44 -0
- data/lib/vapi_server_sdk/types/fallback_play_ht_voice_model.rb +10 -0
- data/lib/vapi_server_sdk/types/fallback_rime_ai_voice.rb +96 -0
- data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_id_enum.rb +87 -0
- data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_model.rb +9 -0
- data/lib/vapi_server_sdk/types/fallback_tavus_voice.rb +147 -0
- data/lib/vapi_server_sdk/types/fallback_tavus_voice_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/format_plan.rb +0 -2
- data/lib/vapi_server_sdk/types/function_tool_with_tool_call.rb +10 -1
- data/lib/vapi_server_sdk/types/gcp_credential.rb +2 -2
- data/lib/vapi_server_sdk/types/ghl_tool_with_tool_call.rb +9 -1
- data/lib/vapi_server_sdk/types/gladia_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/go_high_level_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/google_credential.rb +113 -0
- data/lib/vapi_server_sdk/types/google_model.rb +178 -0
- data/lib/vapi_server_sdk/types/google_model_model.rb +12 -0
- data/lib/vapi_server_sdk/types/google_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk/types/groq_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/groq_model.rb +21 -13
- data/lib/vapi_server_sdk/types/hipaa_buy_dto.rb +65 -0
- data/lib/vapi_server_sdk/types/inflection_ai_credential.rb +113 -0
- data/lib/vapi_server_sdk/types/inflection_ai_model.rb +177 -0
- data/lib/vapi_server_sdk/types/inflection_ai_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk/types/invite_user_dto.rb +9 -9
- data/lib/vapi_server_sdk/types/knowledge_base_response_document.rb +74 -0
- data/lib/vapi_server_sdk/types/langfuse_credential.rb +130 -0
- data/lib/vapi_server_sdk/types/lmnt_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/lmnt_voice.rb +18 -14
- data/lib/vapi_server_sdk/types/log.rb +12 -4
- data/lib/vapi_server_sdk/types/log_resource.rb +8 -0
- data/lib/vapi_server_sdk/types/make_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/make_tool_with_tool_call.rb +9 -1
- data/lib/vapi_server_sdk/types/neets_voice.rb +17 -17
- data/lib/vapi_server_sdk/types/o_auth_2_authentication_plan.rb +79 -0
- data/lib/vapi_server_sdk/types/oauth_2_authentication_session.rb +68 -0
- data/lib/vapi_server_sdk/types/open_ai_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/open_ai_function.rb +30 -4
- data/lib/vapi_server_sdk/types/open_ai_model.rb +23 -15
- data/lib/vapi_server_sdk/types/open_ai_model_fallback_models_item.rb +2 -0
- data/lib/vapi_server_sdk/types/open_ai_model_model.rb +2 -0
- data/lib/vapi_server_sdk/types/open_ai_voice.rb +22 -14
- data/lib/vapi_server_sdk/types/open_ai_voice_id.rb +7 -0
- data/lib/vapi_server_sdk/types/open_router_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/open_router_model.rb +21 -13
- data/lib/vapi_server_sdk/types/org.rb +35 -2
- data/lib/vapi_server_sdk/types/org_channel.rb +10 -0
- data/lib/vapi_server_sdk/types/org_with_org_user.rb +262 -0
- data/lib/vapi_server_sdk/types/org_with_org_user_channel.rb +10 -0
- data/lib/vapi_server_sdk/types/org_with_org_user_role.rb +9 -0
- data/lib/vapi_server_sdk/types/payment.rb +167 -0
- data/lib/vapi_server_sdk/types/payment_retry_dto.rb +55 -0
- data/lib/vapi_server_sdk/types/payment_status.rb +11 -0
- data/lib/vapi_server_sdk/types/payments_paginated_response.rb +75 -0
- data/lib/vapi_server_sdk/types/perplexity_ai_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/perplexity_ai_model.rb +21 -13
- data/lib/vapi_server_sdk/types/phone_number_paginated_response.rb +75 -0
- data/lib/vapi_server_sdk/types/phone_number_paginated_response_results_item.rb +121 -0
- data/lib/vapi_server_sdk/types/play_ht_credential.rb +13 -2
- data/lib/vapi_server_sdk/types/play_ht_voice.rb +37 -15
- data/lib/vapi_server_sdk/types/play_ht_voice_language.rb +44 -0
- data/lib/vapi_server_sdk/types/play_ht_voice_model.rb +10 -0
- data/lib/vapi_server_sdk/types/regex_option.rb +2 -2
- data/lib/vapi_server_sdk/types/regex_option_type.rb +1 -1
- data/lib/vapi_server_sdk/types/regex_replacement.rb +14 -4
- data/lib/vapi_server_sdk/types/rime_ai_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/rime_ai_voice.rb +18 -14
- data/lib/vapi_server_sdk/types/runpod_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/s_3_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/server.rb +16 -2
- data/lib/vapi_server_sdk/types/server_message_end_of_call_report_ended_reason.rb +49 -24
- data/lib/vapi_server_sdk/types/server_message_knowledge_base_request.rb +195 -0
- data/lib/vapi_server_sdk/types/server_message_knowledge_base_request_messages_item.rb +97 -0
- data/lib/vapi_server_sdk/types/{server_message_language_changed_phone_number.rb → server_message_knowledge_base_request_phone_number.rb} +8 -8
- data/lib/vapi_server_sdk/types/{server_message_language_changed.rb → server_message_language_change_detected.rb} +10 -10
- data/lib/vapi_server_sdk/types/server_message_language_change_detected_phone_number.rb +125 -0
- data/lib/vapi_server_sdk/types/server_message_message.rb +22 -9
- data/lib/vapi_server_sdk/types/server_message_response_knowledge_base_request.rb +81 -0
- data/lib/vapi_server_sdk/types/server_message_response_message_response.rb +14 -0
- data/lib/vapi_server_sdk/types/server_message_status_update_ended_reason.rb +49 -24
- data/lib/vapi_server_sdk/types/server_message_tool_calls_tool_with_tool_call_list_item.rb +77 -77
- data/lib/vapi_server_sdk/types/server_message_transfer_update.rb +18 -2
- data/lib/vapi_server_sdk/types/sip_authentication.rb +80 -0
- data/lib/vapi_server_sdk/types/start_speaking_plan.rb +54 -10
- data/lib/vapi_server_sdk/types/start_speaking_plan_custom_endpointing_rules_item.rb +108 -0
- data/lib/vapi_server_sdk/types/structured_data_plan.rb +28 -10
- data/lib/vapi_server_sdk/types/subscription.rb +336 -0
- data/lib/vapi_server_sdk/types/subscription_concurrency_line_buy_dto.rb +55 -0
- data/lib/vapi_server_sdk/types/subscription_concurrency_line_remove_dto.rb +55 -0
- data/lib/vapi_server_sdk/types/subscription_coupon_add_dto.rb +67 -0
- data/lib/vapi_server_sdk/types/subscription_monthly_charge.rb +65 -0
- data/lib/vapi_server_sdk/types/subscription_status.rb +10 -0
- data/lib/vapi_server_sdk/types/subscription_type.rb +10 -0
- data/lib/vapi_server_sdk/types/success_evaluation_plan.rb +38 -16
- data/lib/vapi_server_sdk/types/summary_plan.rb +26 -8
- data/lib/vapi_server_sdk/types/sync_voice_library_dto_providers_item.rb +1 -0
- data/lib/vapi_server_sdk/types/tavus_conversation_properties.rb +173 -0
- data/lib/vapi_server_sdk/types/tavus_credential.rb +111 -0
- data/lib/vapi_server_sdk/types/tavus_voice.rb +163 -0
- data/lib/vapi_server_sdk/types/tavus_voice_voice_id.rb +53 -0
- data/lib/vapi_server_sdk/types/text_content.rb +73 -0
- data/lib/vapi_server_sdk/types/text_content_language.rb +191 -0
- data/lib/vapi_server_sdk/types/text_editor_tool.rb +194 -0
- data/lib/vapi_server_sdk/types/text_editor_tool_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/together_ai_credential.rb +13 -3
- data/lib/vapi_server_sdk/types/together_ai_model.rb +21 -13
- data/lib/vapi_server_sdk/types/tool_message_complete.rb +29 -3
- data/lib/vapi_server_sdk/types/tool_message_delayed.rb +30 -3
- data/lib/vapi_server_sdk/types/tool_message_failed.rb +30 -3
- data/lib/vapi_server_sdk/types/tool_message_start.rb +29 -4
- data/lib/vapi_server_sdk/types/transfer_destination_assistant.rb +79 -33
- data/lib/vapi_server_sdk/types/transfer_destination_assistant_message.rb +65 -0
- data/lib/vapi_server_sdk/types/transfer_destination_number.rb +56 -24
- data/lib/vapi_server_sdk/types/transfer_destination_number_message.rb +65 -0
- data/lib/vapi_server_sdk/types/transfer_destination_sip.rb +60 -15
- data/lib/vapi_server_sdk/types/transfer_destination_sip_message.rb +65 -0
- data/lib/vapi_server_sdk/types/transfer_destination_step.rb +28 -14
- data/lib/vapi_server_sdk/types/transfer_destination_step_message.rb +65 -0
- data/lib/vapi_server_sdk/types/transfer_plan.rb +141 -0
- data/lib/vapi_server_sdk/types/transfer_plan_message.rb +58 -0
- data/lib/vapi_server_sdk/types/transfer_plan_mode.rb +32 -0
- data/lib/vapi_server_sdk/types/transport.rb +70 -0
- data/lib/vapi_server_sdk/types/transport_cost.rb +12 -2
- data/lib/vapi_server_sdk/types/transport_cost_provider.rb +9 -0
- data/lib/vapi_server_sdk/types/transport_provider.rb +11 -0
- data/lib/vapi_server_sdk/types/trieve_knowledge_base.rb +125 -0
- data/lib/vapi_server_sdk/types/trieve_knowledge_base_vector_store_create_plan.rb +109 -0
- data/lib/vapi_server_sdk/types/trieve_knowledge_base_vector_store_search_plan.rb +95 -0
- data/lib/vapi_server_sdk/types/trieve_knowledge_base_vector_store_search_plan_search_type.rb +12 -0
- data/lib/vapi_server_sdk/types/twilio_credential.rb +12 -2
- data/lib/vapi_server_sdk/types/update_anthropic_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_anyscale_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_assembly_ai_credential_dto.rb +74 -0
- data/lib/vapi_server_sdk/types/update_azure_credential_dto.rb +95 -0
- data/lib/vapi_server_sdk/types/update_azure_credential_dto_region.rb +23 -0
- data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto.rb +13 -3
- data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_models_item.rb +1 -0
- data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_region.rb +1 -0
- data/lib/vapi_server_sdk/types/update_byo_sip_trunk_credential_dto.rb +31 -11
- data/lib/vapi_server_sdk/types/update_cartesia_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_custom_llm_credential_dto.rb +31 -2
- data/lib/vapi_server_sdk/types/update_deep_infra_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_deepgram_credential_dto.rb +9 -2
- data/lib/vapi_server_sdk/types/update_eleven_labs_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_gcp_credential_dto.rb +10 -10
- data/lib/vapi_server_sdk/types/update_gladia_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_go_high_level_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_google_credential_dto.rb +76 -0
- data/lib/vapi_server_sdk/types/update_groq_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_inflection_ai_credential_dto.rb +76 -0
- data/lib/vapi_server_sdk/types/update_langfuse_credential_dto.rb +96 -0
- data/lib/vapi_server_sdk/types/update_lmnt_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_make_credential_dto.rb +17 -2
- data/lib/vapi_server_sdk/types/update_open_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_open_router_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_org_dto.rb +21 -2
- data/lib/vapi_server_sdk/types/update_org_dto_channel.rb +10 -0
- data/lib/vapi_server_sdk/types/update_perplexity_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_play_ht_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_rime_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_runpod_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_s_3_credential_dto.rb +13 -3
- data/lib/vapi_server_sdk/types/update_tavus_credential_dto.rb +74 -0
- data/lib/vapi_server_sdk/types/update_together_ai_credential_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/update_twilio_credential_dto.rb +16 -2
- data/lib/vapi_server_sdk/types/update_vonage_credential_dto.rb +16 -2
- data/lib/vapi_server_sdk/types/update_x_ai_credential_dto.rb +76 -0
- data/lib/vapi_server_sdk/types/vapi_cost.rb +10 -2
- data/lib/vapi_server_sdk/types/vapi_cost_sub_type.rb +9 -0
- data/lib/vapi_server_sdk/types/vapi_model.rb +24 -16
- data/lib/vapi_server_sdk/types/vapi_phone_number.rb +20 -2
- data/lib/vapi_server_sdk/types/vonage_credential.rb +12 -2
- data/lib/vapi_server_sdk/types/webhook_credential.rb +134 -0
- data/lib/vapi_server_sdk/types/x_ai_credential.rb +113 -0
- data/lib/vapi_server_sdk/types/xai_model.rb +177 -0
- data/lib/vapi_server_sdk/types/xai_model_tools_item.rb +159 -0
- data/lib/vapi_server_sdk.rb +7 -0
- metadata +167 -8
@@ -0,0 +1,111 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "date"
|
4
|
+
require "ostruct"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module Vapi
|
8
|
+
class AssemblyAiCredential
|
9
|
+
# @return [String]
|
10
|
+
attr_reader :provider
|
11
|
+
# @return [String] This is not returned in the API.
|
12
|
+
attr_reader :api_key
|
13
|
+
# @return [String] This is the unique identifier for the credential.
|
14
|
+
attr_reader :id
|
15
|
+
# @return [String] This is the unique identifier for the org that this credential belongs to.
|
16
|
+
attr_reader :org_id
|
17
|
+
# @return [DateTime] This is the ISO 8601 date-time string of when the credential was created.
|
18
|
+
attr_reader :created_at
|
19
|
+
# @return [DateTime] This is the ISO 8601 date-time string of when the assistant was last updated.
|
20
|
+
attr_reader :updated_at
|
21
|
+
# @return [String] This is the name of credential. This is just for your reference.
|
22
|
+
attr_reader :name
|
23
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
24
|
+
attr_reader :additional_properties
|
25
|
+
# @return [Object]
|
26
|
+
attr_reader :_field_set
|
27
|
+
protected :_field_set
|
28
|
+
|
29
|
+
OMIT = Object.new
|
30
|
+
|
31
|
+
# @param provider [String]
|
32
|
+
# @param api_key [String] This is not returned in the API.
|
33
|
+
# @param id [String] This is the unique identifier for the credential.
|
34
|
+
# @param org_id [String] This is the unique identifier for the org that this credential belongs to.
|
35
|
+
# @param created_at [DateTime] This is the ISO 8601 date-time string of when the credential was created.
|
36
|
+
# @param updated_at [DateTime] This is the ISO 8601 date-time string of when the assistant was last updated.
|
37
|
+
# @param name [String] This is the name of credential. This is just for your reference.
|
38
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
39
|
+
# @return [Vapi::AssemblyAiCredential]
|
40
|
+
def initialize(provider:, api_key:, id:, org_id:, created_at:, updated_at:, name: OMIT, additional_properties: nil)
|
41
|
+
@provider = provider
|
42
|
+
@api_key = api_key
|
43
|
+
@id = id
|
44
|
+
@org_id = org_id
|
45
|
+
@created_at = created_at
|
46
|
+
@updated_at = updated_at
|
47
|
+
@name = name if name != OMIT
|
48
|
+
@additional_properties = additional_properties
|
49
|
+
@_field_set = {
|
50
|
+
"provider": provider,
|
51
|
+
"apiKey": api_key,
|
52
|
+
"id": id,
|
53
|
+
"orgId": org_id,
|
54
|
+
"createdAt": created_at,
|
55
|
+
"updatedAt": updated_at,
|
56
|
+
"name": name
|
57
|
+
}.reject do |_k, v|
|
58
|
+
v == OMIT
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# Deserialize a JSON object to an instance of AssemblyAiCredential
|
63
|
+
#
|
64
|
+
# @param json_object [String]
|
65
|
+
# @return [Vapi::AssemblyAiCredential]
|
66
|
+
def self.from_json(json_object:)
|
67
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
68
|
+
parsed_json = JSON.parse(json_object)
|
69
|
+
provider = parsed_json["provider"]
|
70
|
+
api_key = parsed_json["apiKey"]
|
71
|
+
id = parsed_json["id"]
|
72
|
+
org_id = parsed_json["orgId"]
|
73
|
+
created_at = (DateTime.parse(parsed_json["createdAt"]) unless parsed_json["createdAt"].nil?)
|
74
|
+
updated_at = (DateTime.parse(parsed_json["updatedAt"]) unless parsed_json["updatedAt"].nil?)
|
75
|
+
name = parsed_json["name"]
|
76
|
+
new(
|
77
|
+
provider: provider,
|
78
|
+
api_key: api_key,
|
79
|
+
id: id,
|
80
|
+
org_id: org_id,
|
81
|
+
created_at: created_at,
|
82
|
+
updated_at: updated_at,
|
83
|
+
name: name,
|
84
|
+
additional_properties: struct
|
85
|
+
)
|
86
|
+
end
|
87
|
+
|
88
|
+
# Serialize an instance of AssemblyAiCredential to a JSON object
|
89
|
+
#
|
90
|
+
# @return [String]
|
91
|
+
def to_json(*_args)
|
92
|
+
@_field_set&.to_json
|
93
|
+
end
|
94
|
+
|
95
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
96
|
+
# hash and check each fields type against the current object's property
|
97
|
+
# definitions.
|
98
|
+
#
|
99
|
+
# @param obj [Object]
|
100
|
+
# @return [Void]
|
101
|
+
def self.validate_raw(obj:)
|
102
|
+
obj.provider.is_a?(String) != false || raise("Passed value for field obj.provider is not the expected type, validation failed.")
|
103
|
+
obj.api_key.is_a?(String) != false || raise("Passed value for field obj.api_key is not the expected type, validation failed.")
|
104
|
+
obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
|
105
|
+
obj.org_id.is_a?(String) != false || raise("Passed value for field obj.org_id is not the expected type, validation failed.")
|
106
|
+
obj.created_at.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.")
|
107
|
+
obj.updated_at.is_a?(DateTime) != false || raise("Passed value for field obj.updated_at is not the expected type, validation failed.")
|
108
|
+
obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "ostruct"
|
4
|
+
require "json"
|
5
|
+
|
6
|
+
module Vapi
|
7
|
+
class AssemblyAiTranscriber
|
8
|
+
# @return [String] This is the language that will be set for the transcription.
|
9
|
+
attr_reader :language
|
10
|
+
# @return [String] The WebSocket URL that the transcriber connects to.
|
11
|
+
attr_reader :realtime_url
|
12
|
+
# @return [Array<String>] Add up to 2500 characters of custom vocabulary.
|
13
|
+
attr_reader :word_boost
|
14
|
+
# @return [Float] The duration of the end utterance silence threshold in milliseconds.
|
15
|
+
attr_reader :end_utterance_silence_threshold
|
16
|
+
# @return [Boolean] Disable partial transcripts.
|
17
|
+
# Set to `true` to not receive partial transcripts. Defaults to `false`.
|
18
|
+
attr_reader :disable_partial_transcripts
|
19
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
20
|
+
attr_reader :additional_properties
|
21
|
+
# @return [Object]
|
22
|
+
attr_reader :_field_set
|
23
|
+
protected :_field_set
|
24
|
+
|
25
|
+
OMIT = Object.new
|
26
|
+
|
27
|
+
# @param language [String] This is the language that will be set for the transcription.
|
28
|
+
# @param realtime_url [String] The WebSocket URL that the transcriber connects to.
|
29
|
+
# @param word_boost [Array<String>] Add up to 2500 characters of custom vocabulary.
|
30
|
+
# @param end_utterance_silence_threshold [Float] The duration of the end utterance silence threshold in milliseconds.
|
31
|
+
# @param disable_partial_transcripts [Boolean] Disable partial transcripts.
|
32
|
+
# Set to `true` to not receive partial transcripts. Defaults to `false`.
|
33
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
34
|
+
# @return [Vapi::AssemblyAiTranscriber]
|
35
|
+
def initialize(language: OMIT, realtime_url: OMIT, word_boost: OMIT, end_utterance_silence_threshold: OMIT,
|
36
|
+
disable_partial_transcripts: OMIT, additional_properties: nil)
|
37
|
+
@language = language if language != OMIT
|
38
|
+
@realtime_url = realtime_url if realtime_url != OMIT
|
39
|
+
@word_boost = word_boost if word_boost != OMIT
|
40
|
+
@end_utterance_silence_threshold = end_utterance_silence_threshold if end_utterance_silence_threshold != OMIT
|
41
|
+
@disable_partial_transcripts = disable_partial_transcripts if disable_partial_transcripts != OMIT
|
42
|
+
@additional_properties = additional_properties
|
43
|
+
@_field_set = {
|
44
|
+
"language": language,
|
45
|
+
"realtimeUrl": realtime_url,
|
46
|
+
"wordBoost": word_boost,
|
47
|
+
"endUtteranceSilenceThreshold": end_utterance_silence_threshold,
|
48
|
+
"disablePartialTranscripts": disable_partial_transcripts
|
49
|
+
}.reject do |_k, v|
|
50
|
+
v == OMIT
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Deserialize a JSON object to an instance of AssemblyAiTranscriber
|
55
|
+
#
|
56
|
+
# @param json_object [String]
|
57
|
+
# @return [Vapi::AssemblyAiTranscriber]
|
58
|
+
def self.from_json(json_object:)
|
59
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
60
|
+
parsed_json = JSON.parse(json_object)
|
61
|
+
language = parsed_json["language"]
|
62
|
+
realtime_url = parsed_json["realtimeUrl"]
|
63
|
+
word_boost = parsed_json["wordBoost"]
|
64
|
+
end_utterance_silence_threshold = parsed_json["endUtteranceSilenceThreshold"]
|
65
|
+
disable_partial_transcripts = parsed_json["disablePartialTranscripts"]
|
66
|
+
new(
|
67
|
+
language: language,
|
68
|
+
realtime_url: realtime_url,
|
69
|
+
word_boost: word_boost,
|
70
|
+
end_utterance_silence_threshold: end_utterance_silence_threshold,
|
71
|
+
disable_partial_transcripts: disable_partial_transcripts,
|
72
|
+
additional_properties: struct
|
73
|
+
)
|
74
|
+
end
|
75
|
+
|
76
|
+
# Serialize an instance of AssemblyAiTranscriber to a JSON object
|
77
|
+
#
|
78
|
+
# @return [String]
|
79
|
+
def to_json(*_args)
|
80
|
+
@_field_set&.to_json
|
81
|
+
end
|
82
|
+
|
83
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
84
|
+
# hash and check each fields type against the current object's property
|
85
|
+
# definitions.
|
86
|
+
#
|
87
|
+
# @param obj [Object]
|
88
|
+
# @return [Void]
|
89
|
+
def self.validate_raw(obj:)
|
90
|
+
obj.language&.is_a?(String) != false || raise("Passed value for field obj.language is not the expected type, validation failed.")
|
91
|
+
obj.realtime_url&.is_a?(String) != false || raise("Passed value for field obj.realtime_url is not the expected type, validation failed.")
|
92
|
+
obj.word_boost&.is_a?(Array) != false || raise("Passed value for field obj.word_boost is not the expected type, validation failed.")
|
93
|
+
obj.end_utterance_silence_threshold&.is_a?(Float) != false || raise("Passed value for field obj.end_utterance_silence_threshold is not the expected type, validation failed.")
|
94
|
+
obj.disable_partial_transcripts&.is_a?(Boolean) != false || raise("Passed value for field obj.disable_partial_transcripts is not the expected type, validation failed.")
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
@@ -15,6 +15,7 @@ require_relative "message_plan"
|
|
15
15
|
require_relative "start_speaking_plan"
|
16
16
|
require_relative "stop_speaking_plan"
|
17
17
|
require_relative "monitor_plan"
|
18
|
+
require_relative "server"
|
18
19
|
require "date"
|
19
20
|
require "ostruct"
|
20
21
|
require "json"
|
@@ -27,6 +28,11 @@ module Vapi
|
|
27
28
|
attr_reader :model
|
28
29
|
# @return [Vapi::AssistantVoice] These are the options for the assistant's voice.
|
29
30
|
attr_reader :voice
|
31
|
+
# @return [String] This is the first message that the assistant will say. This can also be a URL to
|
32
|
+
# a containerized audio file (mp3, wav, etc.).
|
33
|
+
# If unspecified, assistant will wait for user to speak and use the model to
|
34
|
+
# respond once they speak.
|
35
|
+
attr_reader :first_message
|
30
36
|
# @return [Vapi::AssistantFirstMessageMode] This is the mode for the first message. Default is 'assistant-speaks-first'.
|
31
37
|
# Use:
|
32
38
|
# - 'assistant-speaks-first' to have the assistant speak first.
|
@@ -43,7 +49,7 @@ module Vapi
|
|
43
49
|
# store on your server. Defaults to false.
|
44
50
|
attr_reader :hipaa_enabled
|
45
51
|
# @return [Array<Vapi::AssistantClientMessagesItem>] These are the messages that will be sent to your Client SDKs. Default is
|
46
|
-
#
|
52
|
+
# tatus-update,transfer-update,transcript,tool-calls,user-interrupted,voice-input.
|
47
53
|
# You can check the shape of the messages in ClientMessage schema.
|
48
54
|
attr_reader :client_messages
|
49
55
|
# @return [Array<Vapi::AssistantServerMessagesItem>] These are the messages that will be sent to your Server URL. Default is
|
@@ -60,11 +66,6 @@ module Vapi
|
|
60
66
|
# @return [Vapi::AssistantBackgroundSound] This is the background sound in the call. Default for phone calls is 'office'
|
61
67
|
# and default for web calls is 'off'.
|
62
68
|
attr_reader :background_sound
|
63
|
-
# @return [Boolean] This determines whether the model says 'mhmm', 'ahem' etc. while user is
|
64
|
-
# speaking.
|
65
|
-
# Default `false` while in beta.
|
66
|
-
# @default false
|
67
|
-
attr_reader :backchanneling_enabled
|
68
69
|
# @return [Boolean] This enables filtering of noise and background speech while the user is talking.
|
69
70
|
# Default `false` while in beta.
|
70
71
|
# @default false
|
@@ -82,11 +83,6 @@ module Vapi
|
|
82
83
|
# @return [String] This is the name of the assistant.
|
83
84
|
# This is required when you want to transfer between assistants in a call.
|
84
85
|
attr_reader :name
|
85
|
-
# @return [String] This is the first message that the assistant will say. This can also be a URL to
|
86
|
-
# a containerized audio file (mp3, wav, etc.).
|
87
|
-
# If unspecified, assistant will wait for user to speak and use the model to
|
88
|
-
# respond once they speak.
|
89
|
-
attr_reader :first_message
|
90
86
|
# @return [Vapi::TwilioVoicemailDetection] These are the settings to configure or disable voicemail detection.
|
91
87
|
# Alternatively, voicemail detection can be configured using the
|
92
88
|
# model.tools=[VoicemailTool].
|
@@ -107,18 +103,6 @@ module Vapi
|
|
107
103
|
attr_reader :end_call_phrases
|
108
104
|
# @return [Hash{String => Object}] This is for metadata you want to store on the assistant.
|
109
105
|
attr_reader :metadata
|
110
|
-
# @return [String] This is the URL Vapi will communicate with via HTTP GET and POST Requests. This
|
111
|
-
# is used for retrieving context, function calling, and end-of-call reports.
|
112
|
-
# All requests will be sent with the call object among other things relevant to
|
113
|
-
# that message. You can find more details in the Server URL documentation.
|
114
|
-
# This overrides the serverUrl set on the org and the phoneNumber. Order of
|
115
|
-
# precedence: tool.server.url > assistant.serverUrl > phoneNumber.serverUrl >
|
116
|
-
# org.serverUrl
|
117
|
-
attr_reader :server_url
|
118
|
-
# @return [String] This is the secret you can set that Vapi will send with every request to your
|
119
|
-
# server. Will be sent as a header called x-vapi-secret.
|
120
|
-
# Same precedence logic as serverUrl.
|
121
|
-
attr_reader :server_url_secret
|
122
106
|
# @return [Vapi::AnalysisPlan] This is the plan for analysis of assistant's calls. Stored in `call.analysis`.
|
123
107
|
attr_reader :analysis_plan
|
124
108
|
# @return [Vapi::ArtifactPlan] This is the plan for artifacts generated during assistant's calls. Stored in
|
@@ -164,6 +148,13 @@ module Vapi
|
|
164
148
|
# all the credentials are available for use in the call but you can provide a
|
165
149
|
# subset using this.
|
166
150
|
attr_reader :credential_ids
|
151
|
+
# @return [Vapi::Server] This is where Vapi will send webhooks. You can find all webhooks available along
|
152
|
+
# with their shape in ServerMessage schema.
|
153
|
+
# The order of precedence is:
|
154
|
+
# 1. assistant.server.url
|
155
|
+
# 2. phoneNumber.serverUrl
|
156
|
+
# 3. org.serverUrl
|
157
|
+
attr_reader :server
|
167
158
|
# @return [String] This is the unique identifier for the assistant.
|
168
159
|
attr_reader :id
|
169
160
|
# @return [String] This is the unique identifier for the org that this assistant belongs to.
|
@@ -183,6 +174,10 @@ module Vapi
|
|
183
174
|
# @param transcriber [Vapi::AssistantTranscriber] These are the options for the assistant's transcriber.
|
184
175
|
# @param model [Vapi::AssistantModel] These are the options for the assistant's LLM.
|
185
176
|
# @param voice [Vapi::AssistantVoice] These are the options for the assistant's voice.
|
177
|
+
# @param first_message [String] This is the first message that the assistant will say. This can also be a URL to
|
178
|
+
# a containerized audio file (mp3, wav, etc.).
|
179
|
+
# If unspecified, assistant will wait for user to speak and use the model to
|
180
|
+
# respond once they speak.
|
186
181
|
# @param first_message_mode [Vapi::AssistantFirstMessageMode] This is the mode for the first message. Default is 'assistant-speaks-first'.
|
187
182
|
# Use:
|
188
183
|
# - 'assistant-speaks-first' to have the assistant speak first.
|
@@ -197,7 +192,7 @@ module Vapi
|
|
197
192
|
# the end of the call, you will still receive an end-of-call-report message to
|
198
193
|
# store on your server. Defaults to false.
|
199
194
|
# @param client_messages [Array<Vapi::AssistantClientMessagesItem>] These are the messages that will be sent to your Client SDKs. Default is
|
200
|
-
#
|
195
|
+
# tatus-update,transfer-update,transcript,tool-calls,user-interrupted,voice-input.
|
201
196
|
# You can check the shape of the messages in ClientMessage schema.
|
202
197
|
# @param server_messages [Array<Vapi::AssistantServerMessagesItem>] These are the messages that will be sent to your Server URL. Default is
|
203
198
|
# h-update,status-update,tool-calls,transfer-destination-request,user-interrupted.
|
@@ -209,10 +204,6 @@ module Vapi
|
|
209
204
|
# @default 600 (10 minutes)
|
210
205
|
# @param background_sound [Vapi::AssistantBackgroundSound] This is the background sound in the call. Default for phone calls is 'office'
|
211
206
|
# and default for web calls is 'off'.
|
212
|
-
# @param backchanneling_enabled [Boolean] This determines whether the model says 'mhmm', 'ahem' etc. while user is
|
213
|
-
# speaking.
|
214
|
-
# Default `false` while in beta.
|
215
|
-
# @default false
|
216
207
|
# @param background_denoising_enabled [Boolean] This enables filtering of noise and background speech while the user is talking.
|
217
208
|
# Default `false` while in beta.
|
218
209
|
# @default false
|
@@ -226,10 +217,6 @@ module Vapi
|
|
226
217
|
# call transport provider is used.
|
227
218
|
# @param name [String] This is the name of the assistant.
|
228
219
|
# This is required when you want to transfer between assistants in a call.
|
229
|
-
# @param first_message [String] This is the first message that the assistant will say. This can also be a URL to
|
230
|
-
# a containerized audio file (mp3, wav, etc.).
|
231
|
-
# If unspecified, assistant will wait for user to speak and use the model to
|
232
|
-
# respond once they speak.
|
233
220
|
# @param voicemail_detection [Vapi::TwilioVoicemailDetection] These are the settings to configure or disable voicemail detection.
|
234
221
|
# Alternatively, voicemail detection can be configured using the
|
235
222
|
# model.tools=[VoicemailTool].
|
@@ -245,16 +232,6 @@ module Vapi
|
|
245
232
|
# @param end_call_phrases [Array<String>] This list contains phrases that, if spoken by the assistant, will trigger the
|
246
233
|
# call to be hung up. Case insensitive.
|
247
234
|
# @param metadata [Hash{String => Object}] This is for metadata you want to store on the assistant.
|
248
|
-
# @param server_url [String] This is the URL Vapi will communicate with via HTTP GET and POST Requests. This
|
249
|
-
# is used for retrieving context, function calling, and end-of-call reports.
|
250
|
-
# All requests will be sent with the call object among other things relevant to
|
251
|
-
# that message. You can find more details in the Server URL documentation.
|
252
|
-
# This overrides the serverUrl set on the org and the phoneNumber. Order of
|
253
|
-
# precedence: tool.server.url > assistant.serverUrl > phoneNumber.serverUrl >
|
254
|
-
# org.serverUrl
|
255
|
-
# @param server_url_secret [String] This is the secret you can set that Vapi will send with every request to your
|
256
|
-
# server. Will be sent as a header called x-vapi-secret.
|
257
|
-
# Same precedence logic as serverUrl.
|
258
235
|
# @param analysis_plan [Vapi::AnalysisPlan] This is the plan for analysis of assistant's calls. Stored in `call.analysis`.
|
259
236
|
# @param artifact_plan [Vapi::ArtifactPlan] This is the plan for artifacts generated during assistant's calls. Stored in
|
260
237
|
# `call.artifact`.
|
@@ -293,17 +270,24 @@ module Vapi
|
|
293
270
|
# @param credential_ids [Array<String>] These are the credentials that will be used for the assistant calls. By default,
|
294
271
|
# all the credentials are available for use in the call but you can provide a
|
295
272
|
# subset using this.
|
273
|
+
# @param server [Vapi::Server] This is where Vapi will send webhooks. You can find all webhooks available along
|
274
|
+
# with their shape in ServerMessage schema.
|
275
|
+
# The order of precedence is:
|
276
|
+
# 1. assistant.server.url
|
277
|
+
# 2. phoneNumber.serverUrl
|
278
|
+
# 3. org.serverUrl
|
296
279
|
# @param id [String] This is the unique identifier for the assistant.
|
297
280
|
# @param org_id [String] This is the unique identifier for the org that this assistant belongs to.
|
298
281
|
# @param created_at [DateTime] This is the ISO 8601 date-time string of when the assistant was created.
|
299
282
|
# @param updated_at [DateTime] This is the ISO 8601 date-time string of when the assistant was last updated.
|
300
283
|
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
301
284
|
# @return [Vapi::Assistant]
|
302
|
-
def initialize(id:, org_id:, created_at:, updated_at:, transcriber: OMIT, model: OMIT, voice: OMIT,
|
303
|
-
client_messages: OMIT, server_messages: OMIT, silence_timeout_seconds: OMIT, max_duration_seconds: OMIT, background_sound: OMIT,
|
285
|
+
def initialize(id:, org_id:, created_at:, updated_at:, transcriber: OMIT, model: OMIT, voice: OMIT, first_message: OMIT, first_message_mode: OMIT,
|
286
|
+
hipaa_enabled: OMIT, client_messages: OMIT, server_messages: OMIT, silence_timeout_seconds: OMIT, max_duration_seconds: OMIT, background_sound: OMIT, background_denoising_enabled: OMIT, model_output_in_messages_enabled: OMIT, transport_configurations: OMIT, name: OMIT, voicemail_detection: OMIT, voicemail_message: OMIT, end_call_message: OMIT, end_call_phrases: OMIT, metadata: OMIT, analysis_plan: OMIT, artifact_plan: OMIT, message_plan: OMIT, start_speaking_plan: OMIT, stop_speaking_plan: OMIT, monitor_plan: OMIT, credential_ids: OMIT, server: OMIT, additional_properties: nil)
|
304
287
|
@transcriber = transcriber if transcriber != OMIT
|
305
288
|
@model = model if model != OMIT
|
306
289
|
@voice = voice if voice != OMIT
|
290
|
+
@first_message = first_message if first_message != OMIT
|
307
291
|
@first_message_mode = first_message_mode if first_message_mode != OMIT
|
308
292
|
@hipaa_enabled = hipaa_enabled if hipaa_enabled != OMIT
|
309
293
|
@client_messages = client_messages if client_messages != OMIT
|
@@ -311,19 +295,15 @@ module Vapi
|
|
311
295
|
@silence_timeout_seconds = silence_timeout_seconds if silence_timeout_seconds != OMIT
|
312
296
|
@max_duration_seconds = max_duration_seconds if max_duration_seconds != OMIT
|
313
297
|
@background_sound = background_sound if background_sound != OMIT
|
314
|
-
@backchanneling_enabled = backchanneling_enabled if backchanneling_enabled != OMIT
|
315
298
|
@background_denoising_enabled = background_denoising_enabled if background_denoising_enabled != OMIT
|
316
299
|
@model_output_in_messages_enabled = model_output_in_messages_enabled if model_output_in_messages_enabled != OMIT
|
317
300
|
@transport_configurations = transport_configurations if transport_configurations != OMIT
|
318
301
|
@name = name if name != OMIT
|
319
|
-
@first_message = first_message if first_message != OMIT
|
320
302
|
@voicemail_detection = voicemail_detection if voicemail_detection != OMIT
|
321
303
|
@voicemail_message = voicemail_message if voicemail_message != OMIT
|
322
304
|
@end_call_message = end_call_message if end_call_message != OMIT
|
323
305
|
@end_call_phrases = end_call_phrases if end_call_phrases != OMIT
|
324
306
|
@metadata = metadata if metadata != OMIT
|
325
|
-
@server_url = server_url if server_url != OMIT
|
326
|
-
@server_url_secret = server_url_secret if server_url_secret != OMIT
|
327
307
|
@analysis_plan = analysis_plan if analysis_plan != OMIT
|
328
308
|
@artifact_plan = artifact_plan if artifact_plan != OMIT
|
329
309
|
@message_plan = message_plan if message_plan != OMIT
|
@@ -331,6 +311,7 @@ module Vapi
|
|
331
311
|
@stop_speaking_plan = stop_speaking_plan if stop_speaking_plan != OMIT
|
332
312
|
@monitor_plan = monitor_plan if monitor_plan != OMIT
|
333
313
|
@credential_ids = credential_ids if credential_ids != OMIT
|
314
|
+
@server = server if server != OMIT
|
334
315
|
@id = id
|
335
316
|
@org_id = org_id
|
336
317
|
@created_at = created_at
|
@@ -340,6 +321,7 @@ module Vapi
|
|
340
321
|
"transcriber": transcriber,
|
341
322
|
"model": model,
|
342
323
|
"voice": voice,
|
324
|
+
"firstMessage": first_message,
|
343
325
|
"firstMessageMode": first_message_mode,
|
344
326
|
"hipaaEnabled": hipaa_enabled,
|
345
327
|
"clientMessages": client_messages,
|
@@ -347,19 +329,15 @@ module Vapi
|
|
347
329
|
"silenceTimeoutSeconds": silence_timeout_seconds,
|
348
330
|
"maxDurationSeconds": max_duration_seconds,
|
349
331
|
"backgroundSound": background_sound,
|
350
|
-
"backchannelingEnabled": backchanneling_enabled,
|
351
332
|
"backgroundDenoisingEnabled": background_denoising_enabled,
|
352
333
|
"modelOutputInMessagesEnabled": model_output_in_messages_enabled,
|
353
334
|
"transportConfigurations": transport_configurations,
|
354
335
|
"name": name,
|
355
|
-
"firstMessage": first_message,
|
356
336
|
"voicemailDetection": voicemail_detection,
|
357
337
|
"voicemailMessage": voicemail_message,
|
358
338
|
"endCallMessage": end_call_message,
|
359
339
|
"endCallPhrases": end_call_phrases,
|
360
340
|
"metadata": metadata,
|
361
|
-
"serverUrl": server_url,
|
362
|
-
"serverUrlSecret": server_url_secret,
|
363
341
|
"analysisPlan": analysis_plan,
|
364
342
|
"artifactPlan": artifact_plan,
|
365
343
|
"messagePlan": message_plan,
|
@@ -367,6 +345,7 @@ module Vapi
|
|
367
345
|
"stopSpeakingPlan": stop_speaking_plan,
|
368
346
|
"monitorPlan": monitor_plan,
|
369
347
|
"credentialIds": credential_ids,
|
348
|
+
"server": server,
|
370
349
|
"id": id,
|
371
350
|
"orgId": org_id,
|
372
351
|
"createdAt": created_at,
|
@@ -401,6 +380,7 @@ module Vapi
|
|
401
380
|
voice = parsed_json["voice"].to_json
|
402
381
|
voice = Vapi::AssistantVoice.from_json(json_object: voice)
|
403
382
|
end
|
383
|
+
first_message = parsed_json["firstMessage"]
|
404
384
|
first_message_mode = parsed_json["firstMessageMode"]
|
405
385
|
hipaa_enabled = parsed_json["hipaaEnabled"]
|
406
386
|
client_messages = parsed_json["clientMessages"]
|
@@ -408,7 +388,6 @@ module Vapi
|
|
408
388
|
silence_timeout_seconds = parsed_json["silenceTimeoutSeconds"]
|
409
389
|
max_duration_seconds = parsed_json["maxDurationSeconds"]
|
410
390
|
background_sound = parsed_json["backgroundSound"]
|
411
|
-
backchanneling_enabled = parsed_json["backchannelingEnabled"]
|
412
391
|
background_denoising_enabled = parsed_json["backgroundDenoisingEnabled"]
|
413
392
|
model_output_in_messages_enabled = parsed_json["modelOutputInMessagesEnabled"]
|
414
393
|
transport_configurations = parsed_json["transportConfigurations"]&.map do |item|
|
@@ -416,7 +395,6 @@ module Vapi
|
|
416
395
|
Vapi::TransportConfigurationTwilio.from_json(json_object: item)
|
417
396
|
end
|
418
397
|
name = parsed_json["name"]
|
419
|
-
first_message = parsed_json["firstMessage"]
|
420
398
|
if parsed_json["voicemailDetection"].nil?
|
421
399
|
voicemail_detection = nil
|
422
400
|
else
|
@@ -427,8 +405,6 @@ module Vapi
|
|
427
405
|
end_call_message = parsed_json["endCallMessage"]
|
428
406
|
end_call_phrases = parsed_json["endCallPhrases"]
|
429
407
|
metadata = parsed_json["metadata"]
|
430
|
-
server_url = parsed_json["serverUrl"]
|
431
|
-
server_url_secret = parsed_json["serverUrlSecret"]
|
432
408
|
if parsed_json["analysisPlan"].nil?
|
433
409
|
analysis_plan = nil
|
434
410
|
else
|
@@ -466,6 +442,12 @@ module Vapi
|
|
466
442
|
monitor_plan = Vapi::MonitorPlan.from_json(json_object: monitor_plan)
|
467
443
|
end
|
468
444
|
credential_ids = parsed_json["credentialIds"]
|
445
|
+
if parsed_json["server"].nil?
|
446
|
+
server = nil
|
447
|
+
else
|
448
|
+
server = parsed_json["server"].to_json
|
449
|
+
server = Vapi::Server.from_json(json_object: server)
|
450
|
+
end
|
469
451
|
id = parsed_json["id"]
|
470
452
|
org_id = parsed_json["orgId"]
|
471
453
|
created_at = (DateTime.parse(parsed_json["createdAt"]) unless parsed_json["createdAt"].nil?)
|
@@ -474,6 +456,7 @@ module Vapi
|
|
474
456
|
transcriber: transcriber,
|
475
457
|
model: model,
|
476
458
|
voice: voice,
|
459
|
+
first_message: first_message,
|
477
460
|
first_message_mode: first_message_mode,
|
478
461
|
hipaa_enabled: hipaa_enabled,
|
479
462
|
client_messages: client_messages,
|
@@ -481,19 +464,15 @@ module Vapi
|
|
481
464
|
silence_timeout_seconds: silence_timeout_seconds,
|
482
465
|
max_duration_seconds: max_duration_seconds,
|
483
466
|
background_sound: background_sound,
|
484
|
-
backchanneling_enabled: backchanneling_enabled,
|
485
467
|
background_denoising_enabled: background_denoising_enabled,
|
486
468
|
model_output_in_messages_enabled: model_output_in_messages_enabled,
|
487
469
|
transport_configurations: transport_configurations,
|
488
470
|
name: name,
|
489
|
-
first_message: first_message,
|
490
471
|
voicemail_detection: voicemail_detection,
|
491
472
|
voicemail_message: voicemail_message,
|
492
473
|
end_call_message: end_call_message,
|
493
474
|
end_call_phrases: end_call_phrases,
|
494
475
|
metadata: metadata,
|
495
|
-
server_url: server_url,
|
496
|
-
server_url_secret: server_url_secret,
|
497
476
|
analysis_plan: analysis_plan,
|
498
477
|
artifact_plan: artifact_plan,
|
499
478
|
message_plan: message_plan,
|
@@ -501,6 +480,7 @@ module Vapi
|
|
501
480
|
stop_speaking_plan: stop_speaking_plan,
|
502
481
|
monitor_plan: monitor_plan,
|
503
482
|
credential_ids: credential_ids,
|
483
|
+
server: server,
|
504
484
|
id: id,
|
505
485
|
org_id: org_id,
|
506
486
|
created_at: created_at,
|
@@ -526,6 +506,7 @@ module Vapi
|
|
526
506
|
obj.transcriber.nil? || Vapi::AssistantTranscriber.validate_raw(obj: obj.transcriber)
|
527
507
|
obj.model.nil? || Vapi::AssistantModel.validate_raw(obj: obj.model)
|
528
508
|
obj.voice.nil? || Vapi::AssistantVoice.validate_raw(obj: obj.voice)
|
509
|
+
obj.first_message&.is_a?(String) != false || raise("Passed value for field obj.first_message is not the expected type, validation failed.")
|
529
510
|
obj.first_message_mode&.is_a?(Vapi::AssistantFirstMessageMode) != false || raise("Passed value for field obj.first_message_mode is not the expected type, validation failed.")
|
530
511
|
obj.hipaa_enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.hipaa_enabled is not the expected type, validation failed.")
|
531
512
|
obj.client_messages&.is_a?(Array) != false || raise("Passed value for field obj.client_messages is not the expected type, validation failed.")
|
@@ -533,19 +514,15 @@ module Vapi
|
|
533
514
|
obj.silence_timeout_seconds&.is_a?(Float) != false || raise("Passed value for field obj.silence_timeout_seconds is not the expected type, validation failed.")
|
534
515
|
obj.max_duration_seconds&.is_a?(Float) != false || raise("Passed value for field obj.max_duration_seconds is not the expected type, validation failed.")
|
535
516
|
obj.background_sound&.is_a?(Vapi::AssistantBackgroundSound) != false || raise("Passed value for field obj.background_sound is not the expected type, validation failed.")
|
536
|
-
obj.backchanneling_enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.backchanneling_enabled is not the expected type, validation failed.")
|
537
517
|
obj.background_denoising_enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.background_denoising_enabled is not the expected type, validation failed.")
|
538
518
|
obj.model_output_in_messages_enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.model_output_in_messages_enabled is not the expected type, validation failed.")
|
539
519
|
obj.transport_configurations&.is_a?(Array) != false || raise("Passed value for field obj.transport_configurations is not the expected type, validation failed.")
|
540
520
|
obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
|
541
|
-
obj.first_message&.is_a?(String) != false || raise("Passed value for field obj.first_message is not the expected type, validation failed.")
|
542
521
|
obj.voicemail_detection.nil? || Vapi::TwilioVoicemailDetection.validate_raw(obj: obj.voicemail_detection)
|
543
522
|
obj.voicemail_message&.is_a?(String) != false || raise("Passed value for field obj.voicemail_message is not the expected type, validation failed.")
|
544
523
|
obj.end_call_message&.is_a?(String) != false || raise("Passed value for field obj.end_call_message is not the expected type, validation failed.")
|
545
524
|
obj.end_call_phrases&.is_a?(Array) != false || raise("Passed value for field obj.end_call_phrases is not the expected type, validation failed.")
|
546
525
|
obj.metadata&.is_a?(Hash) != false || raise("Passed value for field obj.metadata is not the expected type, validation failed.")
|
547
|
-
obj.server_url&.is_a?(String) != false || raise("Passed value for field obj.server_url is not the expected type, validation failed.")
|
548
|
-
obj.server_url_secret&.is_a?(String) != false || raise("Passed value for field obj.server_url_secret is not the expected type, validation failed.")
|
549
526
|
obj.analysis_plan.nil? || Vapi::AnalysisPlan.validate_raw(obj: obj.analysis_plan)
|
550
527
|
obj.artifact_plan.nil? || Vapi::ArtifactPlan.validate_raw(obj: obj.artifact_plan)
|
551
528
|
obj.message_plan.nil? || Vapi::MessagePlan.validate_raw(obj: obj.message_plan)
|
@@ -553,6 +530,7 @@ module Vapi
|
|
553
530
|
obj.stop_speaking_plan.nil? || Vapi::StopSpeakingPlan.validate_raw(obj: obj.stop_speaking_plan)
|
554
531
|
obj.monitor_plan.nil? || Vapi::MonitorPlan.validate_raw(obj: obj.monitor_plan)
|
555
532
|
obj.credential_ids&.is_a?(Array) != false || raise("Passed value for field obj.credential_ids is not the expected type, validation failed.")
|
533
|
+
obj.server.nil? || Vapi::Server.validate_raw(obj: obj.server)
|
556
534
|
obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
|
557
535
|
obj.org_id.is_a?(String) != false || raise("Passed value for field obj.org_id is not the expected type, validation failed.")
|
558
536
|
obj.created_at.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.")
|
@@ -0,0 +1,100 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "regex_option"
|
4
|
+
require "ostruct"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module Vapi
|
8
|
+
class AssistantCustomEndpointingRule
|
9
|
+
# @return [String] This is the regex pattern to match.
|
10
|
+
# Note:
|
11
|
+
# - This works by using the `RegExp.test` method in Node.JS. Eg.
|
12
|
+
# `/hello/.test("hello there")` will return `true`.
|
13
|
+
# Hot tip:
|
14
|
+
# - In JavaScript, escape `\` when sending the regex pattern. Eg. `"hello\sthere"`
|
15
|
+
# will be sent over the wire as `"hellosthere"`. Send `"hello\\sthere"` instead.
|
16
|
+
# - `RegExp.test` does substring matching, so `/cat/.test("I love cats")` will
|
17
|
+
# return `true`. To do full string matching, send "^cat$".
|
18
|
+
attr_reader :regex
|
19
|
+
# @return [Array<Vapi::RegexOption>] These are the options for the regex match. Defaults to all disabled.
|
20
|
+
# @default []
|
21
|
+
attr_reader :regex_options
|
22
|
+
# @return [Float] This is the endpointing timeout in seconds, if the rule is matched.
|
23
|
+
attr_reader :timeout_seconds
|
24
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
25
|
+
attr_reader :additional_properties
|
26
|
+
# @return [Object]
|
27
|
+
attr_reader :_field_set
|
28
|
+
protected :_field_set
|
29
|
+
|
30
|
+
OMIT = Object.new
|
31
|
+
|
32
|
+
# @param regex [String] This is the regex pattern to match.
|
33
|
+
# Note:
|
34
|
+
# - This works by using the `RegExp.test` method in Node.JS. Eg.
|
35
|
+
# `/hello/.test("hello there")` will return `true`.
|
36
|
+
# Hot tip:
|
37
|
+
# - In JavaScript, escape `\` when sending the regex pattern. Eg. `"hello\sthere"`
|
38
|
+
# will be sent over the wire as `"hellosthere"`. Send `"hello\\sthere"` instead.
|
39
|
+
# - `RegExp.test` does substring matching, so `/cat/.test("I love cats")` will
|
40
|
+
# return `true`. To do full string matching, send "^cat$".
|
41
|
+
# @param regex_options [Array<Vapi::RegexOption>] These are the options for the regex match. Defaults to all disabled.
|
42
|
+
# @default []
|
43
|
+
# @param timeout_seconds [Float] This is the endpointing timeout in seconds, if the rule is matched.
|
44
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
45
|
+
# @return [Vapi::AssistantCustomEndpointingRule]
|
46
|
+
def initialize(regex:, timeout_seconds:, regex_options: OMIT, additional_properties: nil)
|
47
|
+
@regex = regex
|
48
|
+
@regex_options = regex_options if regex_options != OMIT
|
49
|
+
@timeout_seconds = timeout_seconds
|
50
|
+
@additional_properties = additional_properties
|
51
|
+
@_field_set = {
|
52
|
+
"regex": regex,
|
53
|
+
"regexOptions": regex_options,
|
54
|
+
"timeoutSeconds": timeout_seconds
|
55
|
+
}.reject do |_k, v|
|
56
|
+
v == OMIT
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# Deserialize a JSON object to an instance of AssistantCustomEndpointingRule
|
61
|
+
#
|
62
|
+
# @param json_object [String]
|
63
|
+
# @return [Vapi::AssistantCustomEndpointingRule]
|
64
|
+
def self.from_json(json_object:)
|
65
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
66
|
+
parsed_json = JSON.parse(json_object)
|
67
|
+
regex = parsed_json["regex"]
|
68
|
+
regex_options = parsed_json["regexOptions"]&.map do |item|
|
69
|
+
item = item.to_json
|
70
|
+
Vapi::RegexOption.from_json(json_object: item)
|
71
|
+
end
|
72
|
+
timeout_seconds = parsed_json["timeoutSeconds"]
|
73
|
+
new(
|
74
|
+
regex: regex,
|
75
|
+
regex_options: regex_options,
|
76
|
+
timeout_seconds: timeout_seconds,
|
77
|
+
additional_properties: struct
|
78
|
+
)
|
79
|
+
end
|
80
|
+
|
81
|
+
# Serialize an instance of AssistantCustomEndpointingRule to a JSON object
|
82
|
+
#
|
83
|
+
# @return [String]
|
84
|
+
def to_json(*_args)
|
85
|
+
@_field_set&.to_json
|
86
|
+
end
|
87
|
+
|
88
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
89
|
+
# hash and check each fields type against the current object's property
|
90
|
+
# definitions.
|
91
|
+
#
|
92
|
+
# @param obj [Object]
|
93
|
+
# @return [Void]
|
94
|
+
def self.validate_raw(obj:)
|
95
|
+
obj.regex.is_a?(String) != false || raise("Passed value for field obj.regex is not the expected type, validation failed.")
|
96
|
+
obj.regex_options&.is_a?(Array) != false || raise("Passed value for field obj.regex_options is not the expected type, validation failed.")
|
97
|
+
obj.timeout_seconds.is_a?(Float) != false || raise("Passed value for field obj.timeout_seconds is not the expected type, validation failed.")
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|