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
@@ -2,6 +2,7 @@
2
2
 
3
3
  module Vapi
4
4
  class AzureOpenAiCredentialModelsItem
5
+ GPT_4_O_20240806 = "gpt-4o-2024-08-06"
5
6
  GPT_4_O_MINI_20240718 = "gpt-4o-mini-2024-07-18"
6
7
  GPT_4_O_20240513 = "gpt-4o-2024-05-13"
7
8
  GPT_4_TURBO_20240409 = "gpt-4-turbo-2024-04-09"
@@ -9,6 +9,7 @@ module Vapi
9
9
  FRANCE = "france"
10
10
  INDIA = "india"
11
11
  JAPAN = "japan"
12
+ UAENORTH = "uaenorth"
12
13
  NORTHCENTRALUS = "northcentralus"
13
14
  NORWAY = "norway"
14
15
  SOUTHCENTRALUS = "southcentralus"
@@ -2,22 +2,22 @@
2
2
 
3
3
  require_relative "azure_voice_id"
4
4
  require_relative "chunk_plan"
5
+ require_relative "fallback_plan"
5
6
  require "ostruct"
6
7
  require "json"
7
8
 
8
9
  module Vapi
9
10
  class AzureVoice
10
- # @return [Boolean] This determines whether fillers are injected into the model output before
11
- # inputting it into the voice provider.
12
- # Default `false` because you can achieve better results with prompting the model.
13
- attr_reader :filler_injection_enabled
14
11
  # @return [Vapi::AzureVoiceId] This is the provider-specific ID that will be used.
15
12
  attr_reader :voice_id
16
- # @return [Float] This is the speed multiplier that will be used.
17
- attr_reader :speed
18
13
  # @return [Vapi::ChunkPlan] This is the plan for chunking the model output before it is sent to the voice
19
14
  # provider.
20
15
  attr_reader :chunk_plan
16
+ # @return [Float] This is the speed multiplier that will be used.
17
+ attr_reader :speed
18
+ # @return [Vapi::FallbackPlan] This is the plan for voice provider fallbacks in the event that the primary
19
+ # voice provider fails.
20
+ attr_reader :fallback_plan
21
21
  # @return [OpenStruct] Additional properties unmapped to the current class definition
22
22
  attr_reader :additional_properties
23
23
  # @return [Object]
@@ -26,26 +26,25 @@ module Vapi
26
26
 
27
27
  OMIT = Object.new
28
28
 
29
- # @param filler_injection_enabled [Boolean] This determines whether fillers are injected into the model output before
30
- # inputting it into the voice provider.
31
- # Default `false` because you can achieve better results with prompting the model.
32
29
  # @param voice_id [Vapi::AzureVoiceId] This is the provider-specific ID that will be used.
33
- # @param speed [Float] This is the speed multiplier that will be used.
34
30
  # @param chunk_plan [Vapi::ChunkPlan] This is the plan for chunking the model output before it is sent to the voice
35
31
  # provider.
32
+ # @param speed [Float] This is the speed multiplier that will be used.
33
+ # @param fallback_plan [Vapi::FallbackPlan] This is the plan for voice provider fallbacks in the event that the primary
34
+ # voice provider fails.
36
35
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
37
36
  # @return [Vapi::AzureVoice]
38
- def initialize(voice_id:, filler_injection_enabled: OMIT, speed: OMIT, chunk_plan: OMIT, additional_properties: nil)
39
- @filler_injection_enabled = filler_injection_enabled if filler_injection_enabled != OMIT
37
+ def initialize(voice_id:, chunk_plan: OMIT, speed: OMIT, fallback_plan: OMIT, additional_properties: nil)
40
38
  @voice_id = voice_id
41
- @speed = speed if speed != OMIT
42
39
  @chunk_plan = chunk_plan if chunk_plan != OMIT
40
+ @speed = speed if speed != OMIT
41
+ @fallback_plan = fallback_plan if fallback_plan != OMIT
43
42
  @additional_properties = additional_properties
44
43
  @_field_set = {
45
- "fillerInjectionEnabled": filler_injection_enabled,
46
44
  "voiceId": voice_id,
45
+ "chunkPlan": chunk_plan,
47
46
  "speed": speed,
48
- "chunkPlan": chunk_plan
47
+ "fallbackPlan": fallback_plan
49
48
  }.reject do |_k, v|
50
49
  v == OMIT
51
50
  end
@@ -58,25 +57,30 @@ module Vapi
58
57
  def self.from_json(json_object:)
59
58
  struct = JSON.parse(json_object, object_class: OpenStruct)
60
59
  parsed_json = JSON.parse(json_object)
61
- filler_injection_enabled = parsed_json["fillerInjectionEnabled"]
62
60
  if parsed_json["voiceId"].nil?
63
61
  voice_id = nil
64
62
  else
65
63
  voice_id = parsed_json["voiceId"].to_json
66
64
  voice_id = Vapi::AzureVoiceId.from_json(json_object: voice_id)
67
65
  end
68
- speed = parsed_json["speed"]
69
66
  if parsed_json["chunkPlan"].nil?
70
67
  chunk_plan = nil
71
68
  else
72
69
  chunk_plan = parsed_json["chunkPlan"].to_json
73
70
  chunk_plan = Vapi::ChunkPlan.from_json(json_object: chunk_plan)
74
71
  end
72
+ speed = parsed_json["speed"]
73
+ if parsed_json["fallbackPlan"].nil?
74
+ fallback_plan = nil
75
+ else
76
+ fallback_plan = parsed_json["fallbackPlan"].to_json
77
+ fallback_plan = Vapi::FallbackPlan.from_json(json_object: fallback_plan)
78
+ end
75
79
  new(
76
- filler_injection_enabled: filler_injection_enabled,
77
80
  voice_id: voice_id,
78
- speed: speed,
79
81
  chunk_plan: chunk_plan,
82
+ speed: speed,
83
+ fallback_plan: fallback_plan,
80
84
  additional_properties: struct
81
85
  )
82
86
  end
@@ -95,10 +99,10 @@ module Vapi
95
99
  # @param obj [Object]
96
100
  # @return [Void]
97
101
  def self.validate_raw(obj:)
98
- obj.filler_injection_enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.filler_injection_enabled is not the expected type, validation failed.")
99
102
  Vapi::AzureVoiceId.validate_raw(obj: obj.voice_id)
100
- obj.speed&.is_a?(Float) != false || raise("Passed value for field obj.speed is not the expected type, validation failed.")
101
103
  obj.chunk_plan.nil? || Vapi::ChunkPlan.validate_raw(obj: obj.chunk_plan)
104
+ obj.speed&.is_a?(Float) != false || raise("Passed value for field obj.speed is not the expected type, validation failed.")
105
+ obj.fallback_plan.nil? || Vapi::FallbackPlan.validate_raw(obj: obj.fallback_plan)
102
106
  end
103
107
  end
104
108
  end
@@ -0,0 +1,194 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "bash_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 BashTool
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::BashToolMessagesItem>] 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 'bash'
52
+ attr_reader :name
53
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
54
+ attr_reader :additional_properties
55
+ # @return [Object]
56
+ attr_reader :_field_set
57
+ protected :_field_set
58
+
59
+ OMIT = Object.new
60
+
61
+ # @param async [Boolean] This determines if the tool is async.
62
+ # If async, the assistant will move forward without waiting for your server to
63
+ # respond. This is useful if you just want to trigger something on your server.
64
+ # If sync, the assistant will wait for your server to respond. This is useful if
65
+ # want assistant to respond with the result from your server.
66
+ # Defaults to synchronous (`false`).
67
+ # @param messages [Array<Vapi::BashToolMessagesItem>] These are the messages that will be spoken to the user as the tool is running.
68
+ # For some tools, this is auto-filled based on special fields like
69
+ # `tool.destinations`. For others like the function tool, these can be custom
70
+ # configured.
71
+ # @param sub_type [String] The sub type of tool.
72
+ # @param id [String] This is the unique identifier for the tool.
73
+ # @param org_id [String] This is the unique identifier for the organization that this tool belongs to.
74
+ # @param created_at [DateTime] This is the ISO 8601 date-time string of when the tool was created.
75
+ # @param updated_at [DateTime] This is the ISO 8601 date-time string of when the tool was last updated.
76
+ # @param function [Vapi::OpenAiFunction] This is the function definition of the tool.
77
+ # For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on
78
+ # tool-specific fields like `tool.destinations`. But, even in those cases, you can
79
+ # provide a custom function definition for advanced use cases.
80
+ # An example of an advanced use case is if you want to customize the message
81
+ # that's spoken for `endCall` tool. You can specify a function where it returns an
82
+ # argument "reason". Then, in `messages` array, you can have many
83
+ # "request-complete" messages. One of these messages will be triggered if the
84
+ # `messages[].conditions` matches the "reason" argument.
85
+ # @param server [Vapi::Server] This is the server that will be hit when this tool is requested by the model.
86
+ # All requests will be sent with the call object among other things. You can find
87
+ # more details in the Server URL documentation.
88
+ # This overrides the serverUrl set on the org and the phoneNumber. Order of
89
+ # precedence: highest tool.server.url, then assistant.serverUrl, then
90
+ # phoneNumber.serverUrl, then org.serverUrl.
91
+ # @param name [String] The name of the tool, fixed to 'bash'
92
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
93
+ # @return [Vapi::BashTool]
94
+ def initialize(sub_type:, id:, org_id:, created_at:, updated_at:, name:, async: OMIT, messages: OMIT, function: OMIT,
95
+ server: OMIT, additional_properties: nil)
96
+ @async = async if async != OMIT
97
+ @messages = messages if messages != OMIT
98
+ @sub_type = sub_type
99
+ @id = id
100
+ @org_id = org_id
101
+ @created_at = created_at
102
+ @updated_at = updated_at
103
+ @function = function if function != OMIT
104
+ @server = server if server != OMIT
105
+ @name = name
106
+ @additional_properties = additional_properties
107
+ @_field_set = {
108
+ "async": async,
109
+ "messages": messages,
110
+ "subType": sub_type,
111
+ "id": id,
112
+ "orgId": org_id,
113
+ "createdAt": created_at,
114
+ "updatedAt": updated_at,
115
+ "function": function,
116
+ "server": server,
117
+ "name": name
118
+ }.reject do |_k, v|
119
+ v == OMIT
120
+ end
121
+ end
122
+
123
+ # Deserialize a JSON object to an instance of BashTool
124
+ #
125
+ # @param json_object [String]
126
+ # @return [Vapi::BashTool]
127
+ def self.from_json(json_object:)
128
+ struct = JSON.parse(json_object, object_class: OpenStruct)
129
+ parsed_json = JSON.parse(json_object)
130
+ async = parsed_json["async"]
131
+ messages = parsed_json["messages"]&.map do |item|
132
+ item = item.to_json
133
+ Vapi::BashToolMessagesItem.from_json(json_object: item)
134
+ end
135
+ sub_type = parsed_json["subType"]
136
+ id = parsed_json["id"]
137
+ org_id = parsed_json["orgId"]
138
+ created_at = (DateTime.parse(parsed_json["createdAt"]) unless parsed_json["createdAt"].nil?)
139
+ updated_at = (DateTime.parse(parsed_json["updatedAt"]) unless parsed_json["updatedAt"].nil?)
140
+ if parsed_json["function"].nil?
141
+ function = nil
142
+ else
143
+ function = parsed_json["function"].to_json
144
+ function = Vapi::OpenAiFunction.from_json(json_object: function)
145
+ end
146
+ if parsed_json["server"].nil?
147
+ server = nil
148
+ else
149
+ server = parsed_json["server"].to_json
150
+ server = Vapi::Server.from_json(json_object: server)
151
+ end
152
+ name = parsed_json["name"]
153
+ new(
154
+ async: async,
155
+ messages: messages,
156
+ sub_type: sub_type,
157
+ id: id,
158
+ org_id: org_id,
159
+ created_at: created_at,
160
+ updated_at: updated_at,
161
+ function: function,
162
+ server: server,
163
+ name: name,
164
+ additional_properties: struct
165
+ )
166
+ end
167
+
168
+ # Serialize an instance of BashTool to a JSON object
169
+ #
170
+ # @return [String]
171
+ def to_json(*_args)
172
+ @_field_set&.to_json
173
+ end
174
+
175
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
176
+ # hash and check each fields type against the current object's property
177
+ # definitions.
178
+ #
179
+ # @param obj [Object]
180
+ # @return [Void]
181
+ def self.validate_raw(obj:)
182
+ obj.async&.is_a?(Boolean) != false || raise("Passed value for field obj.async is not the expected type, validation failed.")
183
+ obj.messages&.is_a?(Array) != false || raise("Passed value for field obj.messages is not the expected type, validation failed.")
184
+ obj.sub_type.is_a?(String) != false || raise("Passed value for field obj.sub_type is not the expected type, validation failed.")
185
+ obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
186
+ obj.org_id.is_a?(String) != false || raise("Passed value for field obj.org_id is not the expected type, validation failed.")
187
+ obj.created_at.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.")
188
+ obj.updated_at.is_a?(DateTime) != false || raise("Passed value for field obj.updated_at is not the expected type, validation failed.")
189
+ obj.function.nil? || Vapi::OpenAiFunction.validate_raw(obj: obj.function)
190
+ obj.server.nil? || Vapi::Server.validate_raw(obj: obj.server)
191
+ obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
192
+ end
193
+ end
194
+ end
@@ -0,0 +1,120 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "tool_message_start"
5
+ require_relative "tool_message_complete"
6
+ require_relative "tool_message_failed"
7
+ require_relative "tool_message_delayed"
8
+
9
+ module Vapi
10
+ class BashToolMessagesItem
11
+ # @return [Object]
12
+ attr_reader :member
13
+ # @return [String]
14
+ attr_reader :discriminant
15
+
16
+ private_class_method :new
17
+ alias kind_of? is_a?
18
+
19
+ # @param member [Object]
20
+ # @param discriminant [String]
21
+ # @return [Vapi::BashToolMessagesItem]
22
+ def initialize(member:, discriminant:)
23
+ @member = member
24
+ @discriminant = discriminant
25
+ end
26
+
27
+ # Deserialize a JSON object to an instance of BashToolMessagesItem
28
+ #
29
+ # @param json_object [String]
30
+ # @return [Vapi::BashToolMessagesItem]
31
+ def self.from_json(json_object:)
32
+ struct = JSON.parse(json_object, object_class: OpenStruct)
33
+ member = case struct.type
34
+ when "request-start"
35
+ Vapi::ToolMessageStart.from_json(json_object: json_object)
36
+ when "request-complete"
37
+ Vapi::ToolMessageComplete.from_json(json_object: json_object)
38
+ when "request-failed"
39
+ Vapi::ToolMessageFailed.from_json(json_object: json_object)
40
+ when "request-response-delayed"
41
+ Vapi::ToolMessageDelayed.from_json(json_object: json_object)
42
+ else
43
+ Vapi::ToolMessageStart.from_json(json_object: json_object)
44
+ end
45
+ new(member: member, discriminant: struct.type)
46
+ end
47
+
48
+ # For Union Types, to_json functionality is delegated to the wrapped member.
49
+ #
50
+ # @return [String]
51
+ def to_json(*_args)
52
+ case @discriminant
53
+ when "request-start"
54
+ { **@member.to_json, type: @discriminant }.to_json
55
+ when "request-complete"
56
+ { **@member.to_json, type: @discriminant }.to_json
57
+ when "request-failed"
58
+ { **@member.to_json, type: @discriminant }.to_json
59
+ when "request-response-delayed"
60
+ { **@member.to_json, type: @discriminant }.to_json
61
+ else
62
+ { "type": @discriminant, value: @member }.to_json
63
+ end
64
+ @member.to_json
65
+ end
66
+
67
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
68
+ # hash and check each fields type against the current object's property
69
+ # definitions.
70
+ #
71
+ # @param obj [Object]
72
+ # @return [Void]
73
+ def self.validate_raw(obj:)
74
+ case obj.type
75
+ when "request-start"
76
+ Vapi::ToolMessageStart.validate_raw(obj: obj)
77
+ when "request-complete"
78
+ Vapi::ToolMessageComplete.validate_raw(obj: obj)
79
+ when "request-failed"
80
+ Vapi::ToolMessageFailed.validate_raw(obj: obj)
81
+ when "request-response-delayed"
82
+ Vapi::ToolMessageDelayed.validate_raw(obj: obj)
83
+ else
84
+ raise("Passed value matched no type within the union, validation failed.")
85
+ end
86
+ end
87
+
88
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
89
+ #
90
+ # @param obj [Object]
91
+ # @return [Boolean]
92
+ def is_a?(obj)
93
+ @member.is_a?(obj)
94
+ end
95
+
96
+ # @param member [Vapi::ToolMessageStart]
97
+ # @return [Vapi::BashToolMessagesItem]
98
+ def self.request_start(member:)
99
+ new(member: member, discriminant: "request-start")
100
+ end
101
+
102
+ # @param member [Vapi::ToolMessageComplete]
103
+ # @return [Vapi::BashToolMessagesItem]
104
+ def self.request_complete(member:)
105
+ new(member: member, discriminant: "request-complete")
106
+ end
107
+
108
+ # @param member [Vapi::ToolMessageFailed]
109
+ # @return [Vapi::BashToolMessagesItem]
110
+ def self.request_failed(member:)
111
+ new(member: member, discriminant: "request-failed")
112
+ end
113
+
114
+ # @param member [Vapi::ToolMessageDelayed]
115
+ # @return [Vapi::BashToolMessagesItem]
116
+ def self.request_response_delayed(member:)
117
+ new(member: member, discriminant: "request-response-delayed")
118
+ end
119
+ end
120
+ end
@@ -1,11 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "text_content"
3
4
  require_relative "block_complete_message_conditions_item"
4
5
  require "ostruct"
5
6
  require "json"
6
7
 
7
8
  module Vapi
8
9
  class BlockCompleteMessage
10
+ # @return [Array<Vapi::TextContent>] This is an alternative to the `content` property. It allows to specify variants
11
+ # of the same content, one per language.
12
+ # Usage:
13
+ # - If your assistants are multilingual, you can provide content for each
14
+ # language.
15
+ # - If you don't provide content for a language, the first item in the array will
16
+ # be automatically translated to the active language at that moment.
17
+ # This will override the `content` property.
18
+ attr_reader :contents
9
19
  # @return [Array<Vapi::BlockCompleteMessageConditionsItem>] This is an optional array of conditions that must be met for this message to be
10
20
  # triggered.
11
21
  attr_reader :conditions
@@ -19,16 +29,25 @@ module Vapi
19
29
 
20
30
  OMIT = Object.new
21
31
 
32
+ # @param contents [Array<Vapi::TextContent>] This is an alternative to the `content` property. It allows to specify variants
33
+ # of the same content, one per language.
34
+ # Usage:
35
+ # - If your assistants are multilingual, you can provide content for each
36
+ # language.
37
+ # - If you don't provide content for a language, the first item in the array will
38
+ # be automatically translated to the active language at that moment.
39
+ # This will override the `content` property.
22
40
  # @param conditions [Array<Vapi::BlockCompleteMessageConditionsItem>] This is an optional array of conditions that must be met for this message to be
23
41
  # triggered.
24
42
  # @param content [String] This is the content that the assistant will say when this message is triggered.
25
43
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
26
44
  # @return [Vapi::BlockCompleteMessage]
27
- def initialize(content:, conditions: OMIT, additional_properties: nil)
45
+ def initialize(contents: OMIT, conditions: OMIT, content: OMIT, additional_properties: nil)
46
+ @contents = contents if contents != OMIT
28
47
  @conditions = conditions if conditions != OMIT
29
- @content = content
48
+ @content = content if content != OMIT
30
49
  @additional_properties = additional_properties
31
- @_field_set = { "conditions": conditions, "content": content }.reject do |_k, v|
50
+ @_field_set = { "contents": contents, "conditions": conditions, "content": content }.reject do |_k, v|
32
51
  v == OMIT
33
52
  end
34
53
  end
@@ -40,12 +59,17 @@ module Vapi
40
59
  def self.from_json(json_object:)
41
60
  struct = JSON.parse(json_object, object_class: OpenStruct)
42
61
  parsed_json = JSON.parse(json_object)
62
+ contents = parsed_json["contents"]&.map do |item|
63
+ item = item.to_json
64
+ Vapi::TextContent.from_json(json_object: item)
65
+ end
43
66
  conditions = parsed_json["conditions"]&.map do |item|
44
67
  item = item.to_json
45
68
  Vapi::BlockCompleteMessageConditionsItem.from_json(json_object: item)
46
69
  end
47
70
  content = parsed_json["content"]
48
71
  new(
72
+ contents: contents,
49
73
  conditions: conditions,
50
74
  content: content,
51
75
  additional_properties: struct
@@ -66,8 +90,9 @@ module Vapi
66
90
  # @param obj [Object]
67
91
  # @return [Void]
68
92
  def self.validate_raw(obj:)
93
+ obj.contents&.is_a?(Array) != false || raise("Passed value for field obj.contents is not the expected type, validation failed.")
69
94
  obj.conditions&.is_a?(Array) != false || raise("Passed value for field obj.conditions is not the expected type, validation failed.")
70
- obj.content.is_a?(String) != false || raise("Passed value for field obj.content is not the expected type, validation failed.")
95
+ obj.content&.is_a?(String) != false || raise("Passed value for field obj.content is not the expected type, validation failed.")
71
96
  end
72
97
  end
73
98
  end
@@ -1,11 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "text_content"
3
4
  require_relative "block_start_message_conditions_item"
4
5
  require "ostruct"
5
6
  require "json"
6
7
 
7
8
  module Vapi
8
9
  class BlockStartMessage
10
+ # @return [Array<Vapi::TextContent>] This is an alternative to the `content` property. It allows to specify variants
11
+ # of the same content, one per language.
12
+ # Usage:
13
+ # - If your assistants are multilingual, you can provide content for each
14
+ # language.
15
+ # - If you don't provide content for a language, the first item in the array will
16
+ # be automatically translated to the active language at that moment.
17
+ # This will override the `content` property.
18
+ attr_reader :contents
9
19
  # @return [Array<Vapi::BlockStartMessageConditionsItem>] This is an optional array of conditions that must be met for this message to be
10
20
  # triggered.
11
21
  attr_reader :conditions
@@ -19,16 +29,25 @@ module Vapi
19
29
 
20
30
  OMIT = Object.new
21
31
 
32
+ # @param contents [Array<Vapi::TextContent>] This is an alternative to the `content` property. It allows to specify variants
33
+ # of the same content, one per language.
34
+ # Usage:
35
+ # - If your assistants are multilingual, you can provide content for each
36
+ # language.
37
+ # - If you don't provide content for a language, the first item in the array will
38
+ # be automatically translated to the active language at that moment.
39
+ # This will override the `content` property.
22
40
  # @param conditions [Array<Vapi::BlockStartMessageConditionsItem>] This is an optional array of conditions that must be met for this message to be
23
41
  # triggered.
24
42
  # @param content [String] This is the content that the assistant will say when this message is triggered.
25
43
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
26
44
  # @return [Vapi::BlockStartMessage]
27
- def initialize(content:, conditions: OMIT, additional_properties: nil)
45
+ def initialize(contents: OMIT, conditions: OMIT, content: OMIT, additional_properties: nil)
46
+ @contents = contents if contents != OMIT
28
47
  @conditions = conditions if conditions != OMIT
29
- @content = content
48
+ @content = content if content != OMIT
30
49
  @additional_properties = additional_properties
31
- @_field_set = { "conditions": conditions, "content": content }.reject do |_k, v|
50
+ @_field_set = { "contents": contents, "conditions": conditions, "content": content }.reject do |_k, v|
32
51
  v == OMIT
33
52
  end
34
53
  end
@@ -40,12 +59,17 @@ module Vapi
40
59
  def self.from_json(json_object:)
41
60
  struct = JSON.parse(json_object, object_class: OpenStruct)
42
61
  parsed_json = JSON.parse(json_object)
62
+ contents = parsed_json["contents"]&.map do |item|
63
+ item = item.to_json
64
+ Vapi::TextContent.from_json(json_object: item)
65
+ end
43
66
  conditions = parsed_json["conditions"]&.map do |item|
44
67
  item = item.to_json
45
68
  Vapi::BlockStartMessageConditionsItem.from_json(json_object: item)
46
69
  end
47
70
  content = parsed_json["content"]
48
71
  new(
72
+ contents: contents,
49
73
  conditions: conditions,
50
74
  content: content,
51
75
  additional_properties: struct
@@ -66,8 +90,9 @@ module Vapi
66
90
  # @param obj [Object]
67
91
  # @return [Void]
68
92
  def self.validate_raw(obj:)
93
+ obj.contents&.is_a?(Array) != false || raise("Passed value for field obj.contents is not the expected type, validation failed.")
69
94
  obj.conditions&.is_a?(Array) != false || raise("Passed value for field obj.conditions is not the expected type, validation failed.")
70
- obj.content.is_a?(String) != false || raise("Passed value for field obj.content is not the expected type, validation failed.")
95
+ obj.content&.is_a?(String) != false || raise("Passed value for field obj.content is not the expected type, validation failed.")
71
96
  end
72
97
  end
73
98
  end