vapi_server_sdk 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. checksums.yaml +4 -4
  2. data/lib/requests.rb +2 -2
  3. data/lib/types_export.rb +129 -62
  4. data/lib/vapi_server_sdk/assistants/client.rb +15 -2
  5. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_credentials_item.rb +512 -0
  6. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_model.rb +13 -0
  7. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_transcriber.rb +13 -0
  8. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_voice.rb +13 -0
  9. data/lib/vapi_server_sdk/blocks/client.rb +7 -166
  10. data/lib/vapi_server_sdk/blocks/types/blocks_update_request.rb +109 -0
  11. data/lib/vapi_server_sdk/calls/client.rb +16 -4
  12. data/lib/vapi_server_sdk/knowledge_bases/client.rb +7 -8
  13. data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_update_request.rb +96 -0
  14. data/lib/vapi_server_sdk/logs/client.rb +84 -0
  15. data/lib/vapi_server_sdk/phone_numbers/client.rb +7 -69
  16. data/lib/vapi_server_sdk/phone_numbers/types/phone_numbers_update_request.rb +122 -0
  17. data/lib/vapi_server_sdk/squads/client.rb +8 -0
  18. data/lib/vapi_server_sdk/tools/client.rb +7 -91
  19. data/lib/vapi_server_sdk/tools/types/tools_update_request.rb +200 -0
  20. data/lib/vapi_server_sdk/types/assistant.rb +19 -1
  21. data/lib/vapi_server_sdk/types/assistant_credentials_item.rb +510 -0
  22. data/lib/vapi_server_sdk/types/assistant_model.rb +13 -0
  23. data/lib/vapi_server_sdk/types/assistant_overrides.rb +19 -1
  24. data/lib/vapi_server_sdk/types/assistant_overrides_credentials_item.rb +510 -0
  25. data/lib/vapi_server_sdk/types/assistant_overrides_model.rb +13 -0
  26. data/lib/vapi_server_sdk/types/assistant_overrides_transcriber.rb +13 -0
  27. data/lib/vapi_server_sdk/types/assistant_overrides_voice.rb +13 -0
  28. data/lib/vapi_server_sdk/types/assistant_transcriber.rb +13 -0
  29. data/lib/vapi_server_sdk/types/assistant_voice.rb +13 -0
  30. data/lib/vapi_server_sdk/types/azure_blob_storage_bucket_plan.rb +88 -0
  31. data/lib/vapi_server_sdk/types/azure_credential.rb +22 -5
  32. data/lib/vapi_server_sdk/types/azure_credential_region.rb +1 -1
  33. data/lib/vapi_server_sdk/types/azure_credential_service.rb +9 -0
  34. data/lib/vapi_server_sdk/types/azure_open_ai_credential.rb +9 -1
  35. data/lib/vapi_server_sdk/types/azure_open_ai_credential_region.rb +1 -1
  36. data/lib/vapi_server_sdk/types/azure_speech_transcriber.rb +62 -0
  37. data/lib/vapi_server_sdk/types/azure_speech_transcriber_language.rb +152 -0
  38. data/lib/vapi_server_sdk/types/buy_phone_number_dto.rb +25 -29
  39. data/lib/vapi_server_sdk/types/byo_phone_number.rb +25 -29
  40. data/lib/vapi_server_sdk/types/call_ended_reason.rb +44 -29
  41. data/lib/vapi_server_sdk/types/cartesia_voice_model.rb +2 -0
  42. data/lib/vapi_server_sdk/types/cerebras_credential.rb +111 -0
  43. data/lib/vapi_server_sdk/types/chat_dto.rb +103 -0
  44. data/lib/vapi_server_sdk/types/{credits_buy_dto.rb → chat_service_response.rb} +9 -17
  45. data/lib/vapi_server_sdk/types/cloudflare_credential.rb +142 -0
  46. data/lib/vapi_server_sdk/types/cloudflare_r_2_bucket_plan.rb +105 -0
  47. data/lib/vapi_server_sdk/types/create_anthropic_credential_dto.rb +2 -9
  48. data/lib/vapi_server_sdk/types/create_anyscale_credential_dto.rb +2 -9
  49. data/lib/vapi_server_sdk/types/create_assembly_ai_credential_dto.rb +2 -9
  50. data/lib/vapi_server_sdk/types/create_assistant_dto.rb +19 -1
  51. data/lib/vapi_server_sdk/types/create_assistant_dto_credentials_item.rb +510 -0
  52. data/lib/vapi_server_sdk/types/create_assistant_dto_model.rb +13 -0
  53. data/lib/vapi_server_sdk/types/create_assistant_dto_transcriber.rb +13 -0
  54. data/lib/vapi_server_sdk/types/create_assistant_dto_voice.rb +13 -0
  55. data/lib/vapi_server_sdk/types/create_azure_credential_dto.rb +21 -12
  56. data/lib/vapi_server_sdk/types/create_azure_credential_dto_region.rb +1 -1
  57. data/lib/vapi_server_sdk/types/create_azure_credential_dto_service.rb +9 -0
  58. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto.rb +10 -9
  59. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_region.rb +1 -1
  60. data/lib/vapi_server_sdk/types/create_byo_phone_number_dto.rb +25 -29
  61. data/lib/vapi_server_sdk/types/create_byo_sip_trunk_credential_dto.rb +1 -9
  62. data/lib/vapi_server_sdk/types/create_cartesia_credential_dto.rb +2 -9
  63. data/lib/vapi_server_sdk/types/create_cerebras_credential_dto.rb +74 -0
  64. data/lib/vapi_server_sdk/types/create_cloudflare_credential_dto.rb +101 -0
  65. data/lib/vapi_server_sdk/types/create_custom_llm_credential_dto.rb +2 -14
  66. data/lib/vapi_server_sdk/types/create_deep_infra_credential_dto.rb +2 -9
  67. data/lib/vapi_server_sdk/types/create_deep_seek_credential_dto.rb +67 -0
  68. data/lib/vapi_server_sdk/types/create_deepgram_credential_dto.rb +2 -9
  69. data/lib/vapi_server_sdk/types/create_eleven_labs_credential_dto.rb +2 -9
  70. data/lib/vapi_server_sdk/types/create_gcp_credential_dto.rb +2 -14
  71. data/lib/vapi_server_sdk/types/create_gladia_credential_dto.rb +2 -9
  72. data/lib/vapi_server_sdk/types/create_go_high_level_credential_dto.rb +2 -9
  73. data/lib/vapi_server_sdk/types/create_groq_credential_dto.rb +2 -9
  74. data/lib/vapi_server_sdk/types/create_langfuse_credential_dto.rb +2 -15
  75. data/lib/vapi_server_sdk/types/create_lmnt_credential_dto.rb +2 -9
  76. data/lib/vapi_server_sdk/types/create_make_credential_dto.rb +2 -15
  77. data/lib/vapi_server_sdk/types/create_open_ai_credential_dto.rb +2 -9
  78. data/lib/vapi_server_sdk/types/create_open_router_credential_dto.rb +2 -9
  79. data/lib/vapi_server_sdk/types/create_org_dto.rb +25 -25
  80. data/lib/vapi_server_sdk/types/create_perplexity_ai_credential_dto.rb +2 -9
  81. data/lib/vapi_server_sdk/types/create_play_ht_credential_dto.rb +2 -9
  82. data/lib/vapi_server_sdk/types/create_rime_ai_credential_dto.rb +2 -9
  83. data/lib/vapi_server_sdk/types/create_runpod_credential_dto.rb +2 -9
  84. data/lib/vapi_server_sdk/types/create_s_3_credential_dto.rb +2 -10
  85. data/lib/vapi_server_sdk/types/create_smallest_ai_credential_dto.rb +67 -0
  86. data/lib/vapi_server_sdk/types/create_tavus_credential_dto.rb +2 -9
  87. data/lib/vapi_server_sdk/types/create_together_ai_credential_dto.rb +2 -9
  88. data/lib/vapi_server_sdk/types/create_twilio_credential_dto.rb +2 -14
  89. data/lib/vapi_server_sdk/types/create_twilio_phone_number_dto.rb +25 -29
  90. data/lib/vapi_server_sdk/types/create_vapi_phone_number_dto.rb +25 -29
  91. data/lib/vapi_server_sdk/types/create_vonage_credential_dto.rb +2 -14
  92. data/lib/vapi_server_sdk/types/create_vonage_phone_number_dto.rb +25 -29
  93. data/lib/vapi_server_sdk/types/create_webhook_credential_dto.rb +2 -13
  94. data/lib/vapi_server_sdk/types/create_x_ai_credential_dto.rb +2 -11
  95. data/lib/vapi_server_sdk/types/deep_seek_credential.rb +111 -0
  96. data/lib/vapi_server_sdk/types/deep_seek_model.rb +177 -0
  97. data/lib/vapi_server_sdk/types/deep_seek_model_tools_item.rb +159 -0
  98. data/lib/vapi_server_sdk/types/eleven_labs_voice_model.rb +2 -0
  99. data/lib/vapi_server_sdk/types/fallback_cartesia_voice_model.rb +2 -0
  100. data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice_model.rb +2 -0
  101. data/lib/vapi_server_sdk/types/fallback_open_ai_voice.rb +4 -4
  102. data/lib/vapi_server_sdk/types/fallback_open_ai_voice_id.rb +2 -2
  103. data/lib/vapi_server_sdk/types/fallback_plan_voices_item.rb +13 -0
  104. data/lib/vapi_server_sdk/types/fallback_smallest_ai_voice.rb +95 -0
  105. data/lib/vapi_server_sdk/types/fallback_smallest_ai_voice_id.rb +53 -0
  106. data/lib/vapi_server_sdk/types/fallback_smallest_ai_voice_id_enum.rb +31 -0
  107. data/lib/vapi_server_sdk/types/gemini_multimodal_live_prebuilt_voice_config.rb +58 -0
  108. data/lib/vapi_server_sdk/types/gemini_multimodal_live_prebuilt_voice_config_voice_name.rb +11 -0
  109. data/lib/vapi_server_sdk/types/gemini_multimodal_live_speech_config.rb +61 -0
  110. data/lib/vapi_server_sdk/types/gemini_multimodal_live_voice_config.rb +61 -0
  111. data/lib/vapi_server_sdk/types/google_model.rb +17 -1
  112. data/lib/vapi_server_sdk/types/google_model_model.rb +2 -0
  113. data/lib/vapi_server_sdk/types/google_realtime_config.rb +121 -0
  114. data/lib/vapi_server_sdk/types/groq_model_model.rb +1 -3
  115. data/lib/vapi_server_sdk/types/import_twilio_phone_number_dto.rb +25 -29
  116. data/lib/vapi_server_sdk/types/import_vonage_phone_number_dto.rb +25 -29
  117. data/lib/vapi_server_sdk/types/open_ai_model_fallback_models_item.rb +6 -0
  118. data/lib/vapi_server_sdk/types/open_ai_model_model.rb +6 -0
  119. data/lib/vapi_server_sdk/types/open_ai_voice.rb +4 -4
  120. data/lib/vapi_server_sdk/types/open_ai_voice_id.rb +2 -2
  121. data/lib/vapi_server_sdk/types/org.rb +25 -25
  122. data/lib/vapi_server_sdk/types/org_with_org_user.rb +25 -25
  123. data/lib/vapi_server_sdk/types/server_message_end_of_call_report_ended_reason.rb +44 -29
  124. data/lib/vapi_server_sdk/types/server_message_status_update.rb +11 -1
  125. data/lib/vapi_server_sdk/types/server_message_status_update_ended_reason.rb +44 -29
  126. data/lib/vapi_server_sdk/types/smallest_ai_credential.rb +111 -0
  127. data/lib/vapi_server_sdk/types/smallest_ai_voice.rb +117 -0
  128. data/lib/vapi_server_sdk/types/smallest_ai_voice_id.rb +53 -0
  129. data/lib/vapi_server_sdk/types/smallest_ai_voice_id_enum.rb +31 -0
  130. data/lib/vapi_server_sdk/types/subscription.rb +2 -2
  131. data/lib/vapi_server_sdk/types/sync_voice_library_dto_providers_item.rb +1 -0
  132. data/lib/vapi_server_sdk/types/transfer_plan.rb +26 -6
  133. data/lib/vapi_server_sdk/types/transfer_plan_message.rb +2 -1
  134. data/lib/vapi_server_sdk/types/twilio_phone_number.rb +25 -29
  135. data/lib/vapi_server_sdk/types/update_anthropic_credential_dto.rb +4 -11
  136. data/lib/vapi_server_sdk/types/update_anyscale_credential_dto.rb +4 -11
  137. data/lib/vapi_server_sdk/types/update_assembly_ai_credential_dto.rb +4 -11
  138. data/lib/vapi_server_sdk/types/update_azure_credential_dto.rb +24 -14
  139. data/lib/vapi_server_sdk/types/update_azure_credential_dto_region.rb +1 -1
  140. data/lib/vapi_server_sdk/types/update_azure_credential_dto_service.rb +9 -0
  141. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto.rb +25 -24
  142. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_region.rb +1 -1
  143. data/lib/vapi_server_sdk/types/update_bash_tool_dto.rb +161 -0
  144. data/lib/vapi_server_sdk/types/update_bash_tool_dto_messages_item.rb +120 -0
  145. data/lib/vapi_server_sdk/types/update_byo_phone_number_dto.rb +187 -0
  146. data/lib/vapi_server_sdk/types/update_byo_phone_number_dto_fallback_destination.rb +101 -0
  147. data/lib/vapi_server_sdk/types/update_byo_sip_trunk_credential_dto.rb +13 -21
  148. data/lib/vapi_server_sdk/types/update_cartesia_credential_dto.rb +4 -11
  149. data/lib/vapi_server_sdk/types/update_cerebras_credential_dto.rb +67 -0
  150. data/lib/vapi_server_sdk/types/update_cloudflare_credential_dto.rb +101 -0
  151. data/lib/vapi_server_sdk/types/update_computer_tool_dto.rb +185 -0
  152. data/lib/vapi_server_sdk/types/update_computer_tool_dto_messages_item.rb +120 -0
  153. data/lib/vapi_server_sdk/types/update_conversation_block_dto.rb +206 -0
  154. data/lib/vapi_server_sdk/types/update_conversation_block_dto_messages_item.rb +95 -0
  155. data/lib/vapi_server_sdk/types/update_custom_knowledge_base_dto.rb +139 -0
  156. data/lib/vapi_server_sdk/types/update_custom_llm_credential_dto.rb +4 -16
  157. data/lib/vapi_server_sdk/types/update_deep_infra_credential_dto.rb +4 -11
  158. data/lib/vapi_server_sdk/types/update_deep_seek_credential_dto.rb +67 -0
  159. data/lib/vapi_server_sdk/types/update_deepgram_credential_dto.rb +11 -18
  160. data/lib/vapi_server_sdk/types/update_dtmf_tool_dto.rb +139 -0
  161. data/lib/vapi_server_sdk/types/update_dtmf_tool_dto_messages_item.rb +120 -0
  162. data/lib/vapi_server_sdk/types/update_eleven_labs_credential_dto.rb +11 -11
  163. data/lib/vapi_server_sdk/types/update_end_call_tool_dto.rb +139 -0
  164. data/lib/vapi_server_sdk/types/update_end_call_tool_dto_messages_item.rb +120 -0
  165. data/lib/vapi_server_sdk/types/update_function_tool_dto.rb +139 -0
  166. data/lib/vapi_server_sdk/types/update_function_tool_dto_messages_item.rb +120 -0
  167. data/lib/vapi_server_sdk/types/update_gcp_credential_dto.rb +11 -23
  168. data/lib/vapi_server_sdk/types/update_ghl_tool_dto.rb +159 -0
  169. data/lib/vapi_server_sdk/types/update_ghl_tool_dto_messages_item.rb +120 -0
  170. data/lib/vapi_server_sdk/types/update_gladia_credential_dto.rb +4 -11
  171. data/lib/vapi_server_sdk/types/update_go_high_level_credential_dto.rb +4 -11
  172. data/lib/vapi_server_sdk/types/update_google_credential_dto.rb +4 -13
  173. data/lib/vapi_server_sdk/types/update_groq_credential_dto.rb +4 -11
  174. data/lib/vapi_server_sdk/types/update_inflection_ai_credential_dto.rb +4 -13
  175. data/lib/vapi_server_sdk/types/update_langfuse_credential_dto.rb +8 -21
  176. data/lib/vapi_server_sdk/types/update_lmnt_credential_dto.rb +4 -11
  177. data/lib/vapi_server_sdk/types/update_make_credential_dto.rb +8 -21
  178. data/lib/vapi_server_sdk/types/update_make_tool_dto.rb +159 -0
  179. data/lib/vapi_server_sdk/types/update_make_tool_dto_messages_item.rb +120 -0
  180. data/lib/vapi_server_sdk/types/update_open_ai_credential_dto.rb +4 -11
  181. data/lib/vapi_server_sdk/types/update_open_router_credential_dto.rb +4 -11
  182. data/lib/vapi_server_sdk/types/update_org_dto.rb +25 -25
  183. data/lib/vapi_server_sdk/types/update_output_tool_dto.rb +139 -0
  184. data/lib/vapi_server_sdk/types/update_output_tool_dto_messages_item.rb +120 -0
  185. data/lib/vapi_server_sdk/types/update_perplexity_ai_credential_dto.rb +4 -11
  186. data/lib/vapi_server_sdk/types/update_play_ht_credential_dto.rb +11 -18
  187. data/lib/vapi_server_sdk/types/update_rime_ai_credential_dto.rb +4 -11
  188. data/lib/vapi_server_sdk/types/update_runpod_credential_dto.rb +4 -11
  189. data/lib/vapi_server_sdk/types/update_s_3_credential_dto.rb +12 -20
  190. data/lib/vapi_server_sdk/types/update_smallest_ai_credential_dto.rb +67 -0
  191. data/lib/vapi_server_sdk/types/update_tavus_credential_dto.rb +4 -11
  192. data/lib/vapi_server_sdk/types/update_text_editor_tool_dto.rb +161 -0
  193. data/lib/vapi_server_sdk/types/update_text_editor_tool_dto_messages_item.rb +120 -0
  194. data/lib/vapi_server_sdk/types/update_together_ai_credential_dto.rb +4 -11
  195. data/lib/vapi_server_sdk/types/update_token_dto.rb +81 -0
  196. data/lib/vapi_server_sdk/types/update_token_dto_tag.rb +9 -0
  197. data/lib/vapi_server_sdk/types/update_tool_call_block_dto.rb +168 -0
  198. data/lib/vapi_server_sdk/types/update_tool_call_block_dto_messages_item.rb +94 -0
  199. data/lib/vapi_server_sdk/types/update_tool_call_block_dto_tool.rb +161 -0
  200. data/lib/vapi_server_sdk/types/update_transfer_call_tool_dto.rb +161 -0
  201. data/lib/vapi_server_sdk/types/update_transfer_call_tool_dto_destinations_item.rb +121 -0
  202. data/lib/vapi_server_sdk/types/update_transfer_call_tool_dto_messages_item.rb +121 -0
  203. data/lib/vapi_server_sdk/types/update_trieve_knowledge_base_dto.rb +109 -0
  204. data/lib/vapi_server_sdk/types/update_twilio_credential_dto.rb +11 -23
  205. data/lib/vapi_server_sdk/types/update_twilio_phone_number_dto.rb +163 -0
  206. data/lib/vapi_server_sdk/types/update_twilio_phone_number_dto_fallback_destination.rb +101 -0
  207. data/lib/vapi_server_sdk/types/update_vapi_phone_number_dto.rb +169 -0
  208. data/lib/vapi_server_sdk/types/update_vapi_phone_number_dto_fallback_destination.rb +101 -0
  209. data/lib/vapi_server_sdk/types/update_vonage_credential_dto.rb +11 -23
  210. data/lib/vapi_server_sdk/types/update_vonage_phone_number_dto.rb +157 -0
  211. data/lib/vapi_server_sdk/types/update_vonage_phone_number_dto_fallback_destination.rb +101 -0
  212. data/lib/vapi_server_sdk/types/update_workflow_block_dto.rb +154 -0
  213. data/lib/vapi_server_sdk/types/update_workflow_block_dto_messages_item.rb +94 -0
  214. data/lib/vapi_server_sdk/types/update_workflow_block_dto_steps_item.rb +94 -0
  215. data/lib/vapi_server_sdk/types/update_x_ai_credential_dto.rb +4 -13
  216. data/lib/vapi_server_sdk/types/vapi_phone_number.rb +25 -29
  217. data/lib/vapi_server_sdk/types/vonage_phone_number.rb +25 -29
  218. metadata +88 -21
  219. data/lib/vapi_server_sdk/blocks/types/update_block_dto_messages_item.rb +0 -96
  220. data/lib/vapi_server_sdk/blocks/types/update_block_dto_steps_item.rb +0 -96
  221. data/lib/vapi_server_sdk/blocks/types/update_block_dto_tool.rb +0 -163
  222. data/lib/vapi_server_sdk/phone_numbers/types/update_phone_number_dto_fallback_destination.rb +0 -103
  223. data/lib/vapi_server_sdk/tools/types/update_tool_dto_messages_item.rb +0 -122
  224. data/lib/vapi_server_sdk/types/auto_reload_plan_dto.rb +0 -65
  225. data/lib/vapi_server_sdk/types/hipaa_buy_dto.rb +0 -65
  226. data/lib/vapi_server_sdk/types/payment.rb +0 -167
  227. data/lib/vapi_server_sdk/types/payment_retry_dto.rb +0 -55
  228. data/lib/vapi_server_sdk/types/payment_status.rb +0 -11
  229. data/lib/vapi_server_sdk/types/payments_paginated_response.rb +0 -75
  230. data/lib/vapi_server_sdk/types/subscription_concurrency_line_buy_dto.rb +0 -55
  231. data/lib/vapi_server_sdk/types/subscription_concurrency_line_remove_dto.rb +0 -55
  232. data/lib/vapi_server_sdk/types/subscription_coupon_add_dto.rb +0 -67
  233. data/lib/vapi_server_sdk/types/subscription_monthly_charge.rb +0 -65
@@ -8,7 +8,7 @@ require_relative "types/phone_numbers_create_request"
8
8
  require_relative "types/phone_numbers_create_response"
9
9
  require_relative "types/phone_numbers_get_response"
10
10
  require_relative "types/phone_numbers_delete_response"
11
- require_relative "types/update_phone_number_dto_fallback_destination"
11
+ require_relative "types/phone_numbers_update_request"
12
12
  require_relative "types/phone_numbers_update_response"
13
13
  require "async"
14
14
 
@@ -168,29 +168,7 @@ module Vapi
168
168
  end
169
169
 
170
170
  # @param id [String]
171
- # @param fallback_destination [Vapi::PhoneNumbers::UpdatePhoneNumberDtoFallbackDestination] This is the fallback destination an inbound call will be transferred to if:
172
- # 1. `assistantId` is not set
173
- # 2. `squadId` is not set
174
- # 3. and, `assistant-request` message to the `serverUrl` fails
175
- # If this is not set and above conditions are met, the inbound call is hung up
176
- # with an error message.
177
- # @param name [String] This is the name of the phone number. This is just for your own reference.
178
- # @param assistant_id [String] This is the assistant that will be used for incoming calls to this phone number.
179
- # If neither `assistantId` nor `squadId` is set, `assistant-request` will be sent
180
- # to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the
181
- # shape of the message and response that is expected.
182
- # @param squad_id [String] This is the squad that will be used for incoming calls to this phone number.
183
- # If neither `assistantId` nor `squadId` is set, `assistant-request` will be sent
184
- # to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the
185
- # shape of the message and response that is expected.
186
- # @param server_url [String] This is the server URL where messages will be sent for calls on this number.
187
- # This includes the `assistant-request` message.
188
- # You can see the shape of the messages sent in `ServerMessage`.
189
- # This overrides the `org.serverUrl`. Order of precedence: tool.server.url >
190
- # assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl.
191
- # @param server_url_secret [String] This is the secret Vapi will send with every message to your server. It's sent
192
- # as a header called x-vapi-secret.
193
- # Same precedence logic as serverUrl.
171
+ # @param request [Vapi::PhoneNumbers::PhoneNumbersUpdateRequest]
194
172
  # @param request_options [Vapi::RequestOptions]
195
173
  # @return [Vapi::PhoneNumbers::PhoneNumbersUpdateResponse]
196
174
  # @example
@@ -200,8 +178,7 @@ module Vapi
200
178
  # token: "YOUR_AUTH_TOKEN"
201
179
  # )
202
180
  # api.phone_numbers.update(id: "id")
203
- def update(id:, fallback_destination: nil, name: nil, assistant_id: nil, squad_id: nil, server_url: nil,
204
- server_url_secret: nil, request_options: nil)
181
+ def update(id:, request:, request_options: nil)
205
182
  response = @request_client.conn.patch do |req|
206
183
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
207
184
  req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
@@ -213,15 +190,7 @@ module Vapi
213
190
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
214
191
  req.params = { **(request_options&.additional_query_parameters || {}) }.compact
215
192
  end
216
- req.body = {
217
- **(request_options&.additional_body_parameters || {}),
218
- fallbackDestination: fallback_destination,
219
- name: name,
220
- assistantId: assistant_id,
221
- squadId: squad_id,
222
- serverUrl: server_url,
223
- serverUrlSecret: server_url_secret
224
- }.compact
193
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
225
194
  req.url "#{@request_client.get_url(request_options: request_options)}/phone-number/#{id}"
226
195
  end
227
196
  Vapi::PhoneNumbers::PhoneNumbersUpdateResponse.from_json(json_object: response.body)
@@ -391,29 +360,7 @@ module Vapi
391
360
  end
392
361
 
393
362
  # @param id [String]
394
- # @param fallback_destination [Vapi::PhoneNumbers::UpdatePhoneNumberDtoFallbackDestination] This is the fallback destination an inbound call will be transferred to if:
395
- # 1. `assistantId` is not set
396
- # 2. `squadId` is not set
397
- # 3. and, `assistant-request` message to the `serverUrl` fails
398
- # If this is not set and above conditions are met, the inbound call is hung up
399
- # with an error message.
400
- # @param name [String] This is the name of the phone number. This is just for your own reference.
401
- # @param assistant_id [String] This is the assistant that will be used for incoming calls to this phone number.
402
- # If neither `assistantId` nor `squadId` is set, `assistant-request` will be sent
403
- # to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the
404
- # shape of the message and response that is expected.
405
- # @param squad_id [String] This is the squad that will be used for incoming calls to this phone number.
406
- # If neither `assistantId` nor `squadId` is set, `assistant-request` will be sent
407
- # to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the
408
- # shape of the message and response that is expected.
409
- # @param server_url [String] This is the server URL where messages will be sent for calls on this number.
410
- # This includes the `assistant-request` message.
411
- # You can see the shape of the messages sent in `ServerMessage`.
412
- # This overrides the `org.serverUrl`. Order of precedence: tool.server.url >
413
- # assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl.
414
- # @param server_url_secret [String] This is the secret Vapi will send with every message to your server. It's sent
415
- # as a header called x-vapi-secret.
416
- # Same precedence logic as serverUrl.
363
+ # @param request [Vapi::PhoneNumbers::PhoneNumbersUpdateRequest]
417
364
  # @param request_options [Vapi::RequestOptions]
418
365
  # @return [Vapi::PhoneNumbers::PhoneNumbersUpdateResponse]
419
366
  # @example
@@ -423,8 +370,7 @@ module Vapi
423
370
  # token: "YOUR_AUTH_TOKEN"
424
371
  # )
425
372
  # api.phone_numbers.update(id: "id")
426
- def update(id:, fallback_destination: nil, name: nil, assistant_id: nil, squad_id: nil, server_url: nil,
427
- server_url_secret: nil, request_options: nil)
373
+ def update(id:, request:, request_options: nil)
428
374
  Async do
429
375
  response = @request_client.conn.patch do |req|
430
376
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
@@ -437,15 +383,7 @@ module Vapi
437
383
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
438
384
  req.params = { **(request_options&.additional_query_parameters || {}) }.compact
439
385
  end
440
- req.body = {
441
- **(request_options&.additional_body_parameters || {}),
442
- fallbackDestination: fallback_destination,
443
- name: name,
444
- assistantId: assistant_id,
445
- squadId: squad_id,
446
- serverUrl: server_url,
447
- serverUrlSecret: server_url_secret
448
- }.compact
386
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
449
387
  req.url "#{@request_client.get_url(request_options: request_options)}/phone-number/#{id}"
450
388
  end
451
389
  Vapi::PhoneNumbers::PhoneNumbersUpdateResponse.from_json(json_object: response.body)
@@ -0,0 +1,122 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "../../types/update_byo_phone_number_dto"
5
+ require_relative "../../types/update_twilio_phone_number_dto"
6
+ require_relative "../../types/update_vonage_phone_number_dto"
7
+ require_relative "../../types/update_vapi_phone_number_dto"
8
+
9
+ module Vapi
10
+ class PhoneNumbers
11
+ class PhoneNumbersUpdateRequest
12
+ # @return [Object]
13
+ attr_reader :member
14
+ # @return [String]
15
+ attr_reader :discriminant
16
+
17
+ private_class_method :new
18
+ alias kind_of? is_a?
19
+
20
+ # @param member [Object]
21
+ # @param discriminant [String]
22
+ # @return [Vapi::PhoneNumbers::PhoneNumbersUpdateRequest]
23
+ def initialize(member:, discriminant:)
24
+ @member = member
25
+ @discriminant = discriminant
26
+ end
27
+
28
+ # Deserialize a JSON object to an instance of PhoneNumbersUpdateRequest
29
+ #
30
+ # @param json_object [String]
31
+ # @return [Vapi::PhoneNumbers::PhoneNumbersUpdateRequest]
32
+ def self.from_json(json_object:)
33
+ struct = JSON.parse(json_object, object_class: OpenStruct)
34
+ member = case struct.provider
35
+ when "byo-phone-number"
36
+ Vapi::UpdateByoPhoneNumberDto.from_json(json_object: json_object)
37
+ when "twilio"
38
+ Vapi::UpdateTwilioPhoneNumberDto.from_json(json_object: json_object)
39
+ when "vonage"
40
+ Vapi::UpdateVonagePhoneNumberDto.from_json(json_object: json_object)
41
+ when "vapi"
42
+ Vapi::UpdateVapiPhoneNumberDto.from_json(json_object: json_object)
43
+ else
44
+ Vapi::UpdateByoPhoneNumberDto.from_json(json_object: json_object)
45
+ end
46
+ new(member: member, discriminant: struct.provider)
47
+ end
48
+
49
+ # For Union Types, to_json functionality is delegated to the wrapped member.
50
+ #
51
+ # @return [String]
52
+ def to_json(*_args)
53
+ case @discriminant
54
+ when "byo-phone-number"
55
+ { **@member.to_json, provider: @discriminant }.to_json
56
+ when "twilio"
57
+ { **@member.to_json, provider: @discriminant }.to_json
58
+ when "vonage"
59
+ { **@member.to_json, provider: @discriminant }.to_json
60
+ when "vapi"
61
+ { **@member.to_json, provider: @discriminant }.to_json
62
+ else
63
+ { "provider": @discriminant, value: @member }.to_json
64
+ end
65
+ @member.to_json
66
+ end
67
+
68
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
69
+ # hash and check each fields type against the current object's property
70
+ # definitions.
71
+ #
72
+ # @param obj [Object]
73
+ # @return [Void]
74
+ def self.validate_raw(obj:)
75
+ case obj.provider
76
+ when "byo-phone-number"
77
+ Vapi::UpdateByoPhoneNumberDto.validate_raw(obj: obj)
78
+ when "twilio"
79
+ Vapi::UpdateTwilioPhoneNumberDto.validate_raw(obj: obj)
80
+ when "vonage"
81
+ Vapi::UpdateVonagePhoneNumberDto.validate_raw(obj: obj)
82
+ when "vapi"
83
+ Vapi::UpdateVapiPhoneNumberDto.validate_raw(obj: obj)
84
+ else
85
+ raise("Passed value matched no type within the union, validation failed.")
86
+ end
87
+ end
88
+
89
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
90
+ #
91
+ # @param obj [Object]
92
+ # @return [Boolean]
93
+ def is_a?(obj)
94
+ @member.is_a?(obj)
95
+ end
96
+
97
+ # @param member [Vapi::UpdateByoPhoneNumberDto]
98
+ # @return [Vapi::PhoneNumbers::PhoneNumbersUpdateRequest]
99
+ def self.byo_phone_number(member:)
100
+ new(member: member, discriminant: "byo-phone-number")
101
+ end
102
+
103
+ # @param member [Vapi::UpdateTwilioPhoneNumberDto]
104
+ # @return [Vapi::PhoneNumbers::PhoneNumbersUpdateRequest]
105
+ def self.twilio(member:)
106
+ new(member: member, discriminant: "twilio")
107
+ end
108
+
109
+ # @param member [Vapi::UpdateVonagePhoneNumberDto]
110
+ # @return [Vapi::PhoneNumbers::PhoneNumbersUpdateRequest]
111
+ def self.vonage(member:)
112
+ new(member: member, discriminant: "vonage")
113
+ end
114
+
115
+ # @param member [Vapi::UpdateVapiPhoneNumberDto]
116
+ # @return [Vapi::PhoneNumbers::PhoneNumbersUpdateRequest]
117
+ def self.vapi(member:)
118
+ new(member: member, discriminant: "vapi")
119
+ end
120
+ end
121
+ end
122
+ end
@@ -94,6 +94,7 @@ module Vapi
94
94
  # * :background_denoising_enabled (Boolean)
95
95
  # * :model_output_in_messages_enabled (Boolean)
96
96
  # * :transport_configurations (Array<Vapi::TransportConfigurationTwilio>)
97
+ # * :credentials (Array<Vapi::AssistantOverridesCredentialsItem>)
97
98
  # * :variable_values (Hash{String => Object})
98
99
  # * :name (String)
99
100
  # * :voicemail_detection (Hash)
@@ -268,6 +269,7 @@ module Vapi
268
269
  # * :background_denoising_enabled (Boolean)
269
270
  # * :model_output_in_messages_enabled (Boolean)
270
271
  # * :transport_configurations (Array<Vapi::TransportConfigurationTwilio>)
272
+ # * :credentials (Array<Vapi::CreateAssistantDtoCredentialsItem>)
271
273
  # * :name (String)
272
274
  # * :voicemail_detection (Hash)
273
275
  # * :provider (String)
@@ -349,6 +351,7 @@ module Vapi
349
351
  # * :background_denoising_enabled (Boolean)
350
352
  # * :model_output_in_messages_enabled (Boolean)
351
353
  # * :transport_configurations (Array<Vapi::TransportConfigurationTwilio>)
354
+ # * :credentials (Array<Vapi::AssistantOverridesCredentialsItem>)
352
355
  # * :variable_values (Hash{String => Object})
353
356
  # * :name (String)
354
357
  # * :voicemail_detection (Hash)
@@ -436,6 +439,7 @@ module Vapi
436
439
  # * :background_denoising_enabled (Boolean)
437
440
  # * :model_output_in_messages_enabled (Boolean)
438
441
  # * :transport_configurations (Array<Vapi::TransportConfigurationTwilio>)
442
+ # * :credentials (Array<Vapi::AssistantOverridesCredentialsItem>)
439
443
  # * :variable_values (Hash{String => Object})
440
444
  # * :name (String)
441
445
  # * :voicemail_detection (Hash)
@@ -622,6 +626,7 @@ module Vapi
622
626
  # * :background_denoising_enabled (Boolean)
623
627
  # * :model_output_in_messages_enabled (Boolean)
624
628
  # * :transport_configurations (Array<Vapi::TransportConfigurationTwilio>)
629
+ # * :credentials (Array<Vapi::AssistantOverridesCredentialsItem>)
625
630
  # * :variable_values (Hash{String => Object})
626
631
  # * :name (String)
627
632
  # * :voicemail_detection (Hash)
@@ -802,6 +807,7 @@ module Vapi
802
807
  # * :background_denoising_enabled (Boolean)
803
808
  # * :model_output_in_messages_enabled (Boolean)
804
809
  # * :transport_configurations (Array<Vapi::TransportConfigurationTwilio>)
810
+ # * :credentials (Array<Vapi::CreateAssistantDtoCredentialsItem>)
805
811
  # * :name (String)
806
812
  # * :voicemail_detection (Hash)
807
813
  # * :provider (String)
@@ -883,6 +889,7 @@ module Vapi
883
889
  # * :background_denoising_enabled (Boolean)
884
890
  # * :model_output_in_messages_enabled (Boolean)
885
891
  # * :transport_configurations (Array<Vapi::TransportConfigurationTwilio>)
892
+ # * :credentials (Array<Vapi::AssistantOverridesCredentialsItem>)
886
893
  # * :variable_values (Hash{String => Object})
887
894
  # * :name (String)
888
895
  # * :voicemail_detection (Hash)
@@ -970,6 +977,7 @@ module Vapi
970
977
  # * :background_denoising_enabled (Boolean)
971
978
  # * :model_output_in_messages_enabled (Boolean)
972
979
  # * :transport_configurations (Array<Vapi::TransportConfigurationTwilio>)
980
+ # * :credentials (Array<Vapi::AssistantOverridesCredentialsItem>)
973
981
  # * :variable_values (Hash{String => Object})
974
982
  # * :name (String)
975
983
  # * :voicemail_detection (Hash)
@@ -8,9 +8,7 @@ require_relative "types/tools_create_request"
8
8
  require_relative "types/tools_create_response"
9
9
  require_relative "types/tools_get_response"
10
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"
11
+ require_relative "types/tools_update_request"
14
12
  require_relative "types/tools_update_response"
15
13
  require "async"
16
14
 
@@ -170,42 +168,7 @@ module Vapi
170
168
  end
171
169
 
172
170
  # @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
- # * :strict (Boolean)
193
- # * :name (String)
194
- # * :description (String)
195
- # * :parameters (Hash)
196
- # * :type (String)
197
- # * :properties (Hash{String => Vapi::JsonSchema})
198
- # * :required (Array<String>)
199
- # @param server [Hash] This is the server that will be hit when this tool is requested by the model.
200
- # All requests will be sent with the call object among other things. You can find
201
- # more details in the Server URL documentation.
202
- # This overrides the serverUrl set on the org and the phoneNumber. Order of
203
- # precedence: highest tool.server.url, then assistant.serverUrl, then
204
- # phoneNumber.serverUrl, then org.serverUrl.Request of type Vapi::Server, as a Hash
205
- # * :timeout_seconds (Float)
206
- # * :url (String)
207
- # * :secret (String)
208
- # * :headers (Hash{String => Object})
171
+ # @param request [Vapi::Tools::ToolsUpdateRequest]
209
172
  # @param request_options [Vapi::RequestOptions]
210
173
  # @return [Vapi::Tools::ToolsUpdateResponse]
211
174
  # @example
@@ -215,7 +178,7 @@ module Vapi
215
178
  # token: "YOUR_AUTH_TOKEN"
216
179
  # )
217
180
  # api.tools.update(id: "id")
218
- def update(id:, async: nil, messages: nil, function: nil, server: nil, request_options: nil)
181
+ def update(id:, request:, request_options: nil)
219
182
  response = @request_client.conn.patch do |req|
220
183
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
221
184
  req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
@@ -227,13 +190,7 @@ module Vapi
227
190
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
228
191
  req.params = { **(request_options&.additional_query_parameters || {}) }.compact
229
192
  end
230
- req.body = {
231
- **(request_options&.additional_body_parameters || {}),
232
- async: async,
233
- messages: messages,
234
- function: function,
235
- server: server
236
- }.compact
193
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
237
194
  req.url "#{@request_client.get_url(request_options: request_options)}/tool/#{id}"
238
195
  end
239
196
  Vapi::Tools::ToolsUpdateResponse.from_json(json_object: response.body)
@@ -403,42 +360,7 @@ module Vapi
403
360
  end
404
361
 
405
362
  # @param id [String]
406
- # @param async [Boolean] This determines if the tool is async.
407
- # If async, the assistant will move forward without waiting for your server to
408
- # respond. This is useful if you just want to trigger something on your server.
409
- # If sync, the assistant will wait for your server to respond. This is useful if
410
- # want assistant to respond with the result from your server.
411
- # Defaults to synchronous (`false`).
412
- # @param messages [Array<Hash>] These are the messages that will be spoken to the user as the tool is running.
413
- # For some tools, this is auto-filled based on special fields like
414
- # `tool.destinations`. For others like the function tool, these can be custom
415
- # configured.Request of type Array<Vapi::Tools::UpdateToolDtoMessagesItem>, as a Hash
416
- # @param function [Hash] This is the function definition of the tool.
417
- # For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on
418
- # tool-specific fields like `tool.destinations`. But, even in those cases, you can
419
- # provide a custom function definition for advanced use cases.
420
- # An example of an advanced use case is if you want to customize the message
421
- # that's spoken for `endCall` tool. You can specify a function where it returns an
422
- # argument "reason". Then, in `messages` array, you can have many
423
- # "request-complete" messages. One of these messages will be triggered if the
424
- # `messages[].conditions` matches the "reason" argument.Request of type Vapi::OpenAiFunction, as a Hash
425
- # * :strict (Boolean)
426
- # * :name (String)
427
- # * :description (String)
428
- # * :parameters (Hash)
429
- # * :type (String)
430
- # * :properties (Hash{String => Vapi::JsonSchema})
431
- # * :required (Array<String>)
432
- # @param server [Hash] This is the server that will be hit when this tool is requested by the model.
433
- # All requests will be sent with the call object among other things. You can find
434
- # more details in the Server URL documentation.
435
- # This overrides the serverUrl set on the org and the phoneNumber. Order of
436
- # precedence: highest tool.server.url, then assistant.serverUrl, then
437
- # phoneNumber.serverUrl, then org.serverUrl.Request of type Vapi::Server, as a Hash
438
- # * :timeout_seconds (Float)
439
- # * :url (String)
440
- # * :secret (String)
441
- # * :headers (Hash{String => Object})
363
+ # @param request [Vapi::Tools::ToolsUpdateRequest]
442
364
  # @param request_options [Vapi::RequestOptions]
443
365
  # @return [Vapi::Tools::ToolsUpdateResponse]
444
366
  # @example
@@ -448,7 +370,7 @@ module Vapi
448
370
  # token: "YOUR_AUTH_TOKEN"
449
371
  # )
450
372
  # api.tools.update(id: "id")
451
- def update(id:, async: nil, messages: nil, function: nil, server: nil, request_options: nil)
373
+ def update(id:, request:, request_options: nil)
452
374
  Async do
453
375
  response = @request_client.conn.patch do |req|
454
376
  req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
@@ -461,13 +383,7 @@ module Vapi
461
383
  unless request_options.nil? || request_options&.additional_query_parameters.nil?
462
384
  req.params = { **(request_options&.additional_query_parameters || {}) }.compact
463
385
  end
464
- req.body = {
465
- **(request_options&.additional_body_parameters || {}),
466
- async: async,
467
- messages: messages,
468
- function: function,
469
- server: server
470
- }.compact
386
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
471
387
  req.url "#{@request_client.get_url(request_options: request_options)}/tool/#{id}"
472
388
  end
473
389
  Vapi::Tools::ToolsUpdateResponse.from_json(json_object: response.body)
@@ -0,0 +1,200 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "../../types/update_dtmf_tool_dto"
5
+ require_relative "../../types/update_end_call_tool_dto"
6
+ require_relative "../../types/update_function_tool_dto"
7
+ require_relative "../../types/update_ghl_tool_dto"
8
+ require_relative "../../types/update_make_tool_dto"
9
+ require_relative "../../types/update_transfer_call_tool_dto"
10
+ require_relative "../../types/update_output_tool_dto"
11
+ require_relative "../../types/update_bash_tool_dto"
12
+ require_relative "../../types/update_computer_tool_dto"
13
+ require_relative "../../types/update_text_editor_tool_dto"
14
+
15
+ module Vapi
16
+ class Tools
17
+ class ToolsUpdateRequest
18
+ # @return [Object]
19
+ attr_reader :member
20
+ # @return [String]
21
+ attr_reader :discriminant
22
+
23
+ private_class_method :new
24
+ alias kind_of? is_a?
25
+
26
+ # @param member [Object]
27
+ # @param discriminant [String]
28
+ # @return [Vapi::Tools::ToolsUpdateRequest]
29
+ def initialize(member:, discriminant:)
30
+ @member = member
31
+ @discriminant = discriminant
32
+ end
33
+
34
+ # Deserialize a JSON object to an instance of ToolsUpdateRequest
35
+ #
36
+ # @param json_object [String]
37
+ # @return [Vapi::Tools::ToolsUpdateRequest]
38
+ def self.from_json(json_object:)
39
+ struct = JSON.parse(json_object, object_class: OpenStruct)
40
+ member = case struct.type
41
+ when "dtmf"
42
+ Vapi::UpdateDtmfToolDto.from_json(json_object: json_object)
43
+ when "endCall"
44
+ Vapi::UpdateEndCallToolDto.from_json(json_object: json_object)
45
+ when "function"
46
+ Vapi::UpdateFunctionToolDto.from_json(json_object: json_object)
47
+ when "ghl"
48
+ Vapi::UpdateGhlToolDto.from_json(json_object: json_object)
49
+ when "make"
50
+ Vapi::UpdateMakeToolDto.from_json(json_object: json_object)
51
+ when "transferCall"
52
+ Vapi::UpdateTransferCallToolDto.from_json(json_object: json_object)
53
+ when "output"
54
+ Vapi::UpdateOutputToolDto.from_json(json_object: json_object)
55
+ when "bash"
56
+ Vapi::UpdateBashToolDto.from_json(json_object: json_object)
57
+ when "computer"
58
+ Vapi::UpdateComputerToolDto.from_json(json_object: json_object)
59
+ when "textEditor"
60
+ Vapi::UpdateTextEditorToolDto.from_json(json_object: json_object)
61
+ else
62
+ Vapi::UpdateDtmfToolDto.from_json(json_object: json_object)
63
+ end
64
+ new(member: member, discriminant: struct.type)
65
+ end
66
+
67
+ # For Union Types, to_json functionality is delegated to the wrapped member.
68
+ #
69
+ # @return [String]
70
+ def to_json(*_args)
71
+ case @discriminant
72
+ when "dtmf"
73
+ { **@member.to_json, type: @discriminant }.to_json
74
+ when "endCall"
75
+ { **@member.to_json, type: @discriminant }.to_json
76
+ when "function"
77
+ { **@member.to_json, type: @discriminant }.to_json
78
+ when "ghl"
79
+ { **@member.to_json, type: @discriminant }.to_json
80
+ when "make"
81
+ { **@member.to_json, type: @discriminant }.to_json
82
+ when "transferCall"
83
+ { **@member.to_json, type: @discriminant }.to_json
84
+ when "output"
85
+ { **@member.to_json, type: @discriminant }.to_json
86
+ when "bash"
87
+ { **@member.to_json, type: @discriminant }.to_json
88
+ when "computer"
89
+ { **@member.to_json, type: @discriminant }.to_json
90
+ when "textEditor"
91
+ { **@member.to_json, type: @discriminant }.to_json
92
+ else
93
+ { "type": @discriminant, value: @member }.to_json
94
+ end
95
+ @member.to_json
96
+ end
97
+
98
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
99
+ # hash and check each fields type against the current object's property
100
+ # definitions.
101
+ #
102
+ # @param obj [Object]
103
+ # @return [Void]
104
+ def self.validate_raw(obj:)
105
+ case obj.type
106
+ when "dtmf"
107
+ Vapi::UpdateDtmfToolDto.validate_raw(obj: obj)
108
+ when "endCall"
109
+ Vapi::UpdateEndCallToolDto.validate_raw(obj: obj)
110
+ when "function"
111
+ Vapi::UpdateFunctionToolDto.validate_raw(obj: obj)
112
+ when "ghl"
113
+ Vapi::UpdateGhlToolDto.validate_raw(obj: obj)
114
+ when "make"
115
+ Vapi::UpdateMakeToolDto.validate_raw(obj: obj)
116
+ when "transferCall"
117
+ Vapi::UpdateTransferCallToolDto.validate_raw(obj: obj)
118
+ when "output"
119
+ Vapi::UpdateOutputToolDto.validate_raw(obj: obj)
120
+ when "bash"
121
+ Vapi::UpdateBashToolDto.validate_raw(obj: obj)
122
+ when "computer"
123
+ Vapi::UpdateComputerToolDto.validate_raw(obj: obj)
124
+ when "textEditor"
125
+ Vapi::UpdateTextEditorToolDto.validate_raw(obj: obj)
126
+ else
127
+ raise("Passed value matched no type within the union, validation failed.")
128
+ end
129
+ end
130
+
131
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
132
+ #
133
+ # @param obj [Object]
134
+ # @return [Boolean]
135
+ def is_a?(obj)
136
+ @member.is_a?(obj)
137
+ end
138
+
139
+ # @param member [Vapi::UpdateDtmfToolDto]
140
+ # @return [Vapi::Tools::ToolsUpdateRequest]
141
+ def self.dtmf(member:)
142
+ new(member: member, discriminant: "dtmf")
143
+ end
144
+
145
+ # @param member [Vapi::UpdateEndCallToolDto]
146
+ # @return [Vapi::Tools::ToolsUpdateRequest]
147
+ def self.end_call(member:)
148
+ new(member: member, discriminant: "endCall")
149
+ end
150
+
151
+ # @param member [Vapi::UpdateFunctionToolDto]
152
+ # @return [Vapi::Tools::ToolsUpdateRequest]
153
+ def self.function(member:)
154
+ new(member: member, discriminant: "function")
155
+ end
156
+
157
+ # @param member [Vapi::UpdateGhlToolDto]
158
+ # @return [Vapi::Tools::ToolsUpdateRequest]
159
+ def self.ghl(member:)
160
+ new(member: member, discriminant: "ghl")
161
+ end
162
+
163
+ # @param member [Vapi::UpdateMakeToolDto]
164
+ # @return [Vapi::Tools::ToolsUpdateRequest]
165
+ def self.make(member:)
166
+ new(member: member, discriminant: "make")
167
+ end
168
+
169
+ # @param member [Vapi::UpdateTransferCallToolDto]
170
+ # @return [Vapi::Tools::ToolsUpdateRequest]
171
+ def self.transfer_call(member:)
172
+ new(member: member, discriminant: "transferCall")
173
+ end
174
+
175
+ # @param member [Vapi::UpdateOutputToolDto]
176
+ # @return [Vapi::Tools::ToolsUpdateRequest]
177
+ def self.output(member:)
178
+ new(member: member, discriminant: "output")
179
+ end
180
+
181
+ # @param member [Vapi::UpdateBashToolDto]
182
+ # @return [Vapi::Tools::ToolsUpdateRequest]
183
+ def self.bash(member:)
184
+ new(member: member, discriminant: "bash")
185
+ end
186
+
187
+ # @param member [Vapi::UpdateComputerToolDto]
188
+ # @return [Vapi::Tools::ToolsUpdateRequest]
189
+ def self.computer(member:)
190
+ new(member: member, discriminant: "computer")
191
+ end
192
+
193
+ # @param member [Vapi::UpdateTextEditorToolDto]
194
+ # @return [Vapi::Tools::ToolsUpdateRequest]
195
+ def self.text_editor(member:)
196
+ new(member: member, discriminant: "textEditor")
197
+ end
198
+ end
199
+ end
200
+ end