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
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "custom_message"
5
+
6
+ module Vapi
7
+ # This is spoken to the customer before connecting them to the destination.
8
+ # Usage:
9
+ # - If this is not provided and transfer tool messages is not provided, default is
10
+ # "Transferring the call now".
11
+ # - If set to "", nothing is spoken. This is useful when you want to silently
12
+ # transfer. This is especially useful when transferring between assistants in a
13
+ # squad. In this scenario, you likely also want to set
14
+ # `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message`
15
+ # for the destination assistant.
16
+ # This accepts a string or a ToolMessageStart class. Latter is useful if you want
17
+ # to specify multiple messages for different languages through the `contents`
18
+ # field.
19
+ class TransferDestinationAssistantMessage
20
+ # Deserialize a JSON object to an instance of TransferDestinationAssistantMessage
21
+ #
22
+ # @param json_object [String]
23
+ # @return [Vapi::TransferDestinationAssistantMessage]
24
+ def self.from_json(json_object:)
25
+ struct = JSON.parse(json_object, object_class: OpenStruct)
26
+ begin
27
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
28
+ return struct unless struct.nil?
29
+
30
+ return nil
31
+ rescue StandardError
32
+ # noop
33
+ end
34
+ begin
35
+ Vapi::CustomMessage.validate_raw(obj: struct)
36
+ return Vapi::CustomMessage.from_json(json_object: struct) unless struct.nil?
37
+
38
+ return nil
39
+ rescue StandardError
40
+ # noop
41
+ end
42
+ struct
43
+ end
44
+
45
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
46
+ # hash and check each fields type against the current object's property
47
+ # definitions.
48
+ #
49
+ # @param obj [Object]
50
+ # @return [Void]
51
+ def self.validate_raw(obj:)
52
+ begin
53
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
54
+ rescue StandardError
55
+ # noop
56
+ end
57
+ begin
58
+ return Vapi::CustomMessage.validate_raw(obj: obj)
59
+ rescue StandardError
60
+ # noop
61
+ end
62
+ raise("Passed value matched no type within the union, validation failed.")
63
+ end
64
+ end
65
+ end
@@ -1,10 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "transfer_destination_number_message"
4
+ require_relative "transfer_plan"
3
5
  require "ostruct"
4
6
  require "json"
5
7
 
6
8
  module Vapi
7
9
  class TransferDestinationNumber
10
+ # @return [Vapi::TransferDestinationNumberMessage] This is spoken to the customer before connecting them to the destination.
11
+ # Usage:
12
+ # - If this is not provided and transfer tool messages is not provided, default is
13
+ # "Transferring the call now".
14
+ # - If set to "", nothing is spoken. This is useful when you want to silently
15
+ # transfer. This is especially useful when transferring between assistants in a
16
+ # squad. In this scenario, you likely also want to set
17
+ # `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message`
18
+ # for the destination assistant.
19
+ # This accepts a string or a ToolMessageStart class. Latter is useful if you want
20
+ # to specify multiple messages for different languages through the `contents`
21
+ # field.
22
+ attr_reader :message
8
23
  # @return [Boolean] This is the flag to toggle the E164 check for the `number` field. This is an
9
24
  # advanced property which should be used if you know your use case requires it.
10
25
  # Use cases:
@@ -35,15 +50,10 @@ module Vapi
35
50
  # For Twilio, you can read up more here:
36
51
  # https://www.twilio.com/docs/voice/twiml/dial#callerid
37
52
  attr_reader :caller_id
38
- # @return [String] This is the message to say before transferring the call to the destination.
39
- # If this is not provided and transfer tool messages is not provided, default is
40
- # "Transferring the call now".
41
- # If set to "", nothing is spoken. This is useful when you want to silently
42
- # transfer. This is especially useful when transferring between assistants in a
43
- # squad. In this scenario, you likely also want to set
44
- # `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message`
45
- # for the destination assistant.
46
- attr_reader :message
53
+ # @return [Vapi::TransferPlan] This configures how transfer is executed and the experience of the destination
54
+ # party receiving the call. Defaults to `blind-transfer`.
55
+ # @default `transferPlan.mode='blind-transfer'`
56
+ attr_reader :transfer_plan
47
57
  # @return [String] This is the description of the destination, used by the AI to choose when and
48
58
  # how to transfer the call.
49
59
  attr_reader :description
@@ -55,6 +65,18 @@ module Vapi
55
65
 
56
66
  OMIT = Object.new
57
67
 
68
+ # @param message [Vapi::TransferDestinationNumberMessage] This is spoken to the customer before connecting them to the destination.
69
+ # Usage:
70
+ # - If this is not provided and transfer tool messages is not provided, default is
71
+ # "Transferring the call now".
72
+ # - If set to "", nothing is spoken. This is useful when you want to silently
73
+ # transfer. This is especially useful when transferring between assistants in a
74
+ # squad. In this scenario, you likely also want to set
75
+ # `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message`
76
+ # for the destination assistant.
77
+ # This accepts a string or a ToolMessageStart class. Latter is useful if you want
78
+ # to specify multiple messages for different languages through the `contents`
79
+ # field.
58
80
  # @param number_e_164_check_enabled [Boolean] This is the flag to toggle the E164 check for the `number` field. This is an
59
81
  # advanced property which should be used if you know your use case requires it.
60
82
  # Use cases:
@@ -81,33 +103,30 @@ module Vapi
81
103
  # to be a number that is owned or verified by your Transport provider like Twilio.
82
104
  # For Twilio, you can read up more here:
83
105
  # https://www.twilio.com/docs/voice/twiml/dial#callerid
84
- # @param message [String] This is the message to say before transferring the call to the destination.
85
- # If this is not provided and transfer tool messages is not provided, default is
86
- # "Transferring the call now".
87
- # If set to "", nothing is spoken. This is useful when you want to silently
88
- # transfer. This is especially useful when transferring between assistants in a
89
- # squad. In this scenario, you likely also want to set
90
- # `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message`
91
- # for the destination assistant.
106
+ # @param transfer_plan [Vapi::TransferPlan] This configures how transfer is executed and the experience of the destination
107
+ # party receiving the call. Defaults to `blind-transfer`.
108
+ # @default `transferPlan.mode='blind-transfer'`
92
109
  # @param description [String] This is the description of the destination, used by the AI to choose when and
93
110
  # how to transfer the call.
94
111
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
95
112
  # @return [Vapi::TransferDestinationNumber]
96
- def initialize(number:, number_e_164_check_enabled: OMIT, extension: OMIT, caller_id: OMIT, message: OMIT,
97
- description: OMIT, additional_properties: nil)
113
+ def initialize(number:, message: OMIT, number_e_164_check_enabled: OMIT, extension: OMIT, caller_id: OMIT,
114
+ transfer_plan: OMIT, description: OMIT, additional_properties: nil)
115
+ @message = message if message != OMIT
98
116
  @number_e_164_check_enabled = number_e_164_check_enabled if number_e_164_check_enabled != OMIT
99
117
  @number = number
100
118
  @extension = extension if extension != OMIT
101
119
  @caller_id = caller_id if caller_id != OMIT
102
- @message = message if message != OMIT
120
+ @transfer_plan = transfer_plan if transfer_plan != OMIT
103
121
  @description = description if description != OMIT
104
122
  @additional_properties = additional_properties
105
123
  @_field_set = {
124
+ "message": message,
106
125
  "numberE164CheckEnabled": number_e_164_check_enabled,
107
126
  "number": number,
108
127
  "extension": extension,
109
128
  "callerId": caller_id,
110
- "message": message,
129
+ "transferPlan": transfer_plan,
111
130
  "description": description
112
131
  }.reject do |_k, v|
113
132
  v == OMIT
@@ -121,18 +140,30 @@ module Vapi
121
140
  def self.from_json(json_object:)
122
141
  struct = JSON.parse(json_object, object_class: OpenStruct)
123
142
  parsed_json = JSON.parse(json_object)
143
+ if parsed_json["message"].nil?
144
+ message = nil
145
+ else
146
+ message = parsed_json["message"].to_json
147
+ message = Vapi::TransferDestinationNumberMessage.from_json(json_object: message)
148
+ end
124
149
  number_e_164_check_enabled = parsed_json["numberE164CheckEnabled"]
125
150
  number = parsed_json["number"]
126
151
  extension = parsed_json["extension"]
127
152
  caller_id = parsed_json["callerId"]
128
- message = parsed_json["message"]
153
+ if parsed_json["transferPlan"].nil?
154
+ transfer_plan = nil
155
+ else
156
+ transfer_plan = parsed_json["transferPlan"].to_json
157
+ transfer_plan = Vapi::TransferPlan.from_json(json_object: transfer_plan)
158
+ end
129
159
  description = parsed_json["description"]
130
160
  new(
161
+ message: message,
131
162
  number_e_164_check_enabled: number_e_164_check_enabled,
132
163
  number: number,
133
164
  extension: extension,
134
165
  caller_id: caller_id,
135
- message: message,
166
+ transfer_plan: transfer_plan,
136
167
  description: description,
137
168
  additional_properties: struct
138
169
  )
@@ -152,11 +183,12 @@ module Vapi
152
183
  # @param obj [Object]
153
184
  # @return [Void]
154
185
  def self.validate_raw(obj:)
186
+ obj.message.nil? || Vapi::TransferDestinationNumberMessage.validate_raw(obj: obj.message)
155
187
  obj.number_e_164_check_enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.number_e_164_check_enabled is not the expected type, validation failed.")
156
188
  obj.number.is_a?(String) != false || raise("Passed value for field obj.number is not the expected type, validation failed.")
157
189
  obj.extension&.is_a?(String) != false || raise("Passed value for field obj.extension is not the expected type, validation failed.")
158
190
  obj.caller_id&.is_a?(String) != false || raise("Passed value for field obj.caller_id is not the expected type, validation failed.")
159
- obj.message&.is_a?(String) != false || raise("Passed value for field obj.message is not the expected type, validation failed.")
191
+ obj.transfer_plan.nil? || Vapi::TransferPlan.validate_raw(obj: obj.transfer_plan)
160
192
  obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
161
193
  end
162
194
  end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "custom_message"
5
+
6
+ module Vapi
7
+ # This is spoken to the customer before connecting them to the destination.
8
+ # Usage:
9
+ # - If this is not provided and transfer tool messages is not provided, default is
10
+ # "Transferring the call now".
11
+ # - If set to "", nothing is spoken. This is useful when you want to silently
12
+ # transfer. This is especially useful when transferring between assistants in a
13
+ # squad. In this scenario, you likely also want to set
14
+ # `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message`
15
+ # for the destination assistant.
16
+ # This accepts a string or a ToolMessageStart class. Latter is useful if you want
17
+ # to specify multiple messages for different languages through the `contents`
18
+ # field.
19
+ class TransferDestinationNumberMessage
20
+ # Deserialize a JSON object to an instance of TransferDestinationNumberMessage
21
+ #
22
+ # @param json_object [String]
23
+ # @return [Vapi::TransferDestinationNumberMessage]
24
+ def self.from_json(json_object:)
25
+ struct = JSON.parse(json_object, object_class: OpenStruct)
26
+ begin
27
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
28
+ return struct unless struct.nil?
29
+
30
+ return nil
31
+ rescue StandardError
32
+ # noop
33
+ end
34
+ begin
35
+ Vapi::CustomMessage.validate_raw(obj: struct)
36
+ return Vapi::CustomMessage.from_json(json_object: struct) unless struct.nil?
37
+
38
+ return nil
39
+ rescue StandardError
40
+ # noop
41
+ end
42
+ struct
43
+ end
44
+
45
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
46
+ # hash and check each fields type against the current object's property
47
+ # definitions.
48
+ #
49
+ # @param obj [Object]
50
+ # @return [Void]
51
+ def self.validate_raw(obj:)
52
+ begin
53
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
54
+ rescue StandardError
55
+ # noop
56
+ end
57
+ begin
58
+ return Vapi::CustomMessage.validate_raw(obj: obj)
59
+ rescue StandardError
60
+ # noop
61
+ end
62
+ raise("Passed value matched no type within the union, validation failed.")
63
+ end
64
+ end
65
+ end
@@ -1,21 +1,33 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "transfer_destination_sip_message"
4
+ require_relative "transfer_plan"
3
5
  require "ostruct"
4
6
  require "json"
5
7
 
6
8
  module Vapi
7
9
  class TransferDestinationSip
8
- # @return [String] This is the SIP URI to transfer the call to.
9
- attr_reader :sip_uri
10
- # @return [String] This is the message to say before transferring the call to the destination.
11
- # If this is not provided and transfer tool messages is not provided, default is
10
+ # @return [Vapi::TransferDestinationSipMessage] This is spoken to the customer before connecting them to the destination.
11
+ # Usage:
12
+ # - If this is not provided and transfer tool messages is not provided, default is
12
13
  # "Transferring the call now".
13
- # If set to "", nothing is spoken. This is useful when you want to silently
14
+ # - If set to "", nothing is spoken. This is useful when you want to silently
14
15
  # transfer. This is especially useful when transferring between assistants in a
15
16
  # squad. In this scenario, you likely also want to set
16
17
  # `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message`
17
18
  # for the destination assistant.
19
+ # This accepts a string or a ToolMessageStart class. Latter is useful if you want
20
+ # to specify multiple messages for different languages through the `contents`
21
+ # field.
18
22
  attr_reader :message
23
+ # @return [String] This is the SIP URI to transfer the call to.
24
+ attr_reader :sip_uri
25
+ # @return [Vapi::TransferPlan] This configures how transfer is executed and the experience of the destination
26
+ # party receiving the call. Defaults to `blind-transfer`.
27
+ # @default `transferPlan.mode='blind-transfer'`
28
+ attr_reader :transfer_plan
29
+ # @return [Hash{String => Object}] These are custom headers to be added to SIP refer during transfer call.
30
+ attr_reader :sip_headers
19
31
  # @return [String] This is the description of the destination, used by the AI to choose when and
20
32
  # how to transfer the call.
21
33
  attr_reader :description
@@ -27,25 +39,42 @@ module Vapi
27
39
 
28
40
  OMIT = Object.new
29
41
 
30
- # @param sip_uri [String] This is the SIP URI to transfer the call to.
31
- # @param message [String] This is the message to say before transferring the call to the destination.
32
- # If this is not provided and transfer tool messages is not provided, default is
42
+ # @param message [Vapi::TransferDestinationSipMessage] This is spoken to the customer before connecting them to the destination.
43
+ # Usage:
44
+ # - If this is not provided and transfer tool messages is not provided, default is
33
45
  # "Transferring the call now".
34
- # If set to "", nothing is spoken. This is useful when you want to silently
46
+ # - If set to "", nothing is spoken. This is useful when you want to silently
35
47
  # transfer. This is especially useful when transferring between assistants in a
36
48
  # squad. In this scenario, you likely also want to set
37
49
  # `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message`
38
50
  # for the destination assistant.
51
+ # This accepts a string or a ToolMessageStart class. Latter is useful if you want
52
+ # to specify multiple messages for different languages through the `contents`
53
+ # field.
54
+ # @param sip_uri [String] This is the SIP URI to transfer the call to.
55
+ # @param transfer_plan [Vapi::TransferPlan] This configures how transfer is executed and the experience of the destination
56
+ # party receiving the call. Defaults to `blind-transfer`.
57
+ # @default `transferPlan.mode='blind-transfer'`
58
+ # @param sip_headers [Hash{String => Object}] These are custom headers to be added to SIP refer during transfer call.
39
59
  # @param description [String] This is the description of the destination, used by the AI to choose when and
40
60
  # how to transfer the call.
41
61
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
42
62
  # @return [Vapi::TransferDestinationSip]
43
- def initialize(sip_uri:, message: OMIT, description: OMIT, additional_properties: nil)
44
- @sip_uri = sip_uri
63
+ def initialize(sip_uri:, message: OMIT, transfer_plan: OMIT, sip_headers: OMIT, description: OMIT,
64
+ additional_properties: nil)
45
65
  @message = message if message != OMIT
66
+ @sip_uri = sip_uri
67
+ @transfer_plan = transfer_plan if transfer_plan != OMIT
68
+ @sip_headers = sip_headers if sip_headers != OMIT
46
69
  @description = description if description != OMIT
47
70
  @additional_properties = additional_properties
48
- @_field_set = { "sipUri": sip_uri, "message": message, "description": description }.reject do |_k, v|
71
+ @_field_set = {
72
+ "message": message,
73
+ "sipUri": sip_uri,
74
+ "transferPlan": transfer_plan,
75
+ "sipHeaders": sip_headers,
76
+ "description": description
77
+ }.reject do |_k, v|
49
78
  v == OMIT
50
79
  end
51
80
  end
@@ -57,12 +86,26 @@ module Vapi
57
86
  def self.from_json(json_object:)
58
87
  struct = JSON.parse(json_object, object_class: OpenStruct)
59
88
  parsed_json = JSON.parse(json_object)
89
+ if parsed_json["message"].nil?
90
+ message = nil
91
+ else
92
+ message = parsed_json["message"].to_json
93
+ message = Vapi::TransferDestinationSipMessage.from_json(json_object: message)
94
+ end
60
95
  sip_uri = parsed_json["sipUri"]
61
- message = parsed_json["message"]
96
+ if parsed_json["transferPlan"].nil?
97
+ transfer_plan = nil
98
+ else
99
+ transfer_plan = parsed_json["transferPlan"].to_json
100
+ transfer_plan = Vapi::TransferPlan.from_json(json_object: transfer_plan)
101
+ end
102
+ sip_headers = parsed_json["sipHeaders"]
62
103
  description = parsed_json["description"]
63
104
  new(
64
- sip_uri: sip_uri,
65
105
  message: message,
106
+ sip_uri: sip_uri,
107
+ transfer_plan: transfer_plan,
108
+ sip_headers: sip_headers,
66
109
  description: description,
67
110
  additional_properties: struct
68
111
  )
@@ -82,8 +125,10 @@ module Vapi
82
125
  # @param obj [Object]
83
126
  # @return [Void]
84
127
  def self.validate_raw(obj:)
128
+ obj.message.nil? || Vapi::TransferDestinationSipMessage.validate_raw(obj: obj.message)
85
129
  obj.sip_uri.is_a?(String) != false || raise("Passed value for field obj.sip_uri is not the expected type, validation failed.")
86
- obj.message&.is_a?(String) != false || raise("Passed value for field obj.message is not the expected type, validation failed.")
130
+ obj.transfer_plan.nil? || Vapi::TransferPlan.validate_raw(obj: obj.transfer_plan)
131
+ obj.sip_headers&.is_a?(Hash) != false || raise("Passed value for field obj.sip_headers is not the expected type, validation failed.")
87
132
  obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
88
133
  end
89
134
  end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "custom_message"
5
+
6
+ module Vapi
7
+ # This is spoken to the customer before connecting them to the destination.
8
+ # Usage:
9
+ # - If this is not provided and transfer tool messages is not provided, default is
10
+ # "Transferring the call now".
11
+ # - If set to "", nothing is spoken. This is useful when you want to silently
12
+ # transfer. This is especially useful when transferring between assistants in a
13
+ # squad. In this scenario, you likely also want to set
14
+ # `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message`
15
+ # for the destination assistant.
16
+ # This accepts a string or a ToolMessageStart class. Latter is useful if you want
17
+ # to specify multiple messages for different languages through the `contents`
18
+ # field.
19
+ class TransferDestinationSipMessage
20
+ # Deserialize a JSON object to an instance of TransferDestinationSipMessage
21
+ #
22
+ # @param json_object [String]
23
+ # @return [Vapi::TransferDestinationSipMessage]
24
+ def self.from_json(json_object:)
25
+ struct = JSON.parse(json_object, object_class: OpenStruct)
26
+ begin
27
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
28
+ return struct unless struct.nil?
29
+
30
+ return nil
31
+ rescue StandardError
32
+ # noop
33
+ end
34
+ begin
35
+ Vapi::CustomMessage.validate_raw(obj: struct)
36
+ return Vapi::CustomMessage.from_json(json_object: struct) unless struct.nil?
37
+
38
+ return nil
39
+ rescue StandardError
40
+ # noop
41
+ end
42
+ struct
43
+ end
44
+
45
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
46
+ # hash and check each fields type against the current object's property
47
+ # definitions.
48
+ #
49
+ # @param obj [Object]
50
+ # @return [Void]
51
+ def self.validate_raw(obj:)
52
+ begin
53
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
54
+ rescue StandardError
55
+ # noop
56
+ end
57
+ begin
58
+ return Vapi::CustomMessage.validate_raw(obj: obj)
59
+ rescue StandardError
60
+ # noop
61
+ end
62
+ raise("Passed value matched no type within the union, validation failed.")
63
+ end
64
+ end
65
+ end
@@ -1,21 +1,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "transfer_destination_step_message"
3
4
  require "ostruct"
4
5
  require "json"
5
6
 
6
7
  module Vapi
7
8
  class TransferDestinationStep
8
- # @return [String] This is the step to transfer to.
9
- attr_reader :step_name
10
- # @return [String] This is the message to say before transferring the call to the destination.
11
- # If this is not provided and transfer tool messages is not provided, default is
9
+ # @return [Vapi::TransferDestinationStepMessage] This is spoken to the customer before connecting them to the destination.
10
+ # Usage:
11
+ # - If this is not provided and transfer tool messages is not provided, default is
12
12
  # "Transferring the call now".
13
- # If set to "", nothing is spoken. This is useful when you want to silently
13
+ # - If set to "", nothing is spoken. This is useful when you want to silently
14
14
  # transfer. This is especially useful when transferring between assistants in a
15
15
  # squad. In this scenario, you likely also want to set
16
16
  # `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message`
17
17
  # for the destination assistant.
18
+ # This accepts a string or a ToolMessageStart class. Latter is useful if you want
19
+ # to specify multiple messages for different languages through the `contents`
20
+ # field.
18
21
  attr_reader :message
22
+ # @return [String] This is the step to transfer to.
23
+ attr_reader :step_name
19
24
  # @return [String] This is the description of the destination, used by the AI to choose when and
20
25
  # how to transfer the call.
21
26
  attr_reader :description
@@ -27,25 +32,29 @@ module Vapi
27
32
 
28
33
  OMIT = Object.new
29
34
 
30
- # @param step_name [String] This is the step to transfer to.
31
- # @param message [String] This is the message to say before transferring the call to the destination.
32
- # If this is not provided and transfer tool messages is not provided, default is
35
+ # @param message [Vapi::TransferDestinationStepMessage] This is spoken to the customer before connecting them to the destination.
36
+ # Usage:
37
+ # - If this is not provided and transfer tool messages is not provided, default is
33
38
  # "Transferring the call now".
34
- # If set to "", nothing is spoken. This is useful when you want to silently
39
+ # - If set to "", nothing is spoken. This is useful when you want to silently
35
40
  # transfer. This is especially useful when transferring between assistants in a
36
41
  # squad. In this scenario, you likely also want to set
37
42
  # `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message`
38
43
  # for the destination assistant.
44
+ # This accepts a string or a ToolMessageStart class. Latter is useful if you want
45
+ # to specify multiple messages for different languages through the `contents`
46
+ # field.
47
+ # @param step_name [String] This is the step to transfer to.
39
48
  # @param description [String] This is the description of the destination, used by the AI to choose when and
40
49
  # how to transfer the call.
41
50
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
42
51
  # @return [Vapi::TransferDestinationStep]
43
52
  def initialize(step_name:, message: OMIT, description: OMIT, additional_properties: nil)
44
- @step_name = step_name
45
53
  @message = message if message != OMIT
54
+ @step_name = step_name
46
55
  @description = description if description != OMIT
47
56
  @additional_properties = additional_properties
48
- @_field_set = { "stepName": step_name, "message": message, "description": description }.reject do |_k, v|
57
+ @_field_set = { "message": message, "stepName": step_name, "description": description }.reject do |_k, v|
49
58
  v == OMIT
50
59
  end
51
60
  end
@@ -57,12 +66,17 @@ module Vapi
57
66
  def self.from_json(json_object:)
58
67
  struct = JSON.parse(json_object, object_class: OpenStruct)
59
68
  parsed_json = JSON.parse(json_object)
69
+ if parsed_json["message"].nil?
70
+ message = nil
71
+ else
72
+ message = parsed_json["message"].to_json
73
+ message = Vapi::TransferDestinationStepMessage.from_json(json_object: message)
74
+ end
60
75
  step_name = parsed_json["stepName"]
61
- message = parsed_json["message"]
62
76
  description = parsed_json["description"]
63
77
  new(
64
- step_name: step_name,
65
78
  message: message,
79
+ step_name: step_name,
66
80
  description: description,
67
81
  additional_properties: struct
68
82
  )
@@ -82,8 +96,8 @@ module Vapi
82
96
  # @param obj [Object]
83
97
  # @return [Void]
84
98
  def self.validate_raw(obj:)
99
+ obj.message.nil? || Vapi::TransferDestinationStepMessage.validate_raw(obj: obj.message)
85
100
  obj.step_name.is_a?(String) != false || raise("Passed value for field obj.step_name is not the expected type, validation failed.")
86
- obj.message&.is_a?(String) != false || raise("Passed value for field obj.message is not the expected type, validation failed.")
87
101
  obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
88
102
  end
89
103
  end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "custom_message"
5
+
6
+ module Vapi
7
+ # This is spoken to the customer before connecting them to the destination.
8
+ # Usage:
9
+ # - If this is not provided and transfer tool messages is not provided, default is
10
+ # "Transferring the call now".
11
+ # - If set to "", nothing is spoken. This is useful when you want to silently
12
+ # transfer. This is especially useful when transferring between assistants in a
13
+ # squad. In this scenario, you likely also want to set
14
+ # `assistant.firstMessageMode=assistant-speaks-first-with-model-generated-message`
15
+ # for the destination assistant.
16
+ # This accepts a string or a ToolMessageStart class. Latter is useful if you want
17
+ # to specify multiple messages for different languages through the `contents`
18
+ # field.
19
+ class TransferDestinationStepMessage
20
+ # Deserialize a JSON object to an instance of TransferDestinationStepMessage
21
+ #
22
+ # @param json_object [String]
23
+ # @return [Vapi::TransferDestinationStepMessage]
24
+ def self.from_json(json_object:)
25
+ struct = JSON.parse(json_object, object_class: OpenStruct)
26
+ begin
27
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
28
+ return struct unless struct.nil?
29
+
30
+ return nil
31
+ rescue StandardError
32
+ # noop
33
+ end
34
+ begin
35
+ Vapi::CustomMessage.validate_raw(obj: struct)
36
+ return Vapi::CustomMessage.from_json(json_object: struct) unless struct.nil?
37
+
38
+ return nil
39
+ rescue StandardError
40
+ # noop
41
+ end
42
+ struct
43
+ end
44
+
45
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
46
+ # hash and check each fields type against the current object's property
47
+ # definitions.
48
+ #
49
+ # @param obj [Object]
50
+ # @return [Void]
51
+ def self.validate_raw(obj:)
52
+ begin
53
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
54
+ rescue StandardError
55
+ # noop
56
+ end
57
+ begin
58
+ return Vapi::CustomMessage.validate_raw(obj: obj)
59
+ rescue StandardError
60
+ # noop
61
+ end
62
+ raise("Passed value matched no type within the union, validation failed.")
63
+ end
64
+ end
65
+ end