vapi_server_sdk 0.0.0.pre.alpha7 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. checksums.yaml +4 -4
  2. data/lib/requests.rb +2 -10
  3. data/lib/types_export.rb +184 -26
  4. data/lib/vapi_server_sdk/analytics/client.rb +14 -43
  5. data/lib/vapi_server_sdk/assistants/client.rb +57 -60
  6. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_client_messages_item.rb +1 -0
  7. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_model.rb +39 -0
  8. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_server_messages_item.rb +1 -0
  9. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_transcriber.rb +27 -1
  10. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_voice.rb +26 -0
  11. data/lib/vapi_server_sdk/calls/client.rb +58 -28
  12. data/lib/vapi_server_sdk/knowledge_bases/client.rb +394 -0
  13. data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_create_request.rb +96 -0
  14. data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_create_response.rb +96 -0
  15. data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_delete_response.rb +96 -0
  16. data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_get_response.rb +96 -0
  17. data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_list_response_item.rb +96 -0
  18. data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_update_response.rb +96 -0
  19. data/lib/vapi_server_sdk/logs/client.rb +10 -6
  20. data/lib/vapi_server_sdk/squads/client.rb +56 -32
  21. data/lib/vapi_server_sdk/tools/client.rb +4 -0
  22. data/lib/vapi_server_sdk/tools/types/tools_create_request.rb +39 -0
  23. data/lib/vapi_server_sdk/tools/types/tools_create_response.rb +39 -0
  24. data/lib/vapi_server_sdk/tools/types/tools_delete_response.rb +39 -0
  25. data/lib/vapi_server_sdk/tools/types/tools_get_response.rb +39 -0
  26. data/lib/vapi_server_sdk/tools/types/tools_list_response_item.rb +39 -0
  27. data/lib/vapi_server_sdk/tools/types/tools_update_response.rb +39 -0
  28. data/lib/vapi_server_sdk/types/analytics_query_dto.rb +59 -0
  29. data/lib/vapi_server_sdk/types/anthropic_credential.rb +13 -3
  30. data/lib/vapi_server_sdk/types/anthropic_model.rb +21 -13
  31. data/lib/vapi_server_sdk/types/anthropic_model_model.rb +2 -0
  32. data/lib/vapi_server_sdk/types/anyscale_credential.rb +13 -3
  33. data/lib/vapi_server_sdk/types/anyscale_model.rb +21 -13
  34. data/lib/vapi_server_sdk/types/assembly_ai_credential.rb +111 -0
  35. data/lib/vapi_server_sdk/types/assembly_ai_transcriber.rb +97 -0
  36. data/lib/vapi_server_sdk/types/assistant.rb +42 -64
  37. data/lib/vapi_server_sdk/types/assistant_client_messages_item.rb +1 -0
  38. data/lib/vapi_server_sdk/types/assistant_custom_endpointing_rule.rb +100 -0
  39. data/lib/vapi_server_sdk/types/assistant_model.rb +39 -0
  40. data/lib/vapi_server_sdk/types/assistant_overrides.rb +57 -65
  41. data/lib/vapi_server_sdk/types/assistant_overrides_client_messages_item.rb +1 -0
  42. data/lib/vapi_server_sdk/types/assistant_overrides_model.rb +39 -0
  43. data/lib/vapi_server_sdk/types/assistant_overrides_server_messages_item.rb +1 -0
  44. data/lib/vapi_server_sdk/types/assistant_overrides_transcriber.rb +27 -1
  45. data/lib/vapi_server_sdk/types/assistant_overrides_voice.rb +26 -0
  46. data/lib/vapi_server_sdk/types/assistant_server_messages_item.rb +1 -0
  47. data/lib/vapi_server_sdk/types/assistant_transcriber.rb +27 -1
  48. data/lib/vapi_server_sdk/types/assistant_voice.rb +26 -0
  49. data/lib/vapi_server_sdk/types/auto_reload_plan.rb +65 -0
  50. data/lib/vapi_server_sdk/types/auto_reload_plan_dto.rb +65 -0
  51. data/lib/vapi_server_sdk/types/azure_credential.rb +129 -0
  52. data/lib/vapi_server_sdk/types/azure_credential_region.rb +23 -0
  53. data/lib/vapi_server_sdk/types/azure_open_ai_credential.rb +12 -2
  54. data/lib/vapi_server_sdk/types/azure_open_ai_credential_models_item.rb +1 -0
  55. data/lib/vapi_server_sdk/types/azure_open_ai_credential_region.rb +1 -0
  56. data/lib/vapi_server_sdk/types/azure_voice.rb +25 -21
  57. data/lib/vapi_server_sdk/types/bash_tool.rb +194 -0
  58. data/lib/vapi_server_sdk/types/bash_tool_messages_item.rb +120 -0
  59. data/lib/vapi_server_sdk/types/block_complete_message.rb +29 -4
  60. data/lib/vapi_server_sdk/types/block_start_message.rb +29 -4
  61. data/lib/vapi_server_sdk/types/both_custom_endpointing_rule.rb +126 -0
  62. data/lib/vapi_server_sdk/types/byo_sip_trunk_credential.rb +29 -9
  63. data/lib/vapi_server_sdk/types/call.rb +15 -1
  64. data/lib/vapi_server_sdk/types/call_ended_reason.rb +49 -24
  65. data/lib/vapi_server_sdk/types/call_log_privileged.rb +88 -0
  66. data/lib/vapi_server_sdk/types/call_log_privileged_level.rb +12 -0
  67. data/lib/vapi_server_sdk/types/call_logs_paginated_response.rb +75 -0
  68. data/lib/vapi_server_sdk/types/cartesia_credential.rb +13 -3
  69. data/lib/vapi_server_sdk/types/cartesia_voice.rb +25 -21
  70. data/lib/vapi_server_sdk/types/cartesia_voice_language.rb +9 -1
  71. data/lib/vapi_server_sdk/types/client_inbound_message_add_message.rb +25 -3
  72. data/lib/vapi_server_sdk/types/client_inbound_message_message.rb +13 -0
  73. data/lib/vapi_server_sdk/types/client_inbound_message_transfer.rb +63 -0
  74. data/lib/vapi_server_sdk/types/client_inbound_message_transfer_destination.rb +96 -0
  75. data/lib/vapi_server_sdk/types/{client_message_language_changed.rb → client_message_language_change_detected.rb} +5 -5
  76. data/lib/vapi_server_sdk/types/client_message_message.rb +22 -9
  77. data/lib/vapi_server_sdk/types/client_message_tool_calls_tool_with_tool_call_list_item.rb +77 -77
  78. data/lib/vapi_server_sdk/types/client_message_transfer_update.rb +116 -0
  79. data/lib/vapi_server_sdk/types/client_message_transfer_update_destination.rb +122 -0
  80. data/lib/vapi_server_sdk/types/computer_tool.rb +218 -0
  81. data/lib/vapi_server_sdk/types/computer_tool_messages_item.rb +120 -0
  82. data/lib/vapi_server_sdk/types/condition.rb +9 -9
  83. data/lib/vapi_server_sdk/types/create_anthropic_credential_dto.rb +11 -2
  84. data/lib/vapi_server_sdk/types/create_anyscale_credential_dto.rb +11 -2
  85. data/lib/vapi_server_sdk/types/create_assembly_ai_credential_dto.rb +74 -0
  86. data/lib/vapi_server_sdk/types/create_assistant_dto.rb +43 -65
  87. data/lib/vapi_server_sdk/types/create_assistant_dto_client_messages_item.rb +1 -0
  88. data/lib/vapi_server_sdk/types/create_assistant_dto_model.rb +39 -0
  89. data/lib/vapi_server_sdk/types/create_assistant_dto_server_messages_item.rb +1 -0
  90. data/lib/vapi_server_sdk/types/create_assistant_dto_transcriber.rb +27 -1
  91. data/lib/vapi_server_sdk/types/create_assistant_dto_voice.rb +26 -0
  92. data/lib/vapi_server_sdk/types/create_azure_credential_dto.rb +95 -0
  93. data/lib/vapi_server_sdk/types/create_azure_credential_dto_region.rb +23 -0
  94. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto.rb +13 -3
  95. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_models_item.rb +1 -0
  96. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_region.rb +1 -0
  97. data/lib/vapi_server_sdk/types/create_bash_tool_dto.rb +161 -0
  98. data/lib/vapi_server_sdk/types/create_bash_tool_dto_messages_item.rb +120 -0
  99. data/lib/vapi_server_sdk/types/create_byo_sip_trunk_credential_dto.rb +31 -11
  100. data/lib/vapi_server_sdk/types/create_cartesia_credential_dto.rb +11 -2
  101. data/lib/vapi_server_sdk/types/create_computer_tool_dto.rb +185 -0
  102. data/lib/vapi_server_sdk/types/create_computer_tool_dto_messages_item.rb +120 -0
  103. data/lib/vapi_server_sdk/types/create_custom_knowledge_base_dto.rb +137 -0
  104. data/lib/vapi_server_sdk/types/create_custom_llm_credential_dto.rb +31 -2
  105. data/lib/vapi_server_sdk/types/create_deep_infra_credential_dto.rb +11 -2
  106. data/lib/vapi_server_sdk/types/create_deepgram_credential_dto.rb +9 -2
  107. data/lib/vapi_server_sdk/types/create_eleven_labs_credential_dto.rb +11 -2
  108. data/lib/vapi_server_sdk/types/create_gcp_credential_dto.rb +10 -10
  109. data/lib/vapi_server_sdk/types/create_gladia_credential_dto.rb +11 -2
  110. data/lib/vapi_server_sdk/types/create_go_high_level_credential_dto.rb +11 -2
  111. data/lib/vapi_server_sdk/types/create_google_credential_dto.rb +76 -0
  112. data/lib/vapi_server_sdk/types/create_groq_credential_dto.rb +11 -2
  113. data/lib/vapi_server_sdk/types/create_inflection_ai_credential_dto.rb +76 -0
  114. data/lib/vapi_server_sdk/types/create_langfuse_credential_dto.rb +96 -0
  115. data/lib/vapi_server_sdk/types/create_lmnt_credential_dto.rb +11 -2
  116. data/lib/vapi_server_sdk/types/create_make_credential_dto.rb +17 -2
  117. data/lib/vapi_server_sdk/types/create_open_ai_credential_dto.rb +11 -2
  118. data/lib/vapi_server_sdk/types/create_open_router_credential_dto.rb +11 -2
  119. data/lib/vapi_server_sdk/types/create_org_dto.rb +21 -2
  120. data/lib/vapi_server_sdk/types/create_org_dto_channel.rb +10 -0
  121. data/lib/vapi_server_sdk/types/create_perplexity_ai_credential_dto.rb +11 -2
  122. data/lib/vapi_server_sdk/types/create_play_ht_credential_dto.rb +11 -2
  123. data/lib/vapi_server_sdk/types/create_rime_ai_credential_dto.rb +11 -2
  124. data/lib/vapi_server_sdk/types/create_runpod_credential_dto.rb +11 -2
  125. data/lib/vapi_server_sdk/types/create_s_3_credential_dto.rb +13 -3
  126. data/lib/vapi_server_sdk/types/{knowledge_base.rb → create_tavus_credential_dto.rb} +21 -21
  127. data/lib/vapi_server_sdk/types/create_text_editor_tool_dto.rb +161 -0
  128. data/lib/vapi_server_sdk/types/create_text_editor_tool_dto_messages_item.rb +120 -0
  129. data/lib/vapi_server_sdk/types/create_together_ai_credential_dto.rb +11 -2
  130. data/lib/vapi_server_sdk/types/create_trieve_knowledge_base_dto.rb +109 -0
  131. data/lib/vapi_server_sdk/types/create_twilio_credential_dto.rb +16 -2
  132. data/lib/vapi_server_sdk/types/create_vapi_phone_number_dto.rb +20 -2
  133. data/lib/vapi_server_sdk/types/create_vonage_credential_dto.rb +16 -2
  134. data/lib/vapi_server_sdk/types/create_webhook_credential_dto.rb +84 -0
  135. data/lib/vapi_server_sdk/types/create_x_ai_credential_dto.rb +76 -0
  136. data/lib/vapi_server_sdk/types/credits_buy_dto.rb +55 -0
  137. data/lib/vapi_server_sdk/types/custom_knowledge_base.rb +154 -0
  138. data/lib/vapi_server_sdk/types/custom_llm_credential.rb +46 -3
  139. data/lib/vapi_server_sdk/types/custom_llm_model.rb +23 -15
  140. data/lib/vapi_server_sdk/types/custom_message.rb +92 -0
  141. data/lib/vapi_server_sdk/types/custom_transcriber.rb +125 -0
  142. data/lib/vapi_server_sdk/types/custom_voice.rb +132 -0
  143. data/lib/vapi_server_sdk/types/customer_custom_endpointing_rule.rb +100 -0
  144. data/lib/vapi_server_sdk/types/deep_infra_credential.rb +13 -3
  145. data/lib/vapi_server_sdk/types/deep_infra_model.rb +21 -13
  146. data/lib/vapi_server_sdk/types/deepgram_credential.rb +9 -1
  147. data/lib/vapi_server_sdk/types/deepgram_transcriber.rb +69 -11
  148. data/lib/vapi_server_sdk/types/deepgram_voice.rb +17 -17
  149. data/lib/vapi_server_sdk/types/eleven_labs_credential.rb +13 -3
  150. data/lib/vapi_server_sdk/types/eleven_labs_voice.rb +28 -24
  151. data/lib/vapi_server_sdk/types/fallback_azure_voice.rb +100 -0
  152. data/lib/vapi_server_sdk/types/fallback_azure_voice_id.rb +53 -0
  153. data/lib/vapi_server_sdk/types/fallback_azure_voice_voice_id.rb +9 -0
  154. data/lib/vapi_server_sdk/types/fallback_cartesia_voice.rb +100 -0
  155. data/lib/vapi_server_sdk/types/fallback_cartesia_voice_language.rb +23 -0
  156. data/lib/vapi_server_sdk/types/fallback_cartesia_voice_model.rb +10 -0
  157. data/lib/vapi_server_sdk/types/fallback_custom_voice.rb +117 -0
  158. data/lib/vapi_server_sdk/types/fallback_deepgram_voice.rb +81 -0
  159. data/lib/vapi_server_sdk/types/fallback_deepgram_voice_id.rb +53 -0
  160. data/lib/vapi_server_sdk/types/fallback_deepgram_voice_id_enum.rb +18 -0
  161. data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice.rb +164 -0
  162. data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice_id.rb +54 -0
  163. data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice_id_enum.rb +21 -0
  164. data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice_model.rb +12 -0
  165. data/lib/vapi_server_sdk/types/fallback_lmnt_voice.rb +88 -0
  166. data/lib/vapi_server_sdk/types/fallback_lmnt_voice_id.rb +53 -0
  167. data/lib/vapi_server_sdk/types/fallback_lmnt_voice_id_enum.rb +8 -0
  168. data/lib/vapi_server_sdk/types/fallback_neets_voice.rb +81 -0
  169. data/lib/vapi_server_sdk/types/fallback_neets_voice_id.rb +53 -0
  170. data/lib/vapi_server_sdk/types/fallback_neets_voice_id_enum.rb +7 -0
  171. data/lib/vapi_server_sdk/types/fallback_open_ai_voice.rb +87 -0
  172. data/lib/vapi_server_sdk/types/fallback_open_ai_voice_id.rb +20 -0
  173. data/lib/vapi_server_sdk/types/fallback_plan.rb +61 -0
  174. data/lib/vapi_server_sdk/types/fallback_plan_voices_item.rb +211 -0
  175. data/lib/vapi_server_sdk/types/fallback_play_ht_voice.rb +172 -0
  176. data/lib/vapi_server_sdk/types/fallback_play_ht_voice_emotion.rb +19 -0
  177. data/lib/vapi_server_sdk/types/fallback_play_ht_voice_id.rb +53 -0
  178. data/lib/vapi_server_sdk/types/fallback_play_ht_voice_id_enum.rb +16 -0
  179. data/lib/vapi_server_sdk/types/fallback_play_ht_voice_language.rb +44 -0
  180. data/lib/vapi_server_sdk/types/fallback_play_ht_voice_model.rb +10 -0
  181. data/lib/vapi_server_sdk/types/fallback_rime_ai_voice.rb +96 -0
  182. data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_id.rb +53 -0
  183. data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_id_enum.rb +87 -0
  184. data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_model.rb +9 -0
  185. data/lib/vapi_server_sdk/types/fallback_tavus_voice.rb +147 -0
  186. data/lib/vapi_server_sdk/types/fallback_tavus_voice_voice_id.rb +53 -0
  187. data/lib/vapi_server_sdk/types/format_plan.rb +0 -2
  188. data/lib/vapi_server_sdk/types/function_tool_with_tool_call.rb +10 -1
  189. data/lib/vapi_server_sdk/types/gcp_credential.rb +2 -2
  190. data/lib/vapi_server_sdk/types/ghl_tool_with_tool_call.rb +9 -1
  191. data/lib/vapi_server_sdk/types/gladia_credential.rb +13 -3
  192. data/lib/vapi_server_sdk/types/go_high_level_credential.rb +13 -3
  193. data/lib/vapi_server_sdk/types/google_credential.rb +113 -0
  194. data/lib/vapi_server_sdk/types/google_model.rb +178 -0
  195. data/lib/vapi_server_sdk/types/google_model_model.rb +12 -0
  196. data/lib/vapi_server_sdk/types/google_model_tools_item.rb +159 -0
  197. data/lib/vapi_server_sdk/types/groq_credential.rb +13 -3
  198. data/lib/vapi_server_sdk/types/groq_model.rb +21 -13
  199. data/lib/vapi_server_sdk/types/hipaa_buy_dto.rb +65 -0
  200. data/lib/vapi_server_sdk/types/inflection_ai_credential.rb +113 -0
  201. data/lib/vapi_server_sdk/types/inflection_ai_model.rb +177 -0
  202. data/lib/vapi_server_sdk/types/inflection_ai_model_tools_item.rb +159 -0
  203. data/lib/vapi_server_sdk/types/invite_user_dto.rb +9 -9
  204. data/lib/vapi_server_sdk/types/knowledge_base_response_document.rb +74 -0
  205. data/lib/vapi_server_sdk/types/langfuse_credential.rb +130 -0
  206. data/lib/vapi_server_sdk/types/lmnt_credential.rb +13 -3
  207. data/lib/vapi_server_sdk/types/lmnt_voice.rb +18 -14
  208. data/lib/vapi_server_sdk/types/log.rb +12 -4
  209. data/lib/vapi_server_sdk/types/log_resource.rb +8 -0
  210. data/lib/vapi_server_sdk/types/make_credential.rb +13 -3
  211. data/lib/vapi_server_sdk/types/make_tool_with_tool_call.rb +9 -1
  212. data/lib/vapi_server_sdk/types/neets_voice.rb +17 -17
  213. data/lib/vapi_server_sdk/types/o_auth_2_authentication_plan.rb +79 -0
  214. data/lib/vapi_server_sdk/types/oauth_2_authentication_session.rb +68 -0
  215. data/lib/vapi_server_sdk/types/open_ai_credential.rb +13 -3
  216. data/lib/vapi_server_sdk/types/open_ai_function.rb +30 -4
  217. data/lib/vapi_server_sdk/types/open_ai_model.rb +23 -15
  218. data/lib/vapi_server_sdk/types/open_ai_model_fallback_models_item.rb +2 -0
  219. data/lib/vapi_server_sdk/types/open_ai_model_model.rb +2 -0
  220. data/lib/vapi_server_sdk/types/open_ai_voice.rb +22 -14
  221. data/lib/vapi_server_sdk/types/open_ai_voice_id.rb +7 -0
  222. data/lib/vapi_server_sdk/types/open_router_credential.rb +13 -3
  223. data/lib/vapi_server_sdk/types/open_router_model.rb +21 -13
  224. data/lib/vapi_server_sdk/types/org.rb +35 -2
  225. data/lib/vapi_server_sdk/types/org_channel.rb +10 -0
  226. data/lib/vapi_server_sdk/types/org_with_org_user.rb +262 -0
  227. data/lib/vapi_server_sdk/types/org_with_org_user_channel.rb +10 -0
  228. data/lib/vapi_server_sdk/types/org_with_org_user_role.rb +9 -0
  229. data/lib/vapi_server_sdk/types/payment.rb +167 -0
  230. data/lib/vapi_server_sdk/types/payment_retry_dto.rb +55 -0
  231. data/lib/vapi_server_sdk/types/payment_status.rb +11 -0
  232. data/lib/vapi_server_sdk/types/payments_paginated_response.rb +75 -0
  233. data/lib/vapi_server_sdk/types/perplexity_ai_credential.rb +13 -3
  234. data/lib/vapi_server_sdk/types/perplexity_ai_model.rb +21 -13
  235. data/lib/vapi_server_sdk/types/phone_number_paginated_response.rb +75 -0
  236. data/lib/vapi_server_sdk/types/phone_number_paginated_response_results_item.rb +121 -0
  237. data/lib/vapi_server_sdk/types/play_ht_credential.rb +13 -2
  238. data/lib/vapi_server_sdk/types/play_ht_voice.rb +37 -15
  239. data/lib/vapi_server_sdk/types/play_ht_voice_language.rb +44 -0
  240. data/lib/vapi_server_sdk/types/play_ht_voice_model.rb +10 -0
  241. data/lib/vapi_server_sdk/types/regex_option.rb +2 -2
  242. data/lib/vapi_server_sdk/types/regex_option_type.rb +1 -1
  243. data/lib/vapi_server_sdk/types/regex_replacement.rb +14 -4
  244. data/lib/vapi_server_sdk/types/rime_ai_credential.rb +13 -3
  245. data/lib/vapi_server_sdk/types/rime_ai_voice.rb +18 -14
  246. data/lib/vapi_server_sdk/types/runpod_credential.rb +13 -3
  247. data/lib/vapi_server_sdk/types/s_3_credential.rb +13 -3
  248. data/lib/vapi_server_sdk/types/server.rb +16 -2
  249. data/lib/vapi_server_sdk/types/server_message_end_of_call_report_ended_reason.rb +49 -24
  250. data/lib/vapi_server_sdk/types/server_message_knowledge_base_request.rb +195 -0
  251. data/lib/vapi_server_sdk/types/server_message_knowledge_base_request_messages_item.rb +97 -0
  252. data/lib/vapi_server_sdk/types/{server_message_language_changed_phone_number.rb → server_message_knowledge_base_request_phone_number.rb} +8 -8
  253. data/lib/vapi_server_sdk/types/{server_message_language_changed.rb → server_message_language_change_detected.rb} +10 -10
  254. data/lib/vapi_server_sdk/types/server_message_language_change_detected_phone_number.rb +125 -0
  255. data/lib/vapi_server_sdk/types/server_message_message.rb +22 -9
  256. data/lib/vapi_server_sdk/types/server_message_response_knowledge_base_request.rb +81 -0
  257. data/lib/vapi_server_sdk/types/server_message_response_message_response.rb +14 -0
  258. data/lib/vapi_server_sdk/types/server_message_status_update_ended_reason.rb +49 -24
  259. data/lib/vapi_server_sdk/types/server_message_tool_calls_tool_with_tool_call_list_item.rb +77 -77
  260. data/lib/vapi_server_sdk/types/server_message_transfer_update.rb +18 -2
  261. data/lib/vapi_server_sdk/types/sip_authentication.rb +80 -0
  262. data/lib/vapi_server_sdk/types/start_speaking_plan.rb +54 -10
  263. data/lib/vapi_server_sdk/types/start_speaking_plan_custom_endpointing_rules_item.rb +108 -0
  264. data/lib/vapi_server_sdk/types/structured_data_plan.rb +28 -10
  265. data/lib/vapi_server_sdk/types/subscription.rb +336 -0
  266. data/lib/vapi_server_sdk/types/subscription_concurrency_line_buy_dto.rb +55 -0
  267. data/lib/vapi_server_sdk/types/subscription_concurrency_line_remove_dto.rb +55 -0
  268. data/lib/vapi_server_sdk/types/subscription_coupon_add_dto.rb +67 -0
  269. data/lib/vapi_server_sdk/types/subscription_monthly_charge.rb +65 -0
  270. data/lib/vapi_server_sdk/types/subscription_status.rb +10 -0
  271. data/lib/vapi_server_sdk/types/subscription_type.rb +10 -0
  272. data/lib/vapi_server_sdk/types/success_evaluation_plan.rb +38 -16
  273. data/lib/vapi_server_sdk/types/summary_plan.rb +26 -8
  274. data/lib/vapi_server_sdk/types/sync_voice_library_dto_providers_item.rb +1 -0
  275. data/lib/vapi_server_sdk/types/tavus_conversation_properties.rb +173 -0
  276. data/lib/vapi_server_sdk/types/tavus_credential.rb +111 -0
  277. data/lib/vapi_server_sdk/types/tavus_voice.rb +163 -0
  278. data/lib/vapi_server_sdk/types/tavus_voice_voice_id.rb +53 -0
  279. data/lib/vapi_server_sdk/types/text_content.rb +73 -0
  280. data/lib/vapi_server_sdk/types/text_content_language.rb +191 -0
  281. data/lib/vapi_server_sdk/types/text_editor_tool.rb +194 -0
  282. data/lib/vapi_server_sdk/types/text_editor_tool_messages_item.rb +120 -0
  283. data/lib/vapi_server_sdk/types/together_ai_credential.rb +13 -3
  284. data/lib/vapi_server_sdk/types/together_ai_model.rb +21 -13
  285. data/lib/vapi_server_sdk/types/tool_message_complete.rb +29 -3
  286. data/lib/vapi_server_sdk/types/tool_message_delayed.rb +30 -3
  287. data/lib/vapi_server_sdk/types/tool_message_failed.rb +30 -3
  288. data/lib/vapi_server_sdk/types/tool_message_start.rb +29 -4
  289. data/lib/vapi_server_sdk/types/transfer_destination_assistant.rb +79 -33
  290. data/lib/vapi_server_sdk/types/transfer_destination_assistant_message.rb +65 -0
  291. data/lib/vapi_server_sdk/types/transfer_destination_number.rb +56 -24
  292. data/lib/vapi_server_sdk/types/transfer_destination_number_message.rb +65 -0
  293. data/lib/vapi_server_sdk/types/transfer_destination_sip.rb +60 -15
  294. data/lib/vapi_server_sdk/types/transfer_destination_sip_message.rb +65 -0
  295. data/lib/vapi_server_sdk/types/transfer_destination_step.rb +28 -14
  296. data/lib/vapi_server_sdk/types/transfer_destination_step_message.rb +65 -0
  297. data/lib/vapi_server_sdk/types/transfer_plan.rb +141 -0
  298. data/lib/vapi_server_sdk/types/transfer_plan_message.rb +58 -0
  299. data/lib/vapi_server_sdk/types/transfer_plan_mode.rb +32 -0
  300. data/lib/vapi_server_sdk/types/transport.rb +70 -0
  301. data/lib/vapi_server_sdk/types/transport_cost.rb +12 -2
  302. data/lib/vapi_server_sdk/types/transport_cost_provider.rb +9 -0
  303. data/lib/vapi_server_sdk/types/transport_provider.rb +11 -0
  304. data/lib/vapi_server_sdk/types/trieve_knowledge_base.rb +125 -0
  305. data/lib/vapi_server_sdk/types/trieve_knowledge_base_vector_store_create_plan.rb +109 -0
  306. data/lib/vapi_server_sdk/types/trieve_knowledge_base_vector_store_search_plan.rb +95 -0
  307. data/lib/vapi_server_sdk/types/trieve_knowledge_base_vector_store_search_plan_search_type.rb +12 -0
  308. data/lib/vapi_server_sdk/types/twilio_credential.rb +12 -2
  309. data/lib/vapi_server_sdk/types/update_anthropic_credential_dto.rb +11 -2
  310. data/lib/vapi_server_sdk/types/update_anyscale_credential_dto.rb +11 -2
  311. data/lib/vapi_server_sdk/types/update_assembly_ai_credential_dto.rb +74 -0
  312. data/lib/vapi_server_sdk/types/update_azure_credential_dto.rb +95 -0
  313. data/lib/vapi_server_sdk/types/update_azure_credential_dto_region.rb +23 -0
  314. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto.rb +13 -3
  315. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_models_item.rb +1 -0
  316. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_region.rb +1 -0
  317. data/lib/vapi_server_sdk/types/update_byo_sip_trunk_credential_dto.rb +31 -11
  318. data/lib/vapi_server_sdk/types/update_cartesia_credential_dto.rb +11 -2
  319. data/lib/vapi_server_sdk/types/update_custom_llm_credential_dto.rb +31 -2
  320. data/lib/vapi_server_sdk/types/update_deep_infra_credential_dto.rb +11 -2
  321. data/lib/vapi_server_sdk/types/update_deepgram_credential_dto.rb +9 -2
  322. data/lib/vapi_server_sdk/types/update_eleven_labs_credential_dto.rb +11 -2
  323. data/lib/vapi_server_sdk/types/update_gcp_credential_dto.rb +10 -10
  324. data/lib/vapi_server_sdk/types/update_gladia_credential_dto.rb +11 -2
  325. data/lib/vapi_server_sdk/types/update_go_high_level_credential_dto.rb +11 -2
  326. data/lib/vapi_server_sdk/types/update_google_credential_dto.rb +76 -0
  327. data/lib/vapi_server_sdk/types/update_groq_credential_dto.rb +11 -2
  328. data/lib/vapi_server_sdk/types/update_inflection_ai_credential_dto.rb +76 -0
  329. data/lib/vapi_server_sdk/types/update_langfuse_credential_dto.rb +96 -0
  330. data/lib/vapi_server_sdk/types/update_lmnt_credential_dto.rb +11 -2
  331. data/lib/vapi_server_sdk/types/update_make_credential_dto.rb +17 -2
  332. data/lib/vapi_server_sdk/types/update_open_ai_credential_dto.rb +11 -2
  333. data/lib/vapi_server_sdk/types/update_open_router_credential_dto.rb +11 -2
  334. data/lib/vapi_server_sdk/types/update_org_dto.rb +21 -2
  335. data/lib/vapi_server_sdk/types/update_org_dto_channel.rb +10 -0
  336. data/lib/vapi_server_sdk/types/update_perplexity_ai_credential_dto.rb +11 -2
  337. data/lib/vapi_server_sdk/types/update_play_ht_credential_dto.rb +11 -2
  338. data/lib/vapi_server_sdk/types/update_rime_ai_credential_dto.rb +11 -2
  339. data/lib/vapi_server_sdk/types/update_runpod_credential_dto.rb +11 -2
  340. data/lib/vapi_server_sdk/types/update_s_3_credential_dto.rb +13 -3
  341. data/lib/vapi_server_sdk/types/update_tavus_credential_dto.rb +74 -0
  342. data/lib/vapi_server_sdk/types/update_together_ai_credential_dto.rb +11 -2
  343. data/lib/vapi_server_sdk/types/update_twilio_credential_dto.rb +16 -2
  344. data/lib/vapi_server_sdk/types/update_vonage_credential_dto.rb +16 -2
  345. data/lib/vapi_server_sdk/types/update_x_ai_credential_dto.rb +76 -0
  346. data/lib/vapi_server_sdk/types/vapi_cost.rb +10 -2
  347. data/lib/vapi_server_sdk/types/vapi_cost_sub_type.rb +9 -0
  348. data/lib/vapi_server_sdk/types/vapi_model.rb +24 -16
  349. data/lib/vapi_server_sdk/types/vapi_phone_number.rb +20 -2
  350. data/lib/vapi_server_sdk/types/vonage_credential.rb +12 -2
  351. data/lib/vapi_server_sdk/types/webhook_credential.rb +134 -0
  352. data/lib/vapi_server_sdk/types/x_ai_credential.rb +113 -0
  353. data/lib/vapi_server_sdk/types/xai_model.rb +177 -0
  354. data/lib/vapi_server_sdk/types/xai_model_tools_item.rb +159 -0
  355. data/lib/vapi_server_sdk.rb +7 -0
  356. metadata +167 -8
@@ -7,22 +7,6 @@ require_relative "make_tool_with_tool_call"
7
7
 
8
8
  module Vapi
9
9
  class ClientMessageToolCallsToolWithToolCallListItem
10
- # @return [Object]
11
- attr_reader :member
12
- # @return [String]
13
- attr_reader :discriminant
14
-
15
- private_class_method :new
16
- alias kind_of? is_a?
17
-
18
- # @param member [Object]
19
- # @param discriminant [String]
20
- # @return [Vapi::ClientMessageToolCallsToolWithToolCallListItem]
21
- def initialize(member:, discriminant:)
22
- @member = member
23
- @discriminant = discriminant
24
- end
25
-
26
10
  # Deserialize a JSON object to an instance of
27
11
  # ClientMessageToolCallsToolWithToolCallListItem
28
12
  #
@@ -30,34 +14,55 @@ module Vapi
30
14
  # @return [Vapi::ClientMessageToolCallsToolWithToolCallListItem]
31
15
  def self.from_json(json_object:)
32
16
  struct = JSON.parse(json_object, object_class: OpenStruct)
33
- member = case struct.type
34
- when "function"
35
- Vapi::FunctionToolWithToolCall.from_json(json_object: json_object)
36
- when "ghl"
37
- Vapi::GhlToolWithToolCall.from_json(json_object: json_object)
38
- when "make"
39
- Vapi::MakeToolWithToolCall.from_json(json_object: json_object)
40
- else
41
- Vapi::FunctionToolWithToolCall.from_json(json_object: json_object)
42
- end
43
- new(member: member, discriminant: struct.type)
44
- end
17
+ begin
18
+ Vapi::FunctionToolWithToolCall.validate_raw(obj: struct)
19
+ return Vapi::FunctionToolWithToolCall.from_json(json_object: struct) unless struct.nil?
45
20
 
46
- # For Union Types, to_json functionality is delegated to the wrapped member.
47
- #
48
- # @return [String]
49
- def to_json(*_args)
50
- case @discriminant
51
- when "function"
52
- { **@member.to_json, type: @discriminant }.to_json
53
- when "ghl"
54
- { **@member.to_json, type: @discriminant }.to_json
55
- when "make"
56
- { **@member.to_json, type: @discriminant }.to_json
57
- else
58
- { "type": @discriminant, value: @member }.to_json
21
+ return nil
22
+ rescue StandardError
23
+ # noop
24
+ end
25
+ begin
26
+ Vapi::GhlToolWithToolCall.validate_raw(obj: struct)
27
+ return Vapi::GhlToolWithToolCall.from_json(json_object: struct) unless struct.nil?
28
+
29
+ return nil
30
+ rescue StandardError
31
+ # noop
59
32
  end
60
- @member.to_json
33
+ begin
34
+ Vapi::MakeToolWithToolCall.validate_raw(obj: struct)
35
+ return Vapi::MakeToolWithToolCall.from_json(json_object: struct) unless struct.nil?
36
+
37
+ return nil
38
+ rescue StandardError
39
+ # noop
40
+ end
41
+ begin
42
+ struct.is_a?(Object) != false || raise("Passed value for field struct is not the expected type, validation failed.")
43
+ return struct unless struct.nil?
44
+
45
+ return nil
46
+ rescue StandardError
47
+ # noop
48
+ end
49
+ begin
50
+ struct.is_a?(Object) != false || raise("Passed value for field struct is not the expected type, validation failed.")
51
+ return struct unless struct.nil?
52
+
53
+ return nil
54
+ rescue StandardError
55
+ # noop
56
+ end
57
+ begin
58
+ struct.is_a?(Object) != false || raise("Passed value for field struct is not the expected type, validation failed.")
59
+ return struct unless struct.nil?
60
+
61
+ return nil
62
+ rescue StandardError
63
+ # noop
64
+ end
65
+ struct
61
66
  end
62
67
 
63
68
  # Leveraged for Union-type generation, validate_raw attempts to parse the given
@@ -67,42 +72,37 @@ module Vapi
67
72
  # @param obj [Object]
68
73
  # @return [Void]
69
74
  def self.validate_raw(obj:)
70
- case obj.type
71
- when "function"
72
- Vapi::FunctionToolWithToolCall.validate_raw(obj: obj)
73
- when "ghl"
74
- Vapi::GhlToolWithToolCall.validate_raw(obj: obj)
75
- when "make"
76
- Vapi::MakeToolWithToolCall.validate_raw(obj: obj)
77
- else
78
- raise("Passed value matched no type within the union, validation failed.")
75
+ begin
76
+ return Vapi::FunctionToolWithToolCall.validate_raw(obj: obj)
77
+ rescue StandardError
78
+ # noop
79
79
  end
80
- end
81
-
82
- # For Union Types, is_a? functionality is delegated to the wrapped member.
83
- #
84
- # @param obj [Object]
85
- # @return [Boolean]
86
- def is_a?(obj)
87
- @member.is_a?(obj)
88
- end
89
-
90
- # @param member [Vapi::FunctionToolWithToolCall]
91
- # @return [Vapi::ClientMessageToolCallsToolWithToolCallListItem]
92
- def self.function(member:)
93
- new(member: member, discriminant: "function")
94
- end
95
-
96
- # @param member [Vapi::GhlToolWithToolCall]
97
- # @return [Vapi::ClientMessageToolCallsToolWithToolCallListItem]
98
- def self.ghl(member:)
99
- new(member: member, discriminant: "ghl")
100
- end
101
-
102
- # @param member [Vapi::MakeToolWithToolCall]
103
- # @return [Vapi::ClientMessageToolCallsToolWithToolCallListItem]
104
- def self.make(member:)
105
- new(member: member, discriminant: "make")
80
+ begin
81
+ return Vapi::GhlToolWithToolCall.validate_raw(obj: obj)
82
+ rescue StandardError
83
+ # noop
84
+ end
85
+ begin
86
+ return Vapi::MakeToolWithToolCall.validate_raw(obj: obj)
87
+ rescue StandardError
88
+ # noop
89
+ end
90
+ begin
91
+ return obj.is_a?(Object) != false || raise("Passed value for field obj is not the expected type, validation failed.")
92
+ rescue StandardError
93
+ # noop
94
+ end
95
+ begin
96
+ return obj.is_a?(Object) != false || raise("Passed value for field obj is not the expected type, validation failed.")
97
+ rescue StandardError
98
+ # noop
99
+ end
100
+ begin
101
+ return obj.is_a?(Object) != false || raise("Passed value for field obj is not the expected type, validation failed.")
102
+ rescue StandardError
103
+ # noop
104
+ end
105
+ raise("Passed value matched no type within the union, validation failed.")
106
106
  end
107
107
  end
108
108
  end
@@ -0,0 +1,116 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "client_message_transfer_update_destination"
4
+ require_relative "create_assistant_dto"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module Vapi
9
+ class ClientMessageTransferUpdate
10
+ # @return [Vapi::ClientMessageTransferUpdateDestination] This is the destination of the transfer.
11
+ attr_reader :destination
12
+ # @return [Vapi::CreateAssistantDto] This is the assistant that the call is being transferred to. This is only sent
13
+ # if `destination.type` is "assistant".
14
+ attr_reader :to_assistant
15
+ # @return [Vapi::CreateAssistantDto] This is the assistant that the call is being transferred from. This is only sent
16
+ # if `destination.type` is "assistant".
17
+ attr_reader :from_assistant
18
+ # @return [Hash{String => Object}] This is the step that the conversation moved to.
19
+ attr_reader :to_step_record
20
+ # @return [Hash{String => Object}] This is the step that the conversation moved from. =
21
+ attr_reader :from_step_record
22
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
23
+ attr_reader :additional_properties
24
+ # @return [Object]
25
+ attr_reader :_field_set
26
+ protected :_field_set
27
+
28
+ OMIT = Object.new
29
+
30
+ # @param destination [Vapi::ClientMessageTransferUpdateDestination] This is the destination of the transfer.
31
+ # @param to_assistant [Vapi::CreateAssistantDto] This is the assistant that the call is being transferred to. This is only sent
32
+ # if `destination.type` is "assistant".
33
+ # @param from_assistant [Vapi::CreateAssistantDto] This is the assistant that the call is being transferred from. This is only sent
34
+ # if `destination.type` is "assistant".
35
+ # @param to_step_record [Hash{String => Object}] This is the step that the conversation moved to.
36
+ # @param from_step_record [Hash{String => Object}] This is the step that the conversation moved from. =
37
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
38
+ # @return [Vapi::ClientMessageTransferUpdate]
39
+ def initialize(destination: OMIT, to_assistant: OMIT, from_assistant: OMIT, to_step_record: OMIT,
40
+ from_step_record: OMIT, additional_properties: nil)
41
+ @destination = destination if destination != OMIT
42
+ @to_assistant = to_assistant if to_assistant != OMIT
43
+ @from_assistant = from_assistant if from_assistant != OMIT
44
+ @to_step_record = to_step_record if to_step_record != OMIT
45
+ @from_step_record = from_step_record if from_step_record != OMIT
46
+ @additional_properties = additional_properties
47
+ @_field_set = {
48
+ "destination": destination,
49
+ "toAssistant": to_assistant,
50
+ "fromAssistant": from_assistant,
51
+ "toStepRecord": to_step_record,
52
+ "fromStepRecord": from_step_record
53
+ }.reject do |_k, v|
54
+ v == OMIT
55
+ end
56
+ end
57
+
58
+ # Deserialize a JSON object to an instance of ClientMessageTransferUpdate
59
+ #
60
+ # @param json_object [String]
61
+ # @return [Vapi::ClientMessageTransferUpdate]
62
+ def self.from_json(json_object:)
63
+ struct = JSON.parse(json_object, object_class: OpenStruct)
64
+ parsed_json = JSON.parse(json_object)
65
+ if parsed_json["destination"].nil?
66
+ destination = nil
67
+ else
68
+ destination = parsed_json["destination"].to_json
69
+ destination = Vapi::ClientMessageTransferUpdateDestination.from_json(json_object: destination)
70
+ end
71
+ if parsed_json["toAssistant"].nil?
72
+ to_assistant = nil
73
+ else
74
+ to_assistant = parsed_json["toAssistant"].to_json
75
+ to_assistant = Vapi::CreateAssistantDto.from_json(json_object: to_assistant)
76
+ end
77
+ if parsed_json["fromAssistant"].nil?
78
+ from_assistant = nil
79
+ else
80
+ from_assistant = parsed_json["fromAssistant"].to_json
81
+ from_assistant = Vapi::CreateAssistantDto.from_json(json_object: from_assistant)
82
+ end
83
+ to_step_record = parsed_json["toStepRecord"]
84
+ from_step_record = parsed_json["fromStepRecord"]
85
+ new(
86
+ destination: destination,
87
+ to_assistant: to_assistant,
88
+ from_assistant: from_assistant,
89
+ to_step_record: to_step_record,
90
+ from_step_record: from_step_record,
91
+ additional_properties: struct
92
+ )
93
+ end
94
+
95
+ # Serialize an instance of ClientMessageTransferUpdate to a JSON object
96
+ #
97
+ # @return [String]
98
+ def to_json(*_args)
99
+ @_field_set&.to_json
100
+ end
101
+
102
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
103
+ # hash and check each fields type against the current object's property
104
+ # definitions.
105
+ #
106
+ # @param obj [Object]
107
+ # @return [Void]
108
+ def self.validate_raw(obj:)
109
+ obj.destination.nil? || Vapi::ClientMessageTransferUpdateDestination.validate_raw(obj: obj.destination)
110
+ obj.to_assistant.nil? || Vapi::CreateAssistantDto.validate_raw(obj: obj.to_assistant)
111
+ obj.from_assistant.nil? || Vapi::CreateAssistantDto.validate_raw(obj: obj.from_assistant)
112
+ obj.to_step_record&.is_a?(Hash) != false || raise("Passed value for field obj.to_step_record is not the expected type, validation failed.")
113
+ obj.from_step_record&.is_a?(Hash) != false || raise("Passed value for field obj.from_step_record is not the expected type, validation failed.")
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,122 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "transfer_destination_assistant"
5
+ require_relative "transfer_destination_step"
6
+ require_relative "transfer_destination_number"
7
+ require_relative "transfer_destination_sip"
8
+
9
+ module Vapi
10
+ # This is the destination of the transfer.
11
+ class ClientMessageTransferUpdateDestination
12
+ # @return [Object]
13
+ attr_reader :member
14
+ # @return [String]
15
+ attr_reader :discriminant
16
+
17
+ private_class_method :new
18
+ alias kind_of? is_a?
19
+
20
+ # @param member [Object]
21
+ # @param discriminant [String]
22
+ # @return [Vapi::ClientMessageTransferUpdateDestination]
23
+ def initialize(member:, discriminant:)
24
+ @member = member
25
+ @discriminant = discriminant
26
+ end
27
+
28
+ # Deserialize a JSON object to an instance of
29
+ # ClientMessageTransferUpdateDestination
30
+ #
31
+ # @param json_object [String]
32
+ # @return [Vapi::ClientMessageTransferUpdateDestination]
33
+ def self.from_json(json_object:)
34
+ struct = JSON.parse(json_object, object_class: OpenStruct)
35
+ member = case struct.type
36
+ when "assistant"
37
+ Vapi::TransferDestinationAssistant.from_json(json_object: json_object)
38
+ when "step"
39
+ Vapi::TransferDestinationStep.from_json(json_object: json_object)
40
+ when "number"
41
+ Vapi::TransferDestinationNumber.from_json(json_object: json_object)
42
+ when "sip"
43
+ Vapi::TransferDestinationSip.from_json(json_object: json_object)
44
+ else
45
+ Vapi::TransferDestinationAssistant.from_json(json_object: json_object)
46
+ end
47
+ new(member: member, discriminant: struct.type)
48
+ end
49
+
50
+ # For Union Types, to_json functionality is delegated to the wrapped member.
51
+ #
52
+ # @return [String]
53
+ def to_json(*_args)
54
+ case @discriminant
55
+ when "assistant"
56
+ { **@member.to_json, type: @discriminant }.to_json
57
+ when "step"
58
+ { **@member.to_json, type: @discriminant }.to_json
59
+ when "number"
60
+ { **@member.to_json, type: @discriminant }.to_json
61
+ when "sip"
62
+ { **@member.to_json, type: @discriminant }.to_json
63
+ else
64
+ { "type": @discriminant, value: @member }.to_json
65
+ end
66
+ @member.to_json
67
+ end
68
+
69
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
70
+ # hash and check each fields type against the current object's property
71
+ # definitions.
72
+ #
73
+ # @param obj [Object]
74
+ # @return [Void]
75
+ def self.validate_raw(obj:)
76
+ case obj.type
77
+ when "assistant"
78
+ Vapi::TransferDestinationAssistant.validate_raw(obj: obj)
79
+ when "step"
80
+ Vapi::TransferDestinationStep.validate_raw(obj: obj)
81
+ when "number"
82
+ Vapi::TransferDestinationNumber.validate_raw(obj: obj)
83
+ when "sip"
84
+ Vapi::TransferDestinationSip.validate_raw(obj: obj)
85
+ else
86
+ raise("Passed value matched no type within the union, validation failed.")
87
+ end
88
+ end
89
+
90
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
91
+ #
92
+ # @param obj [Object]
93
+ # @return [Boolean]
94
+ def is_a?(obj)
95
+ @member.is_a?(obj)
96
+ end
97
+
98
+ # @param member [Vapi::TransferDestinationAssistant]
99
+ # @return [Vapi::ClientMessageTransferUpdateDestination]
100
+ def self.assistant(member:)
101
+ new(member: member, discriminant: "assistant")
102
+ end
103
+
104
+ # @param member [Vapi::TransferDestinationStep]
105
+ # @return [Vapi::ClientMessageTransferUpdateDestination]
106
+ def self.step(member:)
107
+ new(member: member, discriminant: "step")
108
+ end
109
+
110
+ # @param member [Vapi::TransferDestinationNumber]
111
+ # @return [Vapi::ClientMessageTransferUpdateDestination]
112
+ def self.number(member:)
113
+ new(member: member, discriminant: "number")
114
+ end
115
+
116
+ # @param member [Vapi::TransferDestinationSip]
117
+ # @return [Vapi::ClientMessageTransferUpdateDestination]
118
+ def self.sip(member:)
119
+ new(member: member, discriminant: "sip")
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,218 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "computer_tool_messages_item"
4
+ require "date"
5
+ require_relative "open_ai_function"
6
+ require_relative "server"
7
+ require "ostruct"
8
+ require "json"
9
+
10
+ module Vapi
11
+ class ComputerTool
12
+ # @return [Boolean] This determines if the tool is async.
13
+ # If async, the assistant will move forward without waiting for your server to
14
+ # respond. This is useful if you just want to trigger something on your server.
15
+ # If sync, the assistant will wait for your server to respond. This is useful if
16
+ # want assistant to respond with the result from your server.
17
+ # Defaults to synchronous (`false`).
18
+ attr_reader :async
19
+ # @return [Array<Vapi::ComputerToolMessagesItem>] These are the messages that will be spoken to the user as the tool is running.
20
+ # For some tools, this is auto-filled based on special fields like
21
+ # `tool.destinations`. For others like the function tool, these can be custom
22
+ # configured.
23
+ attr_reader :messages
24
+ # @return [String] The sub type of tool.
25
+ attr_reader :sub_type
26
+ # @return [String] This is the unique identifier for the tool.
27
+ attr_reader :id
28
+ # @return [String] This is the unique identifier for the organization that this tool belongs to.
29
+ attr_reader :org_id
30
+ # @return [DateTime] This is the ISO 8601 date-time string of when the tool was created.
31
+ attr_reader :created_at
32
+ # @return [DateTime] This is the ISO 8601 date-time string of when the tool was last updated.
33
+ attr_reader :updated_at
34
+ # @return [Vapi::OpenAiFunction] This is the function definition of the tool.
35
+ # For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on
36
+ # tool-specific fields like `tool.destinations`. But, even in those cases, you can
37
+ # provide a custom function definition for advanced use cases.
38
+ # An example of an advanced use case is if you want to customize the message
39
+ # that's spoken for `endCall` tool. You can specify a function where it returns an
40
+ # argument "reason". Then, in `messages` array, you can have many
41
+ # "request-complete" messages. One of these messages will be triggered if the
42
+ # `messages[].conditions` matches the "reason" argument.
43
+ attr_reader :function
44
+ # @return [Vapi::Server] This is the server that will be hit when this tool is requested by the model.
45
+ # All requests will be sent with the call object among other things. You can find
46
+ # more details in the Server URL documentation.
47
+ # This overrides the serverUrl set on the org and the phoneNumber. Order of
48
+ # precedence: highest tool.server.url, then assistant.serverUrl, then
49
+ # phoneNumber.serverUrl, then org.serverUrl.
50
+ attr_reader :server
51
+ # @return [String] The name of the tool, fixed to 'computer'
52
+ attr_reader :name
53
+ # @return [Float] The display width in pixels
54
+ attr_reader :display_width_px
55
+ # @return [Float] The display height in pixels
56
+ attr_reader :display_height_px
57
+ # @return [Float] Optional display number
58
+ attr_reader :display_number
59
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
60
+ attr_reader :additional_properties
61
+ # @return [Object]
62
+ attr_reader :_field_set
63
+ protected :_field_set
64
+
65
+ OMIT = Object.new
66
+
67
+ # @param async [Boolean] This determines if the tool is async.
68
+ # If async, the assistant will move forward without waiting for your server to
69
+ # respond. This is useful if you just want to trigger something on your server.
70
+ # If sync, the assistant will wait for your server to respond. This is useful if
71
+ # want assistant to respond with the result from your server.
72
+ # Defaults to synchronous (`false`).
73
+ # @param messages [Array<Vapi::ComputerToolMessagesItem>] These are the messages that will be spoken to the user as the tool is running.
74
+ # For some tools, this is auto-filled based on special fields like
75
+ # `tool.destinations`. For others like the function tool, these can be custom
76
+ # configured.
77
+ # @param sub_type [String] The sub type of tool.
78
+ # @param id [String] This is the unique identifier for the tool.
79
+ # @param org_id [String] This is the unique identifier for the organization that this tool belongs to.
80
+ # @param created_at [DateTime] This is the ISO 8601 date-time string of when the tool was created.
81
+ # @param updated_at [DateTime] This is the ISO 8601 date-time string of when the tool was last updated.
82
+ # @param function [Vapi::OpenAiFunction] This is the function definition of the tool.
83
+ # For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on
84
+ # tool-specific fields like `tool.destinations`. But, even in those cases, you can
85
+ # provide a custom function definition for advanced use cases.
86
+ # An example of an advanced use case is if you want to customize the message
87
+ # that's spoken for `endCall` tool. You can specify a function where it returns an
88
+ # argument "reason". Then, in `messages` array, you can have many
89
+ # "request-complete" messages. One of these messages will be triggered if the
90
+ # `messages[].conditions` matches the "reason" argument.
91
+ # @param server [Vapi::Server] This is the server that will be hit when this tool is requested by the model.
92
+ # All requests will be sent with the call object among other things. You can find
93
+ # more details in the Server URL documentation.
94
+ # This overrides the serverUrl set on the org and the phoneNumber. Order of
95
+ # precedence: highest tool.server.url, then assistant.serverUrl, then
96
+ # phoneNumber.serverUrl, then org.serverUrl.
97
+ # @param name [String] The name of the tool, fixed to 'computer'
98
+ # @param display_width_px [Float] The display width in pixels
99
+ # @param display_height_px [Float] The display height in pixels
100
+ # @param display_number [Float] Optional display number
101
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
102
+ # @return [Vapi::ComputerTool]
103
+ def initialize(sub_type:, id:, org_id:, created_at:, updated_at:, name:, display_width_px:, display_height_px:, async: OMIT, messages: OMIT, function: OMIT,
104
+ server: OMIT, display_number: OMIT, additional_properties: nil)
105
+ @async = async if async != OMIT
106
+ @messages = messages if messages != OMIT
107
+ @sub_type = sub_type
108
+ @id = id
109
+ @org_id = org_id
110
+ @created_at = created_at
111
+ @updated_at = updated_at
112
+ @function = function if function != OMIT
113
+ @server = server if server != OMIT
114
+ @name = name
115
+ @display_width_px = display_width_px
116
+ @display_height_px = display_height_px
117
+ @display_number = display_number if display_number != OMIT
118
+ @additional_properties = additional_properties
119
+ @_field_set = {
120
+ "async": async,
121
+ "messages": messages,
122
+ "subType": sub_type,
123
+ "id": id,
124
+ "orgId": org_id,
125
+ "createdAt": created_at,
126
+ "updatedAt": updated_at,
127
+ "function": function,
128
+ "server": server,
129
+ "name": name,
130
+ "displayWidthPx": display_width_px,
131
+ "displayHeightPx": display_height_px,
132
+ "displayNumber": display_number
133
+ }.reject do |_k, v|
134
+ v == OMIT
135
+ end
136
+ end
137
+
138
+ # Deserialize a JSON object to an instance of ComputerTool
139
+ #
140
+ # @param json_object [String]
141
+ # @return [Vapi::ComputerTool]
142
+ def self.from_json(json_object:)
143
+ struct = JSON.parse(json_object, object_class: OpenStruct)
144
+ parsed_json = JSON.parse(json_object)
145
+ async = parsed_json["async"]
146
+ messages = parsed_json["messages"]&.map do |item|
147
+ item = item.to_json
148
+ Vapi::ComputerToolMessagesItem.from_json(json_object: item)
149
+ end
150
+ sub_type = parsed_json["subType"]
151
+ id = parsed_json["id"]
152
+ org_id = parsed_json["orgId"]
153
+ created_at = (DateTime.parse(parsed_json["createdAt"]) unless parsed_json["createdAt"].nil?)
154
+ updated_at = (DateTime.parse(parsed_json["updatedAt"]) unless parsed_json["updatedAt"].nil?)
155
+ if parsed_json["function"].nil?
156
+ function = nil
157
+ else
158
+ function = parsed_json["function"].to_json
159
+ function = Vapi::OpenAiFunction.from_json(json_object: function)
160
+ end
161
+ if parsed_json["server"].nil?
162
+ server = nil
163
+ else
164
+ server = parsed_json["server"].to_json
165
+ server = Vapi::Server.from_json(json_object: server)
166
+ end
167
+ name = parsed_json["name"]
168
+ display_width_px = parsed_json["displayWidthPx"]
169
+ display_height_px = parsed_json["displayHeightPx"]
170
+ display_number = parsed_json["displayNumber"]
171
+ new(
172
+ async: async,
173
+ messages: messages,
174
+ sub_type: sub_type,
175
+ id: id,
176
+ org_id: org_id,
177
+ created_at: created_at,
178
+ updated_at: updated_at,
179
+ function: function,
180
+ server: server,
181
+ name: name,
182
+ display_width_px: display_width_px,
183
+ display_height_px: display_height_px,
184
+ display_number: display_number,
185
+ additional_properties: struct
186
+ )
187
+ end
188
+
189
+ # Serialize an instance of ComputerTool to a JSON object
190
+ #
191
+ # @return [String]
192
+ def to_json(*_args)
193
+ @_field_set&.to_json
194
+ end
195
+
196
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
197
+ # hash and check each fields type against the current object's property
198
+ # definitions.
199
+ #
200
+ # @param obj [Object]
201
+ # @return [Void]
202
+ def self.validate_raw(obj:)
203
+ obj.async&.is_a?(Boolean) != false || raise("Passed value for field obj.async is not the expected type, validation failed.")
204
+ obj.messages&.is_a?(Array) != false || raise("Passed value for field obj.messages is not the expected type, validation failed.")
205
+ obj.sub_type.is_a?(String) != false || raise("Passed value for field obj.sub_type is not the expected type, validation failed.")
206
+ obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
207
+ obj.org_id.is_a?(String) != false || raise("Passed value for field obj.org_id is not the expected type, validation failed.")
208
+ obj.created_at.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.")
209
+ obj.updated_at.is_a?(DateTime) != false || raise("Passed value for field obj.updated_at is not the expected type, validation failed.")
210
+ obj.function.nil? || Vapi::OpenAiFunction.validate_raw(obj: obj.function)
211
+ obj.server.nil? || Vapi::Server.validate_raw(obj: obj.server)
212
+ obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
213
+ obj.display_width_px.is_a?(Float) != false || raise("Passed value for field obj.display_width_px is not the expected type, validation failed.")
214
+ obj.display_height_px.is_a?(Float) != false || raise("Passed value for field obj.display_height_px is not the expected type, validation failed.")
215
+ obj.display_number&.is_a?(Float) != false || raise("Passed value for field obj.display_number is not the expected type, validation failed.")
216
+ end
217
+ end
218
+ end