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,177 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "open_ai_message"
4
+ require_relative "deep_seek_model_tools_item"
5
+ require_relative "create_custom_knowledge_base_dto"
6
+ require "ostruct"
7
+ require "json"
8
+
9
+ module Vapi
10
+ class DeepSeekModel
11
+ # @return [Array<Vapi::OpenAiMessage>] This is the starting state for the conversation.
12
+ attr_reader :messages
13
+ # @return [Array<Vapi::DeepSeekModelToolsItem>] These are the tools that the assistant can use during the call. To use existing
14
+ # tools, use `toolIds`.
15
+ # Both `tools` and `toolIds` can be used together.
16
+ attr_reader :tools
17
+ # @return [Array<String>] These are the tools that the assistant can use during the call. To use transient
18
+ # tools, use `tools`.
19
+ # Both `tools` and `toolIds` can be used together.
20
+ attr_reader :tool_ids
21
+ # @return [Vapi::CreateCustomKnowledgeBaseDto] These are the options for the knowledge base.
22
+ attr_reader :knowledge_base
23
+ # @return [String] This is the ID of the knowledge base the model will use.
24
+ attr_reader :knowledge_base_id
25
+ # @return [String] This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b
26
+ attr_reader :model
27
+ # @return [Float] This is the temperature that will be used for calls. Default is 0 to leverage
28
+ # caching for lower latency.
29
+ attr_reader :temperature
30
+ # @return [Float] This is the max number of tokens that the assistant will be allowed to generate
31
+ # in each turn of the conversation. Default is 250.
32
+ attr_reader :max_tokens
33
+ # @return [Boolean] This determines whether we detect user's emotion while they speak and send it as
34
+ # an additional info to model.
35
+ # Default `false` because the model is usually are good at understanding the
36
+ # user's emotion from text.
37
+ # @default false
38
+ attr_reader :emotion_recognition_enabled
39
+ # @return [Float] This sets how many turns at the start of the conversation to use a smaller,
40
+ # faster model from the same provider before switching to the primary model.
41
+ # Example, gpt-3.5-turbo if provider is openai.
42
+ # Default is 0.
43
+ # @default 0
44
+ attr_reader :num_fast_turns
45
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
46
+ attr_reader :additional_properties
47
+ # @return [Object]
48
+ attr_reader :_field_set
49
+ protected :_field_set
50
+
51
+ OMIT = Object.new
52
+
53
+ # @param messages [Array<Vapi::OpenAiMessage>] This is the starting state for the conversation.
54
+ # @param tools [Array<Vapi::DeepSeekModelToolsItem>] These are the tools that the assistant can use during the call. To use existing
55
+ # tools, use `toolIds`.
56
+ # Both `tools` and `toolIds` can be used together.
57
+ # @param tool_ids [Array<String>] These are the tools that the assistant can use during the call. To use transient
58
+ # tools, use `tools`.
59
+ # Both `tools` and `toolIds` can be used together.
60
+ # @param knowledge_base [Vapi::CreateCustomKnowledgeBaseDto] These are the options for the knowledge base.
61
+ # @param knowledge_base_id [String] This is the ID of the knowledge base the model will use.
62
+ # @param model [String] This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b
63
+ # @param temperature [Float] This is the temperature that will be used for calls. Default is 0 to leverage
64
+ # caching for lower latency.
65
+ # @param max_tokens [Float] This is the max number of tokens that the assistant will be allowed to generate
66
+ # in each turn of the conversation. Default is 250.
67
+ # @param emotion_recognition_enabled [Boolean] This determines whether we detect user's emotion while they speak and send it as
68
+ # an additional info to model.
69
+ # Default `false` because the model is usually are good at understanding the
70
+ # user's emotion from text.
71
+ # @default false
72
+ # @param num_fast_turns [Float] This sets how many turns at the start of the conversation to use a smaller,
73
+ # faster model from the same provider before switching to the primary model.
74
+ # Example, gpt-3.5-turbo if provider is openai.
75
+ # Default is 0.
76
+ # @default 0
77
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
78
+ # @return [Vapi::DeepSeekModel]
79
+ def initialize(model:, messages: OMIT, tools: OMIT, tool_ids: OMIT, knowledge_base: OMIT, knowledge_base_id: OMIT,
80
+ temperature: OMIT, max_tokens: OMIT, emotion_recognition_enabled: OMIT, num_fast_turns: OMIT, additional_properties: nil)
81
+ @messages = messages if messages != OMIT
82
+ @tools = tools if tools != OMIT
83
+ @tool_ids = tool_ids if tool_ids != OMIT
84
+ @knowledge_base = knowledge_base if knowledge_base != OMIT
85
+ @knowledge_base_id = knowledge_base_id if knowledge_base_id != OMIT
86
+ @model = model
87
+ @temperature = temperature if temperature != OMIT
88
+ @max_tokens = max_tokens if max_tokens != OMIT
89
+ @emotion_recognition_enabled = emotion_recognition_enabled if emotion_recognition_enabled != OMIT
90
+ @num_fast_turns = num_fast_turns if num_fast_turns != OMIT
91
+ @additional_properties = additional_properties
92
+ @_field_set = {
93
+ "messages": messages,
94
+ "tools": tools,
95
+ "toolIds": tool_ids,
96
+ "knowledgeBase": knowledge_base,
97
+ "knowledgeBaseId": knowledge_base_id,
98
+ "model": model,
99
+ "temperature": temperature,
100
+ "maxTokens": max_tokens,
101
+ "emotionRecognitionEnabled": emotion_recognition_enabled,
102
+ "numFastTurns": num_fast_turns
103
+ }.reject do |_k, v|
104
+ v == OMIT
105
+ end
106
+ end
107
+
108
+ # Deserialize a JSON object to an instance of DeepSeekModel
109
+ #
110
+ # @param json_object [String]
111
+ # @return [Vapi::DeepSeekModel]
112
+ def self.from_json(json_object:)
113
+ struct = JSON.parse(json_object, object_class: OpenStruct)
114
+ parsed_json = JSON.parse(json_object)
115
+ messages = parsed_json["messages"]&.map do |item|
116
+ item = item.to_json
117
+ Vapi::OpenAiMessage.from_json(json_object: item)
118
+ end
119
+ tools = parsed_json["tools"]&.map do |item|
120
+ item = item.to_json
121
+ Vapi::DeepSeekModelToolsItem.from_json(json_object: item)
122
+ end
123
+ tool_ids = parsed_json["toolIds"]
124
+ if parsed_json["knowledgeBase"].nil?
125
+ knowledge_base = nil
126
+ else
127
+ knowledge_base = parsed_json["knowledgeBase"].to_json
128
+ knowledge_base = Vapi::CreateCustomKnowledgeBaseDto.from_json(json_object: knowledge_base)
129
+ end
130
+ knowledge_base_id = parsed_json["knowledgeBaseId"]
131
+ model = parsed_json["model"]
132
+ temperature = parsed_json["temperature"]
133
+ max_tokens = parsed_json["maxTokens"]
134
+ emotion_recognition_enabled = parsed_json["emotionRecognitionEnabled"]
135
+ num_fast_turns = parsed_json["numFastTurns"]
136
+ new(
137
+ messages: messages,
138
+ tools: tools,
139
+ tool_ids: tool_ids,
140
+ knowledge_base: knowledge_base,
141
+ knowledge_base_id: knowledge_base_id,
142
+ model: model,
143
+ temperature: temperature,
144
+ max_tokens: max_tokens,
145
+ emotion_recognition_enabled: emotion_recognition_enabled,
146
+ num_fast_turns: num_fast_turns,
147
+ additional_properties: struct
148
+ )
149
+ end
150
+
151
+ # Serialize an instance of DeepSeekModel to a JSON object
152
+ #
153
+ # @return [String]
154
+ def to_json(*_args)
155
+ @_field_set&.to_json
156
+ end
157
+
158
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
159
+ # hash and check each fields type against the current object's property
160
+ # definitions.
161
+ #
162
+ # @param obj [Object]
163
+ # @return [Void]
164
+ def self.validate_raw(obj:)
165
+ obj.messages&.is_a?(Array) != false || raise("Passed value for field obj.messages is not the expected type, validation failed.")
166
+ obj.tools&.is_a?(Array) != false || raise("Passed value for field obj.tools is not the expected type, validation failed.")
167
+ obj.tool_ids&.is_a?(Array) != false || raise("Passed value for field obj.tool_ids is not the expected type, validation failed.")
168
+ obj.knowledge_base.nil? || Vapi::CreateCustomKnowledgeBaseDto.validate_raw(obj: obj.knowledge_base)
169
+ obj.knowledge_base_id&.is_a?(String) != false || raise("Passed value for field obj.knowledge_base_id is not the expected type, validation failed.")
170
+ obj.model.is_a?(String) != false || raise("Passed value for field obj.model is not the expected type, validation failed.")
171
+ obj.temperature&.is_a?(Float) != false || raise("Passed value for field obj.temperature is not the expected type, validation failed.")
172
+ obj.max_tokens&.is_a?(Float) != false || raise("Passed value for field obj.max_tokens is not the expected type, validation failed.")
173
+ obj.emotion_recognition_enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.emotion_recognition_enabled is not the expected type, validation failed.")
174
+ obj.num_fast_turns&.is_a?(Float) != false || raise("Passed value for field obj.num_fast_turns is not the expected type, validation failed.")
175
+ end
176
+ end
177
+ end
@@ -0,0 +1,159 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "create_dtmf_tool_dto"
5
+ require_relative "create_end_call_tool_dto"
6
+ require_relative "create_voicemail_tool_dto"
7
+ require_relative "create_function_tool_dto"
8
+ require_relative "create_ghl_tool_dto"
9
+ require_relative "create_make_tool_dto"
10
+ require_relative "create_transfer_call_tool_dto"
11
+
12
+ module Vapi
13
+ class DeepSeekModelToolsItem
14
+ # @return [Object]
15
+ attr_reader :member
16
+ # @return [String]
17
+ attr_reader :discriminant
18
+
19
+ private_class_method :new
20
+ alias kind_of? is_a?
21
+
22
+ # @param member [Object]
23
+ # @param discriminant [String]
24
+ # @return [Vapi::DeepSeekModelToolsItem]
25
+ def initialize(member:, discriminant:)
26
+ @member = member
27
+ @discriminant = discriminant
28
+ end
29
+
30
+ # Deserialize a JSON object to an instance of DeepSeekModelToolsItem
31
+ #
32
+ # @param json_object [String]
33
+ # @return [Vapi::DeepSeekModelToolsItem]
34
+ def self.from_json(json_object:)
35
+ struct = JSON.parse(json_object, object_class: OpenStruct)
36
+ member = case struct.type
37
+ when "dtmf"
38
+ Vapi::CreateDtmfToolDto.from_json(json_object: json_object)
39
+ when "endCall"
40
+ Vapi::CreateEndCallToolDto.from_json(json_object: json_object)
41
+ when "voicemail"
42
+ Vapi::CreateVoicemailToolDto.from_json(json_object: json_object)
43
+ when "function"
44
+ Vapi::CreateFunctionToolDto.from_json(json_object: json_object)
45
+ when "ghl"
46
+ Vapi::CreateGhlToolDto.from_json(json_object: json_object)
47
+ when "make"
48
+ Vapi::CreateMakeToolDto.from_json(json_object: json_object)
49
+ when "transferCall"
50
+ Vapi::CreateTransferCallToolDto.from_json(json_object: json_object)
51
+ else
52
+ Vapi::CreateDtmfToolDto.from_json(json_object: json_object)
53
+ end
54
+ new(member: member, discriminant: struct.type)
55
+ end
56
+
57
+ # For Union Types, to_json functionality is delegated to the wrapped member.
58
+ #
59
+ # @return [String]
60
+ def to_json(*_args)
61
+ case @discriminant
62
+ when "dtmf"
63
+ { **@member.to_json, type: @discriminant }.to_json
64
+ when "endCall"
65
+ { **@member.to_json, type: @discriminant }.to_json
66
+ when "voicemail"
67
+ { **@member.to_json, type: @discriminant }.to_json
68
+ when "function"
69
+ { **@member.to_json, type: @discriminant }.to_json
70
+ when "ghl"
71
+ { **@member.to_json, type: @discriminant }.to_json
72
+ when "make"
73
+ { **@member.to_json, type: @discriminant }.to_json
74
+ when "transferCall"
75
+ { **@member.to_json, type: @discriminant }.to_json
76
+ else
77
+ { "type": @discriminant, value: @member }.to_json
78
+ end
79
+ @member.to_json
80
+ end
81
+
82
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
83
+ # hash and check each fields type against the current object's property
84
+ # definitions.
85
+ #
86
+ # @param obj [Object]
87
+ # @return [Void]
88
+ def self.validate_raw(obj:)
89
+ case obj.type
90
+ when "dtmf"
91
+ Vapi::CreateDtmfToolDto.validate_raw(obj: obj)
92
+ when "endCall"
93
+ Vapi::CreateEndCallToolDto.validate_raw(obj: obj)
94
+ when "voicemail"
95
+ Vapi::CreateVoicemailToolDto.validate_raw(obj: obj)
96
+ when "function"
97
+ Vapi::CreateFunctionToolDto.validate_raw(obj: obj)
98
+ when "ghl"
99
+ Vapi::CreateGhlToolDto.validate_raw(obj: obj)
100
+ when "make"
101
+ Vapi::CreateMakeToolDto.validate_raw(obj: obj)
102
+ when "transferCall"
103
+ Vapi::CreateTransferCallToolDto.validate_raw(obj: obj)
104
+ else
105
+ raise("Passed value matched no type within the union, validation failed.")
106
+ end
107
+ end
108
+
109
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
110
+ #
111
+ # @param obj [Object]
112
+ # @return [Boolean]
113
+ def is_a?(obj)
114
+ @member.is_a?(obj)
115
+ end
116
+
117
+ # @param member [Vapi::CreateDtmfToolDto]
118
+ # @return [Vapi::DeepSeekModelToolsItem]
119
+ def self.dtmf(member:)
120
+ new(member: member, discriminant: "dtmf")
121
+ end
122
+
123
+ # @param member [Vapi::CreateEndCallToolDto]
124
+ # @return [Vapi::DeepSeekModelToolsItem]
125
+ def self.end_call(member:)
126
+ new(member: member, discriminant: "endCall")
127
+ end
128
+
129
+ # @param member [Vapi::CreateVoicemailToolDto]
130
+ # @return [Vapi::DeepSeekModelToolsItem]
131
+ def self.voicemail(member:)
132
+ new(member: member, discriminant: "voicemail")
133
+ end
134
+
135
+ # @param member [Vapi::CreateFunctionToolDto]
136
+ # @return [Vapi::DeepSeekModelToolsItem]
137
+ def self.function(member:)
138
+ new(member: member, discriminant: "function")
139
+ end
140
+
141
+ # @param member [Vapi::CreateGhlToolDto]
142
+ # @return [Vapi::DeepSeekModelToolsItem]
143
+ def self.ghl(member:)
144
+ new(member: member, discriminant: "ghl")
145
+ end
146
+
147
+ # @param member [Vapi::CreateMakeToolDto]
148
+ # @return [Vapi::DeepSeekModelToolsItem]
149
+ def self.make(member:)
150
+ new(member: member, discriminant: "make")
151
+ end
152
+
153
+ # @param member [Vapi::CreateTransferCallToolDto]
154
+ # @return [Vapi::DeepSeekModelToolsItem]
155
+ def self.transfer_call(member:)
156
+ new(member: member, discriminant: "transferCall")
157
+ end
158
+ end
159
+ end
@@ -7,6 +7,8 @@ module Vapi
7
7
  ELEVEN_MULTILINGUAL_V_2 = "eleven_multilingual_v2"
8
8
  ELEVEN_TURBO_V_2 = "eleven_turbo_v2"
9
9
  ELEVEN_TURBO_V_2_5 = "eleven_turbo_v2_5"
10
+ ELEVEN_FLASH_V_2 = "eleven_flash_v2"
11
+ ELEVEN_FLASH_V_2_5 = "eleven_flash_v2_5"
10
12
  ELEVEN_MONOLINGUAL_V_1 = "eleven_monolingual_v1"
11
13
  end
12
14
  end
@@ -6,5 +6,7 @@ module Vapi
6
6
  class FallbackCartesiaVoiceModel
7
7
  SONIC_ENGLISH = "sonic-english"
8
8
  SONIC_MULTILINGUAL = "sonic-multilingual"
9
+ SONIC_PREVIEW = "sonic-preview"
10
+ SONIC = "sonic"
9
11
  end
10
12
  end
@@ -7,6 +7,8 @@ module Vapi
7
7
  ELEVEN_MULTILINGUAL_V_2 = "eleven_multilingual_v2"
8
8
  ELEVEN_TURBO_V_2 = "eleven_turbo_v2"
9
9
  ELEVEN_TURBO_V_2_5 = "eleven_turbo_v2_5"
10
+ ELEVEN_FLASH_V_2 = "eleven_flash_v2"
11
+ ELEVEN_FLASH_V_2_5 = "eleven_flash_v2_5"
10
12
  ELEVEN_MONOLINGUAL_V_1 = "eleven_monolingual_v1"
11
13
  end
12
14
  end
@@ -8,8 +8,8 @@ require "json"
8
8
  module Vapi
9
9
  class FallbackOpenAiVoice
10
10
  # @return [Vapi::FallbackOpenAiVoiceId] This is the provider-specific ID that will be used.
11
- # Please note that ash, ballad, coral, sage, and verse may only be used with the
12
- # `gpt-4o-realtime-preview-2024-10-01` model.
11
+ # Please note that ash, ballad, coral, sage, and verse may only be used with
12
+ # realtime models.
13
13
  attr_reader :voice_id
14
14
  # @return [Float] This is the speed multiplier that will be used.
15
15
  attr_reader :speed
@@ -25,8 +25,8 @@ module Vapi
25
25
  OMIT = Object.new
26
26
 
27
27
  # @param voice_id [Vapi::FallbackOpenAiVoiceId] This is the provider-specific ID that will be used.
28
- # Please note that ash, ballad, coral, sage, and verse may only be used with the
29
- # `gpt-4o-realtime-preview-2024-10-01` model.
28
+ # Please note that ash, ballad, coral, sage, and verse may only be used with
29
+ # realtime models.
30
30
  # @param speed [Float] This is the speed multiplier that will be used.
31
31
  # @param chunk_plan [Vapi::ChunkPlan] This is the plan for chunking the model output before it is sent to the voice
32
32
  # provider.
@@ -2,8 +2,8 @@
2
2
 
3
3
  module Vapi
4
4
  # This is the provider-specific ID that will be used.
5
- # Please note that ash, ballad, coral, sage, and verse may only be used with the
6
- # `gpt-4o-realtime-preview-2024-10-01` model.
5
+ # Please note that ash, ballad, coral, sage, and verse may only be used with
6
+ # realtime models.
7
7
  class FallbackOpenAiVoiceId
8
8
  ALLOY = "alloy"
9
9
  ECHO = "echo"
@@ -11,6 +11,7 @@ require_relative "fallback_neets_voice"
11
11
  require_relative "fallback_open_ai_voice"
12
12
  require_relative "fallback_play_ht_voice"
13
13
  require_relative "fallback_rime_ai_voice"
14
+ require_relative "fallback_smallest_ai_voice"
14
15
  require_relative "fallback_tavus_voice"
15
16
 
16
17
  module Vapi
@@ -58,6 +59,8 @@ module Vapi
58
59
  Vapi::FallbackPlayHtVoice.from_json(json_object: json_object)
59
60
  when "rime-ai"
60
61
  Vapi::FallbackRimeAiVoice.from_json(json_object: json_object)
62
+ when "smallest-ai"
63
+ Vapi::FallbackSmallestAiVoice.from_json(json_object: json_object)
61
64
  when "tavus"
62
65
  Vapi::FallbackTavusVoice.from_json(json_object: json_object)
63
66
  else
@@ -91,6 +94,8 @@ module Vapi
91
94
  { **@member.to_json, provider: @discriminant }.to_json
92
95
  when "rime-ai"
93
96
  { **@member.to_json, provider: @discriminant }.to_json
97
+ when "smallest-ai"
98
+ { **@member.to_json, provider: @discriminant }.to_json
94
99
  when "tavus"
95
100
  { **@member.to_json, provider: @discriminant }.to_json
96
101
  else
@@ -127,6 +132,8 @@ module Vapi
127
132
  Vapi::FallbackPlayHtVoice.validate_raw(obj: obj)
128
133
  when "rime-ai"
129
134
  Vapi::FallbackRimeAiVoice.validate_raw(obj: obj)
135
+ when "smallest-ai"
136
+ Vapi::FallbackSmallestAiVoice.validate_raw(obj: obj)
130
137
  when "tavus"
131
138
  Vapi::FallbackTavusVoice.validate_raw(obj: obj)
132
139
  else
@@ -202,6 +209,12 @@ module Vapi
202
209
  new(member: member, discriminant: "rime-ai")
203
210
  end
204
211
 
212
+ # @param member [Vapi::FallbackSmallestAiVoice]
213
+ # @return [Vapi::FallbackPlanVoicesItem]
214
+ def self.smallest_ai(member:)
215
+ new(member: member, discriminant: "smallest-ai")
216
+ end
217
+
205
218
  # @param member [Vapi::FallbackTavusVoice]
206
219
  # @return [Vapi::FallbackPlanVoicesItem]
207
220
  def self.tavus(member:)
@@ -0,0 +1,95 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "fallback_smallest_ai_voice_id"
4
+ require_relative "chunk_plan"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module Vapi
9
+ class FallbackSmallestAiVoice
10
+ # @return [Vapi::FallbackSmallestAiVoiceId] This is the provider-specific ID that will be used.
11
+ attr_reader :voice_id
12
+ # @return [String] Smallest AI voice model to use. Defaults to 'lightning' when not specified.
13
+ attr_reader :model
14
+ # @return [Float] This is the speed multiplier that will be used.
15
+ attr_reader :speed
16
+ # @return [Vapi::ChunkPlan] This is the plan for chunking the model output before it is sent to the voice
17
+ # provider.
18
+ attr_reader :chunk_plan
19
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
20
+ attr_reader :additional_properties
21
+ # @return [Object]
22
+ attr_reader :_field_set
23
+ protected :_field_set
24
+
25
+ OMIT = Object.new
26
+
27
+ # @param voice_id [Vapi::FallbackSmallestAiVoiceId] This is the provider-specific ID that will be used.
28
+ # @param model [String] Smallest AI voice model to use. Defaults to 'lightning' when not specified.
29
+ # @param speed [Float] This is the speed multiplier that will be used.
30
+ # @param chunk_plan [Vapi::ChunkPlan] This is the plan for chunking the model output before it is sent to the voice
31
+ # provider.
32
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
33
+ # @return [Vapi::FallbackSmallestAiVoice]
34
+ def initialize(voice_id:, model: OMIT, speed: OMIT, chunk_plan: OMIT, additional_properties: nil)
35
+ @voice_id = voice_id
36
+ @model = model if model != OMIT
37
+ @speed = speed if speed != OMIT
38
+ @chunk_plan = chunk_plan if chunk_plan != OMIT
39
+ @additional_properties = additional_properties
40
+ @_field_set = { "voiceId": voice_id, "model": model, "speed": speed, "chunkPlan": chunk_plan }.reject do |_k, v|
41
+ v == OMIT
42
+ end
43
+ end
44
+
45
+ # Deserialize a JSON object to an instance of FallbackSmallestAiVoice
46
+ #
47
+ # @param json_object [String]
48
+ # @return [Vapi::FallbackSmallestAiVoice]
49
+ def self.from_json(json_object:)
50
+ struct = JSON.parse(json_object, object_class: OpenStruct)
51
+ parsed_json = JSON.parse(json_object)
52
+ if parsed_json["voiceId"].nil?
53
+ voice_id = nil
54
+ else
55
+ voice_id = parsed_json["voiceId"].to_json
56
+ voice_id = Vapi::FallbackSmallestAiVoiceId.from_json(json_object: voice_id)
57
+ end
58
+ model = parsed_json["model"]
59
+ speed = parsed_json["speed"]
60
+ if parsed_json["chunkPlan"].nil?
61
+ chunk_plan = nil
62
+ else
63
+ chunk_plan = parsed_json["chunkPlan"].to_json
64
+ chunk_plan = Vapi::ChunkPlan.from_json(json_object: chunk_plan)
65
+ end
66
+ new(
67
+ voice_id: voice_id,
68
+ model: model,
69
+ speed: speed,
70
+ chunk_plan: chunk_plan,
71
+ additional_properties: struct
72
+ )
73
+ end
74
+
75
+ # Serialize an instance of FallbackSmallestAiVoice to a JSON object
76
+ #
77
+ # @return [String]
78
+ def to_json(*_args)
79
+ @_field_set&.to_json
80
+ end
81
+
82
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
83
+ # hash and check each fields type against the current object's property
84
+ # definitions.
85
+ #
86
+ # @param obj [Object]
87
+ # @return [Void]
88
+ def self.validate_raw(obj:)
89
+ Vapi::FallbackSmallestAiVoiceId.validate_raw(obj: obj.voice_id)
90
+ obj.model&.is_a?(String) != false || raise("Passed value for field obj.model is not the expected type, validation failed.")
91
+ obj.speed&.is_a?(Float) != false || raise("Passed value for field obj.speed is not the expected type, validation failed.")
92
+ obj.chunk_plan.nil? || Vapi::ChunkPlan.validate_raw(obj: obj.chunk_plan)
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module Vapi
6
+ # This is the provider-specific ID that will be used.
7
+ class FallbackSmallestAiVoiceId
8
+ # Deserialize a JSON object to an instance of FallbackSmallestAiVoiceId
9
+ #
10
+ # @param json_object [String]
11
+ # @return [Vapi::FallbackSmallestAiVoiceId]
12
+ def self.from_json(json_object:)
13
+ struct = JSON.parse(json_object, object_class: OpenStruct)
14
+ begin
15
+ struct.is_a?(Vapi::FallbackSmallestAiVoiceIdEnum) != false || raise("Passed value for field struct is not the expected type, validation failed.")
16
+ return struct unless struct.nil?
17
+
18
+ return nil
19
+ rescue StandardError
20
+ # noop
21
+ end
22
+ begin
23
+ struct.is_a?(String) != false || raise("Passed value for field struct is not the expected type, validation failed.")
24
+ return struct unless struct.nil?
25
+
26
+ return nil
27
+ rescue StandardError
28
+ # noop
29
+ end
30
+ struct
31
+ end
32
+
33
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
34
+ # hash and check each fields type against the current object's property
35
+ # definitions.
36
+ #
37
+ # @param obj [Object]
38
+ # @return [Void]
39
+ def self.validate_raw(obj:)
40
+ begin
41
+ return obj.is_a?(Vapi::FallbackSmallestAiVoiceIdEnum) != false || raise("Passed value for field obj is not the expected type, validation failed.")
42
+ rescue StandardError
43
+ # noop
44
+ end
45
+ begin
46
+ return obj.is_a?(String) != false || raise("Passed value for field obj is not the expected type, validation failed.")
47
+ rescue StandardError
48
+ # noop
49
+ end
50
+ raise("Passed value matched no type within the union, validation failed.")
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vapi
4
+ class FallbackSmallestAiVoiceIdEnum
5
+ EMILY = "emily"
6
+ JASMINE = "jasmine"
7
+ ARMAN = "arman"
8
+ JAMES = "james"
9
+ MITHALI = "mithali"
10
+ ARAVIND = "aravind"
11
+ RAJ = "raj"
12
+ DIYA = "diya"
13
+ RAMAN = "raman"
14
+ ANANYA = "ananya"
15
+ ISHA = "isha"
16
+ WILLIAM = "william"
17
+ AARAV = "aarav"
18
+ MONIKA = "monika"
19
+ NIHARIKA = "niharika"
20
+ DEEPIKA = "deepika"
21
+ RAGHAV = "raghav"
22
+ KAJAL = "kajal"
23
+ RADHIKA = "radhika"
24
+ MANSI = "mansi"
25
+ NISHA = "nisha"
26
+ SAURABH = "saurabh"
27
+ POOJA = "pooja"
28
+ SAINA = "saina"
29
+ SANYA = "sanya"
30
+ end
31
+ end