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
@@ -0,0 +1,139 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "server"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module Vapi
8
+ class UpdateCustomKnowledgeBaseDto
9
+ # @return [Vapi::Server] /**
10
+ # This is where the knowledge base request will be sent.
11
+ # Request Example:
12
+ # POST https://{server.url}
13
+ # Content-Type: application/json
14
+ # {
15
+ # "messsage": {
16
+ # "type": "knowledge-base-request",
17
+ # "messages": [
18
+ # {
19
+ # "role": "user",
20
+ # "content": "Why is ocean blue?"
21
+ # }
22
+ # ],
23
+ # ...other metadata about the call...
24
+ # }
25
+ # }
26
+ # Response Expected:
27
+ # ```
28
+ # {
29
+ # "message": {
30
+ # "role": "assistant",
31
+ # "content": "The ocean is blue because water absorbs everything but blue.",
32
+ # }, // YOU CAN RETURN THE EXACT RESPONSE TO SPEAK
33
+ # "documents": [
34
+ # {
35
+ # "content": "The ocean is blue primarily because water absorbs colors in
36
+ # the red part of the light spectrum and scatters the blue light, making it more
37
+ # visible to our eyes.",
38
+ # "similarity": 1
39
+ # },
40
+ # {
41
+ # "content": "Blue light is scattered more by the water molecules than other
42
+ # colors, enhancing the blue appearance of the ocean.",
43
+ # "similarity": .5
44
+ # }
45
+ # ] // OR, YOU CAN RETURN AN ARRAY OF DOCUMENTS THAT WILL BE SENT TO THE MODEL
46
+ # }
47
+ # ```
48
+ attr_reader :server
49
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
50
+ attr_reader :additional_properties
51
+ # @return [Object]
52
+ attr_reader :_field_set
53
+ protected :_field_set
54
+
55
+ OMIT = Object.new
56
+
57
+ # @param server [Vapi::Server] /**
58
+ # This is where the knowledge base request will be sent.
59
+ # Request Example:
60
+ # POST https://{server.url}
61
+ # Content-Type: application/json
62
+ # {
63
+ # "messsage": {
64
+ # "type": "knowledge-base-request",
65
+ # "messages": [
66
+ # {
67
+ # "role": "user",
68
+ # "content": "Why is ocean blue?"
69
+ # }
70
+ # ],
71
+ # ...other metadata about the call...
72
+ # }
73
+ # }
74
+ # Response Expected:
75
+ # ```
76
+ # {
77
+ # "message": {
78
+ # "role": "assistant",
79
+ # "content": "The ocean is blue because water absorbs everything but blue.",
80
+ # }, // YOU CAN RETURN THE EXACT RESPONSE TO SPEAK
81
+ # "documents": [
82
+ # {
83
+ # "content": "The ocean is blue primarily because water absorbs colors in
84
+ # the red part of the light spectrum and scatters the blue light, making it more
85
+ # visible to our eyes.",
86
+ # "similarity": 1
87
+ # },
88
+ # {
89
+ # "content": "Blue light is scattered more by the water molecules than other
90
+ # colors, enhancing the blue appearance of the ocean.",
91
+ # "similarity": .5
92
+ # }
93
+ # ] // OR, YOU CAN RETURN AN ARRAY OF DOCUMENTS THAT WILL BE SENT TO THE MODEL
94
+ # }
95
+ # ```
96
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
97
+ # @return [Vapi::UpdateCustomKnowledgeBaseDto]
98
+ def initialize(server: OMIT, additional_properties: nil)
99
+ @server = server if server != OMIT
100
+ @additional_properties = additional_properties
101
+ @_field_set = { "server": server }.reject do |_k, v|
102
+ v == OMIT
103
+ end
104
+ end
105
+
106
+ # Deserialize a JSON object to an instance of UpdateCustomKnowledgeBaseDto
107
+ #
108
+ # @param json_object [String]
109
+ # @return [Vapi::UpdateCustomKnowledgeBaseDto]
110
+ def self.from_json(json_object:)
111
+ struct = JSON.parse(json_object, object_class: OpenStruct)
112
+ parsed_json = JSON.parse(json_object)
113
+ if parsed_json["server"].nil?
114
+ server = nil
115
+ else
116
+ server = parsed_json["server"].to_json
117
+ server = Vapi::Server.from_json(json_object: server)
118
+ end
119
+ new(server: server, additional_properties: struct)
120
+ end
121
+
122
+ # Serialize an instance of UpdateCustomKnowledgeBaseDto to a JSON object
123
+ #
124
+ # @return [String]
125
+ def to_json(*_args)
126
+ @_field_set&.to_json
127
+ end
128
+
129
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
130
+ # hash and check each fields type against the current object's property
131
+ # definitions.
132
+ #
133
+ # @param obj [Object]
134
+ # @return [Void]
135
+ def self.validate_raw(obj:)
136
+ obj.server.nil? || Vapi::Server.validate_raw(obj: obj.server)
137
+ end
138
+ end
139
+ end
@@ -6,8 +6,6 @@ require "json"
6
6
 
7
7
  module Vapi
8
8
  class UpdateCustomLlmCredentialDto
9
- # @return [String]
10
- attr_reader :provider
11
9
  # @return [String] This is not returned in the API.
12
10
  attr_reader :api_key
13
11
  # @return [Vapi::OAuth2AuthenticationPlan] This is the authentication plan. Currently supports OAuth2 RFC 6749. To use
@@ -23,25 +21,18 @@ module Vapi
23
21
 
24
22
  OMIT = Object.new
25
23
 
26
- # @param provider [String]
27
24
  # @param api_key [String] This is not returned in the API.
28
25
  # @param authentication_plan [Vapi::OAuth2AuthenticationPlan] This is the authentication plan. Currently supports OAuth2 RFC 6749. To use
29
26
  # Bearer authentication, use apiKey
30
27
  # @param name [String] This is the name of credential. This is just for your reference.
31
28
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
32
29
  # @return [Vapi::UpdateCustomLlmCredentialDto]
33
- def initialize(provider:, api_key:, authentication_plan: OMIT, name: OMIT, additional_properties: nil)
34
- @provider = provider
35
- @api_key = api_key
30
+ def initialize(api_key: OMIT, authentication_plan: OMIT, name: OMIT, additional_properties: nil)
31
+ @api_key = api_key if api_key != OMIT
36
32
  @authentication_plan = authentication_plan if authentication_plan != OMIT
37
33
  @name = name if name != OMIT
38
34
  @additional_properties = additional_properties
39
- @_field_set = {
40
- "provider": provider,
41
- "apiKey": api_key,
42
- "authenticationPlan": authentication_plan,
43
- "name": name
44
- }.reject do |_k, v|
35
+ @_field_set = { "apiKey": api_key, "authenticationPlan": authentication_plan, "name": name }.reject do |_k, v|
45
36
  v == OMIT
46
37
  end
47
38
  end
@@ -53,7 +44,6 @@ module Vapi
53
44
  def self.from_json(json_object:)
54
45
  struct = JSON.parse(json_object, object_class: OpenStruct)
55
46
  parsed_json = JSON.parse(json_object)
56
- provider = parsed_json["provider"]
57
47
  api_key = parsed_json["apiKey"]
58
48
  if parsed_json["authenticationPlan"].nil?
59
49
  authentication_plan = nil
@@ -63,7 +53,6 @@ module Vapi
63
53
  end
64
54
  name = parsed_json["name"]
65
55
  new(
66
- provider: provider,
67
56
  api_key: api_key,
68
57
  authentication_plan: authentication_plan,
69
58
  name: name,
@@ -85,8 +74,7 @@ module Vapi
85
74
  # @param obj [Object]
86
75
  # @return [Void]
87
76
  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.api_key.is_a?(String) != false || raise("Passed value for field obj.api_key is not the expected type, validation failed.")
77
+ obj.api_key&.is_a?(String) != false || raise("Passed value for field obj.api_key is not the expected type, validation failed.")
90
78
  obj.authentication_plan.nil? || Vapi::OAuth2AuthenticationPlan.validate_raw(obj: obj.authentication_plan)
91
79
  obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
92
80
  end
@@ -5,8 +5,6 @@ require "json"
5
5
 
6
6
  module Vapi
7
7
  class UpdateDeepInfraCredentialDto
8
- # @return [String]
9
- attr_reader :provider
10
8
  # @return [String] This is not returned in the API.
11
9
  attr_reader :api_key
12
10
  # @return [String] This is the name of credential. This is just for your reference.
@@ -19,17 +17,15 @@ module Vapi
19
17
 
20
18
  OMIT = Object.new
21
19
 
22
- # @param provider [String]
23
20
  # @param api_key [String] This is not returned in the API.
24
21
  # @param name [String] This is the name of credential. This is just for your reference.
25
22
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
26
23
  # @return [Vapi::UpdateDeepInfraCredentialDto]
27
- def initialize(provider:, api_key:, name: OMIT, additional_properties: nil)
28
- @provider = provider
29
- @api_key = api_key
24
+ def initialize(api_key: OMIT, name: OMIT, additional_properties: nil)
25
+ @api_key = api_key if api_key != OMIT
30
26
  @name = name if name != OMIT
31
27
  @additional_properties = additional_properties
32
- @_field_set = { "provider": provider, "apiKey": api_key, "name": name }.reject do |_k, v|
28
+ @_field_set = { "apiKey": api_key, "name": name }.reject do |_k, v|
33
29
  v == OMIT
34
30
  end
35
31
  end
@@ -41,11 +37,9 @@ module Vapi
41
37
  def self.from_json(json_object:)
42
38
  struct = JSON.parse(json_object, object_class: OpenStruct)
43
39
  parsed_json = JSON.parse(json_object)
44
- provider = parsed_json["provider"]
45
40
  api_key = parsed_json["apiKey"]
46
41
  name = parsed_json["name"]
47
42
  new(
48
- provider: provider,
49
43
  api_key: api_key,
50
44
  name: name,
51
45
  additional_properties: struct
@@ -66,8 +60,7 @@ module Vapi
66
60
  # @param obj [Object]
67
61
  # @return [Void]
68
62
  def self.validate_raw(obj:)
69
- obj.provider.is_a?(String) != false || raise("Passed value for field obj.provider is not the expected type, validation failed.")
70
- obj.api_key.is_a?(String) != false || raise("Passed value for field obj.api_key is not the expected type, validation failed.")
63
+ obj.api_key&.is_a?(String) != false || raise("Passed value for field obj.api_key is not the expected type, validation failed.")
71
64
  obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
72
65
  end
73
66
  end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Vapi
7
+ class UpdateDeepSeekCredentialDto
8
+ # @return [String] This is not returned in the API.
9
+ attr_reader :api_key
10
+ # @return [String] This is the name of credential. This is just for your reference.
11
+ attr_reader :name
12
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
13
+ attr_reader :additional_properties
14
+ # @return [Object]
15
+ attr_reader :_field_set
16
+ protected :_field_set
17
+
18
+ OMIT = Object.new
19
+
20
+ # @param api_key [String] This is not returned in the API.
21
+ # @param name [String] This is the name of credential. This is just for your reference.
22
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
23
+ # @return [Vapi::UpdateDeepSeekCredentialDto]
24
+ def initialize(api_key: OMIT, name: OMIT, additional_properties: nil)
25
+ @api_key = api_key if api_key != OMIT
26
+ @name = name if name != OMIT
27
+ @additional_properties = additional_properties
28
+ @_field_set = { "apiKey": api_key, "name": name }.reject do |_k, v|
29
+ v == OMIT
30
+ end
31
+ end
32
+
33
+ # Deserialize a JSON object to an instance of UpdateDeepSeekCredentialDto
34
+ #
35
+ # @param json_object [String]
36
+ # @return [Vapi::UpdateDeepSeekCredentialDto]
37
+ def self.from_json(json_object:)
38
+ struct = JSON.parse(json_object, object_class: OpenStruct)
39
+ parsed_json = JSON.parse(json_object)
40
+ api_key = parsed_json["apiKey"]
41
+ name = parsed_json["name"]
42
+ new(
43
+ api_key: api_key,
44
+ name: name,
45
+ additional_properties: struct
46
+ )
47
+ end
48
+
49
+ # Serialize an instance of UpdateDeepSeekCredentialDto to a JSON object
50
+ #
51
+ # @return [String]
52
+ def to_json(*_args)
53
+ @_field_set&.to_json
54
+ end
55
+
56
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
57
+ # hash and check each fields type against the current object's property
58
+ # definitions.
59
+ #
60
+ # @param obj [Object]
61
+ # @return [Void]
62
+ def self.validate_raw(obj:)
63
+ obj.api_key&.is_a?(String) != false || raise("Passed value for field obj.api_key is not the expected type, validation failed.")
64
+ obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
65
+ end
66
+ end
67
+ end
@@ -5,15 +5,13 @@ require "json"
5
5
 
6
6
  module Vapi
7
7
  class UpdateDeepgramCredentialDto
8
- # @return [String]
9
- attr_reader :provider
10
8
  # @return [String] This is not returned in the API.
11
9
  attr_reader :api_key
10
+ # @return [String] This is the name of credential. This is just for your reference.
11
+ attr_reader :name
12
12
  # @return [String] This can be used to point to an onprem Deepgram instance. Defaults to
13
13
  # api.deepgram.com.
14
14
  attr_reader :api_url
15
- # @return [String] This is the name of credential. This is just for your reference.
16
- attr_reader :name
17
15
  # @return [OpenStruct] Additional properties unmapped to the current class definition
18
16
  attr_reader :additional_properties
19
17
  # @return [Object]
@@ -22,20 +20,18 @@ module Vapi
22
20
 
23
21
  OMIT = Object.new
24
22
 
25
- # @param provider [String]
26
23
  # @param api_key [String] This is not returned in the API.
24
+ # @param name [String] This is the name of credential. This is just for your reference.
27
25
  # @param api_url [String] This can be used to point to an onprem Deepgram instance. Defaults to
28
26
  # api.deepgram.com.
29
- # @param name [String] This is the name of credential. This is just for your reference.
30
27
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
31
28
  # @return [Vapi::UpdateDeepgramCredentialDto]
32
- def initialize(provider:, api_key:, api_url: OMIT, name: OMIT, additional_properties: nil)
33
- @provider = provider
34
- @api_key = api_key
35
- @api_url = api_url if api_url != OMIT
29
+ def initialize(api_key: OMIT, name: OMIT, api_url: OMIT, additional_properties: nil)
30
+ @api_key = api_key if api_key != OMIT
36
31
  @name = name if name != OMIT
32
+ @api_url = api_url if api_url != OMIT
37
33
  @additional_properties = additional_properties
38
- @_field_set = { "provider": provider, "apiKey": api_key, "apiUrl": api_url, "name": name }.reject do |_k, v|
34
+ @_field_set = { "apiKey": api_key, "name": name, "apiUrl": api_url }.reject do |_k, v|
39
35
  v == OMIT
40
36
  end
41
37
  end
@@ -47,15 +43,13 @@ module Vapi
47
43
  def self.from_json(json_object:)
48
44
  struct = JSON.parse(json_object, object_class: OpenStruct)
49
45
  parsed_json = JSON.parse(json_object)
50
- provider = parsed_json["provider"]
51
46
  api_key = parsed_json["apiKey"]
52
- api_url = parsed_json["apiUrl"]
53
47
  name = parsed_json["name"]
48
+ api_url = parsed_json["apiUrl"]
54
49
  new(
55
- provider: provider,
56
50
  api_key: api_key,
57
- api_url: api_url,
58
51
  name: name,
52
+ api_url: api_url,
59
53
  additional_properties: struct
60
54
  )
61
55
  end
@@ -74,10 +68,9 @@ module Vapi
74
68
  # @param obj [Object]
75
69
  # @return [Void]
76
70
  def self.validate_raw(obj:)
77
- obj.provider.is_a?(String) != false || raise("Passed value for field obj.provider is not the expected type, validation failed.")
78
- obj.api_key.is_a?(String) != false || raise("Passed value for field obj.api_key is not the expected type, validation failed.")
79
- obj.api_url&.is_a?(String) != false || raise("Passed value for field obj.api_url is not the expected type, validation failed.")
71
+ obj.api_key&.is_a?(String) != false || raise("Passed value for field obj.api_key is not the expected type, validation failed.")
80
72
  obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
73
+ obj.api_url&.is_a?(String) != false || raise("Passed value for field obj.api_url is not the expected type, validation failed.")
81
74
  end
82
75
  end
83
76
  end
@@ -0,0 +1,139 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "update_dtmf_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 UpdateDtmfToolDto
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::UpdateDtmfToolDtoMessagesItem>] 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 [Vapi::OpenAiFunction] This is the function definition of the tool.
24
+ # For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on
25
+ # tool-specific fields like `tool.destinations`. But, even in those cases, you can
26
+ # provide a custom function definition for advanced use cases.
27
+ # An example of an advanced use case is if you want to customize the message
28
+ # that's spoken for `endCall` tool. You can specify a function where it returns an
29
+ # argument "reason". Then, in `messages` array, you can have many
30
+ # "request-complete" messages. One of these messages will be triggered if the
31
+ # `messages[].conditions` matches the "reason" argument.
32
+ attr_reader :function
33
+ # @return [Vapi::Server] This is the server that will be hit when this tool is requested by the model.
34
+ # All requests will be sent with the call object among other things. You can find
35
+ # more details in the Server URL documentation.
36
+ # This overrides the serverUrl set on the org and the phoneNumber. Order of
37
+ # precedence: highest tool.server.url, then assistant.serverUrl, then
38
+ # phoneNumber.serverUrl, then org.serverUrl.
39
+ attr_reader :server
40
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
41
+ attr_reader :additional_properties
42
+ # @return [Object]
43
+ attr_reader :_field_set
44
+ protected :_field_set
45
+
46
+ OMIT = Object.new
47
+
48
+ # @param async [Boolean] This determines if the tool is async.
49
+ # If async, the assistant will move forward without waiting for your server to
50
+ # respond. This is useful if you just want to trigger something on your server.
51
+ # If sync, the assistant will wait for your server to respond. This is useful if
52
+ # want assistant to respond with the result from your server.
53
+ # Defaults to synchronous (`false`).
54
+ # @param messages [Array<Vapi::UpdateDtmfToolDtoMessagesItem>] These are the messages that will be spoken to the user as the tool is running.
55
+ # For some tools, this is auto-filled based on special fields like
56
+ # `tool.destinations`. For others like the function tool, these can be custom
57
+ # configured.
58
+ # @param function [Vapi::OpenAiFunction] This is the function definition of the tool.
59
+ # For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on
60
+ # tool-specific fields like `tool.destinations`. But, even in those cases, you can
61
+ # provide a custom function definition for advanced use cases.
62
+ # An example of an advanced use case is if you want to customize the message
63
+ # that's spoken for `endCall` tool. You can specify a function where it returns an
64
+ # argument "reason". Then, in `messages` array, you can have many
65
+ # "request-complete" messages. One of these messages will be triggered if the
66
+ # `messages[].conditions` matches the "reason" argument.
67
+ # @param server [Vapi::Server] This is the server that will be hit when this tool is requested by the model.
68
+ # All requests will be sent with the call object among other things. You can find
69
+ # more details in the Server URL documentation.
70
+ # This overrides the serverUrl set on the org and the phoneNumber. Order of
71
+ # precedence: highest tool.server.url, then assistant.serverUrl, then
72
+ # phoneNumber.serverUrl, then org.serverUrl.
73
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
74
+ # @return [Vapi::UpdateDtmfToolDto]
75
+ def initialize(async: OMIT, messages: OMIT, function: OMIT, server: OMIT, additional_properties: nil)
76
+ @async = async if async != OMIT
77
+ @messages = messages if messages != OMIT
78
+ @function = function if function != OMIT
79
+ @server = server if server != OMIT
80
+ @additional_properties = additional_properties
81
+ @_field_set = { "async": async, "messages": messages, "function": function, "server": server }.reject do |_k, v|
82
+ v == OMIT
83
+ end
84
+ end
85
+
86
+ # Deserialize a JSON object to an instance of UpdateDtmfToolDto
87
+ #
88
+ # @param json_object [String]
89
+ # @return [Vapi::UpdateDtmfToolDto]
90
+ def self.from_json(json_object:)
91
+ struct = JSON.parse(json_object, object_class: OpenStruct)
92
+ parsed_json = JSON.parse(json_object)
93
+ async = parsed_json["async"]
94
+ messages = parsed_json["messages"]&.map do |item|
95
+ item = item.to_json
96
+ Vapi::UpdateDtmfToolDtoMessagesItem.from_json(json_object: item)
97
+ end
98
+ if parsed_json["function"].nil?
99
+ function = nil
100
+ else
101
+ function = parsed_json["function"].to_json
102
+ function = Vapi::OpenAiFunction.from_json(json_object: function)
103
+ end
104
+ if parsed_json["server"].nil?
105
+ server = nil
106
+ else
107
+ server = parsed_json["server"].to_json
108
+ server = Vapi::Server.from_json(json_object: server)
109
+ end
110
+ new(
111
+ async: async,
112
+ messages: messages,
113
+ function: function,
114
+ server: server,
115
+ additional_properties: struct
116
+ )
117
+ end
118
+
119
+ # Serialize an instance of UpdateDtmfToolDto to a JSON object
120
+ #
121
+ # @return [String]
122
+ def to_json(*_args)
123
+ @_field_set&.to_json
124
+ end
125
+
126
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
127
+ # hash and check each fields type against the current object's property
128
+ # definitions.
129
+ #
130
+ # @param obj [Object]
131
+ # @return [Void]
132
+ def self.validate_raw(obj:)
133
+ obj.async&.is_a?(Boolean) != false || raise("Passed value for field obj.async is not the expected type, validation failed.")
134
+ obj.messages&.is_a?(Array) != false || raise("Passed value for field obj.messages is not the expected type, validation failed.")
135
+ obj.function.nil? || Vapi::OpenAiFunction.validate_raw(obj: obj.function)
136
+ obj.server.nil? || Vapi::Server.validate_raw(obj: obj.server)
137
+ end
138
+ end
139
+ 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 UpdateDtmfToolDtoMessagesItem
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::UpdateDtmfToolDtoMessagesItem]
22
+ def initialize(member:, discriminant:)
23
+ @member = member
24
+ @discriminant = discriminant
25
+ end
26
+
27
+ # Deserialize a JSON object to an instance of UpdateDtmfToolDtoMessagesItem
28
+ #
29
+ # @param json_object [String]
30
+ # @return [Vapi::UpdateDtmfToolDtoMessagesItem]
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::UpdateDtmfToolDtoMessagesItem]
98
+ def self.request_start(member:)
99
+ new(member: member, discriminant: "request-start")
100
+ end
101
+
102
+ # @param member [Vapi::ToolMessageComplete]
103
+ # @return [Vapi::UpdateDtmfToolDtoMessagesItem]
104
+ def self.request_complete(member:)
105
+ new(member: member, discriminant: "request-complete")
106
+ end
107
+
108
+ # @param member [Vapi::ToolMessageFailed]
109
+ # @return [Vapi::UpdateDtmfToolDtoMessagesItem]
110
+ def self.request_failed(member:)
111
+ new(member: member, discriminant: "request-failed")
112
+ end
113
+
114
+ # @param member [Vapi::ToolMessageDelayed]
115
+ # @return [Vapi::UpdateDtmfToolDtoMessagesItem]
116
+ def self.request_response_delayed(member:)
117
+ new(member: member, discriminant: "request-response-delayed")
118
+ end
119
+ end
120
+ end