vapi_server_sdk 0.0.0.pre.alpha7

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 (541) hide show
  1. checksums.yaml +7 -0
  2. data/lib/core/file_utilities.rb +26 -0
  3. data/lib/environment.rb +7 -0
  4. data/lib/gemconfig.rb +14 -0
  5. data/lib/requests.rb +174 -0
  6. data/lib/types_export.rb +526 -0
  7. data/lib/vapi_server_sdk/analytics/client.rb +115 -0
  8. data/lib/vapi_server_sdk/assistants/client.rb +949 -0
  9. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_background_sound.rb +12 -0
  10. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_client_messages_item.rb +22 -0
  11. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_first_message_mode.rb +21 -0
  12. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_model.rb +201 -0
  13. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_server_messages_item.rb +23 -0
  14. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_transcriber.rb +110 -0
  15. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_voice.rb +188 -0
  16. data/lib/vapi_server_sdk/blocks/client.rb +552 -0
  17. data/lib/vapi_server_sdk/blocks/types/blocks_create_request.rb +109 -0
  18. data/lib/vapi_server_sdk/blocks/types/blocks_create_response.rb +109 -0
  19. data/lib/vapi_server_sdk/blocks/types/blocks_delete_response.rb +109 -0
  20. data/lib/vapi_server_sdk/blocks/types/blocks_get_response.rb +109 -0
  21. data/lib/vapi_server_sdk/blocks/types/blocks_list_response_item.rb +109 -0
  22. data/lib/vapi_server_sdk/blocks/types/blocks_update_response.rb +109 -0
  23. data/lib/vapi_server_sdk/blocks/types/update_block_dto_messages_item.rb +96 -0
  24. data/lib/vapi_server_sdk/blocks/types/update_block_dto_steps_item.rb +96 -0
  25. data/lib/vapi_server_sdk/blocks/types/update_block_dto_tool.rb +163 -0
  26. data/lib/vapi_server_sdk/calls/client.rb +966 -0
  27. data/lib/vapi_server_sdk/files/client.rb +347 -0
  28. data/lib/vapi_server_sdk/logs/client.rb +174 -0
  29. data/lib/vapi_server_sdk/logs/types/logs_get_request_sort_order.rb +10 -0
  30. data/lib/vapi_server_sdk/logs/types/logs_get_request_type.rb +12 -0
  31. data/lib/vapi_server_sdk/phone_numbers/client.rb +455 -0
  32. data/lib/vapi_server_sdk/phone_numbers/types/phone_numbers_create_request.rb +122 -0
  33. data/lib/vapi_server_sdk/phone_numbers/types/phone_numbers_create_response.rb +122 -0
  34. data/lib/vapi_server_sdk/phone_numbers/types/phone_numbers_delete_response.rb +122 -0
  35. data/lib/vapi_server_sdk/phone_numbers/types/phone_numbers_get_response.rb +122 -0
  36. data/lib/vapi_server_sdk/phone_numbers/types/phone_numbers_list_response_item.rb +122 -0
  37. data/lib/vapi_server_sdk/phone_numbers/types/phone_numbers_update_response.rb +122 -0
  38. data/lib/vapi_server_sdk/phone_numbers/types/update_phone_number_dto_fallback_destination.rb +103 -0
  39. data/lib/vapi_server_sdk/squads/client.rb +1050 -0
  40. data/lib/vapi_server_sdk/tools/client.rb +473 -0
  41. data/lib/vapi_server_sdk/tools/types/tools_create_request.rb +161 -0
  42. data/lib/vapi_server_sdk/tools/types/tools_create_response.rb +161 -0
  43. data/lib/vapi_server_sdk/tools/types/tools_delete_response.rb +161 -0
  44. data/lib/vapi_server_sdk/tools/types/tools_get_response.rb +161 -0
  45. data/lib/vapi_server_sdk/tools/types/tools_list_response_item.rb +161 -0
  46. data/lib/vapi_server_sdk/tools/types/tools_update_response.rb +161 -0
  47. data/lib/vapi_server_sdk/tools/types/update_tool_dto_messages_item.rb +122 -0
  48. data/lib/vapi_server_sdk/types/add_voice_to_provider_dto.rb +78 -0
  49. data/lib/vapi_server_sdk/types/analysis.rb +88 -0
  50. data/lib/vapi_server_sdk/types/analysis_cost.rb +93 -0
  51. data/lib/vapi_server_sdk/types/analysis_cost_analysis_type.rb +10 -0
  52. data/lib/vapi_server_sdk/types/analysis_cost_breakdown.rb +137 -0
  53. data/lib/vapi_server_sdk/types/analysis_plan.rb +103 -0
  54. data/lib/vapi_server_sdk/types/analytics_operation.rb +76 -0
  55. data/lib/vapi_server_sdk/types/analytics_operation_column.rb +17 -0
  56. data/lib/vapi_server_sdk/types/analytics_operation_operation.rb +12 -0
  57. data/lib/vapi_server_sdk/types/analytics_query.rb +107 -0
  58. data/lib/vapi_server_sdk/types/analytics_query_group_by_item.rb +11 -0
  59. data/lib/vapi_server_sdk/types/analytics_query_result.rb +96 -0
  60. data/lib/vapi_server_sdk/types/anthropic_credential.rb +101 -0
  61. data/lib/vapi_server_sdk/types/anthropic_model.rb +170 -0
  62. data/lib/vapi_server_sdk/types/anthropic_model_model.rb +11 -0
  63. data/lib/vapi_server_sdk/types/anthropic_model_tools_item.rb +159 -0
  64. data/lib/vapi_server_sdk/types/anyscale_credential.rb +101 -0
  65. data/lib/vapi_server_sdk/types/anyscale_model.rb +169 -0
  66. data/lib/vapi_server_sdk/types/anyscale_model_tools_item.rb +159 -0
  67. data/lib/vapi_server_sdk/types/artifact.rb +133 -0
  68. data/lib/vapi_server_sdk/types/artifact_messages_item.rb +96 -0
  69. data/lib/vapi_server_sdk/types/artifact_plan.rb +139 -0
  70. data/lib/vapi_server_sdk/types/assignment_mutation.rb +189 -0
  71. data/lib/vapi_server_sdk/types/assignment_mutation_conditions_item.rb +94 -0
  72. data/lib/vapi_server_sdk/types/assistant.rb +562 -0
  73. data/lib/vapi_server_sdk/types/assistant_background_sound.rb +10 -0
  74. data/lib/vapi_server_sdk/types/assistant_client_messages_item.rb +20 -0
  75. data/lib/vapi_server_sdk/types/assistant_first_message_mode.rb +19 -0
  76. data/lib/vapi_server_sdk/types/assistant_model.rb +199 -0
  77. data/lib/vapi_server_sdk/types/assistant_overrides.rb +539 -0
  78. data/lib/vapi_server_sdk/types/assistant_overrides_background_sound.rb +10 -0
  79. data/lib/vapi_server_sdk/types/assistant_overrides_client_messages_item.rb +20 -0
  80. data/lib/vapi_server_sdk/types/assistant_overrides_first_message_mode.rb +19 -0
  81. data/lib/vapi_server_sdk/types/assistant_overrides_model.rb +199 -0
  82. data/lib/vapi_server_sdk/types/assistant_overrides_server_messages_item.rb +21 -0
  83. data/lib/vapi_server_sdk/types/assistant_overrides_transcriber.rb +108 -0
  84. data/lib/vapi_server_sdk/types/assistant_overrides_voice.rb +186 -0
  85. data/lib/vapi_server_sdk/types/assistant_server_messages_item.rb +21 -0
  86. data/lib/vapi_server_sdk/types/assistant_transcriber.rb +108 -0
  87. data/lib/vapi_server_sdk/types/assistant_voice.rb +186 -0
  88. data/lib/vapi_server_sdk/types/azure_open_ai_credential.rb +128 -0
  89. data/lib/vapi_server_sdk/types/azure_open_ai_credential_models_item.rb +14 -0
  90. data/lib/vapi_server_sdk/types/azure_open_ai_credential_region.rb +21 -0
  91. data/lib/vapi_server_sdk/types/azure_voice.rb +104 -0
  92. data/lib/vapi_server_sdk/types/azure_voice_id.rb +53 -0
  93. data/lib/vapi_server_sdk/types/azure_voice_id_enum.rb +9 -0
  94. data/lib/vapi_server_sdk/types/block_complete_message.rb +73 -0
  95. data/lib/vapi_server_sdk/types/block_complete_message_conditions_item.rb +94 -0
  96. data/lib/vapi_server_sdk/types/block_start_message.rb +73 -0
  97. data/lib/vapi_server_sdk/types/block_start_message_conditions_item.rb +94 -0
  98. data/lib/vapi_server_sdk/types/bot_message.rb +111 -0
  99. data/lib/vapi_server_sdk/types/bucket_plan.rb +139 -0
  100. data/lib/vapi_server_sdk/types/buy_phone_number_dto.rb +151 -0
  101. data/lib/vapi_server_sdk/types/buy_phone_number_dto_fallback_destination.rb +100 -0
  102. data/lib/vapi_server_sdk/types/byo_phone_number.rb +224 -0
  103. data/lib/vapi_server_sdk/types/byo_phone_number_fallback_destination.rb +100 -0
  104. data/lib/vapi_server_sdk/types/byo_sip_trunk_credential.rb +166 -0
  105. data/lib/vapi_server_sdk/types/call.rb +425 -0
  106. data/lib/vapi_server_sdk/types/call_costs_item.rb +146 -0
  107. data/lib/vapi_server_sdk/types/call_destination.rb +96 -0
  108. data/lib/vapi_server_sdk/types/call_ended_reason.rb +175 -0
  109. data/lib/vapi_server_sdk/types/call_messages_item.rb +96 -0
  110. data/lib/vapi_server_sdk/types/call_paginated_response.rb +75 -0
  111. data/lib/vapi_server_sdk/types/call_phone_call_provider.rb +11 -0
  112. data/lib/vapi_server_sdk/types/call_phone_call_transport.rb +10 -0
  113. data/lib/vapi_server_sdk/types/call_status.rb +12 -0
  114. data/lib/vapi_server_sdk/types/call_type.rb +10 -0
  115. data/lib/vapi_server_sdk/types/callback_step.rb +204 -0
  116. data/lib/vapi_server_sdk/types/callback_step_block.rb +108 -0
  117. data/lib/vapi_server_sdk/types/cartesia_credential.rb +101 -0
  118. data/lib/vapi_server_sdk/types/cartesia_voice.rb +113 -0
  119. data/lib/vapi_server_sdk/types/cartesia_voice_language.rb +15 -0
  120. data/lib/vapi_server_sdk/types/cartesia_voice_model.rb +10 -0
  121. data/lib/vapi_server_sdk/types/chunk_plan.rb +128 -0
  122. data/lib/vapi_server_sdk/types/client_inbound_message.rb +63 -0
  123. data/lib/vapi_server_sdk/types/client_inbound_message_add_message.rb +61 -0
  124. data/lib/vapi_server_sdk/types/client_inbound_message_control.rb +56 -0
  125. data/lib/vapi_server_sdk/types/client_inbound_message_control_control.rb +10 -0
  126. data/lib/vapi_server_sdk/types/client_inbound_message_message.rb +109 -0
  127. data/lib/vapi_server_sdk/types/client_inbound_message_say.rb +67 -0
  128. data/lib/vapi_server_sdk/types/client_message.rb +65 -0
  129. data/lib/vapi_server_sdk/types/client_message_conversation_update.rb +79 -0
  130. data/lib/vapi_server_sdk/types/client_message_conversation_update_messages_item.rb +97 -0
  131. data/lib/vapi_server_sdk/types/client_message_hang.rb +47 -0
  132. data/lib/vapi_server_sdk/types/client_message_language_changed.rb +55 -0
  133. data/lib/vapi_server_sdk/types/client_message_message.rb +214 -0
  134. data/lib/vapi_server_sdk/types/client_message_metadata.rb +55 -0
  135. data/lib/vapi_server_sdk/types/client_message_model_output.rb +55 -0
  136. data/lib/vapi_server_sdk/types/client_message_speech_update.rb +67 -0
  137. data/lib/vapi_server_sdk/types/client_message_speech_update_role.rb +9 -0
  138. data/lib/vapi_server_sdk/types/client_message_speech_update_status.rb +9 -0
  139. data/lib/vapi_server_sdk/types/client_message_tool_calls.rb +75 -0
  140. data/lib/vapi_server_sdk/types/client_message_tool_calls_result.rb +55 -0
  141. data/lib/vapi_server_sdk/types/client_message_tool_calls_tool_with_tool_call_list_item.rb +108 -0
  142. data/lib/vapi_server_sdk/types/client_message_transcript.rb +74 -0
  143. data/lib/vapi_server_sdk/types/client_message_transcript_role.rb +9 -0
  144. data/lib/vapi_server_sdk/types/client_message_transcript_transcript_type.rb +9 -0
  145. data/lib/vapi_server_sdk/types/client_message_user_interrupted.rb +47 -0
  146. data/lib/vapi_server_sdk/types/client_message_voice_input.rb +55 -0
  147. data/lib/vapi_server_sdk/types/clone_voice_dto.rb +83 -0
  148. data/lib/vapi_server_sdk/types/condition.rb +73 -0
  149. data/lib/vapi_server_sdk/types/condition_operator.rb +13 -0
  150. data/lib/vapi_server_sdk/types/conversation_block.rb +239 -0
  151. data/lib/vapi_server_sdk/types/conversation_block_messages_item.rb +94 -0
  152. data/lib/vapi_server_sdk/types/cost_breakdown.rb +141 -0
  153. data/lib/vapi_server_sdk/types/create_anthropic_credential_dto.rb +65 -0
  154. data/lib/vapi_server_sdk/types/create_anyscale_credential_dto.rb +65 -0
  155. data/lib/vapi_server_sdk/types/create_assistant_dto.rb +529 -0
  156. data/lib/vapi_server_sdk/types/create_assistant_dto_background_sound.rb +10 -0
  157. data/lib/vapi_server_sdk/types/create_assistant_dto_client_messages_item.rb +20 -0
  158. data/lib/vapi_server_sdk/types/create_assistant_dto_first_message_mode.rb +19 -0
  159. data/lib/vapi_server_sdk/types/create_assistant_dto_model.rb +199 -0
  160. data/lib/vapi_server_sdk/types/create_assistant_dto_server_messages_item.rb +21 -0
  161. data/lib/vapi_server_sdk/types/create_assistant_dto_transcriber.rb +108 -0
  162. data/lib/vapi_server_sdk/types/create_assistant_dto_voice.rb +186 -0
  163. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto.rb +94 -0
  164. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_models_item.rb +14 -0
  165. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_region.rb +21 -0
  166. data/lib/vapi_server_sdk/types/create_byo_phone_number_dto.rb +191 -0
  167. data/lib/vapi_server_sdk/types/create_byo_phone_number_dto_fallback_destination.rb +101 -0
  168. data/lib/vapi_server_sdk/types/create_byo_sip_trunk_credential_dto.rb +133 -0
  169. data/lib/vapi_server_sdk/types/create_cartesia_credential_dto.rb +65 -0
  170. data/lib/vapi_server_sdk/types/create_conversation_block_dto.rb +206 -0
  171. data/lib/vapi_server_sdk/types/create_conversation_block_dto_messages_item.rb +95 -0
  172. data/lib/vapi_server_sdk/types/create_custom_llm_credential_dto.rb +65 -0
  173. data/lib/vapi_server_sdk/types/create_customer_dto.rb +117 -0
  174. data/lib/vapi_server_sdk/types/create_deep_infra_credential_dto.rb +65 -0
  175. data/lib/vapi_server_sdk/types/create_deepgram_credential_dto.rb +76 -0
  176. data/lib/vapi_server_sdk/types/create_dtmf_tool_dto.rb +139 -0
  177. data/lib/vapi_server_sdk/types/create_dtmf_tool_dto_messages_item.rb +120 -0
  178. data/lib/vapi_server_sdk/types/create_eleven_labs_credential_dto.rb +65 -0
  179. data/lib/vapi_server_sdk/types/create_end_call_tool_dto.rb +139 -0
  180. data/lib/vapi_server_sdk/types/create_end_call_tool_dto_messages_item.rb +120 -0
  181. data/lib/vapi_server_sdk/types/create_function_tool_dto.rb +139 -0
  182. data/lib/vapi_server_sdk/types/create_function_tool_dto_messages_item.rb +120 -0
  183. data/lib/vapi_server_sdk/types/create_gcp_credential_dto.rb +104 -0
  184. data/lib/vapi_server_sdk/types/create_ghl_tool_dto.rb +158 -0
  185. data/lib/vapi_server_sdk/types/create_ghl_tool_dto_messages_item.rb +120 -0
  186. data/lib/vapi_server_sdk/types/create_gladia_credential_dto.rb +65 -0
  187. data/lib/vapi_server_sdk/types/create_go_high_level_credential_dto.rb +65 -0
  188. data/lib/vapi_server_sdk/types/create_groq_credential_dto.rb +65 -0
  189. data/lib/vapi_server_sdk/types/create_lmnt_credential_dto.rb +65 -0
  190. data/lib/vapi_server_sdk/types/create_make_credential_dto.rb +79 -0
  191. data/lib/vapi_server_sdk/types/create_make_tool_dto.rb +158 -0
  192. data/lib/vapi_server_sdk/types/create_make_tool_dto_messages_item.rb +120 -0
  193. data/lib/vapi_server_sdk/types/create_open_ai_credential_dto.rb +65 -0
  194. data/lib/vapi_server_sdk/types/create_open_router_credential_dto.rb +65 -0
  195. data/lib/vapi_server_sdk/types/create_org_dto.rb +129 -0
  196. data/lib/vapi_server_sdk/types/create_outbound_call_dto.rb +191 -0
  197. data/lib/vapi_server_sdk/types/create_output_tool_dto.rb +139 -0
  198. data/lib/vapi_server_sdk/types/create_output_tool_dto_messages_item.rb +120 -0
  199. data/lib/vapi_server_sdk/types/create_perplexity_ai_credential_dto.rb +65 -0
  200. data/lib/vapi_server_sdk/types/create_play_ht_credential_dto.rb +72 -0
  201. data/lib/vapi_server_sdk/types/create_rime_ai_credential_dto.rb +65 -0
  202. data/lib/vapi_server_sdk/types/create_runpod_credential_dto.rb +65 -0
  203. data/lib/vapi_server_sdk/types/create_s_3_credential_dto.rb +101 -0
  204. data/lib/vapi_server_sdk/types/create_squad_dto.rb +94 -0
  205. data/lib/vapi_server_sdk/types/create_together_ai_credential_dto.rb +65 -0
  206. data/lib/vapi_server_sdk/types/create_token_dto.rb +81 -0
  207. data/lib/vapi_server_sdk/types/create_token_dto_tag.rb +9 -0
  208. data/lib/vapi_server_sdk/types/create_tool_call_block_dto.rb +168 -0
  209. data/lib/vapi_server_sdk/types/create_tool_call_block_dto_messages_item.rb +94 -0
  210. data/lib/vapi_server_sdk/types/create_tool_call_block_dto_tool.rb +161 -0
  211. data/lib/vapi_server_sdk/types/create_tool_template_dto.rb +131 -0
  212. data/lib/vapi_server_sdk/types/create_tool_template_dto_details.rb +159 -0
  213. data/lib/vapi_server_sdk/types/create_tool_template_dto_provider.rb +9 -0
  214. data/lib/vapi_server_sdk/types/create_tool_template_dto_provider_details.rb +107 -0
  215. data/lib/vapi_server_sdk/types/create_tool_template_dto_visibility.rb +8 -0
  216. data/lib/vapi_server_sdk/types/create_transfer_call_tool_dto.rb +161 -0
  217. data/lib/vapi_server_sdk/types/create_transfer_call_tool_dto_destinations_item.rb +121 -0
  218. data/lib/vapi_server_sdk/types/create_transfer_call_tool_dto_messages_item.rb +121 -0
  219. data/lib/vapi_server_sdk/types/create_twilio_credential_dto.rb +72 -0
  220. data/lib/vapi_server_sdk/types/create_twilio_phone_number_dto.rb +167 -0
  221. data/lib/vapi_server_sdk/types/create_twilio_phone_number_dto_fallback_destination.rb +101 -0
  222. data/lib/vapi_server_sdk/types/create_vapi_phone_number_dto.rb +155 -0
  223. data/lib/vapi_server_sdk/types/create_vapi_phone_number_dto_fallback_destination.rb +101 -0
  224. data/lib/vapi_server_sdk/types/create_voicemail_tool_dto.rb +139 -0
  225. data/lib/vapi_server_sdk/types/create_voicemail_tool_dto_messages_item.rb +120 -0
  226. data/lib/vapi_server_sdk/types/create_vonage_credential_dto.rb +72 -0
  227. data/lib/vapi_server_sdk/types/create_vonage_phone_number_dto.rb +161 -0
  228. data/lib/vapi_server_sdk/types/create_vonage_phone_number_dto_fallback_destination.rb +101 -0
  229. data/lib/vapi_server_sdk/types/create_web_call_dto.rb +123 -0
  230. data/lib/vapi_server_sdk/types/create_workflow_block_dto.rb +154 -0
  231. data/lib/vapi_server_sdk/types/create_workflow_block_dto_messages_item.rb +94 -0
  232. data/lib/vapi_server_sdk/types/create_workflow_block_dto_steps_item.rb +94 -0
  233. data/lib/vapi_server_sdk/types/custom_llm_credential.rb +101 -0
  234. data/lib/vapi_server_sdk/types/custom_llm_model.rb +204 -0
  235. data/lib/vapi_server_sdk/types/custom_llm_model_metadata_send_mode.rb +18 -0
  236. data/lib/vapi_server_sdk/types/custom_llm_model_tools_item.rb +159 -0
  237. data/lib/vapi_server_sdk/types/deep_infra_credential.rb +101 -0
  238. data/lib/vapi_server_sdk/types/deep_infra_model.rb +169 -0
  239. data/lib/vapi_server_sdk/types/deep_infra_model_tools_item.rb +159 -0
  240. data/lib/vapi_server_sdk/types/deepgram_credential.rb +114 -0
  241. data/lib/vapi_server_sdk/types/deepgram_transcriber.rb +143 -0
  242. data/lib/vapi_server_sdk/types/deepgram_transcriber_language.rb +62 -0
  243. data/lib/vapi_server_sdk/types/deepgram_transcriber_model.rb +34 -0
  244. data/lib/vapi_server_sdk/types/deepgram_voice.rb +96 -0
  245. data/lib/vapi_server_sdk/types/deepgram_voice_id.rb +53 -0
  246. data/lib/vapi_server_sdk/types/deepgram_voice_id_enum.rb +18 -0
  247. data/lib/vapi_server_sdk/types/dtmf_tool.rb +178 -0
  248. data/lib/vapi_server_sdk/types/dtmf_tool_messages_item.rb +120 -0
  249. data/lib/vapi_server_sdk/types/eleven_labs_credential.rb +101 -0
  250. data/lib/vapi_server_sdk/types/eleven_labs_voice.rb +176 -0
  251. data/lib/vapi_server_sdk/types/eleven_labs_voice_id.rb +54 -0
  252. data/lib/vapi_server_sdk/types/eleven_labs_voice_id_enum.rb +21 -0
  253. data/lib/vapi_server_sdk/types/eleven_labs_voice_model.rb +12 -0
  254. data/lib/vapi_server_sdk/types/end_call_tool.rb +178 -0
  255. data/lib/vapi_server_sdk/types/end_call_tool_messages_item.rb +120 -0
  256. data/lib/vapi_server_sdk/types/error.rb +55 -0
  257. data/lib/vapi_server_sdk/types/exact_replacement.rb +65 -0
  258. data/lib/vapi_server_sdk/types/file.rb +185 -0
  259. data/lib/vapi_server_sdk/types/file_status.rb +8 -0
  260. data/lib/vapi_server_sdk/types/format_plan.rb +130 -0
  261. data/lib/vapi_server_sdk/types/format_plan_replacements_item.rb +94 -0
  262. data/lib/vapi_server_sdk/types/function_tool.rb +178 -0
  263. data/lib/vapi_server_sdk/types/function_tool_messages_item.rb +120 -0
  264. data/lib/vapi_server_sdk/types/function_tool_provider_details.rb +71 -0
  265. data/lib/vapi_server_sdk/types/function_tool_with_tool_call.rb +158 -0
  266. data/lib/vapi_server_sdk/types/function_tool_with_tool_call_messages_item.rb +120 -0
  267. data/lib/vapi_server_sdk/types/gcp_credential.rb +138 -0
  268. data/lib/vapi_server_sdk/types/gcp_key.rb +143 -0
  269. data/lib/vapi_server_sdk/types/ghl_tool.rb +192 -0
  270. data/lib/vapi_server_sdk/types/ghl_tool_messages_item.rb +120 -0
  271. data/lib/vapi_server_sdk/types/ghl_tool_metadata.rb +67 -0
  272. data/lib/vapi_server_sdk/types/ghl_tool_provider_details.rb +115 -0
  273. data/lib/vapi_server_sdk/types/ghl_tool_with_tool_call.rb +173 -0
  274. data/lib/vapi_server_sdk/types/ghl_tool_with_tool_call_messages_item.rb +120 -0
  275. data/lib/vapi_server_sdk/types/gladia_credential.rb +101 -0
  276. data/lib/vapi_server_sdk/types/gladia_transcriber.rb +122 -0
  277. data/lib/vapi_server_sdk/types/gladia_transcriber_language.rb +108 -0
  278. data/lib/vapi_server_sdk/types/gladia_transcriber_language_behaviour.rb +9 -0
  279. data/lib/vapi_server_sdk/types/gladia_transcriber_model.rb +8 -0
  280. data/lib/vapi_server_sdk/types/go_high_level_credential.rb +101 -0
  281. data/lib/vapi_server_sdk/types/groq_credential.rb +101 -0
  282. data/lib/vapi_server_sdk/types/groq_model.rb +170 -0
  283. data/lib/vapi_server_sdk/types/groq_model_model.rb +17 -0
  284. data/lib/vapi_server_sdk/types/groq_model_tools_item.rb +159 -0
  285. data/lib/vapi_server_sdk/types/handoff_step.rb +204 -0
  286. data/lib/vapi_server_sdk/types/handoff_step_block.rb +108 -0
  287. data/lib/vapi_server_sdk/types/import_twilio_phone_number_dto.rb +167 -0
  288. data/lib/vapi_server_sdk/types/import_twilio_phone_number_dto_fallback_destination.rb +101 -0
  289. data/lib/vapi_server_sdk/types/import_vonage_phone_number_dto.rb +165 -0
  290. data/lib/vapi_server_sdk/types/import_vonage_phone_number_dto_fallback_destination.rb +101 -0
  291. data/lib/vapi_server_sdk/types/invite_user_dto.rb +66 -0
  292. data/lib/vapi_server_sdk/types/invite_user_dto_role.rb +9 -0
  293. data/lib/vapi_server_sdk/types/json_schema.rb +125 -0
  294. data/lib/vapi_server_sdk/types/json_schema_type.rb +21 -0
  295. data/lib/vapi_server_sdk/types/knowledge_base.rb +74 -0
  296. data/lib/vapi_server_sdk/types/lmnt_credential.rb +101 -0
  297. data/lib/vapi_server_sdk/types/lmnt_voice.rb +104 -0
  298. data/lib/vapi_server_sdk/types/lmnt_voice_id.rb +53 -0
  299. data/lib/vapi_server_sdk/types/lmnt_voice_id_enum.rb +8 -0
  300. data/lib/vapi_server_sdk/types/log.rb +248 -0
  301. data/lib/vapi_server_sdk/types/log_request_http_method.rb +12 -0
  302. data/lib/vapi_server_sdk/types/log_resource.rb +15 -0
  303. data/lib/vapi_server_sdk/types/log_type.rb +11 -0
  304. data/lib/vapi_server_sdk/types/logs_paginated_response.rb +75 -0
  305. data/lib/vapi_server_sdk/types/make_credential.rb +118 -0
  306. data/lib/vapi_server_sdk/types/make_tool.rb +192 -0
  307. data/lib/vapi_server_sdk/types/make_tool_messages_item.rb +120 -0
  308. data/lib/vapi_server_sdk/types/make_tool_metadata.rb +67 -0
  309. data/lib/vapi_server_sdk/types/make_tool_provider_details.rb +107 -0
  310. data/lib/vapi_server_sdk/types/make_tool_with_tool_call.rb +173 -0
  311. data/lib/vapi_server_sdk/types/make_tool_with_tool_call_messages_item.rb +120 -0
  312. data/lib/vapi_server_sdk/types/message_plan.rb +107 -0
  313. data/lib/vapi_server_sdk/types/metrics.rb +165 -0
  314. data/lib/vapi_server_sdk/types/model_based_condition.rb +117 -0
  315. data/lib/vapi_server_sdk/types/model_cost.rb +106 -0
  316. data/lib/vapi_server_sdk/types/monitor.rb +71 -0
  317. data/lib/vapi_server_sdk/types/monitor_plan.rb +85 -0
  318. data/lib/vapi_server_sdk/types/neets_voice.rb +96 -0
  319. data/lib/vapi_server_sdk/types/neets_voice_id.rb +53 -0
  320. data/lib/vapi_server_sdk/types/neets_voice_id_enum.rb +7 -0
  321. data/lib/vapi_server_sdk/types/open_ai_credential.rb +101 -0
  322. data/lib/vapi_server_sdk/types/open_ai_function.rb +96 -0
  323. data/lib/vapi_server_sdk/types/open_ai_function_parameters.rb +85 -0
  324. data/lib/vapi_server_sdk/types/open_ai_message.rb +68 -0
  325. data/lib/vapi_server_sdk/types/open_ai_message_role.rb +11 -0
  326. data/lib/vapi_server_sdk/types/open_ai_model.rb +191 -0
  327. data/lib/vapi_server_sdk/types/open_ai_model_fallback_models_item.rb +23 -0
  328. data/lib/vapi_server_sdk/types/open_ai_model_model.rb +24 -0
  329. data/lib/vapi_server_sdk/types/open_ai_model_tools_item.rb +159 -0
  330. data/lib/vapi_server_sdk/types/open_ai_voice.rb +99 -0
  331. data/lib/vapi_server_sdk/types/open_ai_voice_id.rb +13 -0
  332. data/lib/vapi_server_sdk/types/open_router_credential.rb +101 -0
  333. data/lib/vapi_server_sdk/types/open_router_model.rb +169 -0
  334. data/lib/vapi_server_sdk/types/open_router_model_tools_item.rb +159 -0
  335. data/lib/vapi_server_sdk/types/org.rb +212 -0
  336. data/lib/vapi_server_sdk/types/org_plan.rb +79 -0
  337. data/lib/vapi_server_sdk/types/output_tool.rb +178 -0
  338. data/lib/vapi_server_sdk/types/output_tool_messages_item.rb +120 -0
  339. data/lib/vapi_server_sdk/types/pagination_meta.rb +72 -0
  340. data/lib/vapi_server_sdk/types/perplexity_ai_credential.rb +101 -0
  341. data/lib/vapi_server_sdk/types/perplexity_ai_model.rb +169 -0
  342. data/lib/vapi_server_sdk/types/perplexity_ai_model_tools_item.rb +159 -0
  343. data/lib/vapi_server_sdk/types/play_ht_credential.rb +109 -0
  344. data/lib/vapi_server_sdk/types/play_ht_voice.rb +166 -0
  345. data/lib/vapi_server_sdk/types/play_ht_voice_emotion.rb +19 -0
  346. data/lib/vapi_server_sdk/types/play_ht_voice_id.rb +53 -0
  347. data/lib/vapi_server_sdk/types/play_ht_voice_id_enum.rb +16 -0
  348. data/lib/vapi_server_sdk/types/punctuation_boundary.rb +21 -0
  349. data/lib/vapi_server_sdk/types/regex_option.rb +74 -0
  350. data/lib/vapi_server_sdk/types/regex_option_type.rb +13 -0
  351. data/lib/vapi_server_sdk/types/regex_replacement.rb +82 -0
  352. data/lib/vapi_server_sdk/types/rime_ai_credential.rb +101 -0
  353. data/lib/vapi_server_sdk/types/rime_ai_voice.rb +114 -0
  354. data/lib/vapi_server_sdk/types/rime_ai_voice_id.rb +53 -0
  355. data/lib/vapi_server_sdk/types/rime_ai_voice_id_enum.rb +87 -0
  356. data/lib/vapi_server_sdk/types/rime_ai_voice_model.rb +9 -0
  357. data/lib/vapi_server_sdk/types/rule_based_condition.rb +195 -0
  358. data/lib/vapi_server_sdk/types/rule_based_condition_operator.rb +14 -0
  359. data/lib/vapi_server_sdk/types/runpod_credential.rb +101 -0
  360. data/lib/vapi_server_sdk/types/s_3_credential.rb +134 -0
  361. data/lib/vapi_server_sdk/types/sbc_configuration.rb +47 -0
  362. data/lib/vapi_server_sdk/types/server.rb +82 -0
  363. data/lib/vapi_server_sdk/types/server_message.rb +77 -0
  364. data/lib/vapi_server_sdk/types/server_message_assistant_request.rb +169 -0
  365. data/lib/vapi_server_sdk/types/server_message_assistant_request_phone_number.rb +125 -0
  366. data/lib/vapi_server_sdk/types/server_message_conversation_update.rb +197 -0
  367. data/lib/vapi_server_sdk/types/server_message_conversation_update_messages_item.rb +97 -0
  368. data/lib/vapi_server_sdk/types/server_message_conversation_update_phone_number.rb +125 -0
  369. data/lib/vapi_server_sdk/types/server_message_end_of_call_report.rb +241 -0
  370. data/lib/vapi_server_sdk/types/server_message_end_of_call_report_costs_item.rb +147 -0
  371. data/lib/vapi_server_sdk/types/server_message_end_of_call_report_ended_reason.rb +176 -0
  372. data/lib/vapi_server_sdk/types/server_message_end_of_call_report_phone_number.rb +125 -0
  373. data/lib/vapi_server_sdk/types/server_message_hang.rb +169 -0
  374. data/lib/vapi_server_sdk/types/server_message_hang_phone_number.rb +124 -0
  375. data/lib/vapi_server_sdk/types/server_message_language_changed.rb +177 -0
  376. data/lib/vapi_server_sdk/types/server_message_language_changed_phone_number.rb +125 -0
  377. data/lib/vapi_server_sdk/types/server_message_message.rb +285 -0
  378. data/lib/vapi_server_sdk/types/server_message_model_output.rb +177 -0
  379. data/lib/vapi_server_sdk/types/server_message_model_output_phone_number.rb +124 -0
  380. data/lib/vapi_server_sdk/types/server_message_phone_call_control.rb +192 -0
  381. data/lib/vapi_server_sdk/types/server_message_phone_call_control_destination.rb +96 -0
  382. data/lib/vapi_server_sdk/types/server_message_phone_call_control_phone_number.rb +125 -0
  383. data/lib/vapi_server_sdk/types/server_message_phone_call_control_request.rb +9 -0
  384. data/lib/vapi_server_sdk/types/server_message_response.rb +65 -0
  385. data/lib/vapi_server_sdk/types/server_message_response_assistant_request.rb +162 -0
  386. data/lib/vapi_server_sdk/types/server_message_response_assistant_request_destination.rb +98 -0
  387. data/lib/vapi_server_sdk/types/server_message_response_message_response.rb +85 -0
  388. data/lib/vapi_server_sdk/types/server_message_response_tool_calls.rb +71 -0
  389. data/lib/vapi_server_sdk/types/server_message_response_transfer_destination_request.rb +75 -0
  390. data/lib/vapi_server_sdk/types/server_message_response_transfer_destination_request_destination.rb +122 -0
  391. data/lib/vapi_server_sdk/types/server_message_response_voice_request.rb +97 -0
  392. data/lib/vapi_server_sdk/types/server_message_speech_update.rb +187 -0
  393. data/lib/vapi_server_sdk/types/server_message_speech_update_phone_number.rb +124 -0
  394. data/lib/vapi_server_sdk/types/server_message_speech_update_role.rb +9 -0
  395. data/lib/vapi_server_sdk/types/server_message_speech_update_status.rb +9 -0
  396. data/lib/vapi_server_sdk/types/server_message_status_update.rb +255 -0
  397. data/lib/vapi_server_sdk/types/server_message_status_update_destination.rb +96 -0
  398. data/lib/vapi_server_sdk/types/server_message_status_update_ended_reason.rb +175 -0
  399. data/lib/vapi_server_sdk/types/server_message_status_update_messages_item.rb +97 -0
  400. data/lib/vapi_server_sdk/types/server_message_status_update_phone_number.rb +124 -0
  401. data/lib/vapi_server_sdk/types/server_message_status_update_status.rb +12 -0
  402. data/lib/vapi_server_sdk/types/server_message_tool_calls.rb +195 -0
  403. data/lib/vapi_server_sdk/types/server_message_tool_calls_phone_number.rb +124 -0
  404. data/lib/vapi_server_sdk/types/server_message_tool_calls_tool_with_tool_call_list_item.rb +108 -0
  405. data/lib/vapi_server_sdk/types/server_message_transcript.rb +195 -0
  406. data/lib/vapi_server_sdk/types/server_message_transcript_phone_number.rb +124 -0
  407. data/lib/vapi_server_sdk/types/server_message_transcript_role.rb +9 -0
  408. data/lib/vapi_server_sdk/types/server_message_transcript_transcript_type.rb +9 -0
  409. data/lib/vapi_server_sdk/types/server_message_transfer_destination_request.rb +171 -0
  410. data/lib/vapi_server_sdk/types/server_message_transfer_destination_request_phone_number.rb +125 -0
  411. data/lib/vapi_server_sdk/types/server_message_transfer_update.rb +213 -0
  412. data/lib/vapi_server_sdk/types/server_message_transfer_update_destination.rb +122 -0
  413. data/lib/vapi_server_sdk/types/server_message_transfer_update_phone_number.rb +125 -0
  414. data/lib/vapi_server_sdk/types/server_message_user_interrupted.rb +169 -0
  415. data/lib/vapi_server_sdk/types/server_message_user_interrupted_phone_number.rb +125 -0
  416. data/lib/vapi_server_sdk/types/server_message_voice_input.rb +177 -0
  417. data/lib/vapi_server_sdk/types/server_message_voice_input_phone_number.rb +124 -0
  418. data/lib/vapi_server_sdk/types/server_message_voice_request.rb +185 -0
  419. data/lib/vapi_server_sdk/types/server_message_voice_request_phone_number.rb +124 -0
  420. data/lib/vapi_server_sdk/types/sip_trunk_gateway.rb +138 -0
  421. data/lib/vapi_server_sdk/types/sip_trunk_gateway_outbound_protocol.rb +12 -0
  422. data/lib/vapi_server_sdk/types/sip_trunk_outbound_authentication_plan.rb +86 -0
  423. data/lib/vapi_server_sdk/types/sip_trunk_outbound_sip_register_plan.rb +74 -0
  424. data/lib/vapi_server_sdk/types/squad.rb +132 -0
  425. data/lib/vapi_server_sdk/types/squad_member_dto.rb +113 -0
  426. data/lib/vapi_server_sdk/types/start_speaking_plan.rb +119 -0
  427. data/lib/vapi_server_sdk/types/step_destination.rb +82 -0
  428. data/lib/vapi_server_sdk/types/step_destination_conditions_item.rb +94 -0
  429. data/lib/vapi_server_sdk/types/stop_speaking_plan.rb +120 -0
  430. data/lib/vapi_server_sdk/types/structured_data_plan.rb +140 -0
  431. data/lib/vapi_server_sdk/types/success_evaluation_plan.rb +161 -0
  432. data/lib/vapi_server_sdk/types/success_evaluation_plan_rubric.rb +29 -0
  433. data/lib/vapi_server_sdk/types/summary_plan.rb +110 -0
  434. data/lib/vapi_server_sdk/types/sync_voice_library_dto.rb +58 -0
  435. data/lib/vapi_server_sdk/types/sync_voice_library_dto_providers_item.rb +16 -0
  436. data/lib/vapi_server_sdk/types/system_message.rb +79 -0
  437. data/lib/vapi_server_sdk/types/talkscriber_transcriber.rb +72 -0
  438. data/lib/vapi_server_sdk/types/talkscriber_transcriber_language.rb +109 -0
  439. data/lib/vapi_server_sdk/types/template.rb +164 -0
  440. data/lib/vapi_server_sdk/types/template_details.rb +159 -0
  441. data/lib/vapi_server_sdk/types/template_provider.rb +9 -0
  442. data/lib/vapi_server_sdk/types/template_provider_details.rb +107 -0
  443. data/lib/vapi_server_sdk/types/template_visibility.rb +8 -0
  444. data/lib/vapi_server_sdk/types/time_range.rb +91 -0
  445. data/lib/vapi_server_sdk/types/time_range_step.rb +18 -0
  446. data/lib/vapi_server_sdk/types/together_ai_credential.rb +101 -0
  447. data/lib/vapi_server_sdk/types/together_ai_model.rb +169 -0
  448. data/lib/vapi_server_sdk/types/together_ai_model_tools_item.rb +159 -0
  449. data/lib/vapi_server_sdk/types/token.rb +127 -0
  450. data/lib/vapi_server_sdk/types/token_restrictions.rb +103 -0
  451. data/lib/vapi_server_sdk/types/token_tag.rb +9 -0
  452. data/lib/vapi_server_sdk/types/tool_call.rb +78 -0
  453. data/lib/vapi_server_sdk/types/tool_call_block.rb +201 -0
  454. data/lib/vapi_server_sdk/types/tool_call_block_messages_item.rb +94 -0
  455. data/lib/vapi_server_sdk/types/tool_call_block_tool.rb +161 -0
  456. data/lib/vapi_server_sdk/types/tool_call_function.rb +65 -0
  457. data/lib/vapi_server_sdk/types/tool_call_message.rb +92 -0
  458. data/lib/vapi_server_sdk/types/tool_call_result.rb +126 -0
  459. data/lib/vapi_server_sdk/types/tool_call_result_message.rb +100 -0
  460. data/lib/vapi_server_sdk/types/tool_call_result_message_item.rb +94 -0
  461. data/lib/vapi_server_sdk/types/tool_message_complete.rb +130 -0
  462. data/lib/vapi_server_sdk/types/tool_message_complete_role.rb +24 -0
  463. data/lib/vapi_server_sdk/types/tool_message_delayed.rb +86 -0
  464. data/lib/vapi_server_sdk/types/tool_message_failed.rb +88 -0
  465. data/lib/vapi_server_sdk/types/tool_message_start.rb +73 -0
  466. data/lib/vapi_server_sdk/types/tool_template_metadata.rb +78 -0
  467. data/lib/vapi_server_sdk/types/tool_template_setup.rb +86 -0
  468. data/lib/vapi_server_sdk/types/transcriber_cost.rb +90 -0
  469. data/lib/vapi_server_sdk/types/transcript_plan.rb +122 -0
  470. data/lib/vapi_server_sdk/types/transcription_endpointing_plan.rb +109 -0
  471. data/lib/vapi_server_sdk/types/transfer_call_tool.rb +194 -0
  472. data/lib/vapi_server_sdk/types/transfer_call_tool_destinations_item.rb +120 -0
  473. data/lib/vapi_server_sdk/types/transfer_call_tool_messages_item.rb +120 -0
  474. data/lib/vapi_server_sdk/types/transfer_destination_assistant.rb +181 -0
  475. data/lib/vapi_server_sdk/types/transfer_destination_number.rb +163 -0
  476. data/lib/vapi_server_sdk/types/transfer_destination_sip.rb +90 -0
  477. data/lib/vapi_server_sdk/types/transfer_destination_step.rb +90 -0
  478. data/lib/vapi_server_sdk/types/transfer_mode.rb +8 -0
  479. data/lib/vapi_server_sdk/types/transport_configuration_twilio.rb +125 -0
  480. data/lib/vapi_server_sdk/types/transport_configuration_twilio_recording_channels.rb +16 -0
  481. data/lib/vapi_server_sdk/types/transport_cost.rb +67 -0
  482. data/lib/vapi_server_sdk/types/twilio_credential.rb +110 -0
  483. data/lib/vapi_server_sdk/types/twilio_phone_number.rb +200 -0
  484. data/lib/vapi_server_sdk/types/twilio_phone_number_fallback_destination.rb +100 -0
  485. data/lib/vapi_server_sdk/types/twilio_voicemail_detection.rb +248 -0
  486. data/lib/vapi_server_sdk/types/twilio_voicemail_detection_voicemail_detection_types_item.rb +13 -0
  487. data/lib/vapi_server_sdk/types/update_anthropic_credential_dto.rb +65 -0
  488. data/lib/vapi_server_sdk/types/update_anyscale_credential_dto.rb +65 -0
  489. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto.rb +94 -0
  490. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_models_item.rb +14 -0
  491. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_region.rb +21 -0
  492. data/lib/vapi_server_sdk/types/update_byo_sip_trunk_credential_dto.rb +133 -0
  493. data/lib/vapi_server_sdk/types/update_cartesia_credential_dto.rb +65 -0
  494. data/lib/vapi_server_sdk/types/update_custom_llm_credential_dto.rb +65 -0
  495. data/lib/vapi_server_sdk/types/update_deep_infra_credential_dto.rb +65 -0
  496. data/lib/vapi_server_sdk/types/update_deepgram_credential_dto.rb +76 -0
  497. data/lib/vapi_server_sdk/types/update_eleven_labs_credential_dto.rb +65 -0
  498. data/lib/vapi_server_sdk/types/update_gcp_credential_dto.rb +104 -0
  499. data/lib/vapi_server_sdk/types/update_gladia_credential_dto.rb +65 -0
  500. data/lib/vapi_server_sdk/types/update_go_high_level_credential_dto.rb +65 -0
  501. data/lib/vapi_server_sdk/types/update_groq_credential_dto.rb +65 -0
  502. data/lib/vapi_server_sdk/types/update_lmnt_credential_dto.rb +65 -0
  503. data/lib/vapi_server_sdk/types/update_make_credential_dto.rb +79 -0
  504. data/lib/vapi_server_sdk/types/update_open_ai_credential_dto.rb +65 -0
  505. data/lib/vapi_server_sdk/types/update_open_router_credential_dto.rb +65 -0
  506. data/lib/vapi_server_sdk/types/update_org_dto.rb +129 -0
  507. data/lib/vapi_server_sdk/types/update_perplexity_ai_credential_dto.rb +65 -0
  508. data/lib/vapi_server_sdk/types/update_play_ht_credential_dto.rb +72 -0
  509. data/lib/vapi_server_sdk/types/update_rime_ai_credential_dto.rb +65 -0
  510. data/lib/vapi_server_sdk/types/update_runpod_credential_dto.rb +65 -0
  511. data/lib/vapi_server_sdk/types/update_s_3_credential_dto.rb +101 -0
  512. data/lib/vapi_server_sdk/types/update_together_ai_credential_dto.rb +65 -0
  513. data/lib/vapi_server_sdk/types/update_tool_template_dto.rb +131 -0
  514. data/lib/vapi_server_sdk/types/update_tool_template_dto_details.rb +159 -0
  515. data/lib/vapi_server_sdk/types/update_tool_template_dto_provider.rb +9 -0
  516. data/lib/vapi_server_sdk/types/update_tool_template_dto_provider_details.rb +107 -0
  517. data/lib/vapi_server_sdk/types/update_tool_template_dto_visibility.rb +8 -0
  518. data/lib/vapi_server_sdk/types/update_twilio_credential_dto.rb +72 -0
  519. data/lib/vapi_server_sdk/types/update_user_role_dto.rb +66 -0
  520. data/lib/vapi_server_sdk/types/update_user_role_dto_role.rb +9 -0
  521. data/lib/vapi_server_sdk/types/update_vonage_credential_dto.rb +72 -0
  522. data/lib/vapi_server_sdk/types/user.rb +95 -0
  523. data/lib/vapi_server_sdk/types/user_message.rb +102 -0
  524. data/lib/vapi_server_sdk/types/vapi_cost.rb +67 -0
  525. data/lib/vapi_server_sdk/types/vapi_model.rb +181 -0
  526. data/lib/vapi_server_sdk/types/vapi_model_steps_item.rb +94 -0
  527. data/lib/vapi_server_sdk/types/vapi_model_tools_item.rb +159 -0
  528. data/lib/vapi_server_sdk/types/vapi_phone_number.rb +188 -0
  529. data/lib/vapi_server_sdk/types/vapi_phone_number_fallback_destination.rb +100 -0
  530. data/lib/vapi_server_sdk/types/voice_cost.rb +90 -0
  531. data/lib/vapi_server_sdk/types/voice_library.rb +209 -0
  532. data/lib/vapi_server_sdk/types/voice_library_gender.rb +9 -0
  533. data/lib/vapi_server_sdk/types/voice_library_voice_response.rb +111 -0
  534. data/lib/vapi_server_sdk/types/vonage_credential.rb +128 -0
  535. data/lib/vapi_server_sdk/types/vonage_phone_number.rb +194 -0
  536. data/lib/vapi_server_sdk/types/vonage_phone_number_fallback_destination.rb +100 -0
  537. data/lib/vapi_server_sdk/types/workflow_block.rb +187 -0
  538. data/lib/vapi_server_sdk/types/workflow_block_messages_item.rb +94 -0
  539. data/lib/vapi_server_sdk/types/workflow_block_steps_item.rb +94 -0
  540. data/lib/vapi_server_sdk.rb +110 -0
  541. metadata +697 -0
@@ -0,0 +1,473 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../requests"
4
+ require "date"
5
+ require_relative "types/tools_list_response_item"
6
+ require "json"
7
+ require_relative "types/tools_create_request"
8
+ require_relative "types/tools_create_response"
9
+ require_relative "types/tools_get_response"
10
+ require_relative "types/tools_delete_response"
11
+ require_relative "types/update_tool_dto_messages_item"
12
+ require_relative "../types/open_ai_function"
13
+ require_relative "../types/server"
14
+ require_relative "types/tools_update_response"
15
+ require "async"
16
+
17
+ module Vapi
18
+ class ToolsClient
19
+ # @return [Vapi::RequestClient]
20
+ attr_reader :request_client
21
+
22
+ # @param request_client [Vapi::RequestClient]
23
+ # @return [Vapi::ToolsClient]
24
+ def initialize(request_client:)
25
+ @request_client = request_client
26
+ end
27
+
28
+ # @param limit [Float] This is the maximum number of items to return. Defaults to 100.
29
+ # @param created_at_gt [DateTime] This will return items where the createdAt is greater than the specified value.
30
+ # @param created_at_lt [DateTime] This will return items where the createdAt is less than the specified value.
31
+ # @param created_at_ge [DateTime] This will return items where the createdAt is greater than or equal to the
32
+ # specified value.
33
+ # @param created_at_le [DateTime] This will return items where the createdAt is less than or equal to the
34
+ # specified value.
35
+ # @param updated_at_gt [DateTime] This will return items where the updatedAt is greater than the specified value.
36
+ # @param updated_at_lt [DateTime] This will return items where the updatedAt is less than the specified value.
37
+ # @param updated_at_ge [DateTime] This will return items where the updatedAt is greater than or equal to the
38
+ # specified value.
39
+ # @param updated_at_le [DateTime] This will return items where the updatedAt is less than or equal to the
40
+ # specified value.
41
+ # @param request_options [Vapi::RequestOptions]
42
+ # @return [Array<Vapi::Tools::ToolsListResponseItem>]
43
+ # @example
44
+ # api = Vapi::Client.new(
45
+ # base_url: "https://api.example.com",
46
+ # environment: Vapi::Environment::DEFAULT,
47
+ # token: "YOUR_AUTH_TOKEN"
48
+ # )
49
+ # api.tools.list
50
+ def list(limit: nil, created_at_gt: nil, created_at_lt: nil, created_at_ge: nil, created_at_le: nil,
51
+ updated_at_gt: nil, updated_at_lt: nil, updated_at_ge: nil, updated_at_le: nil, request_options: nil)
52
+ response = @request_client.conn.get do |req|
53
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
54
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
55
+ req.headers = {
56
+ **(req.headers || {}),
57
+ **@request_client.get_headers,
58
+ **(request_options&.additional_headers || {})
59
+ }.compact
60
+ req.params = {
61
+ **(request_options&.additional_query_parameters || {}),
62
+ "limit": limit,
63
+ "createdAtGt": created_at_gt,
64
+ "createdAtLt": created_at_lt,
65
+ "createdAtGe": created_at_ge,
66
+ "createdAtLe": created_at_le,
67
+ "updatedAtGt": updated_at_gt,
68
+ "updatedAtLt": updated_at_lt,
69
+ "updatedAtGe": updated_at_ge,
70
+ "updatedAtLe": updated_at_le
71
+ }.compact
72
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
73
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
74
+ end
75
+ req.url "#{@request_client.get_url(request_options: request_options)}/tool"
76
+ end
77
+ parsed_json = JSON.parse(response.body)
78
+ parsed_json&.map do |item|
79
+ item = item.to_json
80
+ Vapi::Tools::ToolsListResponseItem.from_json(json_object: item)
81
+ end
82
+ end
83
+
84
+ # @param request [Vapi::Tools::ToolsCreateRequest]
85
+ # @param request_options [Vapi::RequestOptions]
86
+ # @return [Vapi::Tools::ToolsCreateResponse]
87
+ # @example
88
+ # api = Vapi::Client.new(
89
+ # base_url: "https://api.example.com",
90
+ # environment: Vapi::Environment::DEFAULT,
91
+ # token: "YOUR_AUTH_TOKEN"
92
+ # )
93
+ # api.tools.create
94
+ def create(request:, request_options: nil)
95
+ response = @request_client.conn.post do |req|
96
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
97
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
98
+ req.headers = {
99
+ **(req.headers || {}),
100
+ **@request_client.get_headers,
101
+ **(request_options&.additional_headers || {})
102
+ }.compact
103
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
104
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
105
+ end
106
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
107
+ req.url "#{@request_client.get_url(request_options: request_options)}/tool"
108
+ end
109
+ Vapi::Tools::ToolsCreateResponse.from_json(json_object: response.body)
110
+ end
111
+
112
+ # @param id [String]
113
+ # @param request_options [Vapi::RequestOptions]
114
+ # @return [Vapi::Tools::ToolsGetResponse]
115
+ # @example
116
+ # api = Vapi::Client.new(
117
+ # base_url: "https://api.example.com",
118
+ # environment: Vapi::Environment::DEFAULT,
119
+ # token: "YOUR_AUTH_TOKEN"
120
+ # )
121
+ # api.tools.get(id: "id")
122
+ def get(id:, request_options: nil)
123
+ response = @request_client.conn.get do |req|
124
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
125
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
126
+ req.headers = {
127
+ **(req.headers || {}),
128
+ **@request_client.get_headers,
129
+ **(request_options&.additional_headers || {})
130
+ }.compact
131
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
132
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
133
+ end
134
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
135
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
136
+ end
137
+ req.url "#{@request_client.get_url(request_options: request_options)}/tool/#{id}"
138
+ end
139
+ Vapi::Tools::ToolsGetResponse.from_json(json_object: response.body)
140
+ end
141
+
142
+ # @param id [String]
143
+ # @param request_options [Vapi::RequestOptions]
144
+ # @return [Vapi::Tools::ToolsDeleteResponse]
145
+ # @example
146
+ # api = Vapi::Client.new(
147
+ # base_url: "https://api.example.com",
148
+ # environment: Vapi::Environment::DEFAULT,
149
+ # token: "YOUR_AUTH_TOKEN"
150
+ # )
151
+ # api.tools.delete(id: "id")
152
+ def delete(id:, request_options: nil)
153
+ response = @request_client.conn.delete do |req|
154
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
155
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
156
+ req.headers = {
157
+ **(req.headers || {}),
158
+ **@request_client.get_headers,
159
+ **(request_options&.additional_headers || {})
160
+ }.compact
161
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
162
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
163
+ end
164
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
165
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
166
+ end
167
+ req.url "#{@request_client.get_url(request_options: request_options)}/tool/#{id}"
168
+ end
169
+ Vapi::Tools::ToolsDeleteResponse.from_json(json_object: response.body)
170
+ end
171
+
172
+ # @param id [String]
173
+ # @param async [Boolean] This determines if the tool is async.
174
+ # If async, the assistant will move forward without waiting for your server to
175
+ # respond. This is useful if you just want to trigger something on your server.
176
+ # If sync, the assistant will wait for your server to respond. This is useful if
177
+ # want assistant to respond with the result from your server.
178
+ # Defaults to synchronous (`false`).
179
+ # @param messages [Array<Hash>] These are the messages that will be spoken to the user as the tool is running.
180
+ # For some tools, this is auto-filled based on special fields like
181
+ # `tool.destinations`. For others like the function tool, these can be custom
182
+ # configured.Request of type Array<Vapi::Tools::UpdateToolDtoMessagesItem>, as a Hash
183
+ # @param function [Hash] This is the function definition of the tool.
184
+ # For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on
185
+ # tool-specific fields like `tool.destinations`. But, even in those cases, you can
186
+ # provide a custom function definition for advanced use cases.
187
+ # An example of an advanced use case is if you want to customize the message
188
+ # that's spoken for `endCall` tool. You can specify a function where it returns an
189
+ # argument "reason". Then, in `messages` array, you can have many
190
+ # "request-complete" messages. One of these messages will be triggered if the
191
+ # `messages[].conditions` matches the "reason" argument.Request of type Vapi::OpenAiFunction, as a Hash
192
+ # * :name (String)
193
+ # * :description (String)
194
+ # * :parameters (Hash)
195
+ # * :type (String)
196
+ # * :properties (Hash{String => Vapi::JsonSchema})
197
+ # * :required (Array<String>)
198
+ # @param server [Hash] This is the server that will be hit when this tool is requested by the model.
199
+ # All requests will be sent with the call object among other things. You can find
200
+ # more details in the Server URL documentation.
201
+ # This overrides the serverUrl set on the org and the phoneNumber. Order of
202
+ # precedence: highest tool.server.url, then assistant.serverUrl, then
203
+ # phoneNumber.serverUrl, then org.serverUrl.Request of type Vapi::Server, as a Hash
204
+ # * :timeout_seconds (Float)
205
+ # * :url (String)
206
+ # * :secret (String)
207
+ # @param request_options [Vapi::RequestOptions]
208
+ # @return [Vapi::Tools::ToolsUpdateResponse]
209
+ # @example
210
+ # api = Vapi::Client.new(
211
+ # base_url: "https://api.example.com",
212
+ # environment: Vapi::Environment::DEFAULT,
213
+ # token: "YOUR_AUTH_TOKEN"
214
+ # )
215
+ # api.tools.update(id: "id")
216
+ def update(id:, async: nil, messages: nil, function: nil, server: nil, request_options: nil)
217
+ response = @request_client.conn.patch do |req|
218
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
219
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
220
+ req.headers = {
221
+ **(req.headers || {}),
222
+ **@request_client.get_headers,
223
+ **(request_options&.additional_headers || {})
224
+ }.compact
225
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
226
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
227
+ end
228
+ req.body = {
229
+ **(request_options&.additional_body_parameters || {}),
230
+ async: async,
231
+ messages: messages,
232
+ function: function,
233
+ server: server
234
+ }.compact
235
+ req.url "#{@request_client.get_url(request_options: request_options)}/tool/#{id}"
236
+ end
237
+ Vapi::Tools::ToolsUpdateResponse.from_json(json_object: response.body)
238
+ end
239
+ end
240
+
241
+ class AsyncToolsClient
242
+ # @return [Vapi::AsyncRequestClient]
243
+ attr_reader :request_client
244
+
245
+ # @param request_client [Vapi::AsyncRequestClient]
246
+ # @return [Vapi::AsyncToolsClient]
247
+ def initialize(request_client:)
248
+ @request_client = request_client
249
+ end
250
+
251
+ # @param limit [Float] This is the maximum number of items to return. Defaults to 100.
252
+ # @param created_at_gt [DateTime] This will return items where the createdAt is greater than the specified value.
253
+ # @param created_at_lt [DateTime] This will return items where the createdAt is less than the specified value.
254
+ # @param created_at_ge [DateTime] This will return items where the createdAt is greater than or equal to the
255
+ # specified value.
256
+ # @param created_at_le [DateTime] This will return items where the createdAt is less than or equal to the
257
+ # specified value.
258
+ # @param updated_at_gt [DateTime] This will return items where the updatedAt is greater than the specified value.
259
+ # @param updated_at_lt [DateTime] This will return items where the updatedAt is less than the specified value.
260
+ # @param updated_at_ge [DateTime] This will return items where the updatedAt is greater than or equal to the
261
+ # specified value.
262
+ # @param updated_at_le [DateTime] This will return items where the updatedAt is less than or equal to the
263
+ # specified value.
264
+ # @param request_options [Vapi::RequestOptions]
265
+ # @return [Array<Vapi::Tools::ToolsListResponseItem>]
266
+ # @example
267
+ # api = Vapi::Client.new(
268
+ # base_url: "https://api.example.com",
269
+ # environment: Vapi::Environment::DEFAULT,
270
+ # token: "YOUR_AUTH_TOKEN"
271
+ # )
272
+ # api.tools.list
273
+ def list(limit: nil, created_at_gt: nil, created_at_lt: nil, created_at_ge: nil, created_at_le: nil,
274
+ updated_at_gt: nil, updated_at_lt: nil, updated_at_ge: nil, updated_at_le: nil, request_options: nil)
275
+ Async do
276
+ response = @request_client.conn.get do |req|
277
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
278
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
279
+ req.headers = {
280
+ **(req.headers || {}),
281
+ **@request_client.get_headers,
282
+ **(request_options&.additional_headers || {})
283
+ }.compact
284
+ req.params = {
285
+ **(request_options&.additional_query_parameters || {}),
286
+ "limit": limit,
287
+ "createdAtGt": created_at_gt,
288
+ "createdAtLt": created_at_lt,
289
+ "createdAtGe": created_at_ge,
290
+ "createdAtLe": created_at_le,
291
+ "updatedAtGt": updated_at_gt,
292
+ "updatedAtLt": updated_at_lt,
293
+ "updatedAtGe": updated_at_ge,
294
+ "updatedAtLe": updated_at_le
295
+ }.compact
296
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
297
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
298
+ end
299
+ req.url "#{@request_client.get_url(request_options: request_options)}/tool"
300
+ end
301
+ parsed_json = JSON.parse(response.body)
302
+ parsed_json&.map do |item|
303
+ item = item.to_json
304
+ Vapi::Tools::ToolsListResponseItem.from_json(json_object: item)
305
+ end
306
+ end
307
+ end
308
+
309
+ # @param request [Vapi::Tools::ToolsCreateRequest]
310
+ # @param request_options [Vapi::RequestOptions]
311
+ # @return [Vapi::Tools::ToolsCreateResponse]
312
+ # @example
313
+ # api = Vapi::Client.new(
314
+ # base_url: "https://api.example.com",
315
+ # environment: Vapi::Environment::DEFAULT,
316
+ # token: "YOUR_AUTH_TOKEN"
317
+ # )
318
+ # api.tools.create
319
+ def create(request:, request_options: nil)
320
+ Async do
321
+ response = @request_client.conn.post do |req|
322
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
323
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
324
+ req.headers = {
325
+ **(req.headers || {}),
326
+ **@request_client.get_headers,
327
+ **(request_options&.additional_headers || {})
328
+ }.compact
329
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
330
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
331
+ end
332
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
333
+ req.url "#{@request_client.get_url(request_options: request_options)}/tool"
334
+ end
335
+ Vapi::Tools::ToolsCreateResponse.from_json(json_object: response.body)
336
+ end
337
+ end
338
+
339
+ # @param id [String]
340
+ # @param request_options [Vapi::RequestOptions]
341
+ # @return [Vapi::Tools::ToolsGetResponse]
342
+ # @example
343
+ # api = Vapi::Client.new(
344
+ # base_url: "https://api.example.com",
345
+ # environment: Vapi::Environment::DEFAULT,
346
+ # token: "YOUR_AUTH_TOKEN"
347
+ # )
348
+ # api.tools.get(id: "id")
349
+ def get(id:, request_options: nil)
350
+ Async do
351
+ response = @request_client.conn.get do |req|
352
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
353
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
354
+ req.headers = {
355
+ **(req.headers || {}),
356
+ **@request_client.get_headers,
357
+ **(request_options&.additional_headers || {})
358
+ }.compact
359
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
360
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
361
+ end
362
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
363
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
364
+ end
365
+ req.url "#{@request_client.get_url(request_options: request_options)}/tool/#{id}"
366
+ end
367
+ Vapi::Tools::ToolsGetResponse.from_json(json_object: response.body)
368
+ end
369
+ end
370
+
371
+ # @param id [String]
372
+ # @param request_options [Vapi::RequestOptions]
373
+ # @return [Vapi::Tools::ToolsDeleteResponse]
374
+ # @example
375
+ # api = Vapi::Client.new(
376
+ # base_url: "https://api.example.com",
377
+ # environment: Vapi::Environment::DEFAULT,
378
+ # token: "YOUR_AUTH_TOKEN"
379
+ # )
380
+ # api.tools.delete(id: "id")
381
+ def delete(id:, request_options: nil)
382
+ Async do
383
+ response = @request_client.conn.delete do |req|
384
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
385
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
386
+ req.headers = {
387
+ **(req.headers || {}),
388
+ **@request_client.get_headers,
389
+ **(request_options&.additional_headers || {})
390
+ }.compact
391
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
392
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
393
+ end
394
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
395
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
396
+ end
397
+ req.url "#{@request_client.get_url(request_options: request_options)}/tool/#{id}"
398
+ end
399
+ Vapi::Tools::ToolsDeleteResponse.from_json(json_object: response.body)
400
+ end
401
+ end
402
+
403
+ # @param id [String]
404
+ # @param async [Boolean] This determines if the tool is async.
405
+ # If async, the assistant will move forward without waiting for your server to
406
+ # respond. This is useful if you just want to trigger something on your server.
407
+ # If sync, the assistant will wait for your server to respond. This is useful if
408
+ # want assistant to respond with the result from your server.
409
+ # Defaults to synchronous (`false`).
410
+ # @param messages [Array<Hash>] These are the messages that will be spoken to the user as the tool is running.
411
+ # For some tools, this is auto-filled based on special fields like
412
+ # `tool.destinations`. For others like the function tool, these can be custom
413
+ # configured.Request of type Array<Vapi::Tools::UpdateToolDtoMessagesItem>, as a Hash
414
+ # @param function [Hash] This is the function definition of the tool.
415
+ # For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on
416
+ # tool-specific fields like `tool.destinations`. But, even in those cases, you can
417
+ # provide a custom function definition for advanced use cases.
418
+ # An example of an advanced use case is if you want to customize the message
419
+ # that's spoken for `endCall` tool. You can specify a function where it returns an
420
+ # argument "reason". Then, in `messages` array, you can have many
421
+ # "request-complete" messages. One of these messages will be triggered if the
422
+ # `messages[].conditions` matches the "reason" argument.Request of type Vapi::OpenAiFunction, as a Hash
423
+ # * :name (String)
424
+ # * :description (String)
425
+ # * :parameters (Hash)
426
+ # * :type (String)
427
+ # * :properties (Hash{String => Vapi::JsonSchema})
428
+ # * :required (Array<String>)
429
+ # @param server [Hash] This is the server that will be hit when this tool is requested by the model.
430
+ # All requests will be sent with the call object among other things. You can find
431
+ # more details in the Server URL documentation.
432
+ # This overrides the serverUrl set on the org and the phoneNumber. Order of
433
+ # precedence: highest tool.server.url, then assistant.serverUrl, then
434
+ # phoneNumber.serverUrl, then org.serverUrl.Request of type Vapi::Server, as a Hash
435
+ # * :timeout_seconds (Float)
436
+ # * :url (String)
437
+ # * :secret (String)
438
+ # @param request_options [Vapi::RequestOptions]
439
+ # @return [Vapi::Tools::ToolsUpdateResponse]
440
+ # @example
441
+ # api = Vapi::Client.new(
442
+ # base_url: "https://api.example.com",
443
+ # environment: Vapi::Environment::DEFAULT,
444
+ # token: "YOUR_AUTH_TOKEN"
445
+ # )
446
+ # api.tools.update(id: "id")
447
+ def update(id:, async: nil, messages: nil, function: nil, server: nil, request_options: nil)
448
+ Async do
449
+ response = @request_client.conn.patch do |req|
450
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
451
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
452
+ req.headers = {
453
+ **(req.headers || {}),
454
+ **@request_client.get_headers,
455
+ **(request_options&.additional_headers || {})
456
+ }.compact
457
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
458
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
459
+ end
460
+ req.body = {
461
+ **(request_options&.additional_body_parameters || {}),
462
+ async: async,
463
+ messages: messages,
464
+ function: function,
465
+ server: server
466
+ }.compact
467
+ req.url "#{@request_client.get_url(request_options: request_options)}/tool/#{id}"
468
+ end
469
+ Vapi::Tools::ToolsUpdateResponse.from_json(json_object: response.body)
470
+ end
471
+ end
472
+ end
473
+ end
@@ -0,0 +1,161 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "../../types/create_dtmf_tool_dto"
5
+ require_relative "../../types/create_end_call_tool_dto"
6
+ require_relative "../../types/create_function_tool_dto"
7
+ require_relative "../../types/create_ghl_tool_dto"
8
+ require_relative "../../types/create_make_tool_dto"
9
+ require_relative "../../types/create_transfer_call_tool_dto"
10
+ require_relative "../../types/create_output_tool_dto"
11
+
12
+ module Vapi
13
+ class Tools
14
+ class ToolsCreateRequest
15
+ # @return [Object]
16
+ attr_reader :member
17
+ # @return [String]
18
+ attr_reader :discriminant
19
+
20
+ private_class_method :new
21
+ alias kind_of? is_a?
22
+
23
+ # @param member [Object]
24
+ # @param discriminant [String]
25
+ # @return [Vapi::Tools::ToolsCreateRequest]
26
+ def initialize(member:, discriminant:)
27
+ @member = member
28
+ @discriminant = discriminant
29
+ end
30
+
31
+ # Deserialize a JSON object to an instance of ToolsCreateRequest
32
+ #
33
+ # @param json_object [String]
34
+ # @return [Vapi::Tools::ToolsCreateRequest]
35
+ def self.from_json(json_object:)
36
+ struct = JSON.parse(json_object, object_class: OpenStruct)
37
+ member = case struct.type
38
+ when "dtmf"
39
+ Vapi::CreateDtmfToolDto.from_json(json_object: json_object)
40
+ when "endCall"
41
+ Vapi::CreateEndCallToolDto.from_json(json_object: json_object)
42
+ when "function"
43
+ Vapi::CreateFunctionToolDto.from_json(json_object: json_object)
44
+ when "ghl"
45
+ Vapi::CreateGhlToolDto.from_json(json_object: json_object)
46
+ when "make"
47
+ Vapi::CreateMakeToolDto.from_json(json_object: json_object)
48
+ when "transferCall"
49
+ Vapi::CreateTransferCallToolDto.from_json(json_object: json_object)
50
+ when "output"
51
+ Vapi::CreateOutputToolDto.from_json(json_object: json_object)
52
+ else
53
+ Vapi::CreateDtmfToolDto.from_json(json_object: json_object)
54
+ end
55
+ new(member: member, discriminant: struct.type)
56
+ end
57
+
58
+ # For Union Types, to_json functionality is delegated to the wrapped member.
59
+ #
60
+ # @return [String]
61
+ def to_json(*_args)
62
+ case @discriminant
63
+ when "dtmf"
64
+ { **@member.to_json, type: @discriminant }.to_json
65
+ when "endCall"
66
+ { **@member.to_json, type: @discriminant }.to_json
67
+ when "function"
68
+ { **@member.to_json, type: @discriminant }.to_json
69
+ when "ghl"
70
+ { **@member.to_json, type: @discriminant }.to_json
71
+ when "make"
72
+ { **@member.to_json, type: @discriminant }.to_json
73
+ when "transferCall"
74
+ { **@member.to_json, type: @discriminant }.to_json
75
+ when "output"
76
+ { **@member.to_json, type: @discriminant }.to_json
77
+ else
78
+ { "type": @discriminant, value: @member }.to_json
79
+ end
80
+ @member.to_json
81
+ end
82
+
83
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
84
+ # hash and check each fields type against the current object's property
85
+ # definitions.
86
+ #
87
+ # @param obj [Object]
88
+ # @return [Void]
89
+ def self.validate_raw(obj:)
90
+ case obj.type
91
+ when "dtmf"
92
+ Vapi::CreateDtmfToolDto.validate_raw(obj: obj)
93
+ when "endCall"
94
+ Vapi::CreateEndCallToolDto.validate_raw(obj: obj)
95
+ when "function"
96
+ Vapi::CreateFunctionToolDto.validate_raw(obj: obj)
97
+ when "ghl"
98
+ Vapi::CreateGhlToolDto.validate_raw(obj: obj)
99
+ when "make"
100
+ Vapi::CreateMakeToolDto.validate_raw(obj: obj)
101
+ when "transferCall"
102
+ Vapi::CreateTransferCallToolDto.validate_raw(obj: obj)
103
+ when "output"
104
+ Vapi::CreateOutputToolDto.validate_raw(obj: obj)
105
+ else
106
+ raise("Passed value matched no type within the union, validation failed.")
107
+ end
108
+ end
109
+
110
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
111
+ #
112
+ # @param obj [Object]
113
+ # @return [Boolean]
114
+ def is_a?(obj)
115
+ @member.is_a?(obj)
116
+ end
117
+
118
+ # @param member [Vapi::CreateDtmfToolDto]
119
+ # @return [Vapi::Tools::ToolsCreateRequest]
120
+ def self.dtmf(member:)
121
+ new(member: member, discriminant: "dtmf")
122
+ end
123
+
124
+ # @param member [Vapi::CreateEndCallToolDto]
125
+ # @return [Vapi::Tools::ToolsCreateRequest]
126
+ def self.end_call(member:)
127
+ new(member: member, discriminant: "endCall")
128
+ end
129
+
130
+ # @param member [Vapi::CreateFunctionToolDto]
131
+ # @return [Vapi::Tools::ToolsCreateRequest]
132
+ def self.function(member:)
133
+ new(member: member, discriminant: "function")
134
+ end
135
+
136
+ # @param member [Vapi::CreateGhlToolDto]
137
+ # @return [Vapi::Tools::ToolsCreateRequest]
138
+ def self.ghl(member:)
139
+ new(member: member, discriminant: "ghl")
140
+ end
141
+
142
+ # @param member [Vapi::CreateMakeToolDto]
143
+ # @return [Vapi::Tools::ToolsCreateRequest]
144
+ def self.make(member:)
145
+ new(member: member, discriminant: "make")
146
+ end
147
+
148
+ # @param member [Vapi::CreateTransferCallToolDto]
149
+ # @return [Vapi::Tools::ToolsCreateRequest]
150
+ def self.transfer_call(member:)
151
+ new(member: member, discriminant: "transferCall")
152
+ end
153
+
154
+ # @param member [Vapi::CreateOutputToolDto]
155
+ # @return [Vapi::Tools::ToolsCreateRequest]
156
+ def self.output(member:)
157
+ new(member: member, discriminant: "output")
158
+ end
159
+ end
160
+ end
161
+ end