vapi_server_sdk 0.2.0 → 0.4.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 (273) hide show
  1. checksums.yaml +4 -4
  2. data/lib/requests.rb +2 -2
  3. data/lib/types_export.rb +160 -68
  4. data/lib/vapi_server_sdk/analytics/client.rb +0 -14
  5. data/lib/vapi_server_sdk/assistants/client.rb +19 -72
  6. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_credentials_item.rb +512 -0
  7. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_model.rb +13 -0
  8. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_transcriber.rb +13 -0
  9. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_voice.rb +13 -0
  10. data/lib/vapi_server_sdk/blocks/client.rb +7 -236
  11. data/lib/vapi_server_sdk/blocks/types/blocks_update_request.rb +109 -0
  12. data/lib/vapi_server_sdk/calls/client.rb +22 -74
  13. data/lib/vapi_server_sdk/files/client.rb +0 -70
  14. data/lib/vapi_server_sdk/knowledge_bases/client.rb +7 -78
  15. data/lib/vapi_server_sdk/knowledge_bases/types/knowledge_bases_update_request.rb +96 -0
  16. data/lib/vapi_server_sdk/logs/client.rb +75 -22
  17. data/lib/vapi_server_sdk/logs/types/logging_controller_logs_delete_query_request_type.rb +12 -0
  18. data/lib/vapi_server_sdk/phone_numbers/client.rb +7 -139
  19. data/lib/vapi_server_sdk/phone_numbers/types/phone_numbers_update_request.rb +122 -0
  20. data/lib/vapi_server_sdk/squads/client.rb +16 -70
  21. data/lib/vapi_server_sdk/tools/client.rb +7 -161
  22. data/lib/vapi_server_sdk/tools/types/tools_update_request.rb +200 -0
  23. data/lib/vapi_server_sdk/types/assistant.rb +19 -1
  24. data/lib/vapi_server_sdk/types/assistant_credentials_item.rb +510 -0
  25. data/lib/vapi_server_sdk/types/assistant_model.rb +13 -0
  26. data/lib/vapi_server_sdk/types/assistant_overrides.rb +19 -1
  27. data/lib/vapi_server_sdk/types/assistant_overrides_credentials_item.rb +510 -0
  28. data/lib/vapi_server_sdk/types/assistant_overrides_model.rb +13 -0
  29. data/lib/vapi_server_sdk/types/assistant_overrides_transcriber.rb +13 -0
  30. data/lib/vapi_server_sdk/types/assistant_overrides_voice.rb +13 -0
  31. data/lib/vapi_server_sdk/types/assistant_transcriber.rb +13 -0
  32. data/lib/vapi_server_sdk/types/assistant_voice.rb +13 -0
  33. data/lib/vapi_server_sdk/types/azure_blob_storage_bucket_plan.rb +88 -0
  34. data/lib/vapi_server_sdk/types/azure_credential.rb +22 -5
  35. data/lib/vapi_server_sdk/types/azure_credential_region.rb +5 -3
  36. data/lib/vapi_server_sdk/types/azure_credential_service.rb +9 -0
  37. data/lib/vapi_server_sdk/types/azure_open_ai_credential.rb +9 -1
  38. data/lib/vapi_server_sdk/types/azure_open_ai_credential_region.rb +5 -3
  39. data/lib/vapi_server_sdk/types/azure_speech_transcriber.rb +62 -0
  40. data/lib/vapi_server_sdk/types/azure_speech_transcriber_language.rb +152 -0
  41. data/lib/vapi_server_sdk/types/bash_tool_with_tool_call.rb +175 -0
  42. data/lib/vapi_server_sdk/types/bash_tool_with_tool_call_messages_item.rb +120 -0
  43. data/lib/vapi_server_sdk/types/buy_phone_number_dto.rb +25 -29
  44. data/lib/vapi_server_sdk/types/byo_phone_number.rb +25 -29
  45. data/lib/vapi_server_sdk/types/call_ended_reason.rb +44 -29
  46. data/lib/vapi_server_sdk/types/cartesia_voice_model.rb +2 -0
  47. data/lib/vapi_server_sdk/types/cerebras_credential.rb +111 -0
  48. data/lib/vapi_server_sdk/types/chat_dto.rb +103 -0
  49. data/lib/vapi_server_sdk/types/{credits_buy_dto.rb → chat_service_response.rb} +9 -17
  50. data/lib/vapi_server_sdk/types/client_inbound_message_end_call.rb +47 -0
  51. data/lib/vapi_server_sdk/types/client_inbound_message_message.rb +13 -0
  52. data/lib/vapi_server_sdk/types/client_message_tool_calls_tool_with_tool_call_list_item.rb +116 -77
  53. data/lib/vapi_server_sdk/types/cloudflare_credential.rb +142 -0
  54. data/lib/vapi_server_sdk/types/cloudflare_r_2_bucket_plan.rb +105 -0
  55. data/lib/vapi_server_sdk/types/computer_tool_with_tool_call.rb +199 -0
  56. data/lib/vapi_server_sdk/types/computer_tool_with_tool_call_messages_item.rb +120 -0
  57. data/lib/vapi_server_sdk/types/create_anthropic_credential_dto.rb +2 -9
  58. data/lib/vapi_server_sdk/types/create_anyscale_credential_dto.rb +2 -9
  59. data/lib/vapi_server_sdk/types/create_assembly_ai_credential_dto.rb +2 -9
  60. data/lib/vapi_server_sdk/types/create_assistant_dto.rb +19 -1
  61. data/lib/vapi_server_sdk/types/create_assistant_dto_credentials_item.rb +510 -0
  62. data/lib/vapi_server_sdk/types/create_assistant_dto_model.rb +13 -0
  63. data/lib/vapi_server_sdk/types/create_assistant_dto_transcriber.rb +13 -0
  64. data/lib/vapi_server_sdk/types/create_assistant_dto_voice.rb +13 -0
  65. data/lib/vapi_server_sdk/types/create_azure_credential_dto.rb +21 -12
  66. data/lib/vapi_server_sdk/types/create_azure_credential_dto_region.rb +5 -3
  67. data/lib/vapi_server_sdk/types/create_azure_credential_dto_service.rb +9 -0
  68. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto.rb +10 -9
  69. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_region.rb +5 -3
  70. data/lib/vapi_server_sdk/types/create_byo_phone_number_dto.rb +25 -29
  71. data/lib/vapi_server_sdk/types/create_byo_sip_trunk_credential_dto.rb +1 -9
  72. data/lib/vapi_server_sdk/types/create_cartesia_credential_dto.rb +2 -9
  73. data/lib/vapi_server_sdk/types/create_cerebras_credential_dto.rb +74 -0
  74. data/lib/vapi_server_sdk/types/create_cloudflare_credential_dto.rb +101 -0
  75. data/lib/vapi_server_sdk/types/create_custom_knowledge_base_dto.rb +2 -4
  76. data/lib/vapi_server_sdk/types/create_custom_llm_credential_dto.rb +2 -14
  77. data/lib/vapi_server_sdk/types/create_deep_infra_credential_dto.rb +2 -9
  78. data/lib/vapi_server_sdk/types/create_deep_seek_credential_dto.rb +67 -0
  79. data/lib/vapi_server_sdk/types/create_deepgram_credential_dto.rb +2 -9
  80. data/lib/vapi_server_sdk/types/create_eleven_labs_credential_dto.rb +2 -9
  81. data/lib/vapi_server_sdk/types/create_gcp_credential_dto.rb +2 -14
  82. data/lib/vapi_server_sdk/types/create_gladia_credential_dto.rb +2 -9
  83. data/lib/vapi_server_sdk/types/create_go_high_level_credential_dto.rb +2 -9
  84. data/lib/vapi_server_sdk/types/create_groq_credential_dto.rb +2 -9
  85. data/lib/vapi_server_sdk/types/create_langfuse_credential_dto.rb +2 -15
  86. data/lib/vapi_server_sdk/types/create_lmnt_credential_dto.rb +2 -9
  87. data/lib/vapi_server_sdk/types/create_make_credential_dto.rb +2 -15
  88. data/lib/vapi_server_sdk/types/create_open_ai_credential_dto.rb +2 -9
  89. data/lib/vapi_server_sdk/types/create_open_router_credential_dto.rb +2 -9
  90. data/lib/vapi_server_sdk/types/create_org_dto.rb +25 -25
  91. data/lib/vapi_server_sdk/types/create_perplexity_ai_credential_dto.rb +2 -9
  92. data/lib/vapi_server_sdk/types/create_play_ht_credential_dto.rb +2 -9
  93. data/lib/vapi_server_sdk/types/create_rime_ai_credential_dto.rb +2 -9
  94. data/lib/vapi_server_sdk/types/create_runpod_credential_dto.rb +2 -9
  95. data/lib/vapi_server_sdk/types/create_s_3_credential_dto.rb +2 -10
  96. data/lib/vapi_server_sdk/types/create_smallest_ai_credential_dto.rb +67 -0
  97. data/lib/vapi_server_sdk/types/create_tavus_credential_dto.rb +2 -9
  98. data/lib/vapi_server_sdk/types/create_together_ai_credential_dto.rb +2 -9
  99. data/lib/vapi_server_sdk/types/create_trieve_knowledge_base_dto.rb +34 -47
  100. data/lib/vapi_server_sdk/types/create_trieve_knowledge_base_dto_create_plan.rb +97 -0
  101. data/lib/vapi_server_sdk/types/create_twilio_credential_dto.rb +2 -14
  102. data/lib/vapi_server_sdk/types/create_twilio_phone_number_dto.rb +25 -29
  103. data/lib/vapi_server_sdk/types/create_vapi_phone_number_dto.rb +25 -29
  104. data/lib/vapi_server_sdk/types/create_vonage_credential_dto.rb +2 -14
  105. data/lib/vapi_server_sdk/types/create_vonage_phone_number_dto.rb +25 -29
  106. data/lib/vapi_server_sdk/types/create_webhook_credential_dto.rb +2 -13
  107. data/lib/vapi_server_sdk/types/create_workflow_dto.rb +87 -0
  108. data/lib/vapi_server_sdk/types/create_workflow_dto_nodes_item.rb +81 -0
  109. data/lib/vapi_server_sdk/types/create_x_ai_credential_dto.rb +2 -11
  110. data/lib/vapi_server_sdk/types/custom_knowledge_base.rb +2 -4
  111. data/lib/vapi_server_sdk/types/deep_seek_credential.rb +111 -0
  112. data/lib/vapi_server_sdk/types/deep_seek_model.rb +177 -0
  113. data/lib/vapi_server_sdk/types/deep_seek_model_tools_item.rb +159 -0
  114. data/lib/vapi_server_sdk/types/edge.rb +80 -0
  115. data/lib/vapi_server_sdk/types/edge_condition.rb +94 -0
  116. data/lib/vapi_server_sdk/types/eleven_labs_voice_model.rb +2 -0
  117. data/lib/vapi_server_sdk/types/fallback_cartesia_voice_model.rb +2 -0
  118. data/lib/vapi_server_sdk/types/fallback_eleven_labs_voice_model.rb +2 -0
  119. data/lib/vapi_server_sdk/types/fallback_open_ai_voice.rb +4 -4
  120. data/lib/vapi_server_sdk/types/fallback_open_ai_voice_id.rb +2 -2
  121. data/lib/vapi_server_sdk/types/fallback_plan_voices_item.rb +13 -0
  122. data/lib/vapi_server_sdk/types/fallback_smallest_ai_voice.rb +95 -0
  123. data/lib/vapi_server_sdk/types/fallback_smallest_ai_voice_id.rb +53 -0
  124. data/lib/vapi_server_sdk/types/fallback_smallest_ai_voice_id_enum.rb +31 -0
  125. data/lib/vapi_server_sdk/types/function_tool_with_tool_call.rb +1 -10
  126. data/lib/vapi_server_sdk/types/gather.rb +87 -0
  127. data/lib/vapi_server_sdk/types/gemini_multimodal_live_prebuilt_voice_config.rb +58 -0
  128. data/lib/vapi_server_sdk/types/gemini_multimodal_live_prebuilt_voice_config_voice_name.rb +11 -0
  129. data/lib/vapi_server_sdk/types/gemini_multimodal_live_speech_config.rb +61 -0
  130. data/lib/vapi_server_sdk/types/gemini_multimodal_live_voice_config.rb +61 -0
  131. data/lib/vapi_server_sdk/types/ghl_tool_with_tool_call.rb +1 -9
  132. data/lib/vapi_server_sdk/types/google_model.rb +17 -1
  133. data/lib/vapi_server_sdk/types/google_model_model.rb +2 -0
  134. data/lib/vapi_server_sdk/types/google_realtime_config.rb +121 -0
  135. data/lib/vapi_server_sdk/types/groq_model_model.rb +1 -3
  136. data/lib/vapi_server_sdk/types/import_twilio_phone_number_dto.rb +25 -29
  137. data/lib/vapi_server_sdk/types/import_vonage_phone_number_dto.rb +25 -29
  138. data/lib/vapi_server_sdk/types/json_schema.rb +13 -2
  139. data/lib/vapi_server_sdk/types/log.rb +18 -18
  140. data/lib/vapi_server_sdk/types/make_tool_with_tool_call.rb +1 -9
  141. data/lib/vapi_server_sdk/types/open_ai_model_fallback_models_item.rb +6 -0
  142. data/lib/vapi_server_sdk/types/open_ai_model_model.rb +6 -0
  143. data/lib/vapi_server_sdk/types/open_ai_voice.rb +4 -4
  144. data/lib/vapi_server_sdk/types/open_ai_voice_id.rb +2 -2
  145. data/lib/vapi_server_sdk/types/org.rb +25 -25
  146. data/lib/vapi_server_sdk/types/org_with_org_user.rb +25 -25
  147. data/lib/vapi_server_sdk/types/{subscription_concurrency_line_remove_dto.rb → programmatic_edge_condition.rb} +16 -14
  148. data/lib/vapi_server_sdk/types/say.rb +72 -0
  149. data/lib/vapi_server_sdk/types/{payment_retry_dto.rb → semantic_edge_condition.rb} +16 -14
  150. data/lib/vapi_server_sdk/types/server_message_end_of_call_report_ended_reason.rb +44 -29
  151. data/lib/vapi_server_sdk/types/server_message_status_update.rb +11 -1
  152. data/lib/vapi_server_sdk/types/server_message_status_update_ended_reason.rb +44 -29
  153. data/lib/vapi_server_sdk/types/server_message_tool_calls_tool_with_tool_call_list_item.rb +116 -77
  154. data/lib/vapi_server_sdk/types/smallest_ai_credential.rb +111 -0
  155. data/lib/vapi_server_sdk/types/smallest_ai_voice.rb +117 -0
  156. data/lib/vapi_server_sdk/types/smallest_ai_voice_id.rb +53 -0
  157. data/lib/vapi_server_sdk/types/smallest_ai_voice_id_enum.rb +31 -0
  158. data/lib/vapi_server_sdk/types/subscription.rb +13 -11
  159. data/lib/vapi_server_sdk/types/sync_voice_library_dto_providers_item.rb +1 -0
  160. data/lib/vapi_server_sdk/types/text_editor_tool_with_tool_call.rb +175 -0
  161. data/lib/vapi_server_sdk/types/text_editor_tool_with_tool_call_messages_item.rb +121 -0
  162. data/lib/vapi_server_sdk/types/transfer_plan.rb +26 -6
  163. data/lib/vapi_server_sdk/types/transfer_plan_message.rb +2 -1
  164. data/lib/vapi_server_sdk/types/trieve_knowledge_base.rb +35 -44
  165. data/lib/vapi_server_sdk/types/{trieve_knowledge_base_vector_store_create_plan.rb → trieve_knowledge_base_chunk_plan.rb} +17 -11
  166. data/lib/vapi_server_sdk/types/trieve_knowledge_base_create.rb +59 -0
  167. data/lib/vapi_server_sdk/types/trieve_knowledge_base_create_plan.rb +96 -0
  168. data/lib/vapi_server_sdk/types/{subscription_concurrency_line_buy_dto.rb → trieve_knowledge_base_import.rb} +14 -14
  169. data/lib/vapi_server_sdk/types/{trieve_knowledge_base_vector_store_search_plan.rb → trieve_knowledge_base_search_plan.rb} +9 -11
  170. data/lib/vapi_server_sdk/types/{trieve_knowledge_base_vector_store_search_plan_search_type.rb → trieve_knowledge_base_search_plan_search_type.rb} +1 -1
  171. data/lib/vapi_server_sdk/types/twilio_phone_number.rb +25 -29
  172. data/lib/vapi_server_sdk/types/update_anthropic_credential_dto.rb +4 -11
  173. data/lib/vapi_server_sdk/types/update_anyscale_credential_dto.rb +4 -11
  174. data/lib/vapi_server_sdk/types/update_assembly_ai_credential_dto.rb +4 -11
  175. data/lib/vapi_server_sdk/types/update_azure_credential_dto.rb +24 -14
  176. data/lib/vapi_server_sdk/types/update_azure_credential_dto_region.rb +5 -3
  177. data/lib/vapi_server_sdk/types/update_azure_credential_dto_service.rb +9 -0
  178. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto.rb +25 -24
  179. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_region.rb +5 -3
  180. data/lib/vapi_server_sdk/types/update_bash_tool_dto.rb +161 -0
  181. data/lib/vapi_server_sdk/types/update_bash_tool_dto_messages_item.rb +120 -0
  182. data/lib/vapi_server_sdk/types/update_byo_phone_number_dto.rb +187 -0
  183. data/lib/vapi_server_sdk/types/update_byo_phone_number_dto_fallback_destination.rb +101 -0
  184. data/lib/vapi_server_sdk/types/update_byo_sip_trunk_credential_dto.rb +13 -21
  185. data/lib/vapi_server_sdk/types/update_cartesia_credential_dto.rb +4 -11
  186. data/lib/vapi_server_sdk/types/update_cerebras_credential_dto.rb +67 -0
  187. data/lib/vapi_server_sdk/types/update_cloudflare_credential_dto.rb +101 -0
  188. data/lib/vapi_server_sdk/types/update_computer_tool_dto.rb +185 -0
  189. data/lib/vapi_server_sdk/types/update_computer_tool_dto_messages_item.rb +120 -0
  190. data/lib/vapi_server_sdk/types/update_conversation_block_dto.rb +206 -0
  191. data/lib/vapi_server_sdk/types/update_conversation_block_dto_messages_item.rb +95 -0
  192. data/lib/vapi_server_sdk/types/update_custom_knowledge_base_dto.rb +137 -0
  193. data/lib/vapi_server_sdk/types/update_custom_llm_credential_dto.rb +4 -16
  194. data/lib/vapi_server_sdk/types/update_deep_infra_credential_dto.rb +4 -11
  195. data/lib/vapi_server_sdk/types/update_deep_seek_credential_dto.rb +67 -0
  196. data/lib/vapi_server_sdk/types/update_deepgram_credential_dto.rb +11 -18
  197. data/lib/vapi_server_sdk/types/update_dtmf_tool_dto.rb +139 -0
  198. data/lib/vapi_server_sdk/types/update_dtmf_tool_dto_messages_item.rb +120 -0
  199. data/lib/vapi_server_sdk/types/update_eleven_labs_credential_dto.rb +11 -11
  200. data/lib/vapi_server_sdk/types/update_end_call_tool_dto.rb +139 -0
  201. data/lib/vapi_server_sdk/types/update_end_call_tool_dto_messages_item.rb +120 -0
  202. data/lib/vapi_server_sdk/types/update_function_tool_dto.rb +139 -0
  203. data/lib/vapi_server_sdk/types/update_function_tool_dto_messages_item.rb +120 -0
  204. data/lib/vapi_server_sdk/types/update_gcp_credential_dto.rb +11 -23
  205. data/lib/vapi_server_sdk/types/update_ghl_tool_dto.rb +159 -0
  206. data/lib/vapi_server_sdk/types/update_ghl_tool_dto_messages_item.rb +120 -0
  207. data/lib/vapi_server_sdk/types/update_gladia_credential_dto.rb +4 -11
  208. data/lib/vapi_server_sdk/types/update_go_high_level_credential_dto.rb +4 -11
  209. data/lib/vapi_server_sdk/types/update_google_credential_dto.rb +4 -13
  210. data/lib/vapi_server_sdk/types/update_groq_credential_dto.rb +4 -11
  211. data/lib/vapi_server_sdk/types/update_inflection_ai_credential_dto.rb +4 -13
  212. data/lib/vapi_server_sdk/types/update_langfuse_credential_dto.rb +8 -21
  213. data/lib/vapi_server_sdk/types/update_lmnt_credential_dto.rb +4 -11
  214. data/lib/vapi_server_sdk/types/update_make_credential_dto.rb +8 -21
  215. data/lib/vapi_server_sdk/types/update_make_tool_dto.rb +159 -0
  216. data/lib/vapi_server_sdk/types/update_make_tool_dto_messages_item.rb +120 -0
  217. data/lib/vapi_server_sdk/types/update_open_ai_credential_dto.rb +4 -11
  218. data/lib/vapi_server_sdk/types/update_open_router_credential_dto.rb +4 -11
  219. data/lib/vapi_server_sdk/types/update_org_dto.rb +25 -25
  220. data/lib/vapi_server_sdk/types/update_output_tool_dto.rb +139 -0
  221. data/lib/vapi_server_sdk/types/update_output_tool_dto_messages_item.rb +120 -0
  222. data/lib/vapi_server_sdk/types/update_perplexity_ai_credential_dto.rb +4 -11
  223. data/lib/vapi_server_sdk/types/update_play_ht_credential_dto.rb +11 -18
  224. data/lib/vapi_server_sdk/types/update_rime_ai_credential_dto.rb +4 -11
  225. data/lib/vapi_server_sdk/types/update_runpod_credential_dto.rb +4 -11
  226. data/lib/vapi_server_sdk/types/update_s_3_credential_dto.rb +12 -20
  227. data/lib/vapi_server_sdk/types/update_smallest_ai_credential_dto.rb +67 -0
  228. data/lib/vapi_server_sdk/types/update_tavus_credential_dto.rb +4 -11
  229. data/lib/vapi_server_sdk/types/update_text_editor_tool_dto.rb +161 -0
  230. data/lib/vapi_server_sdk/types/update_text_editor_tool_dto_messages_item.rb +120 -0
  231. data/lib/vapi_server_sdk/types/update_together_ai_credential_dto.rb +4 -11
  232. data/lib/vapi_server_sdk/types/update_token_dto.rb +81 -0
  233. data/lib/vapi_server_sdk/types/update_token_dto_tag.rb +9 -0
  234. data/lib/vapi_server_sdk/types/update_tool_call_block_dto.rb +168 -0
  235. data/lib/vapi_server_sdk/types/update_tool_call_block_dto_messages_item.rb +94 -0
  236. data/lib/vapi_server_sdk/types/update_tool_call_block_dto_tool.rb +161 -0
  237. data/lib/vapi_server_sdk/types/update_transfer_call_tool_dto.rb +161 -0
  238. data/lib/vapi_server_sdk/types/update_transfer_call_tool_dto_destinations_item.rb +121 -0
  239. data/lib/vapi_server_sdk/types/update_transfer_call_tool_dto_messages_item.rb +121 -0
  240. data/lib/vapi_server_sdk/types/update_trieve_knowledge_base_dto.rb +96 -0
  241. data/lib/vapi_server_sdk/types/update_trieve_knowledge_base_dto_create_plan.rb +97 -0
  242. data/lib/vapi_server_sdk/types/update_twilio_credential_dto.rb +11 -23
  243. data/lib/vapi_server_sdk/types/update_twilio_phone_number_dto.rb +163 -0
  244. data/lib/vapi_server_sdk/types/update_twilio_phone_number_dto_fallback_destination.rb +101 -0
  245. data/lib/vapi_server_sdk/types/update_vapi_phone_number_dto.rb +169 -0
  246. data/lib/vapi_server_sdk/types/update_vapi_phone_number_dto_fallback_destination.rb +101 -0
  247. data/lib/vapi_server_sdk/types/update_vonage_credential_dto.rb +11 -23
  248. data/lib/vapi_server_sdk/types/update_vonage_phone_number_dto.rb +157 -0
  249. data/lib/vapi_server_sdk/types/update_vonage_phone_number_dto_fallback_destination.rb +101 -0
  250. data/lib/vapi_server_sdk/types/update_workflow_block_dto.rb +154 -0
  251. data/lib/vapi_server_sdk/types/update_workflow_block_dto_messages_item.rb +94 -0
  252. data/lib/vapi_server_sdk/types/update_workflow_block_dto_steps_item.rb +94 -0
  253. data/lib/vapi_server_sdk/types/update_workflow_dto.rb +82 -0
  254. data/lib/vapi_server_sdk/types/update_workflow_dto_nodes_item.rb +81 -0
  255. data/lib/vapi_server_sdk/types/update_x_ai_credential_dto.rb +4 -13
  256. data/lib/vapi_server_sdk/types/vapi_model.rb +27 -1
  257. data/lib/vapi_server_sdk/types/vapi_phone_number.rb +25 -29
  258. data/lib/vapi_server_sdk/types/vonage_phone_number.rb +25 -29
  259. data/lib/vapi_server_sdk/types/workflow.rb +125 -0
  260. data/lib/vapi_server_sdk/types/workflow_nodes_item.rb +81 -0
  261. metadata +116 -24
  262. data/lib/vapi_server_sdk/blocks/types/update_block_dto_messages_item.rb +0 -96
  263. data/lib/vapi_server_sdk/blocks/types/update_block_dto_steps_item.rb +0 -96
  264. data/lib/vapi_server_sdk/blocks/types/update_block_dto_tool.rb +0 -163
  265. data/lib/vapi_server_sdk/phone_numbers/types/update_phone_number_dto_fallback_destination.rb +0 -103
  266. data/lib/vapi_server_sdk/tools/types/update_tool_dto_messages_item.rb +0 -122
  267. data/lib/vapi_server_sdk/types/auto_reload_plan_dto.rb +0 -65
  268. data/lib/vapi_server_sdk/types/hipaa_buy_dto.rb +0 -65
  269. data/lib/vapi_server_sdk/types/payment.rb +0 -167
  270. data/lib/vapi_server_sdk/types/payment_status.rb +0 -11
  271. data/lib/vapi_server_sdk/types/payments_paginated_response.rb +0 -75
  272. data/lib/vapi_server_sdk/types/subscription_coupon_add_dto.rb +0 -67
  273. data/lib/vapi_server_sdk/types/subscription_monthly_charge.rb +0 -65
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "update_azure_credential_dto_service"
3
4
  require_relative "update_azure_credential_dto_region"
5
+ require_relative "azure_blob_storage_bucket_plan"
4
6
  require "ostruct"
5
7
  require "json"
6
8
 
7
9
  module Vapi
8
10
  class UpdateAzureCredentialDto
9
- # @return [String]
10
- attr_reader :provider
11
- # @return [String] This is the service being used in Azure.
11
+ # @return [Vapi::UpdateAzureCredentialDtoService] This is the service being used in Azure.
12
12
  attr_reader :service
13
13
  # @return [Vapi::UpdateAzureCredentialDtoRegion] This is the region of the Azure resource.
14
14
  attr_reader :region
@@ -16,6 +16,9 @@ module Vapi
16
16
  attr_reader :api_key
17
17
  # @return [String] This is the name of credential. This is just for your reference.
18
18
  attr_reader :name
19
+ # @return [Vapi::AzureBlobStorageBucketPlan] This is the bucket plan that can be provided to store call artifacts in Azure
20
+ # Blob Storage.
21
+ attr_reader :bucket_plan
19
22
  # @return [OpenStruct] Additional properties unmapped to the current class definition
20
23
  attr_reader :additional_properties
21
24
  # @return [Object]
@@ -24,26 +27,28 @@ module Vapi
24
27
 
25
28
  OMIT = Object.new
26
29
 
27
- # @param provider [String]
28
- # @param service [String] This is the service being used in Azure.
30
+ # @param service [Vapi::UpdateAzureCredentialDtoService] This is the service being used in Azure.
29
31
  # @param region [Vapi::UpdateAzureCredentialDtoRegion] This is the region of the Azure resource.
30
32
  # @param api_key [String] This is not returned in the API.
31
33
  # @param name [String] This is the name of credential. This is just for your reference.
34
+ # @param bucket_plan [Vapi::AzureBlobStorageBucketPlan] This is the bucket plan that can be provided to store call artifacts in Azure
35
+ # Blob Storage.
32
36
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
33
37
  # @return [Vapi::UpdateAzureCredentialDto]
34
- def initialize(provider:, service:, region: OMIT, api_key: OMIT, name: OMIT, additional_properties: nil)
35
- @provider = provider
36
- @service = service
38
+ def initialize(service: OMIT, region: OMIT, api_key: OMIT, name: OMIT, bucket_plan: OMIT,
39
+ additional_properties: nil)
40
+ @service = service if service != OMIT
37
41
  @region = region if region != OMIT
38
42
  @api_key = api_key if api_key != OMIT
39
43
  @name = name if name != OMIT
44
+ @bucket_plan = bucket_plan if bucket_plan != OMIT
40
45
  @additional_properties = additional_properties
41
46
  @_field_set = {
42
- "provider": provider,
43
47
  "service": service,
44
48
  "region": region,
45
49
  "apiKey": api_key,
46
- "name": name
50
+ "name": name,
51
+ "bucketPlan": bucket_plan
47
52
  }.reject do |_k, v|
48
53
  v == OMIT
49
54
  end
@@ -56,17 +61,22 @@ module Vapi
56
61
  def self.from_json(json_object:)
57
62
  struct = JSON.parse(json_object, object_class: OpenStruct)
58
63
  parsed_json = JSON.parse(json_object)
59
- provider = parsed_json["provider"]
60
64
  service = parsed_json["service"]
61
65
  region = parsed_json["region"]
62
66
  api_key = parsed_json["apiKey"]
63
67
  name = parsed_json["name"]
68
+ if parsed_json["bucketPlan"].nil?
69
+ bucket_plan = nil
70
+ else
71
+ bucket_plan = parsed_json["bucketPlan"].to_json
72
+ bucket_plan = Vapi::AzureBlobStorageBucketPlan.from_json(json_object: bucket_plan)
73
+ end
64
74
  new(
65
- provider: provider,
66
75
  service: service,
67
76
  region: region,
68
77
  api_key: api_key,
69
78
  name: name,
79
+ bucket_plan: bucket_plan,
70
80
  additional_properties: struct
71
81
  )
72
82
  end
@@ -85,11 +95,11 @@ module Vapi
85
95
  # @param obj [Object]
86
96
  # @return [Void]
87
97
  def self.validate_raw(obj:)
88
- obj.provider.is_a?(String) != false || raise("Passed value for field obj.provider is not the expected type, validation failed.")
89
- obj.service.is_a?(String) != false || raise("Passed value for field obj.service is not the expected type, validation failed.")
98
+ obj.service&.is_a?(Vapi::UpdateAzureCredentialDtoService) != false || raise("Passed value for field obj.service is not the expected type, validation failed.")
90
99
  obj.region&.is_a?(Vapi::UpdateAzureCredentialDtoRegion) != false || raise("Passed value for field obj.region is not the expected type, validation failed.")
91
100
  obj.api_key&.is_a?(String) != false || raise("Passed value for field obj.api_key is not the expected type, validation failed.")
92
101
  obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
102
+ obj.bucket_plan.nil? || Vapi::AzureBlobStorageBucketPlan.validate_raw(obj: obj.bucket_plan)
93
103
  end
94
104
  end
95
105
  end
@@ -4,17 +4,19 @@ module Vapi
4
4
  # This is the region of the Azure resource.
5
5
  class UpdateAzureCredentialDtoRegion
6
6
  AUSTRALIA = "australia"
7
- CANADA = "canada"
7
+ CANADAEAST = "canadaeast"
8
+ CANADACENTRAL = "canadacentral"
8
9
  EASTUS_2 = "eastus2"
9
10
  EASTUS = "eastus"
10
11
  FRANCE = "france"
11
12
  INDIA = "india"
12
- JAPAN = "japan"
13
+ JAPANEAST = "japaneast"
14
+ JAPANWEST = "japanwest"
13
15
  UAENORTH = "uaenorth"
14
16
  NORTHCENTRALUS = "northcentralus"
15
17
  NORWAY = "norway"
16
18
  SOUTHCENTRALUS = "southcentralus"
17
- SWEDEN = "sweden"
19
+ SWEDENCENTRAL = "swedencentral"
18
20
  SWITZERLAND = "switzerland"
19
21
  UK = "uk"
20
22
  WESTUS = "westus"
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vapi
4
+ # This is the service being used in Azure.
5
+ class UpdateAzureCredentialDtoService
6
+ SPEECH = "speech"
7
+ BLOB_STORAGE = "blob_storage"
8
+ end
9
+ end
@@ -7,18 +7,18 @@ require "json"
7
7
 
8
8
  module Vapi
9
9
  class UpdateAzureOpenAiCredentialDto
10
- # @return [String]
11
- attr_reader :provider
12
10
  # @return [Vapi::UpdateAzureOpenAiCredentialDtoRegion]
13
11
  attr_reader :region
14
12
  # @return [Array<Vapi::UpdateAzureOpenAiCredentialDtoModelsItem>]
15
13
  attr_reader :models
16
14
  # @return [String] This is not returned in the API.
17
15
  attr_reader :open_ai_key
18
- # @return [String]
19
- attr_reader :open_ai_endpoint
16
+ # @return [String] This is not returned in the API.
17
+ attr_reader :ocp_apim_subscription_key
20
18
  # @return [String] This is the name of credential. This is just for your reference.
21
19
  attr_reader :name
20
+ # @return [String]
21
+ attr_reader :open_ai_endpoint
22
22
  # @return [OpenStruct] Additional properties unmapped to the current class definition
23
23
  attr_reader :additional_properties
24
24
  # @return [Object]
@@ -27,29 +27,30 @@ module Vapi
27
27
 
28
28
  OMIT = Object.new
29
29
 
30
- # @param provider [String]
31
30
  # @param region [Vapi::UpdateAzureOpenAiCredentialDtoRegion]
32
31
  # @param models [Array<Vapi::UpdateAzureOpenAiCredentialDtoModelsItem>]
33
32
  # @param open_ai_key [String] This is not returned in the API.
34
- # @param open_ai_endpoint [String]
33
+ # @param ocp_apim_subscription_key [String] This is not returned in the API.
35
34
  # @param name [String] This is the name of credential. This is just for your reference.
35
+ # @param open_ai_endpoint [String]
36
36
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
37
37
  # @return [Vapi::UpdateAzureOpenAiCredentialDto]
38
- def initialize(provider:, region:, models:, open_ai_key:, open_ai_endpoint:, name: OMIT, additional_properties: nil)
39
- @provider = provider
40
- @region = region
41
- @models = models
42
- @open_ai_key = open_ai_key
43
- @open_ai_endpoint = open_ai_endpoint
38
+ def initialize(region: OMIT, models: OMIT, open_ai_key: OMIT, ocp_apim_subscription_key: OMIT, name: OMIT,
39
+ open_ai_endpoint: OMIT, additional_properties: nil)
40
+ @region = region if region != OMIT
41
+ @models = models if models != OMIT
42
+ @open_ai_key = open_ai_key if open_ai_key != OMIT
43
+ @ocp_apim_subscription_key = ocp_apim_subscription_key if ocp_apim_subscription_key != OMIT
44
44
  @name = name if name != OMIT
45
+ @open_ai_endpoint = open_ai_endpoint if open_ai_endpoint != OMIT
45
46
  @additional_properties = additional_properties
46
47
  @_field_set = {
47
- "provider": provider,
48
48
  "region": region,
49
49
  "models": models,
50
50
  "openAIKey": open_ai_key,
51
- "openAIEndpoint": open_ai_endpoint,
52
- "name": name
51
+ "ocpApimSubscriptionKey": ocp_apim_subscription_key,
52
+ "name": name,
53
+ "openAIEndpoint": open_ai_endpoint
53
54
  }.reject do |_k, v|
54
55
  v == OMIT
55
56
  end
@@ -62,19 +63,19 @@ module Vapi
62
63
  def self.from_json(json_object:)
63
64
  struct = JSON.parse(json_object, object_class: OpenStruct)
64
65
  parsed_json = JSON.parse(json_object)
65
- provider = parsed_json["provider"]
66
66
  region = parsed_json["region"]
67
67
  models = parsed_json["models"]
68
68
  open_ai_key = parsed_json["openAIKey"]
69
- open_ai_endpoint = parsed_json["openAIEndpoint"]
69
+ ocp_apim_subscription_key = parsed_json["ocpApimSubscriptionKey"]
70
70
  name = parsed_json["name"]
71
+ open_ai_endpoint = parsed_json["openAIEndpoint"]
71
72
  new(
72
- provider: provider,
73
73
  region: region,
74
74
  models: models,
75
75
  open_ai_key: open_ai_key,
76
- open_ai_endpoint: open_ai_endpoint,
76
+ ocp_apim_subscription_key: ocp_apim_subscription_key,
77
77
  name: name,
78
+ open_ai_endpoint: open_ai_endpoint,
78
79
  additional_properties: struct
79
80
  )
80
81
  end
@@ -93,12 +94,12 @@ module Vapi
93
94
  # @param obj [Object]
94
95
  # @return [Void]
95
96
  def self.validate_raw(obj:)
96
- obj.provider.is_a?(String) != false || raise("Passed value for field obj.provider is not the expected type, validation failed.")
97
- obj.region.is_a?(Vapi::UpdateAzureOpenAiCredentialDtoRegion) != false || raise("Passed value for field obj.region is not the expected type, validation failed.")
98
- obj.models.is_a?(Array) != false || raise("Passed value for field obj.models is not the expected type, validation failed.")
99
- obj.open_ai_key.is_a?(String) != false || raise("Passed value for field obj.open_ai_key is not the expected type, validation failed.")
100
- obj.open_ai_endpoint.is_a?(String) != false || raise("Passed value for field obj.open_ai_endpoint is not the expected type, validation failed.")
97
+ obj.region&.is_a?(Vapi::UpdateAzureOpenAiCredentialDtoRegion) != false || raise("Passed value for field obj.region is not the expected type, validation failed.")
98
+ obj.models&.is_a?(Array) != false || raise("Passed value for field obj.models is not the expected type, validation failed.")
99
+ obj.open_ai_key&.is_a?(String) != false || raise("Passed value for field obj.open_ai_key is not the expected type, validation failed.")
100
+ obj.ocp_apim_subscription_key&.is_a?(String) != false || raise("Passed value for field obj.ocp_apim_subscription_key is not the expected type, validation failed.")
101
101
  obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
102
+ obj.open_ai_endpoint&.is_a?(String) != false || raise("Passed value for field obj.open_ai_endpoint is not the expected type, validation failed.")
102
103
  end
103
104
  end
104
105
  end
@@ -3,17 +3,19 @@
3
3
  module Vapi
4
4
  class UpdateAzureOpenAiCredentialDtoRegion
5
5
  AUSTRALIA = "australia"
6
- CANADA = "canada"
6
+ CANADAEAST = "canadaeast"
7
+ CANADACENTRAL = "canadacentral"
7
8
  EASTUS_2 = "eastus2"
8
9
  EASTUS = "eastus"
9
10
  FRANCE = "france"
10
11
  INDIA = "india"
11
- JAPAN = "japan"
12
+ JAPANEAST = "japaneast"
13
+ JAPANWEST = "japanwest"
12
14
  UAENORTH = "uaenorth"
13
15
  NORTHCENTRALUS = "northcentralus"
14
16
  NORWAY = "norway"
15
17
  SOUTHCENTRALUS = "southcentralus"
16
- SWEDEN = "sweden"
18
+ SWEDENCENTRAL = "swedencentral"
17
19
  SWITZERLAND = "switzerland"
18
20
  UK = "uk"
19
21
  WESTUS = "westus"
@@ -0,0 +1,161 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "update_bash_tool_dto_messages_item"
4
+ require_relative "open_ai_function"
5
+ require_relative "server"
6
+ require "ostruct"
7
+ require "json"
8
+
9
+ module Vapi
10
+ class UpdateBashToolDto
11
+ # @return [Boolean] This determines if the tool is async.
12
+ # If async, the assistant will move forward without waiting for your server to
13
+ # respond. This is useful if you just want to trigger something on your server.
14
+ # If sync, the assistant will wait for your server to respond. This is useful if
15
+ # want assistant to respond with the result from your server.
16
+ # Defaults to synchronous (`false`).
17
+ attr_reader :async
18
+ # @return [Array<Vapi::UpdateBashToolDtoMessagesItem>] These are the messages that will be spoken to the user as the tool is running.
19
+ # For some tools, this is auto-filled based on special fields like
20
+ # `tool.destinations`. For others like the function tool, these can be custom
21
+ # configured.
22
+ attr_reader :messages
23
+ # @return [String] The sub type of tool.
24
+ attr_reader :sub_type
25
+ # @return [Vapi::OpenAiFunction] This is the function definition of the tool.
26
+ # For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on
27
+ # tool-specific fields like `tool.destinations`. But, even in those cases, you can
28
+ # provide a custom function definition for advanced use cases.
29
+ # An example of an advanced use case is if you want to customize the message
30
+ # that's spoken for `endCall` tool. You can specify a function where it returns an
31
+ # argument "reason". Then, in `messages` array, you can have many
32
+ # "request-complete" messages. One of these messages will be triggered if the
33
+ # `messages[].conditions` matches the "reason" argument.
34
+ attr_reader :function
35
+ # @return [Vapi::Server] This is the server that will be hit when this tool is requested by the model.
36
+ # All requests will be sent with the call object among other things. You can find
37
+ # more details in the Server URL documentation.
38
+ # This overrides the serverUrl set on the org and the phoneNumber. Order of
39
+ # precedence: highest tool.server.url, then assistant.serverUrl, then
40
+ # phoneNumber.serverUrl, then org.serverUrl.
41
+ attr_reader :server
42
+ # @return [String] The name of the tool, fixed to 'bash'
43
+ attr_reader :name
44
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
45
+ attr_reader :additional_properties
46
+ # @return [Object]
47
+ attr_reader :_field_set
48
+ protected :_field_set
49
+
50
+ OMIT = Object.new
51
+
52
+ # @param async [Boolean] This determines if the tool is async.
53
+ # If async, the assistant will move forward without waiting for your server to
54
+ # respond. This is useful if you just want to trigger something on your server.
55
+ # If sync, the assistant will wait for your server to respond. This is useful if
56
+ # want assistant to respond with the result from your server.
57
+ # Defaults to synchronous (`false`).
58
+ # @param messages [Array<Vapi::UpdateBashToolDtoMessagesItem>] These are the messages that will be spoken to the user as the tool is running.
59
+ # For some tools, this is auto-filled based on special fields like
60
+ # `tool.destinations`. For others like the function tool, these can be custom
61
+ # configured.
62
+ # @param sub_type [String] The sub type of tool.
63
+ # @param function [Vapi::OpenAiFunction] This is the function definition of the tool.
64
+ # For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on
65
+ # tool-specific fields like `tool.destinations`. But, even in those cases, you can
66
+ # provide a custom function definition for advanced use cases.
67
+ # An example of an advanced use case is if you want to customize the message
68
+ # that's spoken for `endCall` tool. You can specify a function where it returns an
69
+ # argument "reason". Then, in `messages` array, you can have many
70
+ # "request-complete" messages. One of these messages will be triggered if the
71
+ # `messages[].conditions` matches the "reason" argument.
72
+ # @param server [Vapi::Server] This is the server that will be hit when this tool is requested by the model.
73
+ # All requests will be sent with the call object among other things. You can find
74
+ # more details in the Server URL documentation.
75
+ # This overrides the serverUrl set on the org and the phoneNumber. Order of
76
+ # precedence: highest tool.server.url, then assistant.serverUrl, then
77
+ # phoneNumber.serverUrl, then org.serverUrl.
78
+ # @param name [String] The name of the tool, fixed to 'bash'
79
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
80
+ # @return [Vapi::UpdateBashToolDto]
81
+ def initialize(async: OMIT, messages: OMIT, sub_type: OMIT, function: OMIT, server: OMIT, name: OMIT,
82
+ additional_properties: nil)
83
+ @async = async if async != OMIT
84
+ @messages = messages if messages != OMIT
85
+ @sub_type = sub_type if sub_type != OMIT
86
+ @function = function if function != OMIT
87
+ @server = server if server != OMIT
88
+ @name = name if name != OMIT
89
+ @additional_properties = additional_properties
90
+ @_field_set = {
91
+ "async": async,
92
+ "messages": messages,
93
+ "subType": sub_type,
94
+ "function": function,
95
+ "server": server,
96
+ "name": name
97
+ }.reject do |_k, v|
98
+ v == OMIT
99
+ end
100
+ end
101
+
102
+ # Deserialize a JSON object to an instance of UpdateBashToolDto
103
+ #
104
+ # @param json_object [String]
105
+ # @return [Vapi::UpdateBashToolDto]
106
+ def self.from_json(json_object:)
107
+ struct = JSON.parse(json_object, object_class: OpenStruct)
108
+ parsed_json = JSON.parse(json_object)
109
+ async = parsed_json["async"]
110
+ messages = parsed_json["messages"]&.map do |item|
111
+ item = item.to_json
112
+ Vapi::UpdateBashToolDtoMessagesItem.from_json(json_object: item)
113
+ end
114
+ sub_type = parsed_json["subType"]
115
+ if parsed_json["function"].nil?
116
+ function = nil
117
+ else
118
+ function = parsed_json["function"].to_json
119
+ function = Vapi::OpenAiFunction.from_json(json_object: function)
120
+ end
121
+ if parsed_json["server"].nil?
122
+ server = nil
123
+ else
124
+ server = parsed_json["server"].to_json
125
+ server = Vapi::Server.from_json(json_object: server)
126
+ end
127
+ name = parsed_json["name"]
128
+ new(
129
+ async: async,
130
+ messages: messages,
131
+ sub_type: sub_type,
132
+ function: function,
133
+ server: server,
134
+ name: name,
135
+ additional_properties: struct
136
+ )
137
+ end
138
+
139
+ # Serialize an instance of UpdateBashToolDto to a JSON object
140
+ #
141
+ # @return [String]
142
+ def to_json(*_args)
143
+ @_field_set&.to_json
144
+ end
145
+
146
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
147
+ # hash and check each fields type against the current object's property
148
+ # definitions.
149
+ #
150
+ # @param obj [Object]
151
+ # @return [Void]
152
+ def self.validate_raw(obj:)
153
+ obj.async&.is_a?(Boolean) != false || raise("Passed value for field obj.async is not the expected type, validation failed.")
154
+ obj.messages&.is_a?(Array) != false || raise("Passed value for field obj.messages is not the expected type, validation failed.")
155
+ obj.sub_type&.is_a?(String) != false || raise("Passed value for field obj.sub_type is not the expected type, validation failed.")
156
+ obj.function.nil? || Vapi::OpenAiFunction.validate_raw(obj: obj.function)
157
+ obj.server.nil? || Vapi::Server.validate_raw(obj: obj.server)
158
+ obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
159
+ end
160
+ end
161
+ end
@@ -0,0 +1,120 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "tool_message_start"
5
+ require_relative "tool_message_complete"
6
+ require_relative "tool_message_failed"
7
+ require_relative "tool_message_delayed"
8
+
9
+ module Vapi
10
+ class UpdateBashToolDtoMessagesItem
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::UpdateBashToolDtoMessagesItem]
22
+ def initialize(member:, discriminant:)
23
+ @member = member
24
+ @discriminant = discriminant
25
+ end
26
+
27
+ # Deserialize a JSON object to an instance of UpdateBashToolDtoMessagesItem
28
+ #
29
+ # @param json_object [String]
30
+ # @return [Vapi::UpdateBashToolDtoMessagesItem]
31
+ def self.from_json(json_object:)
32
+ struct = JSON.parse(json_object, object_class: OpenStruct)
33
+ member = case struct.type
34
+ when "request-start"
35
+ Vapi::ToolMessageStart.from_json(json_object: json_object)
36
+ when "request-complete"
37
+ Vapi::ToolMessageComplete.from_json(json_object: json_object)
38
+ when "request-failed"
39
+ Vapi::ToolMessageFailed.from_json(json_object: json_object)
40
+ when "request-response-delayed"
41
+ Vapi::ToolMessageDelayed.from_json(json_object: json_object)
42
+ else
43
+ Vapi::ToolMessageStart.from_json(json_object: json_object)
44
+ end
45
+ new(member: member, discriminant: struct.type)
46
+ end
47
+
48
+ # For Union Types, to_json functionality is delegated to the wrapped member.
49
+ #
50
+ # @return [String]
51
+ def to_json(*_args)
52
+ case @discriminant
53
+ when "request-start"
54
+ { **@member.to_json, type: @discriminant }.to_json
55
+ when "request-complete"
56
+ { **@member.to_json, type: @discriminant }.to_json
57
+ when "request-failed"
58
+ { **@member.to_json, type: @discriminant }.to_json
59
+ when "request-response-delayed"
60
+ { **@member.to_json, type: @discriminant }.to_json
61
+ else
62
+ { "type": @discriminant, value: @member }.to_json
63
+ end
64
+ @member.to_json
65
+ end
66
+
67
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
68
+ # hash and check each fields type against the current object's property
69
+ # definitions.
70
+ #
71
+ # @param obj [Object]
72
+ # @return [Void]
73
+ def self.validate_raw(obj:)
74
+ case obj.type
75
+ when "request-start"
76
+ Vapi::ToolMessageStart.validate_raw(obj: obj)
77
+ when "request-complete"
78
+ Vapi::ToolMessageComplete.validate_raw(obj: obj)
79
+ when "request-failed"
80
+ Vapi::ToolMessageFailed.validate_raw(obj: obj)
81
+ when "request-response-delayed"
82
+ Vapi::ToolMessageDelayed.validate_raw(obj: obj)
83
+ else
84
+ raise("Passed value matched no type within the union, validation failed.")
85
+ end
86
+ end
87
+
88
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
89
+ #
90
+ # @param obj [Object]
91
+ # @return [Boolean]
92
+ def is_a?(obj)
93
+ @member.is_a?(obj)
94
+ end
95
+
96
+ # @param member [Vapi::ToolMessageStart]
97
+ # @return [Vapi::UpdateBashToolDtoMessagesItem]
98
+ def self.request_start(member:)
99
+ new(member: member, discriminant: "request-start")
100
+ end
101
+
102
+ # @param member [Vapi::ToolMessageComplete]
103
+ # @return [Vapi::UpdateBashToolDtoMessagesItem]
104
+ def self.request_complete(member:)
105
+ new(member: member, discriminant: "request-complete")
106
+ end
107
+
108
+ # @param member [Vapi::ToolMessageFailed]
109
+ # @return [Vapi::UpdateBashToolDtoMessagesItem]
110
+ def self.request_failed(member:)
111
+ new(member: member, discriminant: "request-failed")
112
+ end
113
+
114
+ # @param member [Vapi::ToolMessageDelayed]
115
+ # @return [Vapi::UpdateBashToolDtoMessagesItem]
116
+ def self.request_response_delayed(member:)
117
+ new(member: member, discriminant: "request-response-delayed")
118
+ end
119
+ end
120
+ end