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,154 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "server"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module Vapi
8
+ class CustomKnowledgeBase
9
+ # @return [Vapi::Server] /**
10
+ # This is where the knowledge base request will be sent.
11
+ # Request Example:
12
+ # POST https://{server.url}
13
+ # Content-Type: application/json
14
+ # {
15
+ # "messsage": {
16
+ # "type": "knowledge-base-request",
17
+ # "messages": [
18
+ # {
19
+ # "role": "user",
20
+ # "content": "Why is ocean blue?"
21
+ # }
22
+ # ],
23
+ # ...other metadata about the call...
24
+ # }
25
+ # }
26
+ # Response Expected:
27
+ # ```
28
+ # {
29
+ # "message": {
30
+ # "role": "assistant",
31
+ # "content": "The ocean is blue because water absorbs everything but blue.",
32
+ # }, // YOU CAN RETURN THE EXACT RESPONSE TO SPEAK
33
+ # "documents": [
34
+ # {
35
+ # "content": "The ocean is blue primarily because water absorbs colors in
36
+ # the red part of the light spectrum and scatters the blue light, making it more
37
+ # visible to our eyes.",
38
+ # "similarity": 1
39
+ # },
40
+ # {
41
+ # "content": "Blue light is scattered more by the water molecules than other
42
+ # colors, enhancing the blue appearance of the ocean.",
43
+ # "similarity": .5
44
+ # }
45
+ # ] // OR, YOU CAN RETURN AN ARRAY OF DOCUMENTS THAT WILL BE SENT TO THE MODEL
46
+ # }
47
+ # ```
48
+ attr_reader :server
49
+ # @return [String] This is the id of the knowledge base.
50
+ attr_reader :id
51
+ # @return [String] This is the org id of the knowledge base.
52
+ attr_reader :org_id
53
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
54
+ attr_reader :additional_properties
55
+ # @return [Object]
56
+ attr_reader :_field_set
57
+ protected :_field_set
58
+
59
+ OMIT = Object.new
60
+
61
+ # @param server [Vapi::Server] /**
62
+ # This is where the knowledge base request will be sent.
63
+ # Request Example:
64
+ # POST https://{server.url}
65
+ # Content-Type: application/json
66
+ # {
67
+ # "messsage": {
68
+ # "type": "knowledge-base-request",
69
+ # "messages": [
70
+ # {
71
+ # "role": "user",
72
+ # "content": "Why is ocean blue?"
73
+ # }
74
+ # ],
75
+ # ...other metadata about the call...
76
+ # }
77
+ # }
78
+ # Response Expected:
79
+ # ```
80
+ # {
81
+ # "message": {
82
+ # "role": "assistant",
83
+ # "content": "The ocean is blue because water absorbs everything but blue.",
84
+ # }, // YOU CAN RETURN THE EXACT RESPONSE TO SPEAK
85
+ # "documents": [
86
+ # {
87
+ # "content": "The ocean is blue primarily because water absorbs colors in
88
+ # the red part of the light spectrum and scatters the blue light, making it more
89
+ # visible to our eyes.",
90
+ # "similarity": 1
91
+ # },
92
+ # {
93
+ # "content": "Blue light is scattered more by the water molecules than other
94
+ # colors, enhancing the blue appearance of the ocean.",
95
+ # "similarity": .5
96
+ # }
97
+ # ] // OR, YOU CAN RETURN AN ARRAY OF DOCUMENTS THAT WILL BE SENT TO THE MODEL
98
+ # }
99
+ # ```
100
+ # @param id [String] This is the id of the knowledge base.
101
+ # @param org_id [String] This is the org id of the knowledge base.
102
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
103
+ # @return [Vapi::CustomKnowledgeBase]
104
+ def initialize(server:, id:, org_id:, additional_properties: nil)
105
+ @server = server
106
+ @id = id
107
+ @org_id = org_id
108
+ @additional_properties = additional_properties
109
+ @_field_set = { "server": server, "id": id, "orgId": org_id }
110
+ end
111
+
112
+ # Deserialize a JSON object to an instance of CustomKnowledgeBase
113
+ #
114
+ # @param json_object [String]
115
+ # @return [Vapi::CustomKnowledgeBase]
116
+ def self.from_json(json_object:)
117
+ struct = JSON.parse(json_object, object_class: OpenStruct)
118
+ parsed_json = JSON.parse(json_object)
119
+ if parsed_json["server"].nil?
120
+ server = nil
121
+ else
122
+ server = parsed_json["server"].to_json
123
+ server = Vapi::Server.from_json(json_object: server)
124
+ end
125
+ id = parsed_json["id"]
126
+ org_id = parsed_json["orgId"]
127
+ new(
128
+ server: server,
129
+ id: id,
130
+ org_id: org_id,
131
+ additional_properties: struct
132
+ )
133
+ end
134
+
135
+ # Serialize an instance of CustomKnowledgeBase to a JSON object
136
+ #
137
+ # @return [String]
138
+ def to_json(*_args)
139
+ @_field_set&.to_json
140
+ end
141
+
142
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
143
+ # hash and check each fields type against the current object's property
144
+ # definitions.
145
+ #
146
+ # @param obj [Object]
147
+ # @return [Void]
148
+ def self.validate_raw(obj:)
149
+ Vapi::Server.validate_raw(obj: obj.server)
150
+ obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
151
+ obj.org_id.is_a?(String) != false || raise("Passed value for field obj.org_id is not the expected type, validation failed.")
152
+ end
153
+ end
154
+ end
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "o_auth_2_authentication_plan"
3
4
  require "date"
5
+ require_relative "oauth_2_authentication_session"
4
6
  require "ostruct"
5
7
  require "json"
6
8
 
@@ -10,6 +12,9 @@ module Vapi
10
12
  attr_reader :provider
11
13
  # @return [String] This is not returned in the API.
12
14
  attr_reader :api_key
15
+ # @return [Vapi::OAuth2AuthenticationPlan] This is the authentication plan. Currently supports OAuth2 RFC 6749. To use
16
+ # Bearer authentication, use apiKey
17
+ attr_reader :authentication_plan
13
18
  # @return [String] This is the unique identifier for the credential.
14
19
  attr_reader :id
15
20
  # @return [String] This is the unique identifier for the org that this credential belongs to.
@@ -18,6 +23,11 @@ module Vapi
18
23
  attr_reader :created_at
19
24
  # @return [DateTime] This is the ISO 8601 date-time string of when the assistant was last updated.
20
25
  attr_reader :updated_at
26
+ # @return [Vapi::Oauth2AuthenticationSession] This is the authentication session for the credential. Available for credentials
27
+ # that have an authentication plan.
28
+ attr_reader :authentication_session
29
+ # @return [String] This is the name of credential. This is just for your reference.
30
+ attr_reader :name
21
31
  # @return [OpenStruct] Additional properties unmapped to the current class definition
22
32
  attr_reader :additional_properties
23
33
  # @return [Object]
@@ -28,28 +38,42 @@ module Vapi
28
38
 
29
39
  # @param provider [String]
30
40
  # @param api_key [String] This is not returned in the API.
41
+ # @param authentication_plan [Vapi::OAuth2AuthenticationPlan] This is the authentication plan. Currently supports OAuth2 RFC 6749. To use
42
+ # Bearer authentication, use apiKey
31
43
  # @param id [String] This is the unique identifier for the credential.
32
44
  # @param org_id [String] This is the unique identifier for the org that this credential belongs to.
33
45
  # @param created_at [DateTime] This is the ISO 8601 date-time string of when the credential was created.
34
46
  # @param updated_at [DateTime] This is the ISO 8601 date-time string of when the assistant was last updated.
47
+ # @param authentication_session [Vapi::Oauth2AuthenticationSession] This is the authentication session for the credential. Available for credentials
48
+ # that have an authentication plan.
49
+ # @param name [String] This is the name of credential. This is just for your reference.
35
50
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
36
51
  # @return [Vapi::CustomLlmCredential]
37
- def initialize(provider:, api_key:, id:, org_id:, created_at:, updated_at:, additional_properties: nil)
52
+ def initialize(provider:, api_key:, id:, org_id:, created_at:, updated_at:, authentication_plan: OMIT,
53
+ authentication_session: OMIT, name: OMIT, additional_properties: nil)
38
54
  @provider = provider
39
55
  @api_key = api_key
56
+ @authentication_plan = authentication_plan if authentication_plan != OMIT
40
57
  @id = id
41
58
  @org_id = org_id
42
59
  @created_at = created_at
43
60
  @updated_at = updated_at
61
+ @authentication_session = authentication_session if authentication_session != OMIT
62
+ @name = name if name != OMIT
44
63
  @additional_properties = additional_properties
45
64
  @_field_set = {
46
65
  "provider": provider,
47
66
  "apiKey": api_key,
67
+ "authenticationPlan": authentication_plan,
48
68
  "id": id,
49
69
  "orgId": org_id,
50
70
  "createdAt": created_at,
51
- "updatedAt": updated_at
52
- }
71
+ "updatedAt": updated_at,
72
+ "authenticationSession": authentication_session,
73
+ "name": name
74
+ }.reject do |_k, v|
75
+ v == OMIT
76
+ end
53
77
  end
54
78
 
55
79
  # Deserialize a JSON object to an instance of CustomLlmCredential
@@ -61,17 +85,33 @@ module Vapi
61
85
  parsed_json = JSON.parse(json_object)
62
86
  provider = parsed_json["provider"]
63
87
  api_key = parsed_json["apiKey"]
88
+ if parsed_json["authenticationPlan"].nil?
89
+ authentication_plan = nil
90
+ else
91
+ authentication_plan = parsed_json["authenticationPlan"].to_json
92
+ authentication_plan = Vapi::OAuth2AuthenticationPlan.from_json(json_object: authentication_plan)
93
+ end
64
94
  id = parsed_json["id"]
65
95
  org_id = parsed_json["orgId"]
66
96
  created_at = (DateTime.parse(parsed_json["createdAt"]) unless parsed_json["createdAt"].nil?)
67
97
  updated_at = (DateTime.parse(parsed_json["updatedAt"]) unless parsed_json["updatedAt"].nil?)
98
+ if parsed_json["authenticationSession"].nil?
99
+ authentication_session = nil
100
+ else
101
+ authentication_session = parsed_json["authenticationSession"].to_json
102
+ authentication_session = Vapi::Oauth2AuthenticationSession.from_json(json_object: authentication_session)
103
+ end
104
+ name = parsed_json["name"]
68
105
  new(
69
106
  provider: provider,
70
107
  api_key: api_key,
108
+ authentication_plan: authentication_plan,
71
109
  id: id,
72
110
  org_id: org_id,
73
111
  created_at: created_at,
74
112
  updated_at: updated_at,
113
+ authentication_session: authentication_session,
114
+ name: name,
75
115
  additional_properties: struct
76
116
  )
77
117
  end
@@ -92,10 +132,13 @@ module Vapi
92
132
  def self.validate_raw(obj:)
93
133
  obj.provider.is_a?(String) != false || raise("Passed value for field obj.provider is not the expected type, validation failed.")
94
134
  obj.api_key.is_a?(String) != false || raise("Passed value for field obj.api_key is not the expected type, validation failed.")
135
+ obj.authentication_plan.nil? || Vapi::OAuth2AuthenticationPlan.validate_raw(obj: obj.authentication_plan)
95
136
  obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
96
137
  obj.org_id.is_a?(String) != false || raise("Passed value for field obj.org_id is not the expected type, validation failed.")
97
138
  obj.created_at.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.")
98
139
  obj.updated_at.is_a?(DateTime) != false || raise("Passed value for field obj.updated_at is not the expected type, validation failed.")
140
+ obj.authentication_session.nil? || Vapi::Oauth2AuthenticationSession.validate_raw(obj: obj.authentication_session)
141
+ obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
99
142
  end
100
143
  end
101
144
  end
@@ -2,8 +2,8 @@
2
2
 
3
3
  require_relative "open_ai_message"
4
4
  require_relative "custom_llm_model_tools_item"
5
+ require_relative "create_custom_knowledge_base_dto"
5
6
  require_relative "custom_llm_model_metadata_send_mode"
6
- require_relative "knowledge_base"
7
7
  require "ostruct"
8
8
  require "json"
9
9
 
@@ -19,6 +19,10 @@ module Vapi
19
19
  # tools, use `tools`.
20
20
  # Both `tools` and `toolIds` can be used together.
21
21
  attr_reader :tool_ids
22
+ # @return [Vapi::CreateCustomKnowledgeBaseDto] These are the options for the knowledge base.
23
+ attr_reader :knowledge_base
24
+ # @return [String] This is the ID of the knowledge base the model will use.
25
+ attr_reader :knowledge_base_id
22
26
  # @return [Vapi::CustomLlmModelMetadataSendMode] This determines whether metadata is sent in requests to the custom provider.
23
27
  # - `off` will not send any metadata. payload will look like `{ messages }`
24
28
  # - `variable` will send `assistant.metadata` as a variable on the payload.
@@ -37,8 +41,6 @@ module Vapi
37
41
  # @return [Float] This is the temperature that will be used for calls. Default is 0 to leverage
38
42
  # caching for lower latency.
39
43
  attr_reader :temperature
40
- # @return [Vapi::KnowledgeBase] These are the options for the knowledge base.
41
- attr_reader :knowledge_base
42
44
  # @return [Float] This is the max number of tokens that the assistant will be allowed to generate
43
45
  # in each turn of the conversation. Default is 250.
44
46
  attr_reader :max_tokens
@@ -69,6 +71,8 @@ module Vapi
69
71
  # @param tool_ids [Array<String>] These are the tools that the assistant can use during the call. To use transient
70
72
  # tools, use `tools`.
71
73
  # Both `tools` and `toolIds` can be used together.
74
+ # @param knowledge_base [Vapi::CreateCustomKnowledgeBaseDto] These are the options for the knowledge base.
75
+ # @param knowledge_base_id [String] This is the ID of the knowledge base the model will use.
72
76
  # @param metadata_send_mode [Vapi::CustomLlmModelMetadataSendMode] This determines whether metadata is sent in requests to the custom provider.
73
77
  # - `off` will not send any metadata. payload will look like `{ messages }`
74
78
  # - `variable` will send `assistant.metadata` as a variable on the payload.
@@ -83,7 +87,6 @@ module Vapi
83
87
  # @param model [String] This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b
84
88
  # @param temperature [Float] This is the temperature that will be used for calls. Default is 0 to leverage
85
89
  # caching for lower latency.
86
- # @param knowledge_base [Vapi::KnowledgeBase] These are the options for the knowledge base.
87
90
  # @param max_tokens [Float] This is the max number of tokens that the assistant will be allowed to generate
88
91
  # in each turn of the conversation. Default is 250.
89
92
  # @param emotion_recognition_enabled [Boolean] This determines whether we detect user's emotion while they speak and send it as
@@ -98,16 +101,17 @@ module Vapi
98
101
  # @default 0
99
102
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
100
103
  # @return [Vapi::CustomLlmModel]
101
- def initialize(url:, model:, messages: OMIT, tools: OMIT, tool_ids: OMIT, metadata_send_mode: OMIT,
102
- temperature: OMIT, knowledge_base: OMIT, max_tokens: OMIT, emotion_recognition_enabled: OMIT, num_fast_turns: OMIT, additional_properties: nil)
104
+ def initialize(url:, model:, messages: OMIT, tools: OMIT, tool_ids: OMIT, knowledge_base: OMIT, knowledge_base_id: OMIT,
105
+ metadata_send_mode: OMIT, temperature: OMIT, max_tokens: OMIT, emotion_recognition_enabled: OMIT, num_fast_turns: OMIT, additional_properties: nil)
103
106
  @messages = messages if messages != OMIT
104
107
  @tools = tools if tools != OMIT
105
108
  @tool_ids = tool_ids if tool_ids != OMIT
109
+ @knowledge_base = knowledge_base if knowledge_base != OMIT
110
+ @knowledge_base_id = knowledge_base_id if knowledge_base_id != OMIT
106
111
  @metadata_send_mode = metadata_send_mode if metadata_send_mode != OMIT
107
112
  @url = url
108
113
  @model = model
109
114
  @temperature = temperature if temperature != OMIT
110
- @knowledge_base = knowledge_base if knowledge_base != OMIT
111
115
  @max_tokens = max_tokens if max_tokens != OMIT
112
116
  @emotion_recognition_enabled = emotion_recognition_enabled if emotion_recognition_enabled != OMIT
113
117
  @num_fast_turns = num_fast_turns if num_fast_turns != OMIT
@@ -116,11 +120,12 @@ module Vapi
116
120
  "messages": messages,
117
121
  "tools": tools,
118
122
  "toolIds": tool_ids,
123
+ "knowledgeBase": knowledge_base,
124
+ "knowledgeBaseId": knowledge_base_id,
119
125
  "metadataSendMode": metadata_send_mode,
120
126
  "url": url,
121
127
  "model": model,
122
128
  "temperature": temperature,
123
- "knowledgeBase": knowledge_base,
124
129
  "maxTokens": max_tokens,
125
130
  "emotionRecognitionEnabled": emotion_recognition_enabled,
126
131
  "numFastTurns": num_fast_turns
@@ -145,16 +150,17 @@ module Vapi
145
150
  Vapi::CustomLlmModelToolsItem.from_json(json_object: item)
146
151
  end
147
152
  tool_ids = parsed_json["toolIds"]
148
- metadata_send_mode = parsed_json["metadataSendMode"]
149
- url = parsed_json["url"]
150
- model = parsed_json["model"]
151
- temperature = parsed_json["temperature"]
152
153
  if parsed_json["knowledgeBase"].nil?
153
154
  knowledge_base = nil
154
155
  else
155
156
  knowledge_base = parsed_json["knowledgeBase"].to_json
156
- knowledge_base = Vapi::KnowledgeBase.from_json(json_object: knowledge_base)
157
+ knowledge_base = Vapi::CreateCustomKnowledgeBaseDto.from_json(json_object: knowledge_base)
157
158
  end
159
+ knowledge_base_id = parsed_json["knowledgeBaseId"]
160
+ metadata_send_mode = parsed_json["metadataSendMode"]
161
+ url = parsed_json["url"]
162
+ model = parsed_json["model"]
163
+ temperature = parsed_json["temperature"]
158
164
  max_tokens = parsed_json["maxTokens"]
159
165
  emotion_recognition_enabled = parsed_json["emotionRecognitionEnabled"]
160
166
  num_fast_turns = parsed_json["numFastTurns"]
@@ -162,11 +168,12 @@ module Vapi
162
168
  messages: messages,
163
169
  tools: tools,
164
170
  tool_ids: tool_ids,
171
+ knowledge_base: knowledge_base,
172
+ knowledge_base_id: knowledge_base_id,
165
173
  metadata_send_mode: metadata_send_mode,
166
174
  url: url,
167
175
  model: model,
168
176
  temperature: temperature,
169
- knowledge_base: knowledge_base,
170
177
  max_tokens: max_tokens,
171
178
  emotion_recognition_enabled: emotion_recognition_enabled,
172
179
  num_fast_turns: num_fast_turns,
@@ -191,11 +198,12 @@ module Vapi
191
198
  obj.messages&.is_a?(Array) != false || raise("Passed value for field obj.messages is not the expected type, validation failed.")
192
199
  obj.tools&.is_a?(Array) != false || raise("Passed value for field obj.tools is not the expected type, validation failed.")
193
200
  obj.tool_ids&.is_a?(Array) != false || raise("Passed value for field obj.tool_ids is not the expected type, validation failed.")
201
+ obj.knowledge_base.nil? || Vapi::CreateCustomKnowledgeBaseDto.validate_raw(obj: obj.knowledge_base)
202
+ obj.knowledge_base_id&.is_a?(String) != false || raise("Passed value for field obj.knowledge_base_id is not the expected type, validation failed.")
194
203
  obj.metadata_send_mode&.is_a?(Vapi::CustomLlmModelMetadataSendMode) != false || raise("Passed value for field obj.metadata_send_mode is not the expected type, validation failed.")
195
204
  obj.url.is_a?(String) != false || raise("Passed value for field obj.url is not the expected type, validation failed.")
196
205
  obj.model.is_a?(String) != false || raise("Passed value for field obj.model is not the expected type, validation failed.")
197
206
  obj.temperature&.is_a?(Float) != false || raise("Passed value for field obj.temperature is not the expected type, validation failed.")
198
- obj.knowledge_base.nil? || Vapi::KnowledgeBase.validate_raw(obj: obj.knowledge_base)
199
207
  obj.max_tokens&.is_a?(Float) != false || raise("Passed value for field obj.max_tokens is not the expected type, validation failed.")
200
208
  obj.emotion_recognition_enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.emotion_recognition_enabled is not the expected type, validation failed.")
201
209
  obj.num_fast_turns&.is_a?(Float) != false || raise("Passed value for field obj.num_fast_turns is not the expected type, validation failed.")
@@ -0,0 +1,92 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "text_content"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module Vapi
8
+ class CustomMessage
9
+ # @return [Array<Vapi::TextContent>] This is an alternative to the `content` property. It allows to specify variants
10
+ # of the same content, one per language.
11
+ # Usage:
12
+ # - If your assistants are multilingual, you can provide content for each
13
+ # language.
14
+ # - If you don't provide content for a language, the first item in the array will
15
+ # be automatically translated to the active language at that moment.
16
+ # This will override the `content` property.
17
+ attr_reader :contents
18
+ # @return [String] This is a custom message.
19
+ attr_reader :type
20
+ # @return [String] This is the content that the assistant will say when this message is triggered.
21
+ attr_reader :content
22
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
23
+ attr_reader :additional_properties
24
+ # @return [Object]
25
+ attr_reader :_field_set
26
+ protected :_field_set
27
+
28
+ OMIT = Object.new
29
+
30
+ # @param contents [Array<Vapi::TextContent>] This is an alternative to the `content` property. It allows to specify variants
31
+ # of the same content, one per language.
32
+ # Usage:
33
+ # - If your assistants are multilingual, you can provide content for each
34
+ # language.
35
+ # - If you don't provide content for a language, the first item in the array will
36
+ # be automatically translated to the active language at that moment.
37
+ # This will override the `content` property.
38
+ # @param type [String] This is a custom message.
39
+ # @param content [String] This is the content that the assistant will say when this message is triggered.
40
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
41
+ # @return [Vapi::CustomMessage]
42
+ def initialize(type:, contents: OMIT, content: OMIT, additional_properties: nil)
43
+ @contents = contents if contents != OMIT
44
+ @type = type
45
+ @content = content if content != OMIT
46
+ @additional_properties = additional_properties
47
+ @_field_set = { "contents": contents, "type": type, "content": content }.reject do |_k, v|
48
+ v == OMIT
49
+ end
50
+ end
51
+
52
+ # Deserialize a JSON object to an instance of CustomMessage
53
+ #
54
+ # @param json_object [String]
55
+ # @return [Vapi::CustomMessage]
56
+ def self.from_json(json_object:)
57
+ struct = JSON.parse(json_object, object_class: OpenStruct)
58
+ parsed_json = JSON.parse(json_object)
59
+ contents = parsed_json["contents"]&.map do |item|
60
+ item = item.to_json
61
+ Vapi::TextContent.from_json(json_object: item)
62
+ end
63
+ type = parsed_json["type"]
64
+ content = parsed_json["content"]
65
+ new(
66
+ contents: contents,
67
+ type: type,
68
+ content: content,
69
+ additional_properties: struct
70
+ )
71
+ end
72
+
73
+ # Serialize an instance of CustomMessage to a JSON object
74
+ #
75
+ # @return [String]
76
+ def to_json(*_args)
77
+ @_field_set&.to_json
78
+ end
79
+
80
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
81
+ # hash and check each fields type against the current object's property
82
+ # definitions.
83
+ #
84
+ # @param obj [Object]
85
+ # @return [Void]
86
+ def self.validate_raw(obj:)
87
+ obj.contents&.is_a?(Array) != false || raise("Passed value for field obj.contents is not the expected type, validation failed.")
88
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
89
+ obj.content&.is_a?(String) != false || raise("Passed value for field obj.content is not the expected type, validation failed.")
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,125 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "server"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module Vapi
8
+ class CustomTranscriber
9
+ # @return [Vapi::Server] This is where the transcription request will be sent.
10
+ # Usage:
11
+ # 1. Vapi will initiate a websocket connection with `server.url`.
12
+ # 2. Vapi will send an initial text frame with the sample rate. Format:
13
+ # ```
14
+ # {
15
+ # "type": "start",
16
+ # "encoding": "linear16", // 16-bit raw PCM format
17
+ # "container": "raw",
18
+ # "sampleRate": {{sampleRate}},
19
+ # "channels": 2 // customer is channel 0, assistant is channel 1
20
+ # }
21
+ # ```
22
+ # 3. Vapi will send the audio data in 16-bit raw PCM format as binary frames.
23
+ # 4. You can read the messages something like this:
24
+ # ```
25
+ # ws.on('message', (data, isBinary) => {
26
+ # if (isBinary) {
27
+ # pcmBuffer = Buffer.concat([pcmBuffer, data]);
28
+ # console.log(`Received PCM data, buffer size: ${pcmBuffer.length}`);
29
+ # } else {
30
+ # console.log('Received message:', JSON.parse(data.toString()));
31
+ # }
32
+ # });
33
+ # ```
34
+ # 5. You will respond with transcriptions as you have them. Format:
35
+ # ```
36
+ # {
37
+ # "type": "transcriber-response",
38
+ # "transcription": "Hello, world!",
39
+ # "channel": "customer" | "assistant"
40
+ # }
41
+ # ```
42
+ attr_reader :server
43
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
44
+ attr_reader :additional_properties
45
+ # @return [Object]
46
+ attr_reader :_field_set
47
+ protected :_field_set
48
+
49
+ OMIT = Object.new
50
+
51
+ # @param server [Vapi::Server] This is where the transcription request will be sent.
52
+ # Usage:
53
+ # 1. Vapi will initiate a websocket connection with `server.url`.
54
+ # 2. Vapi will send an initial text frame with the sample rate. Format:
55
+ # ```
56
+ # {
57
+ # "type": "start",
58
+ # "encoding": "linear16", // 16-bit raw PCM format
59
+ # "container": "raw",
60
+ # "sampleRate": {{sampleRate}},
61
+ # "channels": 2 // customer is channel 0, assistant is channel 1
62
+ # }
63
+ # ```
64
+ # 3. Vapi will send the audio data in 16-bit raw PCM format as binary frames.
65
+ # 4. You can read the messages something like this:
66
+ # ```
67
+ # ws.on('message', (data, isBinary) => {
68
+ # if (isBinary) {
69
+ # pcmBuffer = Buffer.concat([pcmBuffer, data]);
70
+ # console.log(`Received PCM data, buffer size: ${pcmBuffer.length}`);
71
+ # } else {
72
+ # console.log('Received message:', JSON.parse(data.toString()));
73
+ # }
74
+ # });
75
+ # ```
76
+ # 5. You will respond with transcriptions as you have them. Format:
77
+ # ```
78
+ # {
79
+ # "type": "transcriber-response",
80
+ # "transcription": "Hello, world!",
81
+ # "channel": "customer" | "assistant"
82
+ # }
83
+ # ```
84
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
85
+ # @return [Vapi::CustomTranscriber]
86
+ def initialize(server:, additional_properties: nil)
87
+ @server = server
88
+ @additional_properties = additional_properties
89
+ @_field_set = { "server": server }
90
+ end
91
+
92
+ # Deserialize a JSON object to an instance of CustomTranscriber
93
+ #
94
+ # @param json_object [String]
95
+ # @return [Vapi::CustomTranscriber]
96
+ def self.from_json(json_object:)
97
+ struct = JSON.parse(json_object, object_class: OpenStruct)
98
+ parsed_json = JSON.parse(json_object)
99
+ if parsed_json["server"].nil?
100
+ server = nil
101
+ else
102
+ server = parsed_json["server"].to_json
103
+ server = Vapi::Server.from_json(json_object: server)
104
+ end
105
+ new(server: server, additional_properties: struct)
106
+ end
107
+
108
+ # Serialize an instance of CustomTranscriber to a JSON object
109
+ #
110
+ # @return [String]
111
+ def to_json(*_args)
112
+ @_field_set&.to_json
113
+ end
114
+
115
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
116
+ # hash and check each fields type against the current object's property
117
+ # definitions.
118
+ #
119
+ # @param obj [Object]
120
+ # @return [Void]
121
+ def self.validate_raw(obj:)
122
+ Vapi::Server.validate_raw(obj: obj.server)
123
+ end
124
+ end
125
+ end