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,552 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../requests"
4
+ require "date"
5
+ require_relative "types/blocks_list_response_item"
6
+ require "json"
7
+ require_relative "types/blocks_create_request"
8
+ require_relative "types/blocks_create_response"
9
+ require_relative "types/blocks_get_response"
10
+ require_relative "types/blocks_delete_response"
11
+ require_relative "types/update_block_dto_messages_item"
12
+ require_relative "../types/json_schema"
13
+ require_relative "types/update_block_dto_tool"
14
+ require_relative "types/update_block_dto_steps_item"
15
+ require_relative "types/blocks_update_response"
16
+ require "async"
17
+
18
+ module Vapi
19
+ class BlocksClient
20
+ # @return [Vapi::RequestClient]
21
+ attr_reader :request_client
22
+
23
+ # @param request_client [Vapi::RequestClient]
24
+ # @return [Vapi::BlocksClient]
25
+ def initialize(request_client:)
26
+ @request_client = request_client
27
+ end
28
+
29
+ # @param limit [Float] This is the maximum number of items to return. Defaults to 100.
30
+ # @param created_at_gt [DateTime] This will return items where the createdAt is greater than the specified value.
31
+ # @param created_at_lt [DateTime] This will return items where the createdAt is less than the specified value.
32
+ # @param created_at_ge [DateTime] This will return items where the createdAt is greater than or equal to the
33
+ # specified value.
34
+ # @param created_at_le [DateTime] This will return items where the createdAt is less than or equal to the
35
+ # specified value.
36
+ # @param updated_at_gt [DateTime] This will return items where the updatedAt is greater than the specified value.
37
+ # @param updated_at_lt [DateTime] This will return items where the updatedAt is less than the specified value.
38
+ # @param updated_at_ge [DateTime] This will return items where the updatedAt is greater than or equal to the
39
+ # specified value.
40
+ # @param updated_at_le [DateTime] This will return items where the updatedAt is less than or equal to the
41
+ # specified value.
42
+ # @param request_options [Vapi::RequestOptions]
43
+ # @return [Array<Vapi::Blocks::BlocksListResponseItem>]
44
+ # @example
45
+ # api = Vapi::Client.new(
46
+ # base_url: "https://api.example.com",
47
+ # environment: Vapi::Environment::DEFAULT,
48
+ # token: "YOUR_AUTH_TOKEN"
49
+ # )
50
+ # api.blocks.list
51
+ def list(limit: nil, created_at_gt: nil, created_at_lt: nil, created_at_ge: nil, created_at_le: nil,
52
+ updated_at_gt: nil, updated_at_lt: nil, updated_at_ge: nil, updated_at_le: nil, request_options: nil)
53
+ response = @request_client.conn.get do |req|
54
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
55
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
56
+ req.headers = {
57
+ **(req.headers || {}),
58
+ **@request_client.get_headers,
59
+ **(request_options&.additional_headers || {})
60
+ }.compact
61
+ req.params = {
62
+ **(request_options&.additional_query_parameters || {}),
63
+ "limit": limit,
64
+ "createdAtGt": created_at_gt,
65
+ "createdAtLt": created_at_lt,
66
+ "createdAtGe": created_at_ge,
67
+ "createdAtLe": created_at_le,
68
+ "updatedAtGt": updated_at_gt,
69
+ "updatedAtLt": updated_at_lt,
70
+ "updatedAtGe": updated_at_ge,
71
+ "updatedAtLe": updated_at_le
72
+ }.compact
73
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
74
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
75
+ end
76
+ req.url "#{@request_client.get_url(request_options: request_options)}/block"
77
+ end
78
+ parsed_json = JSON.parse(response.body)
79
+ parsed_json&.map do |item|
80
+ item = item.to_json
81
+ Vapi::Blocks::BlocksListResponseItem.from_json(json_object: item)
82
+ end
83
+ end
84
+
85
+ # @param request [Vapi::Blocks::BlocksCreateRequest]
86
+ # @param request_options [Vapi::RequestOptions]
87
+ # @return [Vapi::Blocks::BlocksCreateResponse]
88
+ # @example
89
+ # api = Vapi::Client.new(
90
+ # base_url: "https://api.example.com",
91
+ # environment: Vapi::Environment::DEFAULT,
92
+ # token: "YOUR_AUTH_TOKEN"
93
+ # )
94
+ # api.blocks.create
95
+ def create(request:, request_options: nil)
96
+ response = @request_client.conn.post do |req|
97
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
98
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
99
+ req.headers = {
100
+ **(req.headers || {}),
101
+ **@request_client.get_headers,
102
+ **(request_options&.additional_headers || {})
103
+ }.compact
104
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
105
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
106
+ end
107
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
108
+ req.url "#{@request_client.get_url(request_options: request_options)}/block"
109
+ end
110
+ Vapi::Blocks::BlocksCreateResponse.from_json(json_object: response.body)
111
+ end
112
+
113
+ # @param id [String]
114
+ # @param request_options [Vapi::RequestOptions]
115
+ # @return [Vapi::Blocks::BlocksGetResponse]
116
+ # @example
117
+ # api = Vapi::Client.new(
118
+ # base_url: "https://api.example.com",
119
+ # environment: Vapi::Environment::DEFAULT,
120
+ # token: "YOUR_AUTH_TOKEN"
121
+ # )
122
+ # api.blocks.get(id: "id")
123
+ def get(id:, request_options: nil)
124
+ response = @request_client.conn.get do |req|
125
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
126
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
127
+ req.headers = {
128
+ **(req.headers || {}),
129
+ **@request_client.get_headers,
130
+ **(request_options&.additional_headers || {})
131
+ }.compact
132
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
133
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
134
+ end
135
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
136
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
137
+ end
138
+ req.url "#{@request_client.get_url(request_options: request_options)}/block/#{id}"
139
+ end
140
+ Vapi::Blocks::BlocksGetResponse.from_json(json_object: response.body)
141
+ end
142
+
143
+ # @param id [String]
144
+ # @param request_options [Vapi::RequestOptions]
145
+ # @return [Vapi::Blocks::BlocksDeleteResponse]
146
+ # @example
147
+ # api = Vapi::Client.new(
148
+ # base_url: "https://api.example.com",
149
+ # environment: Vapi::Environment::DEFAULT,
150
+ # token: "YOUR_AUTH_TOKEN"
151
+ # )
152
+ # api.blocks.delete(id: "id")
153
+ def delete(id:, request_options: nil)
154
+ response = @request_client.conn.delete do |req|
155
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
156
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
157
+ req.headers = {
158
+ **(req.headers || {}),
159
+ **@request_client.get_headers,
160
+ **(request_options&.additional_headers || {})
161
+ }.compact
162
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
163
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
164
+ end
165
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
166
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
167
+ end
168
+ req.url "#{@request_client.get_url(request_options: request_options)}/block/#{id}"
169
+ end
170
+ Vapi::Blocks::BlocksDeleteResponse.from_json(json_object: response.body)
171
+ end
172
+
173
+ # @param id [String]
174
+ # @param messages [Array<Hash>] These are the pre-configured messages that will be spoken to the user while the
175
+ # block is running.Request of type Array<Vapi::Blocks::UpdateBlockDtoMessagesItem>, as a Hash
176
+ # @param input_schema [Hash] This is the input schema for the block. This is the input the block needs to
177
+ # run. It's given to the block as `steps[0].input`
178
+ # These are accessible as variables:
179
+ # - ({{input.propertyName}}) in context of the block execution (step)
180
+ # - ({{stepName.input.propertyName}}) in context of the workflowRequest of type Vapi::JsonSchema, as a Hash
181
+ # * :type (Vapi::JsonSchemaType)
182
+ # * :items (Hash{String => Object})
183
+ # * :properties (Hash{String => Object})
184
+ # * :description (String)
185
+ # * :required (Array<String>)
186
+ # @param output_schema [Hash] This is the output schema for the block. This is the output the block will
187
+ # return to the workflow (`{{stepName.output}}`).
188
+ # These are accessible as variables:
189
+ # - ({{output.propertyName}}) in context of the block execution (step)
190
+ # - ({{stepName.output.propertyName}}) in context of the workflow (read caveat #1)
191
+ # - ({{blockName.output.propertyName}}) in context of the workflow (read caveat
192
+ # #2)
193
+ # Caveats:
194
+ # 1. a workflow can execute a step multiple times. example, if a loop is used in
195
+ # the graph. {{stepName.output.propertyName}} will reference the latest usage of
196
+ # the step.
197
+ # 2. a workflow can execute a block multiple times. example, if a step is called
198
+ # multiple times or if a block is used in multiple steps.
199
+ # {{blockName.output.propertyName}} will reference the latest usage of the block.
200
+ # this liquid variable is just provided for convenience when creating blocks
201
+ # outside of a workflow with steps.Request of type Vapi::JsonSchema, as a Hash
202
+ # * :type (Vapi::JsonSchemaType)
203
+ # * :items (Hash{String => Object})
204
+ # * :properties (Hash{String => Object})
205
+ # * :description (String)
206
+ # * :required (Array<String>)
207
+ # @param tool [Vapi::Blocks::UpdateBlockDtoTool] This is the tool that the block will call. To use an existing tool, use
208
+ # `toolId`.
209
+ # @param steps [Array<Hash>] These are the steps in the workflow.Request of type Array<Vapi::Blocks::UpdateBlockDtoStepsItem>, as a Hash
210
+ # @param name [String] This is the name of the block. This is just for your reference.
211
+ # @param instruction [String] This is the instruction to the model.
212
+ # You can reference any variable in the context of the current block execution
213
+ # (step):
214
+ # - "{{input.your-property-name}}" for the current step's input
215
+ # - "{{your-step-name.output.your-property-name}}" for another step's output (in
216
+ # the same workflow; read caveat #1)
217
+ # - "{{your-step-name.input.your-property-name}}" for another step's input (in the
218
+ # same workflow; read caveat #1)
219
+ # - "{{your-block-name.output.your-property-name}}" for another block's output (in
220
+ # the same workflow; read caveat #2)
221
+ # - "{{your-block-name.input.your-property-name}}" for another block's input (in
222
+ # the same workflow; read caveat #2)
223
+ # - "{{workflow.input.your-property-name}}" for the current workflow's input
224
+ # - "{{global.your-property-name}}" for the global context
225
+ # This can be as simple or as complex as you want it to be.
226
+ # - "say hello and ask the user about their day!"
227
+ # - "collect the user's first and last name"
228
+ # - "user is {{input.firstName}} {{input.lastName}}. their age is {{input.age}}.
229
+ # ask them about their salary and if they might be interested in buying a house.
230
+ # we offer {{input.offer}}"
231
+ # Caveats:
232
+ # 1. a workflow can execute a step multiple times. example, if a loop is used in
233
+ # the graph. {{stepName.output/input.propertyName}} will reference the latest
234
+ # usage of the step.
235
+ # 2. a workflow can execute a block multiple times. example, if a step is called
236
+ # multiple times or if a block is used in multiple steps.
237
+ # {{blockName.output/input.propertyName}} will reference the latest usage of the
238
+ # block. this liquid variable is just provided for convenience when creating
239
+ # blocks outside of a workflow with steps.
240
+ # @param tool_id [String] This is the id of the tool that the block will call. To use a transient tool,
241
+ # use `tool`.
242
+ # @param request_options [Vapi::RequestOptions]
243
+ # @return [Vapi::Blocks::BlocksUpdateResponse]
244
+ # @example
245
+ # api = Vapi::Client.new(
246
+ # base_url: "https://api.example.com",
247
+ # environment: Vapi::Environment::DEFAULT,
248
+ # token: "YOUR_AUTH_TOKEN"
249
+ # )
250
+ # api.blocks.update(id: "id")
251
+ def update(id:, messages: nil, input_schema: nil, output_schema: nil, tool: nil, steps: nil, name: nil,
252
+ instruction: nil, tool_id: nil, request_options: nil)
253
+ response = @request_client.conn.patch do |req|
254
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
255
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
256
+ req.headers = {
257
+ **(req.headers || {}),
258
+ **@request_client.get_headers,
259
+ **(request_options&.additional_headers || {})
260
+ }.compact
261
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
262
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
263
+ end
264
+ req.body = {
265
+ **(request_options&.additional_body_parameters || {}),
266
+ messages: messages,
267
+ inputSchema: input_schema,
268
+ outputSchema: output_schema,
269
+ tool: tool,
270
+ steps: steps,
271
+ name: name,
272
+ instruction: instruction,
273
+ toolId: tool_id
274
+ }.compact
275
+ req.url "#{@request_client.get_url(request_options: request_options)}/block/#{id}"
276
+ end
277
+ Vapi::Blocks::BlocksUpdateResponse.from_json(json_object: response.body)
278
+ end
279
+ end
280
+
281
+ class AsyncBlocksClient
282
+ # @return [Vapi::AsyncRequestClient]
283
+ attr_reader :request_client
284
+
285
+ # @param request_client [Vapi::AsyncRequestClient]
286
+ # @return [Vapi::AsyncBlocksClient]
287
+ def initialize(request_client:)
288
+ @request_client = request_client
289
+ end
290
+
291
+ # @param limit [Float] This is the maximum number of items to return. Defaults to 100.
292
+ # @param created_at_gt [DateTime] This will return items where the createdAt is greater than the specified value.
293
+ # @param created_at_lt [DateTime] This will return items where the createdAt is less than the specified value.
294
+ # @param created_at_ge [DateTime] This will return items where the createdAt is greater than or equal to the
295
+ # specified value.
296
+ # @param created_at_le [DateTime] This will return items where the createdAt is less than or equal to the
297
+ # specified value.
298
+ # @param updated_at_gt [DateTime] This will return items where the updatedAt is greater than the specified value.
299
+ # @param updated_at_lt [DateTime] This will return items where the updatedAt is less than the specified value.
300
+ # @param updated_at_ge [DateTime] This will return items where the updatedAt is greater than or equal to the
301
+ # specified value.
302
+ # @param updated_at_le [DateTime] This will return items where the updatedAt is less than or equal to the
303
+ # specified value.
304
+ # @param request_options [Vapi::RequestOptions]
305
+ # @return [Array<Vapi::Blocks::BlocksListResponseItem>]
306
+ # @example
307
+ # api = Vapi::Client.new(
308
+ # base_url: "https://api.example.com",
309
+ # environment: Vapi::Environment::DEFAULT,
310
+ # token: "YOUR_AUTH_TOKEN"
311
+ # )
312
+ # api.blocks.list
313
+ def list(limit: nil, created_at_gt: nil, created_at_lt: nil, created_at_ge: nil, created_at_le: nil,
314
+ updated_at_gt: nil, updated_at_lt: nil, updated_at_ge: nil, updated_at_le: nil, request_options: nil)
315
+ Async do
316
+ response = @request_client.conn.get do |req|
317
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
318
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
319
+ req.headers = {
320
+ **(req.headers || {}),
321
+ **@request_client.get_headers,
322
+ **(request_options&.additional_headers || {})
323
+ }.compact
324
+ req.params = {
325
+ **(request_options&.additional_query_parameters || {}),
326
+ "limit": limit,
327
+ "createdAtGt": created_at_gt,
328
+ "createdAtLt": created_at_lt,
329
+ "createdAtGe": created_at_ge,
330
+ "createdAtLe": created_at_le,
331
+ "updatedAtGt": updated_at_gt,
332
+ "updatedAtLt": updated_at_lt,
333
+ "updatedAtGe": updated_at_ge,
334
+ "updatedAtLe": updated_at_le
335
+ }.compact
336
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
337
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
338
+ end
339
+ req.url "#{@request_client.get_url(request_options: request_options)}/block"
340
+ end
341
+ parsed_json = JSON.parse(response.body)
342
+ parsed_json&.map do |item|
343
+ item = item.to_json
344
+ Vapi::Blocks::BlocksListResponseItem.from_json(json_object: item)
345
+ end
346
+ end
347
+ end
348
+
349
+ # @param request [Vapi::Blocks::BlocksCreateRequest]
350
+ # @param request_options [Vapi::RequestOptions]
351
+ # @return [Vapi::Blocks::BlocksCreateResponse]
352
+ # @example
353
+ # api = Vapi::Client.new(
354
+ # base_url: "https://api.example.com",
355
+ # environment: Vapi::Environment::DEFAULT,
356
+ # token: "YOUR_AUTH_TOKEN"
357
+ # )
358
+ # api.blocks.create
359
+ def create(request:, request_options: nil)
360
+ Async do
361
+ response = @request_client.conn.post do |req|
362
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
363
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
364
+ req.headers = {
365
+ **(req.headers || {}),
366
+ **@request_client.get_headers,
367
+ **(request_options&.additional_headers || {})
368
+ }.compact
369
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
370
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
371
+ end
372
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
373
+ req.url "#{@request_client.get_url(request_options: request_options)}/block"
374
+ end
375
+ Vapi::Blocks::BlocksCreateResponse.from_json(json_object: response.body)
376
+ end
377
+ end
378
+
379
+ # @param id [String]
380
+ # @param request_options [Vapi::RequestOptions]
381
+ # @return [Vapi::Blocks::BlocksGetResponse]
382
+ # @example
383
+ # api = Vapi::Client.new(
384
+ # base_url: "https://api.example.com",
385
+ # environment: Vapi::Environment::DEFAULT,
386
+ # token: "YOUR_AUTH_TOKEN"
387
+ # )
388
+ # api.blocks.get(id: "id")
389
+ def get(id:, request_options: nil)
390
+ Async do
391
+ response = @request_client.conn.get do |req|
392
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
393
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
394
+ req.headers = {
395
+ **(req.headers || {}),
396
+ **@request_client.get_headers,
397
+ **(request_options&.additional_headers || {})
398
+ }.compact
399
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
400
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
401
+ end
402
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
403
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
404
+ end
405
+ req.url "#{@request_client.get_url(request_options: request_options)}/block/#{id}"
406
+ end
407
+ Vapi::Blocks::BlocksGetResponse.from_json(json_object: response.body)
408
+ end
409
+ end
410
+
411
+ # @param id [String]
412
+ # @param request_options [Vapi::RequestOptions]
413
+ # @return [Vapi::Blocks::BlocksDeleteResponse]
414
+ # @example
415
+ # api = Vapi::Client.new(
416
+ # base_url: "https://api.example.com",
417
+ # environment: Vapi::Environment::DEFAULT,
418
+ # token: "YOUR_AUTH_TOKEN"
419
+ # )
420
+ # api.blocks.delete(id: "id")
421
+ def delete(id:, request_options: nil)
422
+ Async do
423
+ response = @request_client.conn.delete do |req|
424
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
425
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
426
+ req.headers = {
427
+ **(req.headers || {}),
428
+ **@request_client.get_headers,
429
+ **(request_options&.additional_headers || {})
430
+ }.compact
431
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
432
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
433
+ end
434
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
435
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
436
+ end
437
+ req.url "#{@request_client.get_url(request_options: request_options)}/block/#{id}"
438
+ end
439
+ Vapi::Blocks::BlocksDeleteResponse.from_json(json_object: response.body)
440
+ end
441
+ end
442
+
443
+ # @param id [String]
444
+ # @param messages [Array<Hash>] These are the pre-configured messages that will be spoken to the user while the
445
+ # block is running.Request of type Array<Vapi::Blocks::UpdateBlockDtoMessagesItem>, as a Hash
446
+ # @param input_schema [Hash] This is the input schema for the block. This is the input the block needs to
447
+ # run. It's given to the block as `steps[0].input`
448
+ # These are accessible as variables:
449
+ # - ({{input.propertyName}}) in context of the block execution (step)
450
+ # - ({{stepName.input.propertyName}}) in context of the workflowRequest of type Vapi::JsonSchema, as a Hash
451
+ # * :type (Vapi::JsonSchemaType)
452
+ # * :items (Hash{String => Object})
453
+ # * :properties (Hash{String => Object})
454
+ # * :description (String)
455
+ # * :required (Array<String>)
456
+ # @param output_schema [Hash] This is the output schema for the block. This is the output the block will
457
+ # return to the workflow (`{{stepName.output}}`).
458
+ # These are accessible as variables:
459
+ # - ({{output.propertyName}}) in context of the block execution (step)
460
+ # - ({{stepName.output.propertyName}}) in context of the workflow (read caveat #1)
461
+ # - ({{blockName.output.propertyName}}) in context of the workflow (read caveat
462
+ # #2)
463
+ # Caveats:
464
+ # 1. a workflow can execute a step multiple times. example, if a loop is used in
465
+ # the graph. {{stepName.output.propertyName}} will reference the latest usage of
466
+ # the step.
467
+ # 2. a workflow can execute a block multiple times. example, if a step is called
468
+ # multiple times or if a block is used in multiple steps.
469
+ # {{blockName.output.propertyName}} will reference the latest usage of the block.
470
+ # this liquid variable is just provided for convenience when creating blocks
471
+ # outside of a workflow with steps.Request of type Vapi::JsonSchema, as a Hash
472
+ # * :type (Vapi::JsonSchemaType)
473
+ # * :items (Hash{String => Object})
474
+ # * :properties (Hash{String => Object})
475
+ # * :description (String)
476
+ # * :required (Array<String>)
477
+ # @param tool [Vapi::Blocks::UpdateBlockDtoTool] This is the tool that the block will call. To use an existing tool, use
478
+ # `toolId`.
479
+ # @param steps [Array<Hash>] These are the steps in the workflow.Request of type Array<Vapi::Blocks::UpdateBlockDtoStepsItem>, as a Hash
480
+ # @param name [String] This is the name of the block. This is just for your reference.
481
+ # @param instruction [String] This is the instruction to the model.
482
+ # You can reference any variable in the context of the current block execution
483
+ # (step):
484
+ # - "{{input.your-property-name}}" for the current step's input
485
+ # - "{{your-step-name.output.your-property-name}}" for another step's output (in
486
+ # the same workflow; read caveat #1)
487
+ # - "{{your-step-name.input.your-property-name}}" for another step's input (in the
488
+ # same workflow; read caveat #1)
489
+ # - "{{your-block-name.output.your-property-name}}" for another block's output (in
490
+ # the same workflow; read caveat #2)
491
+ # - "{{your-block-name.input.your-property-name}}" for another block's input (in
492
+ # the same workflow; read caveat #2)
493
+ # - "{{workflow.input.your-property-name}}" for the current workflow's input
494
+ # - "{{global.your-property-name}}" for the global context
495
+ # This can be as simple or as complex as you want it to be.
496
+ # - "say hello and ask the user about their day!"
497
+ # - "collect the user's first and last name"
498
+ # - "user is {{input.firstName}} {{input.lastName}}. their age is {{input.age}}.
499
+ # ask them about their salary and if they might be interested in buying a house.
500
+ # we offer {{input.offer}}"
501
+ # Caveats:
502
+ # 1. a workflow can execute a step multiple times. example, if a loop is used in
503
+ # the graph. {{stepName.output/input.propertyName}} will reference the latest
504
+ # usage of the step.
505
+ # 2. a workflow can execute a block multiple times. example, if a step is called
506
+ # multiple times or if a block is used in multiple steps.
507
+ # {{blockName.output/input.propertyName}} will reference the latest usage of the
508
+ # block. this liquid variable is just provided for convenience when creating
509
+ # blocks outside of a workflow with steps.
510
+ # @param tool_id [String] This is the id of the tool that the block will call. To use a transient tool,
511
+ # use `tool`.
512
+ # @param request_options [Vapi::RequestOptions]
513
+ # @return [Vapi::Blocks::BlocksUpdateResponse]
514
+ # @example
515
+ # api = Vapi::Client.new(
516
+ # base_url: "https://api.example.com",
517
+ # environment: Vapi::Environment::DEFAULT,
518
+ # token: "YOUR_AUTH_TOKEN"
519
+ # )
520
+ # api.blocks.update(id: "id")
521
+ def update(id:, messages: nil, input_schema: nil, output_schema: nil, tool: nil, steps: nil, name: nil,
522
+ instruction: nil, tool_id: nil, request_options: nil)
523
+ Async do
524
+ response = @request_client.conn.patch do |req|
525
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
526
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
527
+ req.headers = {
528
+ **(req.headers || {}),
529
+ **@request_client.get_headers,
530
+ **(request_options&.additional_headers || {})
531
+ }.compact
532
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
533
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
534
+ end
535
+ req.body = {
536
+ **(request_options&.additional_body_parameters || {}),
537
+ messages: messages,
538
+ inputSchema: input_schema,
539
+ outputSchema: output_schema,
540
+ tool: tool,
541
+ steps: steps,
542
+ name: name,
543
+ instruction: instruction,
544
+ toolId: tool_id
545
+ }.compact
546
+ req.url "#{@request_client.get_url(request_options: request_options)}/block/#{id}"
547
+ end
548
+ Vapi::Blocks::BlocksUpdateResponse.from_json(json_object: response.body)
549
+ end
550
+ end
551
+ end
552
+ end
@@ -0,0 +1,109 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "../../types/create_conversation_block_dto"
5
+ require_relative "../../types/create_tool_call_block_dto"
6
+ require_relative "../../types/create_workflow_block_dto"
7
+
8
+ module Vapi
9
+ class Blocks
10
+ class BlocksCreateRequest
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::Blocks::BlocksCreateRequest]
22
+ def initialize(member:, discriminant:)
23
+ @member = member
24
+ @discriminant = discriminant
25
+ end
26
+
27
+ # Deserialize a JSON object to an instance of BlocksCreateRequest
28
+ #
29
+ # @param json_object [String]
30
+ # @return [Vapi::Blocks::BlocksCreateRequest]
31
+ def self.from_json(json_object:)
32
+ struct = JSON.parse(json_object, object_class: OpenStruct)
33
+ member = case struct.type
34
+ when "conversation"
35
+ Vapi::CreateConversationBlockDto.from_json(json_object: json_object)
36
+ when "tool-call"
37
+ Vapi::CreateToolCallBlockDto.from_json(json_object: json_object)
38
+ when "workflow"
39
+ Vapi::CreateWorkflowBlockDto.from_json(json_object: json_object)
40
+ else
41
+ Vapi::CreateConversationBlockDto.from_json(json_object: json_object)
42
+ end
43
+ new(member: member, discriminant: struct.type)
44
+ end
45
+
46
+ # For Union Types, to_json functionality is delegated to the wrapped member.
47
+ #
48
+ # @return [String]
49
+ def to_json(*_args)
50
+ case @discriminant
51
+ when "conversation"
52
+ { **@member.to_json, type: @discriminant }.to_json
53
+ when "tool-call"
54
+ { **@member.to_json, type: @discriminant }.to_json
55
+ when "workflow"
56
+ { **@member.to_json, type: @discriminant }.to_json
57
+ else
58
+ { "type": @discriminant, value: @member }.to_json
59
+ end
60
+ @member.to_json
61
+ end
62
+
63
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
64
+ # hash and check each fields type against the current object's property
65
+ # definitions.
66
+ #
67
+ # @param obj [Object]
68
+ # @return [Void]
69
+ def self.validate_raw(obj:)
70
+ case obj.type
71
+ when "conversation"
72
+ Vapi::CreateConversationBlockDto.validate_raw(obj: obj)
73
+ when "tool-call"
74
+ Vapi::CreateToolCallBlockDto.validate_raw(obj: obj)
75
+ when "workflow"
76
+ Vapi::CreateWorkflowBlockDto.validate_raw(obj: obj)
77
+ else
78
+ raise("Passed value matched no type within the union, validation failed.")
79
+ end
80
+ end
81
+
82
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
83
+ #
84
+ # @param obj [Object]
85
+ # @return [Boolean]
86
+ def is_a?(obj)
87
+ @member.is_a?(obj)
88
+ end
89
+
90
+ # @param member [Vapi::CreateConversationBlockDto]
91
+ # @return [Vapi::Blocks::BlocksCreateRequest]
92
+ def self.conversation(member:)
93
+ new(member: member, discriminant: "conversation")
94
+ end
95
+
96
+ # @param member [Vapi::CreateToolCallBlockDto]
97
+ # @return [Vapi::Blocks::BlocksCreateRequest]
98
+ def self.tool_call(member:)
99
+ new(member: member, discriminant: "tool-call")
100
+ end
101
+
102
+ # @param member [Vapi::CreateWorkflowBlockDto]
103
+ # @return [Vapi::Blocks::BlocksCreateRequest]
104
+ def self.workflow(member:)
105
+ new(member: member, discriminant: "workflow")
106
+ end
107
+ end
108
+ end
109
+ end