vapi_server_sdk 0.1.0 → 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 -2
  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 +165 -6
@@ -23,14 +23,25 @@ module Vapi
23
23
  # Default is 'PassFail'.
24
24
  attr_reader :rubric
25
25
  # @return [Array<Hash{String => Object}>] These are the messages used to generate the success evaluation.
26
- # @default: ` [ { "role": "system", "content": "You are an expert call evaluator.
27
- # You will be given a transcript of a call and the system prompt of the AI
28
- # participant. Determine if the call was successful based on the objectives
29
- # inferred from the system prompt. DO NOT return anything except the
30
- # result.\n\nRubric:\\n{{rubric}}\n\nOnly respond with the result." }, { "role":
31
- # "user", "content": "Here is the transcript:\n\n{{transcript}}\n\n" }, { "role":
32
- # "user", "content": "Here was the system prompt of the
33
- # call:\n\n{{systemPrompt}}\n\n" } ]`
26
+ # @default: ```
27
+ # [
28
+ # {
29
+ # "role": "system",
30
+ # "content": "You are an expert call evaluator. You will be given a transcript
31
+ # of a call and the system prompt of the AI participant. Determine if the call was
32
+ # successful based on the objectives inferred from the system prompt. DO NOT
33
+ # return anything except the result.\n\nRubric:\\n{{rubric}}\n\nOnly respond with
34
+ # the result."
35
+ # },
36
+ # {
37
+ # "role": "user",
38
+ # "content": "Here is the transcript:\n\n{{transcript}}\n\n"
39
+ # },
40
+ # {
41
+ # "role": "user",
42
+ # "content": "Here was the system prompt of the call:\n\n{{systemPrompt}}\n\n"
43
+ # }
44
+ # ]```
34
45
  # You can customize by providing any messages you want.
35
46
  # Here are the template variables available:
36
47
  # - {{transcript}}: the transcript of the call from `call.artifact.transcript`-
@@ -75,14 +86,25 @@ module Vapi
75
86
  # - 'PassFail': A simple 'true' if call passed, 'false' if not.
76
87
  # Default is 'PassFail'.
77
88
  # @param messages [Array<Hash{String => Object}>] These are the messages used to generate the success evaluation.
78
- # @default: ` [ { "role": "system", "content": "You are an expert call evaluator.
79
- # You will be given a transcript of a call and the system prompt of the AI
80
- # participant. Determine if the call was successful based on the objectives
81
- # inferred from the system prompt. DO NOT return anything except the
82
- # result.\n\nRubric:\\n{{rubric}}\n\nOnly respond with the result." }, { "role":
83
- # "user", "content": "Here is the transcript:\n\n{{transcript}}\n\n" }, { "role":
84
- # "user", "content": "Here was the system prompt of the
85
- # call:\n\n{{systemPrompt}}\n\n" } ]`
89
+ # @default: ```
90
+ # [
91
+ # {
92
+ # "role": "system",
93
+ # "content": "You are an expert call evaluator. You will be given a transcript
94
+ # of a call and the system prompt of the AI participant. Determine if the call was
95
+ # successful based on the objectives inferred from the system prompt. DO NOT
96
+ # return anything except the result.\n\nRubric:\\n{{rubric}}\n\nOnly respond with
97
+ # the result."
98
+ # },
99
+ # {
100
+ # "role": "user",
101
+ # "content": "Here is the transcript:\n\n{{transcript}}\n\n"
102
+ # },
103
+ # {
104
+ # "role": "user",
105
+ # "content": "Here was the system prompt of the call:\n\n{{systemPrompt}}\n\n"
106
+ # }
107
+ # ]```
86
108
  # You can customize by providing any messages you want.
87
109
  # Here are the template variables available:
88
110
  # - {{transcript}}: the transcript of the call from `call.artifact.transcript`-
@@ -6,10 +6,19 @@ require "json"
6
6
  module Vapi
7
7
  class SummaryPlan
8
8
  # @return [Array<Hash{String => Object}>] These are the messages used to generate the summary.
9
- # @default: ` [ { "role": "system", "content": "You are an expert note-taker. You
10
- # will be given a transcript of a call. Summarize the call in 2-3 sentences. DO
11
- # NOT return anything except the summary." }, { "role": "user", "content": "Here
12
- # is the transcript:\n\n{{transcript}}\n\n" } ]`
9
+ # @default: ```
10
+ # [
11
+ # {
12
+ # "role": "system",
13
+ # "content": "You are an expert note-taker. You will be given a transcript of
14
+ # a call. Summarize the call in 2-3 sentences. DO NOT return anything except the
15
+ # summary."
16
+ # },
17
+ # {
18
+ # "role": "user",
19
+ # "content": "Here is the transcript:\n\n{{transcript}}\n\n"
20
+ # }
21
+ # ]```
13
22
  # You can customize by providing any messages you want.
14
23
  # Here are the template variables available:
15
24
  # - {{transcript}}: The transcript of the call from `call.artifact.transcript`-
@@ -38,10 +47,19 @@ module Vapi
38
47
  OMIT = Object.new
39
48
 
40
49
  # @param messages [Array<Hash{String => Object}>] These are the messages used to generate the summary.
41
- # @default: ` [ { "role": "system", "content": "You are an expert note-taker. You
42
- # will be given a transcript of a call. Summarize the call in 2-3 sentences. DO
43
- # NOT return anything except the summary." }, { "role": "user", "content": "Here
44
- # is the transcript:\n\n{{transcript}}\n\n" } ]`
50
+ # @default: ```
51
+ # [
52
+ # {
53
+ # "role": "system",
54
+ # "content": "You are an expert note-taker. You will be given a transcript of
55
+ # a call. Summarize the call in 2-3 sentences. DO NOT return anything except the
56
+ # summary."
57
+ # },
58
+ # {
59
+ # "role": "user",
60
+ # "content": "Here is the transcript:\n\n{{transcript}}\n\n"
61
+ # }
62
+ # ]```
45
63
  # You can customize by providing any messages you want.
46
64
  # Here are the template variables available:
47
65
  # - {{transcript}}: The transcript of the call from `call.artifact.transcript`-
@@ -12,5 +12,6 @@ module Vapi
12
12
  OPENAI = "openai"
13
13
  PLAYHT = "playht"
14
14
  RIME_AI = "rime-ai"
15
+ TAVUS = "tavus"
15
16
  end
16
17
  end
@@ -0,0 +1,173 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Vapi
7
+ class TavusConversationProperties
8
+ # @return [Float] The maximum duration of the call in seconds. The default `maxCallDuration` is
9
+ # 3600 seconds (1 hour).
10
+ # Once the time limit specified by this parameter has been reached, the
11
+ # conversation will automatically shut down.
12
+ attr_reader :max_call_duration
13
+ # @return [Float] The duration in seconds after which the call will be automatically shut down
14
+ # once the last participant leaves.
15
+ attr_reader :participant_left_timeout
16
+ # @return [Float] Starting from conversation creation, the duration in seconds after which the
17
+ # call will be automatically shut down if no participant joins the call.
18
+ # Default is 300 seconds (5 minutes).
19
+ attr_reader :participant_absent_timeout
20
+ # @return [Boolean] If true, the user will be able to record the conversation.
21
+ attr_reader :enable_recording
22
+ # @return [Boolean] If true, the user will be able to transcribe the conversation.
23
+ # You can find more instructions on displaying transcriptions if you are using
24
+ # your custom DailyJS components here.
25
+ # You need to have an event listener on Daily that listens for `app-messages`.
26
+ attr_reader :enable_transcription
27
+ # @return [Boolean] If true, the background will be replaced with a greenscreen (RGB values: `[0,
28
+ # 255, 155]`).
29
+ # You can use WebGL on the frontend to make the greenscreen transparent or change
30
+ # its color.
31
+ attr_reader :apply_greenscreen
32
+ # @return [String] The language of the conversation. Please provide the **full language name**, not
33
+ # the two-letter code.
34
+ # If you are using your own TTS voice, please ensure it supports the language you
35
+ # provide.
36
+ # If you are using a stock replica or default persona, please note that only
37
+ # ElevenLabs and Cartesia supported languages are available.
38
+ # You can find a full list of supported languages for Cartesia here, for
39
+ # ElevenLabs here, and for PlayHT here.
40
+ attr_reader :language
41
+ # @return [String] The name of the S3 bucket where the recording will be stored.
42
+ attr_reader :recording_s_3_bucket_name
43
+ # @return [String] The region of the S3 bucket where the recording will be stored.
44
+ attr_reader :recording_s_3_bucket_region
45
+ # @return [String] The ARN of the role that will be assumed to access the S3 bucket.
46
+ attr_reader :aws_assume_role_arn
47
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
48
+ attr_reader :additional_properties
49
+ # @return [Object]
50
+ attr_reader :_field_set
51
+ protected :_field_set
52
+
53
+ OMIT = Object.new
54
+
55
+ # @param max_call_duration [Float] The maximum duration of the call in seconds. The default `maxCallDuration` is
56
+ # 3600 seconds (1 hour).
57
+ # Once the time limit specified by this parameter has been reached, the
58
+ # conversation will automatically shut down.
59
+ # @param participant_left_timeout [Float] The duration in seconds after which the call will be automatically shut down
60
+ # once the last participant leaves.
61
+ # @param participant_absent_timeout [Float] Starting from conversation creation, the duration in seconds after which the
62
+ # call will be automatically shut down if no participant joins the call.
63
+ # Default is 300 seconds (5 minutes).
64
+ # @param enable_recording [Boolean] If true, the user will be able to record the conversation.
65
+ # @param enable_transcription [Boolean] If true, the user will be able to transcribe the conversation.
66
+ # You can find more instructions on displaying transcriptions if you are using
67
+ # your custom DailyJS components here.
68
+ # You need to have an event listener on Daily that listens for `app-messages`.
69
+ # @param apply_greenscreen [Boolean] If true, the background will be replaced with a greenscreen (RGB values: `[0,
70
+ # 255, 155]`).
71
+ # You can use WebGL on the frontend to make the greenscreen transparent or change
72
+ # its color.
73
+ # @param language [String] The language of the conversation. Please provide the **full language name**, not
74
+ # the two-letter code.
75
+ # If you are using your own TTS voice, please ensure it supports the language you
76
+ # provide.
77
+ # If you are using a stock replica or default persona, please note that only
78
+ # ElevenLabs and Cartesia supported languages are available.
79
+ # You can find a full list of supported languages for Cartesia here, for
80
+ # ElevenLabs here, and for PlayHT here.
81
+ # @param recording_s_3_bucket_name [String] The name of the S3 bucket where the recording will be stored.
82
+ # @param recording_s_3_bucket_region [String] The region of the S3 bucket where the recording will be stored.
83
+ # @param aws_assume_role_arn [String] The ARN of the role that will be assumed to access the S3 bucket.
84
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
85
+ # @return [Vapi::TavusConversationProperties]
86
+ def initialize(max_call_duration: OMIT, participant_left_timeout: OMIT, participant_absent_timeout: OMIT,
87
+ enable_recording: OMIT, enable_transcription: OMIT, apply_greenscreen: OMIT, language: OMIT, recording_s_3_bucket_name: OMIT, recording_s_3_bucket_region: OMIT, aws_assume_role_arn: OMIT, additional_properties: nil)
88
+ @max_call_duration = max_call_duration if max_call_duration != OMIT
89
+ @participant_left_timeout = participant_left_timeout if participant_left_timeout != OMIT
90
+ @participant_absent_timeout = participant_absent_timeout if participant_absent_timeout != OMIT
91
+ @enable_recording = enable_recording if enable_recording != OMIT
92
+ @enable_transcription = enable_transcription if enable_transcription != OMIT
93
+ @apply_greenscreen = apply_greenscreen if apply_greenscreen != OMIT
94
+ @language = language if language != OMIT
95
+ @recording_s_3_bucket_name = recording_s_3_bucket_name if recording_s_3_bucket_name != OMIT
96
+ @recording_s_3_bucket_region = recording_s_3_bucket_region if recording_s_3_bucket_region != OMIT
97
+ @aws_assume_role_arn = aws_assume_role_arn if aws_assume_role_arn != OMIT
98
+ @additional_properties = additional_properties
99
+ @_field_set = {
100
+ "maxCallDuration": max_call_duration,
101
+ "participantLeftTimeout": participant_left_timeout,
102
+ "participantAbsentTimeout": participant_absent_timeout,
103
+ "enableRecording": enable_recording,
104
+ "enableTranscription": enable_transcription,
105
+ "applyGreenscreen": apply_greenscreen,
106
+ "language": language,
107
+ "recordingS3BucketName": recording_s_3_bucket_name,
108
+ "recordingS3BucketRegion": recording_s_3_bucket_region,
109
+ "awsAssumeRoleArn": aws_assume_role_arn
110
+ }.reject do |_k, v|
111
+ v == OMIT
112
+ end
113
+ end
114
+
115
+ # Deserialize a JSON object to an instance of TavusConversationProperties
116
+ #
117
+ # @param json_object [String]
118
+ # @return [Vapi::TavusConversationProperties]
119
+ def self.from_json(json_object:)
120
+ struct = JSON.parse(json_object, object_class: OpenStruct)
121
+ parsed_json = JSON.parse(json_object)
122
+ max_call_duration = parsed_json["maxCallDuration"]
123
+ participant_left_timeout = parsed_json["participantLeftTimeout"]
124
+ participant_absent_timeout = parsed_json["participantAbsentTimeout"]
125
+ enable_recording = parsed_json["enableRecording"]
126
+ enable_transcription = parsed_json["enableTranscription"]
127
+ apply_greenscreen = parsed_json["applyGreenscreen"]
128
+ language = parsed_json["language"]
129
+ recording_s_3_bucket_name = parsed_json["recordingS3BucketName"]
130
+ recording_s_3_bucket_region = parsed_json["recordingS3BucketRegion"]
131
+ aws_assume_role_arn = parsed_json["awsAssumeRoleArn"]
132
+ new(
133
+ max_call_duration: max_call_duration,
134
+ participant_left_timeout: participant_left_timeout,
135
+ participant_absent_timeout: participant_absent_timeout,
136
+ enable_recording: enable_recording,
137
+ enable_transcription: enable_transcription,
138
+ apply_greenscreen: apply_greenscreen,
139
+ language: language,
140
+ recording_s_3_bucket_name: recording_s_3_bucket_name,
141
+ recording_s_3_bucket_region: recording_s_3_bucket_region,
142
+ aws_assume_role_arn: aws_assume_role_arn,
143
+ additional_properties: struct
144
+ )
145
+ end
146
+
147
+ # Serialize an instance of TavusConversationProperties to a JSON object
148
+ #
149
+ # @return [String]
150
+ def to_json(*_args)
151
+ @_field_set&.to_json
152
+ end
153
+
154
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
155
+ # hash and check each fields type against the current object's property
156
+ # definitions.
157
+ #
158
+ # @param obj [Object]
159
+ # @return [Void]
160
+ def self.validate_raw(obj:)
161
+ obj.max_call_duration&.is_a?(Float) != false || raise("Passed value for field obj.max_call_duration is not the expected type, validation failed.")
162
+ obj.participant_left_timeout&.is_a?(Float) != false || raise("Passed value for field obj.participant_left_timeout is not the expected type, validation failed.")
163
+ obj.participant_absent_timeout&.is_a?(Float) != false || raise("Passed value for field obj.participant_absent_timeout is not the expected type, validation failed.")
164
+ obj.enable_recording&.is_a?(Boolean) != false || raise("Passed value for field obj.enable_recording is not the expected type, validation failed.")
165
+ obj.enable_transcription&.is_a?(Boolean) != false || raise("Passed value for field obj.enable_transcription is not the expected type, validation failed.")
166
+ obj.apply_greenscreen&.is_a?(Boolean) != false || raise("Passed value for field obj.apply_greenscreen is not the expected type, validation failed.")
167
+ obj.language&.is_a?(String) != false || raise("Passed value for field obj.language is not the expected type, validation failed.")
168
+ obj.recording_s_3_bucket_name&.is_a?(String) != false || raise("Passed value for field obj.recording_s_3_bucket_name is not the expected type, validation failed.")
169
+ obj.recording_s_3_bucket_region&.is_a?(String) != false || raise("Passed value for field obj.recording_s_3_bucket_region is not the expected type, validation failed.")
170
+ obj.aws_assume_role_arn&.is_a?(String) != false || raise("Passed value for field obj.aws_assume_role_arn is not the expected type, validation failed.")
171
+ end
172
+ end
173
+ end
@@ -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 TavusCredential
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::TavusCredential]
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 TavusCredential
63
+ #
64
+ # @param json_object [String]
65
+ # @return [Vapi::TavusCredential]
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 TavusCredential 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,163 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "tavus_voice_voice_id"
4
+ require_relative "chunk_plan"
5
+ require_relative "tavus_conversation_properties"
6
+ require_relative "fallback_plan"
7
+ require "ostruct"
8
+ require "json"
9
+
10
+ module Vapi
11
+ class TavusVoice
12
+ # @return [Vapi::TavusVoiceVoiceId] This is the provider-specific ID that will be used.
13
+ attr_reader :voice_id
14
+ # @return [Vapi::ChunkPlan] This is the plan for chunking the model output before it is sent to the voice
15
+ # provider.
16
+ attr_reader :chunk_plan
17
+ # @return [String] This is the unique identifier for the persona that the replica will use in the
18
+ # conversation.
19
+ attr_reader :persona_id
20
+ # @return [String] This is the url that will receive webhooks with updates regarding the
21
+ # conversation state.
22
+ attr_reader :callback_url
23
+ # @return [String] This is the name for the conversation.
24
+ attr_reader :conversation_name
25
+ # @return [String] This is the context that will be appended to any context provided in the
26
+ # persona, if one is provided.
27
+ attr_reader :conversational_context
28
+ # @return [String] This is the custom greeting that the replica will give once a participant joines
29
+ # the conversation.
30
+ attr_reader :custom_greeting
31
+ # @return [Vapi::TavusConversationProperties] These are optional properties used to customize the conversation.
32
+ attr_reader :properties
33
+ # @return [Vapi::FallbackPlan] This is the plan for voice provider fallbacks in the event that the primary
34
+ # voice provider fails.
35
+ attr_reader :fallback_plan
36
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
37
+ attr_reader :additional_properties
38
+ # @return [Object]
39
+ attr_reader :_field_set
40
+ protected :_field_set
41
+
42
+ OMIT = Object.new
43
+
44
+ # @param voice_id [Vapi::TavusVoiceVoiceId] This is the provider-specific ID that will be used.
45
+ # @param chunk_plan [Vapi::ChunkPlan] This is the plan for chunking the model output before it is sent to the voice
46
+ # provider.
47
+ # @param persona_id [String] This is the unique identifier for the persona that the replica will use in the
48
+ # conversation.
49
+ # @param callback_url [String] This is the url that will receive webhooks with updates regarding the
50
+ # conversation state.
51
+ # @param conversation_name [String] This is the name for the conversation.
52
+ # @param conversational_context [String] This is the context that will be appended to any context provided in the
53
+ # persona, if one is provided.
54
+ # @param custom_greeting [String] This is the custom greeting that the replica will give once a participant joines
55
+ # the conversation.
56
+ # @param properties [Vapi::TavusConversationProperties] These are optional properties used to customize the conversation.
57
+ # @param fallback_plan [Vapi::FallbackPlan] This is the plan for voice provider fallbacks in the event that the primary
58
+ # voice provider fails.
59
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
60
+ # @return [Vapi::TavusVoice]
61
+ def initialize(voice_id:, chunk_plan: OMIT, persona_id: OMIT, callback_url: OMIT, conversation_name: OMIT,
62
+ conversational_context: OMIT, custom_greeting: OMIT, properties: OMIT, fallback_plan: OMIT, additional_properties: nil)
63
+ @voice_id = voice_id
64
+ @chunk_plan = chunk_plan if chunk_plan != OMIT
65
+ @persona_id = persona_id if persona_id != OMIT
66
+ @callback_url = callback_url if callback_url != OMIT
67
+ @conversation_name = conversation_name if conversation_name != OMIT
68
+ @conversational_context = conversational_context if conversational_context != OMIT
69
+ @custom_greeting = custom_greeting if custom_greeting != OMIT
70
+ @properties = properties if properties != OMIT
71
+ @fallback_plan = fallback_plan if fallback_plan != OMIT
72
+ @additional_properties = additional_properties
73
+ @_field_set = {
74
+ "voiceId": voice_id,
75
+ "chunkPlan": chunk_plan,
76
+ "personaId": persona_id,
77
+ "callbackUrl": callback_url,
78
+ "conversationName": conversation_name,
79
+ "conversationalContext": conversational_context,
80
+ "customGreeting": custom_greeting,
81
+ "properties": properties,
82
+ "fallbackPlan": fallback_plan
83
+ }.reject do |_k, v|
84
+ v == OMIT
85
+ end
86
+ end
87
+
88
+ # Deserialize a JSON object to an instance of TavusVoice
89
+ #
90
+ # @param json_object [String]
91
+ # @return [Vapi::TavusVoice]
92
+ def self.from_json(json_object:)
93
+ struct = JSON.parse(json_object, object_class: OpenStruct)
94
+ parsed_json = JSON.parse(json_object)
95
+ if parsed_json["voiceId"].nil?
96
+ voice_id = nil
97
+ else
98
+ voice_id = parsed_json["voiceId"].to_json
99
+ voice_id = Vapi::TavusVoiceVoiceId.from_json(json_object: voice_id)
100
+ end
101
+ if parsed_json["chunkPlan"].nil?
102
+ chunk_plan = nil
103
+ else
104
+ chunk_plan = parsed_json["chunkPlan"].to_json
105
+ chunk_plan = Vapi::ChunkPlan.from_json(json_object: chunk_plan)
106
+ end
107
+ persona_id = parsed_json["personaId"]
108
+ callback_url = parsed_json["callbackUrl"]
109
+ conversation_name = parsed_json["conversationName"]
110
+ conversational_context = parsed_json["conversationalContext"]
111
+ custom_greeting = parsed_json["customGreeting"]
112
+ if parsed_json["properties"].nil?
113
+ properties = nil
114
+ else
115
+ properties = parsed_json["properties"].to_json
116
+ properties = Vapi::TavusConversationProperties.from_json(json_object: properties)
117
+ end
118
+ if parsed_json["fallbackPlan"].nil?
119
+ fallback_plan = nil
120
+ else
121
+ fallback_plan = parsed_json["fallbackPlan"].to_json
122
+ fallback_plan = Vapi::FallbackPlan.from_json(json_object: fallback_plan)
123
+ end
124
+ new(
125
+ voice_id: voice_id,
126
+ chunk_plan: chunk_plan,
127
+ persona_id: persona_id,
128
+ callback_url: callback_url,
129
+ conversation_name: conversation_name,
130
+ conversational_context: conversational_context,
131
+ custom_greeting: custom_greeting,
132
+ properties: properties,
133
+ fallback_plan: fallback_plan,
134
+ additional_properties: struct
135
+ )
136
+ end
137
+
138
+ # Serialize an instance of TavusVoice to a JSON object
139
+ #
140
+ # @return [String]
141
+ def to_json(*_args)
142
+ @_field_set&.to_json
143
+ end
144
+
145
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
146
+ # hash and check each fields type against the current object's property
147
+ # definitions.
148
+ #
149
+ # @param obj [Object]
150
+ # @return [Void]
151
+ def self.validate_raw(obj:)
152
+ Vapi::TavusVoiceVoiceId.validate_raw(obj: obj.voice_id)
153
+ obj.chunk_plan.nil? || Vapi::ChunkPlan.validate_raw(obj: obj.chunk_plan)
154
+ obj.persona_id&.is_a?(String) != false || raise("Passed value for field obj.persona_id is not the expected type, validation failed.")
155
+ obj.callback_url&.is_a?(String) != false || raise("Passed value for field obj.callback_url is not the expected type, validation failed.")
156
+ obj.conversation_name&.is_a?(String) != false || raise("Passed value for field obj.conversation_name is not the expected type, validation failed.")
157
+ obj.conversational_context&.is_a?(String) != false || raise("Passed value for field obj.conversational_context is not the expected type, validation failed.")
158
+ obj.custom_greeting&.is_a?(String) != false || raise("Passed value for field obj.custom_greeting is not the expected type, validation failed.")
159
+ obj.properties.nil? || Vapi::TavusConversationProperties.validate_raw(obj: obj.properties)
160
+ obj.fallback_plan.nil? || Vapi::FallbackPlan.validate_raw(obj: obj.fallback_plan)
161
+ end
162
+ end
163
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module Vapi
6
+ # This is the provider-specific ID that will be used.
7
+ class TavusVoiceVoiceId
8
+ # Deserialize a JSON object to an instance of TavusVoiceVoiceId
9
+ #
10
+ # @param json_object [String]
11
+ # @return [Vapi::TavusVoiceVoiceId]
12
+ def self.from_json(json_object:)
13
+ struct = JSON.parse(json_object, object_class: OpenStruct)
14
+ begin
15
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
16
+ return struct unless struct.nil?
17
+
18
+ return nil
19
+ rescue StandardError
20
+ # noop
21
+ end
22
+ begin
23
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
24
+ return struct unless struct.nil?
25
+
26
+ return nil
27
+ rescue StandardError
28
+ # noop
29
+ end
30
+ struct
31
+ end
32
+
33
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
34
+ # hash and check each fields type against the current object's property
35
+ # definitions.
36
+ #
37
+ # @param obj [Object]
38
+ # @return [Void]
39
+ def self.validate_raw(obj:)
40
+ begin
41
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
42
+ rescue StandardError
43
+ # noop
44
+ end
45
+ begin
46
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
47
+ rescue StandardError
48
+ # noop
49
+ end
50
+ raise("Passed value matched no type within the union, validation failed.")
51
+ end
52
+ end
53
+ end