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.
Files changed (356) hide show
  1. checksums.yaml +4 -4
  2. data/lib/requests.rb +2 -10
  3. data/lib/types_export.rb +184 -26
  4. data/lib/vapi_server_sdk/analytics/client.rb +14 -43
  5. data/lib/vapi_server_sdk/assistants/client.rb +57 -60
  6. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_client_messages_item.rb +1 -0
  7. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_model.rb +39 -0
  8. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_server_messages_item.rb +1 -0
  9. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_transcriber.rb +27 -1
  10. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_voice.rb +26 -0
  11. data/lib/vapi_server_sdk/calls/client.rb +58 -28
  12. data/lib/vapi_server_sdk/knowledge_bases/client.rb +394 -0
  13. data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_create_request.rb +96 -0
  14. data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_create_response.rb +96 -0
  15. data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_delete_response.rb +96 -0
  16. data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_get_response.rb +96 -0
  17. data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_list_response_item.rb +96 -0
  18. data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_update_response.rb +96 -0
  19. data/lib/vapi_server_sdk/logs/client.rb +10 -6
  20. data/lib/vapi_server_sdk/squads/client.rb +56 -32
  21. data/lib/vapi_server_sdk/tools/client.rb +4 -0
  22. data/lib/vapi_server_sdk/tools/types/tools_create_request.rb +39 -0
  23. data/lib/vapi_server_sdk/tools/types/tools_create_response.rb +39 -0
  24. data/lib/vapi_server_sdk/tools/types/tools_delete_response.rb +39 -0
  25. data/lib/vapi_server_sdk/tools/types/tools_get_response.rb +39 -0
  26. data/lib/vapi_server_sdk/tools/types/tools_list_response_item.rb +39 -0
  27. data/lib/vapi_server_sdk/tools/types/tools_update_response.rb +39 -0
  28. data/lib/vapi_server_sdk/types/analytics_query_dto.rb +59 -0
  29. data/lib/vapi_server_sdk/types/anthropic_credential.rb +13 -3
  30. data/lib/vapi_server_sdk/types/anthropic_model.rb +21 -13
  31. data/lib/vapi_server_sdk/types/anthropic_model_model.rb +2 -0
  32. data/lib/vapi_server_sdk/types/anyscale_credential.rb +13 -3
  33. data/lib/vapi_server_sdk/types/anyscale_model.rb +21 -13
  34. data/lib/vapi_server_sdk/types/assembly_ai_credential.rb +111 -0
  35. data/lib/vapi_server_sdk/types/assembly_ai_transcriber.rb +97 -0
  36. data/lib/vapi_server_sdk/types/assistant.rb +42 -64
  37. data/lib/vapi_server_sdk/types/assistant_client_messages_item.rb +1 -0
  38. data/lib/vapi_server_sdk/types/assistant_custom_endpointing_rule.rb +100 -0
  39. data/lib/vapi_server_sdk/types/assistant_model.rb +39 -0
  40. data/lib/vapi_server_sdk/types/assistant_overrides.rb +57 -65
  41. data/lib/vapi_server_sdk/types/assistant_overrides_client_messages_item.rb +1 -0
  42. data/lib/vapi_server_sdk/types/assistant_overrides_model.rb +39 -0
  43. data/lib/vapi_server_sdk/types/assistant_overrides_server_messages_item.rb +1 -0
  44. data/lib/vapi_server_sdk/types/assistant_overrides_transcriber.rb +27 -1
  45. data/lib/vapi_server_sdk/types/assistant_overrides_voice.rb +26 -0
  46. data/lib/vapi_server_sdk/types/assistant_server_messages_item.rb +1 -0
  47. data/lib/vapi_server_sdk/types/assistant_transcriber.rb +27 -1
  48. data/lib/vapi_server_sdk/types/assistant_voice.rb +26 -0
  49. data/lib/vapi_server_sdk/types/auto_reload_plan.rb +65 -0
  50. data/lib/vapi_server_sdk/types/auto_reload_plan_dto.rb +65 -0
  51. data/lib/vapi_server_sdk/types/azure_credential.rb +129 -0
  52. data/lib/vapi_server_sdk/types/azure_credential_region.rb +23 -0
  53. data/lib/vapi_server_sdk/types/azure_open_ai_credential.rb +12 -2
  54. data/lib/vapi_server_sdk/types/azure_open_ai_credential_models_item.rb +1 -0
  55. data/lib/vapi_server_sdk/types/azure_open_ai_credential_region.rb +1 -0
  56. data/lib/vapi_server_sdk/types/azure_voice.rb +25 -21
  57. data/lib/vapi_server_sdk/types/bash_tool.rb +194 -0
  58. data/lib/vapi_server_sdk/types/bash_tool_messages_item.rb +120 -0
  59. data/lib/vapi_server_sdk/types/block_complete_message.rb +29 -4
  60. data/lib/vapi_server_sdk/types/block_start_message.rb +29 -4
  61. data/lib/vapi_server_sdk/types/both_custom_endpointing_rule.rb +126 -0
  62. data/lib/vapi_server_sdk/types/byo_sip_trunk_credential.rb +29 -9
  63. data/lib/vapi_server_sdk/types/call.rb +15 -1
  64. data/lib/vapi_server_sdk/types/call_ended_reason.rb +49 -24
  65. data/lib/vapi_server_sdk/types/call_log_privileged.rb +88 -0
  66. data/lib/vapi_server_sdk/types/call_log_privileged_level.rb +12 -0
  67. data/lib/vapi_server_sdk/types/call_logs_paginated_response.rb +75 -0
  68. data/lib/vapi_server_sdk/types/cartesia_credential.rb +13 -3
  69. data/lib/vapi_server_sdk/types/cartesia_voice.rb +25 -21
  70. data/lib/vapi_server_sdk/types/cartesia_voice_language.rb +9 -1
  71. data/lib/vapi_server_sdk/types/client_inbound_message_add_message.rb +25 -3
  72. data/lib/vapi_server_sdk/types/client_inbound_message_message.rb +13 -0
  73. data/lib/vapi_server_sdk/types/client_inbound_message_transfer.rb +63 -0
  74. data/lib/vapi_server_sdk/types/client_inbound_message_transfer_destination.rb +96 -0
  75. data/lib/vapi_server_sdk/types/{client_message_language_changed.rb → client_message_language_change_detected.rb} +5 -5
  76. data/lib/vapi_server_sdk/types/client_message_message.rb +22 -9
  77. data/lib/vapi_server_sdk/types/client_message_tool_calls_tool_with_tool_call_list_item.rb +77 -77
  78. data/lib/vapi_server_sdk/types/client_message_transfer_update.rb +116 -0
  79. data/lib/vapi_server_sdk/types/client_message_transfer_update_destination.rb +122 -0
  80. data/lib/vapi_server_sdk/types/computer_tool.rb +218 -0
  81. data/lib/vapi_server_sdk/types/computer_tool_messages_item.rb +120 -0
  82. data/lib/vapi_server_sdk/types/condition.rb +9 -9
  83. data/lib/vapi_server_sdk/types/create_anthropic_credential_dto.rb +11 -2
  84. data/lib/vapi_server_sdk/types/create_anyscale_credential_dto.rb +11 -2
  85. data/lib/vapi_server_sdk/types/create_assembly_ai_credential_dto.rb +74 -0
  86. data/lib/vapi_server_sdk/types/create_assistant_dto.rb +43 -65
  87. data/lib/vapi_server_sdk/types/create_assistant_dto_client_messages_item.rb +1 -0
  88. data/lib/vapi_server_sdk/types/create_assistant_dto_model.rb +39 -0
  89. data/lib/vapi_server_sdk/types/create_assistant_dto_server_messages_item.rb +1 -0
  90. data/lib/vapi_server_sdk/types/create_assistant_dto_transcriber.rb +27 -1
  91. data/lib/vapi_server_sdk/types/create_assistant_dto_voice.rb +26 -0
  92. data/lib/vapi_server_sdk/types/create_azure_credential_dto.rb +95 -0
  93. data/lib/vapi_server_sdk/types/create_azure_credential_dto_region.rb +23 -0
  94. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto.rb +13 -3
  95. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_models_item.rb +1 -0
  96. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_region.rb +1 -0
  97. data/lib/vapi_server_sdk/types/create_bash_tool_dto.rb +161 -0
  98. data/lib/vapi_server_sdk/types/create_bash_tool_dto_messages_item.rb +120 -0
  99. data/lib/vapi_server_sdk/types/create_byo_sip_trunk_credential_dto.rb +31 -11
  100. data/lib/vapi_server_sdk/types/create_cartesia_credential_dto.rb +11 -2
  101. data/lib/vapi_server_sdk/types/create_computer_tool_dto.rb +185 -0
  102. data/lib/vapi_server_sdk/types/create_computer_tool_dto_messages_item.rb +120 -0
  103. data/lib/vapi_server_sdk/types/create_custom_knowledge_base_dto.rb +137 -0
  104. data/lib/vapi_server_sdk/types/create_custom_llm_credential_dto.rb +31 -2
  105. data/lib/vapi_server_sdk/types/create_deep_infra_credential_dto.rb +11 -2
  106. data/lib/vapi_server_sdk/types/create_deepgram_credential_dto.rb +9 -2
  107. data/lib/vapi_server_sdk/types/create_eleven_labs_credential_dto.rb +11 -2
  108. data/lib/vapi_server_sdk/types/create_gcp_credential_dto.rb +10 -10
  109. data/lib/vapi_server_sdk/types/create_gladia_credential_dto.rb +11 -2
  110. data/lib/vapi_server_sdk/types/create_go_high_level_credential_dto.rb +11 -2
  111. data/lib/vapi_server_sdk/types/create_google_credential_dto.rb +76 -0
  112. data/lib/vapi_server_sdk/types/create_groq_credential_dto.rb +11 -2
  113. data/lib/vapi_server_sdk/types/create_inflection_ai_credential_dto.rb +76 -0
  114. data/lib/vapi_server_sdk/types/create_langfuse_credential_dto.rb +96 -0
  115. data/lib/vapi_server_sdk/types/create_lmnt_credential_dto.rb +11 -2
  116. data/lib/vapi_server_sdk/types/create_make_credential_dto.rb +17 -2
  117. data/lib/vapi_server_sdk/types/create_open_ai_credential_dto.rb +11 -2
  118. data/lib/vapi_server_sdk/types/create_open_router_credential_dto.rb +11 -2
  119. data/lib/vapi_server_sdk/types/create_org_dto.rb +21 -2
  120. data/lib/vapi_server_sdk/types/create_org_dto_channel.rb +10 -0
  121. data/lib/vapi_server_sdk/types/create_perplexity_ai_credential_dto.rb +11 -2
  122. data/lib/vapi_server_sdk/types/create_play_ht_credential_dto.rb +11 -2
  123. data/lib/vapi_server_sdk/types/create_rime_ai_credential_dto.rb +11 -2
  124. data/lib/vapi_server_sdk/types/create_runpod_credential_dto.rb +11 -2
  125. data/lib/vapi_server_sdk/types/create_s_3_credential_dto.rb +13 -3
  126. data/lib/vapi_server_sdk/types/{knowledge_base.rb → create_tavus_credential_dto.rb} +21 -21
  127. data/lib/vapi_server_sdk/types/create_text_editor_tool_dto.rb +161 -0
  128. data/lib/vapi_server_sdk/types/create_text_editor_tool_dto_messages_item.rb +120 -0
  129. data/lib/vapi_server_sdk/types/create_together_ai_credential_dto.rb +11 -2
  130. data/lib/vapi_server_sdk/types/create_trieve_knowledge_base_dto.rb +109 -0
  131. data/lib/vapi_server_sdk/types/create_twilio_credential_dto.rb +16 -2
  132. data/lib/vapi_server_sdk/types/create_vapi_phone_number_dto.rb +20 -2
  133. data/lib/vapi_server_sdk/types/create_vonage_credential_dto.rb +16 -2
  134. data/lib/vapi_server_sdk/types/create_webhook_credential_dto.rb +84 -0
  135. data/lib/vapi_server_sdk/types/create_x_ai_credential_dto.rb +76 -0
  136. data/lib/vapi_server_sdk/types/credits_buy_dto.rb +55 -0
  137. data/lib/vapi_server_sdk/types/custom_knowledge_base.rb +154 -0
  138. data/lib/vapi_server_sdk/types/custom_llm_credential.rb +46 -3
  139. data/lib/vapi_server_sdk/types/custom_llm_model.rb +23 -15
  140. data/lib/vapi_server_sdk/types/custom_message.rb +92 -0
  141. data/lib/vapi_server_sdk/types/custom_transcriber.rb +125 -0
  142. data/lib/vapi_server_sdk/types/custom_voice.rb +132 -0
  143. data/lib/vapi_server_sdk/types/customer_custom_endpointing_rule.rb +100 -0
  144. data/lib/vapi_server_sdk/types/deep_infra_credential.rb +13 -3
  145. data/lib/vapi_server_sdk/types/deep_infra_model.rb +21 -13
  146. data/lib/vapi_server_sdk/types/deepgram_credential.rb +9 -1
  147. data/lib/vapi_server_sdk/types/deepgram_transcriber.rb +69 -11
  148. data/lib/vapi_server_sdk/types/deepgram_voice.rb +17 -17
  149. data/lib/vapi_server_sdk/types/eleven_labs_credential.rb +13 -3
  150. data/lib/vapi_server_sdk/types/eleven_labs_voice.rb +28 -24
  151. data/lib/vapi_server_sdk/types/fallback_azure_voice.rb +100 -0
  152. data/lib/vapi_server_sdk/types/fallback_azure_voice_id.rb +53 -0
  153. data/lib/vapi_server_sdk/types/fallback_azure_voice_voice_id.rb +9 -0
  154. data/lib/vapi_server_sdk/types/fallback_cartesia_voice.rb +100 -0
  155. data/lib/vapi_server_sdk/types/fallback_cartesia_voice_language.rb +23 -0
  156. data/lib/vapi_server_sdk/types/fallback_cartesia_voice_model.rb +10 -0
  157. data/lib/vapi_server_sdk/types/fallback_custom_voice.rb +117 -0
  158. data/lib/vapi_server_sdk/types/fallback_deepgram_voice.rb +81 -0
  159. data/lib/vapi_server_sdk/types/fallback_deepgram_voice_id.rb +53 -0
  160. data/lib/vapi_server_sdk/types/fallback_deepgram_voice_id_enum.rb +18 -0
  161. data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice.rb +164 -0
  162. data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice_id.rb +54 -0
  163. data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice_id_enum.rb +21 -0
  164. data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice_model.rb +12 -0
  165. data/lib/vapi_server_sdk/types/fallback_lmnt_voice.rb +88 -0
  166. data/lib/vapi_server_sdk/types/fallback_lmnt_voice_id.rb +53 -0
  167. data/lib/vapi_server_sdk/types/fallback_lmnt_voice_id_enum.rb +8 -0
  168. data/lib/vapi_server_sdk/types/fallback_neets_voice.rb +81 -0
  169. data/lib/vapi_server_sdk/types/fallback_neets_voice_id.rb +53 -0
  170. data/lib/vapi_server_sdk/types/fallback_neets_voice_id_enum.rb +7 -0
  171. data/lib/vapi_server_sdk/types/fallback_open_ai_voice.rb +87 -0
  172. data/lib/vapi_server_sdk/types/fallback_open_ai_voice_id.rb +20 -0
  173. data/lib/vapi_server_sdk/types/fallback_plan.rb +61 -0
  174. data/lib/vapi_server_sdk/types/fallback_plan_voices_item.rb +211 -0
  175. data/lib/vapi_server_sdk/types/fallback_play_ht_voice.rb +172 -0
  176. data/lib/vapi_server_sdk/types/fallback_play_ht_voice_emotion.rb +19 -0
  177. data/lib/vapi_server_sdk/types/fallback_play_ht_voice_id.rb +53 -0
  178. data/lib/vapi_server_sdk/types/fallback_play_ht_voice_id_enum.rb +16 -0
  179. data/lib/vapi_server_sdk/types/fallback_play_ht_voice_language.rb +44 -0
  180. data/lib/vapi_server_sdk/types/fallback_play_ht_voice_model.rb +10 -0
  181. data/lib/vapi_server_sdk/types/fallback_rime_ai_voice.rb +96 -0
  182. data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_id.rb +53 -0
  183. data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_id_enum.rb +87 -0
  184. data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_model.rb +9 -0
  185. data/lib/vapi_server_sdk/types/fallback_tavus_voice.rb +147 -0
  186. data/lib/vapi_server_sdk/types/fallback_tavus_voice_voice_id.rb +53 -0
  187. data/lib/vapi_server_sdk/types/format_plan.rb +0 -2
  188. data/lib/vapi_server_sdk/types/function_tool_with_tool_call.rb +10 -1
  189. data/lib/vapi_server_sdk/types/gcp_credential.rb +2 -2
  190. data/lib/vapi_server_sdk/types/ghl_tool_with_tool_call.rb +9 -1
  191. data/lib/vapi_server_sdk/types/gladia_credential.rb +13 -3
  192. data/lib/vapi_server_sdk/types/go_high_level_credential.rb +13 -3
  193. data/lib/vapi_server_sdk/types/google_credential.rb +113 -0
  194. data/lib/vapi_server_sdk/types/google_model.rb +178 -0
  195. data/lib/vapi_server_sdk/types/google_model_model.rb +12 -0
  196. data/lib/vapi_server_sdk/types/google_model_tools_item.rb +159 -0
  197. data/lib/vapi_server_sdk/types/groq_credential.rb +13 -3
  198. data/lib/vapi_server_sdk/types/groq_model.rb +21 -13
  199. data/lib/vapi_server_sdk/types/hipaa_buy_dto.rb +65 -0
  200. data/lib/vapi_server_sdk/types/inflection_ai_credential.rb +113 -0
  201. data/lib/vapi_server_sdk/types/inflection_ai_model.rb +177 -0
  202. data/lib/vapi_server_sdk/types/inflection_ai_model_tools_item.rb +159 -0
  203. data/lib/vapi_server_sdk/types/invite_user_dto.rb +9 -9
  204. data/lib/vapi_server_sdk/types/knowledge_base_response_document.rb +74 -0
  205. data/lib/vapi_server_sdk/types/langfuse_credential.rb +130 -0
  206. data/lib/vapi_server_sdk/types/lmnt_credential.rb +13 -3
  207. data/lib/vapi_server_sdk/types/lmnt_voice.rb +18 -14
  208. data/lib/vapi_server_sdk/types/log.rb +12 -4
  209. data/lib/vapi_server_sdk/types/log_resource.rb +8 -0
  210. data/lib/vapi_server_sdk/types/make_credential.rb +13 -3
  211. data/lib/vapi_server_sdk/types/make_tool_with_tool_call.rb +9 -1
  212. data/lib/vapi_server_sdk/types/neets_voice.rb +17 -17
  213. data/lib/vapi_server_sdk/types/o_auth_2_authentication_plan.rb +79 -0
  214. data/lib/vapi_server_sdk/types/oauth_2_authentication_session.rb +68 -0
  215. data/lib/vapi_server_sdk/types/open_ai_credential.rb +13 -3
  216. data/lib/vapi_server_sdk/types/open_ai_function.rb +30 -4
  217. data/lib/vapi_server_sdk/types/open_ai_model.rb +23 -15
  218. data/lib/vapi_server_sdk/types/open_ai_model_fallback_models_item.rb +2 -0
  219. data/lib/vapi_server_sdk/types/open_ai_model_model.rb +2 -0
  220. data/lib/vapi_server_sdk/types/open_ai_voice.rb +22 -14
  221. data/lib/vapi_server_sdk/types/open_ai_voice_id.rb +7 -0
  222. data/lib/vapi_server_sdk/types/open_router_credential.rb +13 -3
  223. data/lib/vapi_server_sdk/types/open_router_model.rb +21 -13
  224. data/lib/vapi_server_sdk/types/org.rb +35 -2
  225. data/lib/vapi_server_sdk/types/org_channel.rb +10 -0
  226. data/lib/vapi_server_sdk/types/org_with_org_user.rb +262 -0
  227. data/lib/vapi_server_sdk/types/org_with_org_user_channel.rb +10 -0
  228. data/lib/vapi_server_sdk/types/org_with_org_user_role.rb +9 -0
  229. data/lib/vapi_server_sdk/types/payment.rb +167 -0
  230. data/lib/vapi_server_sdk/types/payment_retry_dto.rb +55 -0
  231. data/lib/vapi_server_sdk/types/payment_status.rb +11 -0
  232. data/lib/vapi_server_sdk/types/payments_paginated_response.rb +75 -0
  233. data/lib/vapi_server_sdk/types/perplexity_ai_credential.rb +13 -3
  234. data/lib/vapi_server_sdk/types/perplexity_ai_model.rb +21 -13
  235. data/lib/vapi_server_sdk/types/phone_number_paginated_response.rb +75 -0
  236. data/lib/vapi_server_sdk/types/phone_number_paginated_response_results_item.rb +121 -0
  237. data/lib/vapi_server_sdk/types/play_ht_credential.rb +13 -2
  238. data/lib/vapi_server_sdk/types/play_ht_voice.rb +37 -15
  239. data/lib/vapi_server_sdk/types/play_ht_voice_language.rb +44 -0
  240. data/lib/vapi_server_sdk/types/play_ht_voice_model.rb +10 -0
  241. data/lib/vapi_server_sdk/types/regex_option.rb +2 -2
  242. data/lib/vapi_server_sdk/types/regex_option_type.rb +1 -1
  243. data/lib/vapi_server_sdk/types/regex_replacement.rb +14 -4
  244. data/lib/vapi_server_sdk/types/rime_ai_credential.rb +13 -3
  245. data/lib/vapi_server_sdk/types/rime_ai_voice.rb +18 -14
  246. data/lib/vapi_server_sdk/types/runpod_credential.rb +13 -3
  247. data/lib/vapi_server_sdk/types/s_3_credential.rb +13 -3
  248. data/lib/vapi_server_sdk/types/server.rb +16 -2
  249. data/lib/vapi_server_sdk/types/server_message_end_of_call_report_ended_reason.rb +49 -24
  250. data/lib/vapi_server_sdk/types/server_message_knowledge_base_request.rb +195 -0
  251. data/lib/vapi_server_sdk/types/server_message_knowledge_base_request_messages_item.rb +97 -0
  252. data/lib/vapi_server_sdk/types/{server_message_language_changed_phone_number.rb → server_message_knowledge_base_request_phone_number.rb} +8 -8
  253. data/lib/vapi_server_sdk/types/{server_message_language_changed.rb → server_message_language_change_detected.rb} +10 -10
  254. data/lib/vapi_server_sdk/types/server_message_language_change_detected_phone_number.rb +125 -0
  255. data/lib/vapi_server_sdk/types/server_message_message.rb +22 -9
  256. data/lib/vapi_server_sdk/types/server_message_response_knowledge_base_request.rb +81 -0
  257. data/lib/vapi_server_sdk/types/server_message_response_message_response.rb +14 -0
  258. data/lib/vapi_server_sdk/types/server_message_status_update_ended_reason.rb +49 -24
  259. data/lib/vapi_server_sdk/types/server_message_tool_calls_tool_with_tool_call_list_item.rb +77 -77
  260. data/lib/vapi_server_sdk/types/server_message_transfer_update.rb +18 -2
  261. data/lib/vapi_server_sdk/types/sip_authentication.rb +80 -0
  262. data/lib/vapi_server_sdk/types/start_speaking_plan.rb +54 -10
  263. data/lib/vapi_server_sdk/types/start_speaking_plan_custom_endpointing_rules_item.rb +108 -0
  264. data/lib/vapi_server_sdk/types/structured_data_plan.rb +28 -10
  265. data/lib/vapi_server_sdk/types/subscription.rb +336 -0
  266. data/lib/vapi_server_sdk/types/subscription_concurrency_line_buy_dto.rb +55 -0
  267. data/lib/vapi_server_sdk/types/subscription_concurrency_line_remove_dto.rb +55 -0
  268. data/lib/vapi_server_sdk/types/subscription_coupon_add_dto.rb +67 -0
  269. data/lib/vapi_server_sdk/types/subscription_monthly_charge.rb +65 -0
  270. data/lib/vapi_server_sdk/types/subscription_status.rb +10 -0
  271. data/lib/vapi_server_sdk/types/subscription_type.rb +10 -0
  272. data/lib/vapi_server_sdk/types/success_evaluation_plan.rb +38 -16
  273. data/lib/vapi_server_sdk/types/summary_plan.rb +26 -8
  274. data/lib/vapi_server_sdk/types/sync_voice_library_dto_providers_item.rb +1 -0
  275. data/lib/vapi_server_sdk/types/tavus_conversation_properties.rb +173 -0
  276. data/lib/vapi_server_sdk/types/tavus_credential.rb +111 -0
  277. data/lib/vapi_server_sdk/types/tavus_voice.rb +163 -0
  278. data/lib/vapi_server_sdk/types/tavus_voice_voice_id.rb +53 -0
  279. data/lib/vapi_server_sdk/types/text_content.rb +73 -0
  280. data/lib/vapi_server_sdk/types/text_content_language.rb +191 -0
  281. data/lib/vapi_server_sdk/types/text_editor_tool.rb +194 -0
  282. data/lib/vapi_server_sdk/types/text_editor_tool_messages_item.rb +120 -0
  283. data/lib/vapi_server_sdk/types/together_ai_credential.rb +13 -3
  284. data/lib/vapi_server_sdk/types/together_ai_model.rb +21 -13
  285. data/lib/vapi_server_sdk/types/tool_message_complete.rb +29 -3
  286. data/lib/vapi_server_sdk/types/tool_message_delayed.rb +30 -3
  287. data/lib/vapi_server_sdk/types/tool_message_failed.rb +30 -3
  288. data/lib/vapi_server_sdk/types/tool_message_start.rb +29 -4
  289. data/lib/vapi_server_sdk/types/transfer_destination_assistant.rb +79 -33
  290. data/lib/vapi_server_sdk/types/transfer_destination_assistant_message.rb +65 -0
  291. data/lib/vapi_server_sdk/types/transfer_destination_number.rb +56 -24
  292. data/lib/vapi_server_sdk/types/transfer_destination_number_message.rb +65 -0
  293. data/lib/vapi_server_sdk/types/transfer_destination_sip.rb +60 -15
  294. data/lib/vapi_server_sdk/types/transfer_destination_sip_message.rb +65 -0
  295. data/lib/vapi_server_sdk/types/transfer_destination_step.rb +28 -14
  296. data/lib/vapi_server_sdk/types/transfer_destination_step_message.rb +65 -0
  297. data/lib/vapi_server_sdk/types/transfer_plan.rb +141 -0
  298. data/lib/vapi_server_sdk/types/transfer_plan_message.rb +58 -0
  299. data/lib/vapi_server_sdk/types/transfer_plan_mode.rb +32 -0
  300. data/lib/vapi_server_sdk/types/transport.rb +70 -0
  301. data/lib/vapi_server_sdk/types/transport_cost.rb +12 -2
  302. data/lib/vapi_server_sdk/types/transport_cost_provider.rb +9 -0
  303. data/lib/vapi_server_sdk/types/transport_provider.rb +11 -0
  304. data/lib/vapi_server_sdk/types/trieve_knowledge_base.rb +125 -0
  305. data/lib/vapi_server_sdk/types/trieve_knowledge_base_vector_store_create_plan.rb +109 -0
  306. data/lib/vapi_server_sdk/types/trieve_knowledge_base_vector_store_search_plan.rb +95 -0
  307. data/lib/vapi_server_sdk/types/trieve_knowledge_base_vector_store_search_plan_search_type.rb +12 -0
  308. data/lib/vapi_server_sdk/types/twilio_credential.rb +12 -2
  309. data/lib/vapi_server_sdk/types/update_anthropic_credential_dto.rb +11 -2
  310. data/lib/vapi_server_sdk/types/update_anyscale_credential_dto.rb +11 -2
  311. data/lib/vapi_server_sdk/types/update_assembly_ai_credential_dto.rb +74 -0
  312. data/lib/vapi_server_sdk/types/update_azure_credential_dto.rb +95 -0
  313. data/lib/vapi_server_sdk/types/update_azure_credential_dto_region.rb +23 -0
  314. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto.rb +13 -3
  315. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_models_item.rb +1 -0
  316. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_region.rb +1 -0
  317. data/lib/vapi_server_sdk/types/update_byo_sip_trunk_credential_dto.rb +31 -11
  318. data/lib/vapi_server_sdk/types/update_cartesia_credential_dto.rb +11 -2
  319. data/lib/vapi_server_sdk/types/update_custom_llm_credential_dto.rb +31 -2
  320. data/lib/vapi_server_sdk/types/update_deep_infra_credential_dto.rb +11 -2
  321. data/lib/vapi_server_sdk/types/update_deepgram_credential_dto.rb +9 -2
  322. data/lib/vapi_server_sdk/types/update_eleven_labs_credential_dto.rb +11 -2
  323. data/lib/vapi_server_sdk/types/update_gcp_credential_dto.rb +10 -10
  324. data/lib/vapi_server_sdk/types/update_gladia_credential_dto.rb +11 -2
  325. data/lib/vapi_server_sdk/types/update_go_high_level_credential_dto.rb +11 -2
  326. data/lib/vapi_server_sdk/types/update_google_credential_dto.rb +76 -0
  327. data/lib/vapi_server_sdk/types/update_groq_credential_dto.rb +11 -2
  328. data/lib/vapi_server_sdk/types/update_inflection_ai_credential_dto.rb +76 -0
  329. data/lib/vapi_server_sdk/types/update_langfuse_credential_dto.rb +96 -0
  330. data/lib/vapi_server_sdk/types/update_lmnt_credential_dto.rb +11 -2
  331. data/lib/vapi_server_sdk/types/update_make_credential_dto.rb +17 -2
  332. data/lib/vapi_server_sdk/types/update_open_ai_credential_dto.rb +11 -2
  333. data/lib/vapi_server_sdk/types/update_open_router_credential_dto.rb +11 -2
  334. data/lib/vapi_server_sdk/types/update_org_dto.rb +21 -2
  335. data/lib/vapi_server_sdk/types/update_org_dto_channel.rb +10 -0
  336. data/lib/vapi_server_sdk/types/update_perplexity_ai_credential_dto.rb +11 -2
  337. data/lib/vapi_server_sdk/types/update_play_ht_credential_dto.rb +11 -2
  338. data/lib/vapi_server_sdk/types/update_rime_ai_credential_dto.rb +11 -2
  339. data/lib/vapi_server_sdk/types/update_runpod_credential_dto.rb +11 -2
  340. data/lib/vapi_server_sdk/types/update_s_3_credential_dto.rb +13 -3
  341. data/lib/vapi_server_sdk/types/update_tavus_credential_dto.rb +74 -0
  342. data/lib/vapi_server_sdk/types/update_together_ai_credential_dto.rb +11 -2
  343. data/lib/vapi_server_sdk/types/update_twilio_credential_dto.rb +16 -2
  344. data/lib/vapi_server_sdk/types/update_vonage_credential_dto.rb +16 -2
  345. data/lib/vapi_server_sdk/types/update_x_ai_credential_dto.rb +76 -0
  346. data/lib/vapi_server_sdk/types/vapi_cost.rb +10 -2
  347. data/lib/vapi_server_sdk/types/vapi_cost_sub_type.rb +9 -0
  348. data/lib/vapi_server_sdk/types/vapi_model.rb +24 -16
  349. data/lib/vapi_server_sdk/types/vapi_phone_number.rb +20 -2
  350. data/lib/vapi_server_sdk/types/vonage_credential.rb +12 -2
  351. data/lib/vapi_server_sdk/types/webhook_credential.rb +134 -0
  352. data/lib/vapi_server_sdk/types/x_ai_credential.rb +113 -0
  353. data/lib/vapi_server_sdk/types/xai_model.rb +177 -0
  354. data/lib/vapi_server_sdk/types/xai_model_tools_item.rb +159 -0
  355. data/lib/vapi_server_sdk.rb +7 -0
  356. 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
- # ,speech-update,status-update,transcript,tool-calls,user-interrupted,voice-input.
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
- # ,speech-update,status-update,transcript,tool-calls,user-interrupted,voice-input.
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, first_message_mode: OMIT, hipaa_enabled: OMIT,
303
- client_messages: OMIT, server_messages: OMIT, silence_timeout_seconds: OMIT, max_duration_seconds: OMIT, background_sound: OMIT, backchanneling_enabled: OMIT, background_denoising_enabled: OMIT, model_output_in_messages_enabled: OMIT, transport_configurations: OMIT, name: OMIT, first_message: OMIT, voicemail_detection: OMIT, voicemail_message: OMIT, end_call_message: OMIT, end_call_phrases: OMIT, metadata: OMIT, server_url: OMIT, server_url_secret: OMIT, analysis_plan: OMIT, artifact_plan: OMIT, message_plan: OMIT, start_speaking_plan: OMIT, stop_speaking_plan: OMIT, monitor_plan: OMIT, credential_ids: OMIT, additional_properties: nil)
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.")
@@ -14,6 +14,7 @@ module Vapi
14
14
  TRANSCRIPT = "transcript"
15
15
  TOOL_CALLS = "tool-calls"
16
16
  TOOL_CALLS_RESULT = "tool-calls-result"
17
+ TRANSFER_UPDATE = "transfer-update"
17
18
  USER_INTERRUPTED = "user-interrupted"
18
19
  VOICE_INPUT = "voice-input"
19
20
  end
@@ -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