vapi_server_sdk 0.3.0 → 0.5.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 (208) hide show
  1. checksums.yaml +4 -4
  2. data/lib/requests.rb +2 -2
  3. data/lib/types_export.rb +83 -12
  4. data/lib/vapi_server_sdk/analytics/client.rb +41 -26
  5. data/lib/vapi_server_sdk/assistants/client.rb +84 -84
  6. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_server_messages_item.rb +1 -0
  7. data/lib/vapi_server_sdk/blocks/client.rb +0 -70
  8. data/lib/vapi_server_sdk/calls/client.rb +110 -76
  9. data/lib/vapi_server_sdk/files/client.rb +0 -70
  10. data/lib/vapi_server_sdk/knowledge_bases/client.rb +0 -70
  11. data/lib/vapi_server_sdk/logs/client.rb +15 -46
  12. data/lib/vapi_server_sdk/logs/types/logging_controller_logs_delete_query_request_type.rb +12 -0
  13. data/lib/vapi_server_sdk/phone_numbers/client.rb +0 -70
  14. data/lib/vapi_server_sdk/squads/client.rb +136 -78
  15. data/lib/vapi_server_sdk/test_suite_runs/client.rb +328 -0
  16. data/lib/vapi_server_sdk/test_suite_runs/types/test_suite_run_controller_find_all_paginated_request_sort_order.rb +10 -0
  17. data/lib/vapi_server_sdk/test_suite_tests/client.rb +331 -0
  18. data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_create_request.rb +81 -0
  19. data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_find_all_paginated_request_sort_order.rb +10 -0
  20. data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_remove_response.rb +82 -0
  21. data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_update_request.rb +81 -0
  22. data/lib/vapi_server_sdk/test_suites/client.rb +338 -0
  23. data/lib/vapi_server_sdk/test_suites/types/test_suite_controller_find_all_paginated_request_sort_order.rb +10 -0
  24. data/lib/vapi_server_sdk/tools/client.rb +0 -70
  25. data/lib/vapi_server_sdk/types/ai_edge_condition.rb +55 -0
  26. data/lib/vapi_server_sdk/types/analytics_operation_column.rb +1 -0
  27. data/lib/vapi_server_sdk/types/analytics_operation_operation.rb +1 -0
  28. data/lib/vapi_server_sdk/types/analytics_query.rb +4 -3
  29. data/lib/vapi_server_sdk/types/analytics_query_table.rb +9 -0
  30. data/lib/vapi_server_sdk/types/api_request.rb +165 -0
  31. data/lib/vapi_server_sdk/types/api_request_method.rb +8 -0
  32. data/lib/vapi_server_sdk/types/api_request_mode.rb +10 -0
  33. data/lib/vapi_server_sdk/types/artifact.rb +12 -2
  34. data/lib/vapi_server_sdk/types/artifact_plan.rb +56 -8
  35. data/lib/vapi_server_sdk/types/assistant.rb +27 -13
  36. data/lib/vapi_server_sdk/types/assistant_hook_action_base.rb +47 -0
  37. data/lib/vapi_server_sdk/types/assistant_hook_filter.rb +72 -0
  38. data/lib/vapi_server_sdk/types/assistant_hooks.rb +82 -0
  39. data/lib/vapi_server_sdk/types/assistant_overrides.rb +28 -14
  40. data/lib/vapi_server_sdk/types/assistant_overrides_server_messages_item.rb +1 -0
  41. data/lib/vapi_server_sdk/types/assistant_server_messages_item.rb +1 -0
  42. data/lib/vapi_server_sdk/types/azure_credential_region.rb +4 -2
  43. data/lib/vapi_server_sdk/types/azure_open_ai_credential_models_item.rb +1 -0
  44. data/lib/vapi_server_sdk/types/azure_open_ai_credential_region.rb +4 -2
  45. data/lib/vapi_server_sdk/types/backoff_plan.rb +80 -0
  46. data/lib/vapi_server_sdk/types/bash_tool_with_tool_call.rb +175 -0
  47. data/lib/vapi_server_sdk/types/bash_tool_with_tool_call_messages_item.rb +120 -0
  48. data/lib/vapi_server_sdk/types/byo_phone_number.rb +10 -1
  49. data/lib/vapi_server_sdk/types/byo_phone_number_status.rb +10 -0
  50. data/lib/vapi_server_sdk/types/call_ended_reason.rb +10 -1
  51. data/lib/vapi_server_sdk/types/cartesia_experimental_controls.rb +69 -0
  52. data/lib/vapi_server_sdk/types/cartesia_experimental_controls_emotion.rb +26 -0
  53. data/lib/vapi_server_sdk/types/cartesia_experimental_controls_speed.rb +11 -0
  54. data/lib/vapi_server_sdk/types/cartesia_voice.rb +24 -10
  55. data/lib/vapi_server_sdk/types/chat_completion_message.rb +80 -0
  56. data/lib/vapi_server_sdk/types/chat_completion_message_metadata.rb +94 -0
  57. data/lib/vapi_server_sdk/types/chat_completions_dto.rb +84 -0
  58. data/lib/vapi_server_sdk/types/client_inbound_message_end_call.rb +47 -0
  59. data/lib/vapi_server_sdk/types/client_inbound_message_message.rb +13 -0
  60. data/lib/vapi_server_sdk/types/client_inbound_message_transfer.rb +13 -3
  61. data/lib/vapi_server_sdk/types/client_message_conversation_update.rb +15 -2
  62. data/lib/vapi_server_sdk/types/client_message_hang.rb +22 -4
  63. data/lib/vapi_server_sdk/types/client_message_language_change_detected.rb +15 -3
  64. data/lib/vapi_server_sdk/types/client_message_message.rb +165 -181
  65. data/lib/vapi_server_sdk/types/client_message_metadata.rb +15 -3
  66. data/lib/vapi_server_sdk/types/client_message_model_output.rb +15 -3
  67. data/lib/vapi_server_sdk/types/client_message_speech_update.rb +11 -2
  68. data/lib/vapi_server_sdk/types/client_message_tool_calls.rb +15 -2
  69. data/lib/vapi_server_sdk/types/client_message_tool_calls_result.rb +15 -3
  70. data/lib/vapi_server_sdk/types/client_message_tool_calls_tool_with_tool_call_list_item.rb +116 -77
  71. data/lib/vapi_server_sdk/types/client_message_transcript.rb +12 -2
  72. data/lib/vapi_server_sdk/types/client_message_transcript_type.rb +10 -0
  73. data/lib/vapi_server_sdk/types/client_message_transfer_update.rb +11 -1
  74. data/lib/vapi_server_sdk/types/client_message_user_interrupted.rb +14 -4
  75. data/lib/vapi_server_sdk/types/client_message_voice_input.rb +15 -3
  76. data/lib/vapi_server_sdk/types/client_message_workflow_node_started.rb +67 -0
  77. data/lib/vapi_server_sdk/types/compliance_plan.rb +77 -0
  78. data/lib/vapi_server_sdk/types/computer_tool_with_tool_call.rb +199 -0
  79. data/lib/vapi_server_sdk/types/computer_tool_with_tool_call_messages_item.rb +120 -0
  80. data/lib/vapi_server_sdk/types/create_assistant_dto.rb +28 -14
  81. data/lib/vapi_server_sdk/types/create_assistant_dto_server_messages_item.rb +1 -0
  82. data/lib/vapi_server_sdk/types/create_azure_credential_dto_region.rb +4 -2
  83. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_models_item.rb +1 -0
  84. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_region.rb +4 -2
  85. data/lib/vapi_server_sdk/types/create_custom_knowledge_base_dto.rb +2 -4
  86. data/lib/vapi_server_sdk/types/create_test_suite_test_voice_dto.rb +90 -0
  87. data/lib/vapi_server_sdk/types/create_trieve_knowledge_base_dto.rb +34 -47
  88. data/lib/vapi_server_sdk/types/create_trieve_knowledge_base_dto_create_plan.rb +97 -0
  89. data/lib/vapi_server_sdk/types/create_vapi_phone_number_dto.rb +12 -4
  90. data/lib/vapi_server_sdk/types/create_workflow_dto.rb +80 -0
  91. data/lib/vapi_server_sdk/types/create_workflow_dto_nodes_item.rb +133 -0
  92. data/lib/vapi_server_sdk/types/custom_knowledge_base.rb +2 -4
  93. data/lib/vapi_server_sdk/types/deep_seek_model.rb +4 -3
  94. data/lib/vapi_server_sdk/types/deep_seek_model_model.rb +9 -0
  95. data/lib/vapi_server_sdk/types/deepgram_transcriber.rb +28 -2
  96. data/lib/vapi_server_sdk/types/deepgram_voice.rb +22 -2
  97. data/lib/vapi_server_sdk/types/edge.rb +87 -0
  98. data/lib/vapi_server_sdk/types/edge_condition.rb +107 -0
  99. data/lib/vapi_server_sdk/types/failed_edge_condition.rb +47 -0
  100. data/lib/vapi_server_sdk/types/fallback_cartesia_voice.rb +24 -9
  101. data/lib/vapi_server_sdk/types/fallback_deepgram_voice.rb +17 -2
  102. data/lib/vapi_server_sdk/types/fallback_play_ht_voice_model.rb +1 -0
  103. data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_id_enum.rb +22 -20
  104. data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_model.rb +1 -0
  105. data/lib/vapi_server_sdk/types/format_plan.rb +22 -2
  106. data/lib/vapi_server_sdk/types/format_plan_formatters_enabled_item.rb +22 -0
  107. data/lib/vapi_server_sdk/types/function_tool_with_tool_call.rb +1 -10
  108. data/lib/vapi_server_sdk/types/gather.rb +143 -0
  109. data/lib/vapi_server_sdk/types/ghl_tool_with_tool_call.rb +1 -9
  110. data/lib/vapi_server_sdk/types/google_model_model.rb +4 -0
  111. data/lib/vapi_server_sdk/types/groq_model_model.rb +1 -0
  112. data/lib/vapi_server_sdk/types/hangup.rb +67 -0
  113. data/lib/vapi_server_sdk/types/hook.rb +70 -0
  114. data/lib/vapi_server_sdk/types/hook_on.rb +9 -0
  115. data/lib/vapi_server_sdk/types/invite_user_dto.rb +11 -2
  116. data/lib/vapi_server_sdk/types/json_schema.rb +37 -2
  117. data/lib/vapi_server_sdk/types/log.rb +18 -18
  118. data/lib/vapi_server_sdk/types/logic_edge_condition.rb +55 -0
  119. data/lib/vapi_server_sdk/types/make_tool_with_tool_call.rb +1 -9
  120. data/lib/vapi_server_sdk/types/message_plan.rb +12 -2
  121. data/lib/vapi_server_sdk/types/open_ai_model.rb +1 -9
  122. data/lib/vapi_server_sdk/types/open_ai_model_fallback_models_item.rb +2 -0
  123. data/lib/vapi_server_sdk/types/open_ai_model_model.rb +2 -0
  124. data/lib/vapi_server_sdk/types/play_ht_voice_model.rb +1 -0
  125. data/lib/vapi_server_sdk/types/rime_ai_voice_id_enum.rb +22 -20
  126. data/lib/vapi_server_sdk/types/rime_ai_voice_model.rb +1 -0
  127. data/lib/vapi_server_sdk/types/say.rb +81 -0
  128. data/lib/vapi_server_sdk/types/say_hook.rb +81 -0
  129. data/lib/vapi_server_sdk/types/server.rb +17 -2
  130. data/lib/vapi_server_sdk/types/server_message_assistant_request.rb +12 -2
  131. data/lib/vapi_server_sdk/types/server_message_conversation_update.rb +12 -2
  132. data/lib/vapi_server_sdk/types/server_message_end_of_call_report.rb +11 -1
  133. data/lib/vapi_server_sdk/types/server_message_end_of_call_report_ended_reason.rb +10 -1
  134. data/lib/vapi_server_sdk/types/server_message_hang.rb +20 -2
  135. data/lib/vapi_server_sdk/types/server_message_knowledge_base_request.rb +14 -2
  136. data/lib/vapi_server_sdk/types/server_message_language_change_detected.rb +11 -1
  137. data/lib/vapi_server_sdk/types/server_message_message.rb +212 -237
  138. data/lib/vapi_server_sdk/types/server_message_model_output.rb +11 -1
  139. data/lib/vapi_server_sdk/types/server_message_phone_call_control.rb +18 -2
  140. data/lib/vapi_server_sdk/types/server_message_speech_update.rb +11 -1
  141. data/lib/vapi_server_sdk/types/server_message_status_update.rb +12 -2
  142. data/lib/vapi_server_sdk/types/server_message_status_update_ended_reason.rb +10 -1
  143. data/lib/vapi_server_sdk/types/server_message_tool_calls.rb +10 -2
  144. data/lib/vapi_server_sdk/types/server_message_tool_calls_tool_with_tool_call_list_item.rb +116 -77
  145. data/lib/vapi_server_sdk/types/server_message_transcript.rb +13 -2
  146. data/lib/vapi_server_sdk/types/server_message_transcript_type.rb +10 -0
  147. data/lib/vapi_server_sdk/types/server_message_transfer_destination_request.rb +12 -2
  148. data/lib/vapi_server_sdk/types/server_message_transfer_update.rb +11 -1
  149. data/lib/vapi_server_sdk/types/server_message_user_interrupted.rb +12 -2
  150. data/lib/vapi_server_sdk/types/server_message_voice_input.rb +11 -1
  151. data/lib/vapi_server_sdk/types/server_message_voice_request.rb +50 -2
  152. data/lib/vapi_server_sdk/types/stop_speaking_plan.rb +27 -2
  153. data/lib/vapi_server_sdk/types/subscription.rb +44 -14
  154. data/lib/vapi_server_sdk/types/sync_voice_library_dto_providers_item.rb +1 -0
  155. data/lib/vapi_server_sdk/types/test_suite.rb +104 -0
  156. data/lib/vapi_server_sdk/types/test_suite_run.rb +127 -0
  157. data/lib/vapi_server_sdk/types/test_suite_run_scorer_ai.rb +80 -0
  158. data/lib/vapi_server_sdk/types/test_suite_run_scorer_ai_result.rb +9 -0
  159. data/lib/vapi_server_sdk/types/test_suite_run_status.rb +10 -0
  160. data/lib/vapi_server_sdk/types/test_suite_run_test_attempt.rb +75 -0
  161. data/lib/vapi_server_sdk/types/{analytics_query_dto.rb → test_suite_run_test_attempt_call.rb} +19 -17
  162. data/lib/vapi_server_sdk/types/test_suite_run_test_result.rb +75 -0
  163. data/lib/vapi_server_sdk/types/test_suite_runs_paginated_response.rb +75 -0
  164. data/lib/vapi_server_sdk/types/test_suite_test_scorer_ai.rb +65 -0
  165. data/lib/vapi_server_sdk/types/test_suite_test_voice.rb +132 -0
  166. data/lib/vapi_server_sdk/types/test_suite_tests_paginated_response.rb +75 -0
  167. data/lib/vapi_server_sdk/types/test_suites_paginated_response.rb +75 -0
  168. data/lib/vapi_server_sdk/types/text_editor_tool_with_tool_call.rb +175 -0
  169. data/lib/vapi_server_sdk/types/text_editor_tool_with_tool_call_messages_item.rb +121 -0
  170. data/lib/vapi_server_sdk/types/time_range_step.rb +1 -0
  171. data/lib/vapi_server_sdk/types/tool_message_start.rb +18 -2
  172. data/lib/vapi_server_sdk/types/transfer.rb +74 -0
  173. data/lib/vapi_server_sdk/types/transfer_assistant_hook_action.rb +75 -0
  174. data/lib/vapi_server_sdk/types/{buy_phone_number_dto_fallback_destination.rb → transfer_assistant_hook_action_destination.rb} +9 -12
  175. data/lib/vapi_server_sdk/types/transfer_destination_assistant.rb +46 -0
  176. data/lib/vapi_server_sdk/types/transfer_plan.rb +37 -1
  177. data/lib/vapi_server_sdk/types/transfer_plan_mode.rb +4 -0
  178. data/lib/vapi_server_sdk/types/trieve_knowledge_base.rb +35 -44
  179. data/lib/vapi_server_sdk/types/{trieve_knowledge_base_vector_store_create_plan.rb → trieve_knowledge_base_chunk_plan.rb} +17 -11
  180. data/lib/vapi_server_sdk/types/trieve_knowledge_base_create.rb +59 -0
  181. data/lib/vapi_server_sdk/types/trieve_knowledge_base_create_plan.rb +96 -0
  182. data/lib/vapi_server_sdk/types/trieve_knowledge_base_import.rb +55 -0
  183. data/lib/vapi_server_sdk/types/{trieve_knowledge_base_vector_store_search_plan.rb → trieve_knowledge_base_search_plan.rb} +21 -12
  184. 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
  185. data/lib/vapi_server_sdk/types/twilio_phone_number.rb +11 -2
  186. data/lib/vapi_server_sdk/types/twilio_phone_number_status.rb +10 -0
  187. data/lib/vapi_server_sdk/types/update_azure_credential_dto_region.rb +4 -2
  188. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_models_item.rb +1 -0
  189. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_region.rb +4 -2
  190. data/lib/vapi_server_sdk/types/update_custom_knowledge_base_dto.rb +2 -4
  191. data/lib/vapi_server_sdk/types/update_test_suite_test_voice_dto.rb +90 -0
  192. data/lib/vapi_server_sdk/types/update_trieve_knowledge_base_dto.rb +34 -47
  193. data/lib/vapi_server_sdk/types/update_trieve_knowledge_base_dto_create_plan.rb +97 -0
  194. data/lib/vapi_server_sdk/types/vapi_model.rb +27 -1
  195. data/lib/vapi_server_sdk/types/vapi_phone_number.rb +29 -4
  196. data/lib/vapi_server_sdk/types/vapi_phone_number_status.rb +10 -0
  197. data/lib/vapi_server_sdk/types/vonage_phone_number.rb +11 -2
  198. data/lib/vapi_server_sdk/types/vonage_phone_number_status.rb +10 -0
  199. data/lib/vapi_server_sdk/types/workflow.rb +117 -0
  200. data/lib/vapi_server_sdk/types/workflow_nodes_item.rb +133 -0
  201. data/lib/vapi_server_sdk/types/xai_model.rb +4 -3
  202. data/lib/vapi_server_sdk/types/xai_model_model.rb +10 -0
  203. data/lib/vapi_server_sdk.rb +21 -0
  204. metadata +85 -11
  205. data/lib/vapi_server_sdk/types/buy_phone_number_dto.rb +0 -147
  206. data/lib/vapi_server_sdk/types/org_with_org_user.rb +0 -262
  207. data/lib/vapi_server_sdk/types/org_with_org_user_channel.rb +0 -10
  208. data/lib/vapi_server_sdk/types/org_with_org_user_role.rb +0 -9
@@ -75,6 +75,29 @@ module Vapi
75
75
  # user: Yes, please
76
76
  # assistant: how can i help?
77
77
  # user: i need help with my account
78
+ # - `swap-system-message-in-history-and-remove-transfer-tool-messages`: This
79
+ # replaces the original system message with the new assistant's system message on
80
+ # transfer and removes transfer tool messages from conversation history sent to
81
+ # the LLM.
82
+ # Example:
83
+ # Pre-transfer:
84
+ # system: assistant1 system message
85
+ # assistant: assistant1 first message
86
+ # user: hey, good morning
87
+ # assistant: how can i help?
88
+ # user: i need help with my account
89
+ # transfer-tool
90
+ # transfer-tool-result
91
+ # assistant: (destination.message)
92
+ # Post-transfer:
93
+ # system: assistant2 system message
94
+ # assistant: assistant1 first message
95
+ # user: hey, good morning
96
+ # assistant: how can i help?
97
+ # user: i need help with my account
98
+ # assistant: (destination.message)
99
+ # assistant: assistant2 first message (or model generated if firstMessageMode
100
+ # is set to `assistant-speaks-first-with-model-generated-message`)
78
101
  # @default 'rolling-history'
79
102
  attr_reader :transfer_mode
80
103
  # @return [String] This is the assistant to transfer the call to.
@@ -157,6 +180,29 @@ module Vapi
157
180
  # user: Yes, please
158
181
  # assistant: how can i help?
159
182
  # user: i need help with my account
183
+ # - `swap-system-message-in-history-and-remove-transfer-tool-messages`: This
184
+ # replaces the original system message with the new assistant's system message on
185
+ # transfer and removes transfer tool messages from conversation history sent to
186
+ # the LLM.
187
+ # Example:
188
+ # Pre-transfer:
189
+ # system: assistant1 system message
190
+ # assistant: assistant1 first message
191
+ # user: hey, good morning
192
+ # assistant: how can i help?
193
+ # user: i need help with my account
194
+ # transfer-tool
195
+ # transfer-tool-result
196
+ # assistant: (destination.message)
197
+ # Post-transfer:
198
+ # system: assistant2 system message
199
+ # assistant: assistant1 first message
200
+ # user: hey, good morning
201
+ # assistant: how can i help?
202
+ # user: i need help with my account
203
+ # assistant: (destination.message)
204
+ # assistant: assistant2 first message (or model generated if firstMessageMode
205
+ # is set to `assistant-speaks-first-with-model-generated-message`)
160
206
  # @default 'rolling-history'
161
207
  # @param assistant_name [String] This is the assistant to transfer the call to.
162
208
  # @param description [String] This is the description of the destination, used by the AI to choose when and
@@ -27,6 +27,9 @@ module Vapi
27
27
  # - `warm-transfer-wait-for-operator-to-speak-first-and-then-say-summary`: The
28
28
  # assistant dials the destination, waits for the operator to speak, provides a
29
29
  # summary of the call to the destination party, and then connects the customer.
30
+ # - `warm-transfer-twiml`: The assistant dials the destination, executes the twiml
31
+ # instructions on the destination call leg, connects the customer, and leaves the
32
+ # call.
30
33
  # @default 'blind-transfer'
31
34
  attr_reader :mode
32
35
  # @return [Vapi::TransferPlanMessage] This is the message the assistant will deliver to the destination party before
@@ -40,6 +43,19 @@ module Vapi
40
43
  # - 'refer': Uses SIP REFER to transfer the call (default)
41
44
  # - 'bye': Ends current call with SIP BYE
42
45
  attr_reader :sip_verb
46
+ # @return [String] This is the TwiML instructions to execute on the destination call leg before
47
+ # connecting the customer.
48
+ # Usage:
49
+ # - Used only when `mode` is `warm-transfer-twiml`.
50
+ # - Supports only `Play`, `Say`, `Gather`, `Hangup` and `Pause` verbs.
51
+ # - Maximum length is 4096 characters.
52
+ # Example:
53
+ # ```
54
+ # <Say voice="alice" language="en-US">Hello, transferring a customer to you.</Say>
55
+ # <Pause length="2"/>
56
+ # <Say>They called about billing questions.</Say>
57
+ # ```
58
+ attr_reader :twiml
43
59
  # @return [Vapi::SummaryPlan] This is the plan for generating a summary of the call to present to the
44
60
  # destination party.
45
61
  # Usage:
@@ -74,6 +90,9 @@ module Vapi
74
90
  # - `warm-transfer-wait-for-operator-to-speak-first-and-then-say-summary`: The
75
91
  # assistant dials the destination, waits for the operator to speak, provides a
76
92
  # summary of the call to the destination party, and then connects the customer.
93
+ # - `warm-transfer-twiml`: The assistant dials the destination, executes the twiml
94
+ # instructions on the destination call leg, connects the customer, and leaves the
95
+ # call.
77
96
  # @default 'blind-transfer'
78
97
  # @param message [Vapi::TransferPlanMessage] This is the message the assistant will deliver to the destination party before
79
98
  # connecting the customer.
@@ -84,6 +103,18 @@ module Vapi
84
103
  # @param sip_verb [Hash{String => Object}] This specifies the SIP verb to use while transferring the call.
85
104
  # - 'refer': Uses SIP REFER to transfer the call (default)
86
105
  # - 'bye': Ends current call with SIP BYE
106
+ # @param twiml [String] This is the TwiML instructions to execute on the destination call leg before
107
+ # connecting the customer.
108
+ # Usage:
109
+ # - Used only when `mode` is `warm-transfer-twiml`.
110
+ # - Supports only `Play`, `Say`, `Gather`, `Hangup` and `Pause` verbs.
111
+ # - Maximum length is 4096 characters.
112
+ # Example:
113
+ # ```
114
+ # <Say voice="alice" language="en-US">Hello, transferring a customer to you.</Say>
115
+ # <Pause length="2"/>
116
+ # <Say>They called about billing questions.</Say>
117
+ # ```
87
118
  # @param summary_plan [Vapi::SummaryPlan] This is the plan for generating a summary of the call to present to the
88
119
  # destination party.
89
120
  # Usage:
@@ -92,16 +123,18 @@ module Vapi
92
123
  # `warm-transfer-wait-for-operator-to-speak-first-and-then-say-summary`.
93
124
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
94
125
  # @return [Vapi::TransferPlan]
95
- def initialize(mode:, message: OMIT, sip_verb: OMIT, summary_plan: OMIT, additional_properties: nil)
126
+ def initialize(mode:, message: OMIT, sip_verb: OMIT, twiml: OMIT, summary_plan: OMIT, additional_properties: nil)
96
127
  @mode = mode
97
128
  @message = message if message != OMIT
98
129
  @sip_verb = sip_verb if sip_verb != OMIT
130
+ @twiml = twiml if twiml != OMIT
99
131
  @summary_plan = summary_plan if summary_plan != OMIT
100
132
  @additional_properties = additional_properties
101
133
  @_field_set = {
102
134
  "mode": mode,
103
135
  "message": message,
104
136
  "sipVerb": sip_verb,
137
+ "twiml": twiml,
105
138
  "summaryPlan": summary_plan
106
139
  }.reject do |_k, v|
107
140
  v == OMIT
@@ -123,6 +156,7 @@ module Vapi
123
156
  message = Vapi::TransferPlanMessage.from_json(json_object: message)
124
157
  end
125
158
  sip_verb = parsed_json["sipVerb"]
159
+ twiml = parsed_json["twiml"]
126
160
  if parsed_json["summaryPlan"].nil?
127
161
  summary_plan = nil
128
162
  else
@@ -133,6 +167,7 @@ module Vapi
133
167
  mode: mode,
134
168
  message: message,
135
169
  sip_verb: sip_verb,
170
+ twiml: twiml,
136
171
  summary_plan: summary_plan,
137
172
  additional_properties: struct
138
173
  )
@@ -155,6 +190,7 @@ module Vapi
155
190
  obj.mode.is_a?(Vapi::TransferPlanMode) != false || raise("Passed value for field obj.mode is not the expected type, validation failed.")
156
191
  obj.message.nil? || Vapi::TransferPlanMessage.validate_raw(obj: obj.message)
157
192
  obj.sip_verb&.is_a?(Hash) != false || raise("Passed value for field obj.sip_verb is not the expected type, validation failed.")
193
+ obj.twiml&.is_a?(String) != false || raise("Passed value for field obj.twiml is not the expected type, validation failed.")
158
194
  obj.summary_plan.nil? || Vapi::SummaryPlan.validate_raw(obj: obj.summary_plan)
159
195
  end
160
196
  end
@@ -20,12 +20,16 @@ module Vapi
20
20
  # - `warm-transfer-wait-for-operator-to-speak-first-and-then-say-summary`: The
21
21
  # assistant dials the destination, waits for the operator to speak, provides a
22
22
  # summary of the call to the destination party, and then connects the customer.
23
+ # - `warm-transfer-twiml`: The assistant dials the destination, executes the twiml
24
+ # instructions on the destination call leg, connects the customer, and leaves the
25
+ # call.
23
26
  # @default 'blind-transfer'
24
27
  class TransferPlanMode
25
28
  BLIND_TRANSFER = "blind-transfer"
26
29
  BLIND_TRANSFER_ADD_SUMMARY_TO_SIP_HEADER = "blind-transfer-add-summary-to-sip-header"
27
30
  WARM_TRANSFER_SAY_MESSAGE = "warm-transfer-say-message"
28
31
  WARM_TRANSFER_SAY_SUMMARY = "warm-transfer-say-summary"
32
+ WARM_TRANSFER_TWIML = "warm-transfer-twiml"
29
33
  WARM_TRANSFER_WAIT_FOR_OPERATOR_TO_SPEAK_FIRST_AND_THEN_SAY_MESSAGE = "warm-transfer-wait-for-operator-to-speak-first-and-then-say-message"
30
34
  WARM_TRANSFER_WAIT_FOR_OPERATOR_TO_SPEAK_FIRST_AND_THEN_SAY_SUMMARY = "warm-transfer-wait-for-operator-to-speak-first-and-then-say-summary"
31
35
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "trieve_knowledge_base_vector_store_search_plan"
4
- require_relative "trieve_knowledge_base_vector_store_create_plan"
3
+ require_relative "trieve_knowledge_base_search_plan"
4
+ require_relative "trieve_knowledge_base_create_plan"
5
5
  require "ostruct"
6
6
  require "json"
7
7
 
@@ -9,17 +9,15 @@ module Vapi
9
9
  class TrieveKnowledgeBase
10
10
  # @return [String] This is the name of the knowledge base.
11
11
  attr_reader :name
12
- # @return [Vapi::TrieveKnowledgeBaseVectorStoreSearchPlan] This is the plan on how to search the vector store while a call is going on.
13
- attr_reader :vector_store_search_plan
14
- # @return [Vapi::TrieveKnowledgeBaseVectorStoreCreatePlan] This is the plan if you want us to create a new vector store on your behalf. To
15
- # use an existing vector store from your account, use `vectoreStoreProviderId`
16
- attr_reader :vector_store_create_plan
17
- # @return [String] This is an vector store that you already have on your account with the provider.
18
- # To create a new vector store, use vectorStoreCreatePlan.
19
- # Usage:
20
- # - To bring your own vector store from Trieve, go to https://trieve.ai
21
- # - Create a dataset, and use the datasetId here.
22
- attr_reader :vector_store_provider_id
12
+ # @return [Vapi::TrieveKnowledgeBaseSearchPlan] This is the searching plan used when searching for relevant chunks from the
13
+ # vector store.
14
+ # You should configure this if you're running into these issues:
15
+ # - Too much unnecessary context is being fed as knowledge base context.
16
+ # - Not enough relevant context is being fed as knowledge base context.
17
+ attr_reader :search_plan
18
+ # @return [Vapi::TrieveKnowledgeBaseCreatePlan] This is the plan if you want us to create/import a new vector store using
19
+ # Trieve.
20
+ attr_reader :create_plan
23
21
  # @return [String] This is the id of the knowledge base.
24
22
  attr_reader :id
25
23
  # @return [String] This is the org id of the knowledge base.
@@ -33,32 +31,28 @@ module Vapi
33
31
  OMIT = Object.new
34
32
 
35
33
  # @param name [String] This is the name of the knowledge base.
36
- # @param vector_store_search_plan [Vapi::TrieveKnowledgeBaseVectorStoreSearchPlan] This is the plan on how to search the vector store while a call is going on.
37
- # @param vector_store_create_plan [Vapi::TrieveKnowledgeBaseVectorStoreCreatePlan] This is the plan if you want us to create a new vector store on your behalf. To
38
- # use an existing vector store from your account, use `vectoreStoreProviderId`
39
- # @param vector_store_provider_id [String] This is an vector store that you already have on your account with the provider.
40
- # To create a new vector store, use vectorStoreCreatePlan.
41
- # Usage:
42
- # - To bring your own vector store from Trieve, go to https://trieve.ai
43
- # - Create a dataset, and use the datasetId here.
34
+ # @param search_plan [Vapi::TrieveKnowledgeBaseSearchPlan] This is the searching plan used when searching for relevant chunks from the
35
+ # vector store.
36
+ # You should configure this if you're running into these issues:
37
+ # - Too much unnecessary context is being fed as knowledge base context.
38
+ # - Not enough relevant context is being fed as knowledge base context.
39
+ # @param create_plan [Vapi::TrieveKnowledgeBaseCreatePlan] This is the plan if you want us to create/import a new vector store using
40
+ # Trieve.
44
41
  # @param id [String] This is the id of the knowledge base.
45
42
  # @param org_id [String] This is the org id of the knowledge base.
46
43
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
47
44
  # @return [Vapi::TrieveKnowledgeBase]
48
- def initialize(vector_store_search_plan:, id:, org_id:, name: OMIT, vector_store_create_plan: OMIT,
49
- vector_store_provider_id: OMIT, additional_properties: nil)
45
+ def initialize(id:, org_id:, name: OMIT, search_plan: OMIT, create_plan: OMIT, additional_properties: nil)
50
46
  @name = name if name != OMIT
51
- @vector_store_search_plan = vector_store_search_plan
52
- @vector_store_create_plan = vector_store_create_plan if vector_store_create_plan != OMIT
53
- @vector_store_provider_id = vector_store_provider_id if vector_store_provider_id != OMIT
47
+ @search_plan = search_plan if search_plan != OMIT
48
+ @create_plan = create_plan if create_plan != OMIT
54
49
  @id = id
55
50
  @org_id = org_id
56
51
  @additional_properties = additional_properties
57
52
  @_field_set = {
58
53
  "name": name,
59
- "vectorStoreSearchPlan": vector_store_search_plan,
60
- "vectorStoreCreatePlan": vector_store_create_plan,
61
- "vectorStoreProviderId": vector_store_provider_id,
54
+ "searchPlan": search_plan,
55
+ "createPlan": create_plan,
62
56
  "id": id,
63
57
  "orgId": org_id
64
58
  }.reject do |_k, v|
@@ -74,26 +68,24 @@ module Vapi
74
68
  struct = JSON.parse(json_object, object_class: OpenStruct)
75
69
  parsed_json = JSON.parse(json_object)
76
70
  name = parsed_json["name"]
77
- if parsed_json["vectorStoreSearchPlan"].nil?
78
- vector_store_search_plan = nil
71
+ if parsed_json["searchPlan"].nil?
72
+ search_plan = nil
79
73
  else
80
- vector_store_search_plan = parsed_json["vectorStoreSearchPlan"].to_json
81
- vector_store_search_plan = Vapi::TrieveKnowledgeBaseVectorStoreSearchPlan.from_json(json_object: vector_store_search_plan)
74
+ search_plan = parsed_json["searchPlan"].to_json
75
+ search_plan = Vapi::TrieveKnowledgeBaseSearchPlan.from_json(json_object: search_plan)
82
76
  end
83
- if parsed_json["vectorStoreCreatePlan"].nil?
84
- vector_store_create_plan = nil
77
+ if parsed_json["createPlan"].nil?
78
+ create_plan = nil
85
79
  else
86
- vector_store_create_plan = parsed_json["vectorStoreCreatePlan"].to_json
87
- vector_store_create_plan = Vapi::TrieveKnowledgeBaseVectorStoreCreatePlan.from_json(json_object: vector_store_create_plan)
80
+ create_plan = parsed_json["createPlan"].to_json
81
+ create_plan = Vapi::TrieveKnowledgeBaseCreatePlan.from_json(json_object: create_plan)
88
82
  end
89
- vector_store_provider_id = parsed_json["vectorStoreProviderId"]
90
83
  id = parsed_json["id"]
91
84
  org_id = parsed_json["orgId"]
92
85
  new(
93
86
  name: name,
94
- vector_store_search_plan: vector_store_search_plan,
95
- vector_store_create_plan: vector_store_create_plan,
96
- vector_store_provider_id: vector_store_provider_id,
87
+ search_plan: search_plan,
88
+ create_plan: create_plan,
97
89
  id: id,
98
90
  org_id: org_id,
99
91
  additional_properties: struct
@@ -115,9 +107,8 @@ module Vapi
115
107
  # @return [Void]
116
108
  def self.validate_raw(obj:)
117
109
  obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
118
- Vapi::TrieveKnowledgeBaseVectorStoreSearchPlan.validate_raw(obj: obj.vector_store_search_plan)
119
- obj.vector_store_create_plan.nil? || Vapi::TrieveKnowledgeBaseVectorStoreCreatePlan.validate_raw(obj: obj.vector_store_create_plan)
120
- obj.vector_store_provider_id&.is_a?(String) != false || raise("Passed value for field obj.vector_store_provider_id is not the expected type, validation failed.")
110
+ obj.search_plan.nil? || Vapi::TrieveKnowledgeBaseSearchPlan.validate_raw(obj: obj.search_plan)
111
+ obj.create_plan.nil? || Vapi::TrieveKnowledgeBaseCreatePlan.validate_raw(obj: obj.create_plan)
121
112
  obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
122
113
  obj.org_id.is_a?(String) != false || raise("Passed value for field obj.org_id is not the expected type, validation failed.")
123
114
  end
@@ -4,10 +4,12 @@ require "ostruct"
4
4
  require "json"
5
5
 
6
6
  module Vapi
7
- class TrieveKnowledgeBaseVectorStoreCreatePlan
7
+ class TrieveKnowledgeBaseChunkPlan
8
8
  # @return [Array<String>] These are the file ids that will be used to create the vector store. To upload
9
9
  # files, use the `POST /files` endpoint.
10
10
  attr_reader :file_ids
11
+ # @return [Array<String>] These are the websites that will be used to create the vector store.
12
+ attr_reader :websites
11
13
  # @return [Float] This is an optional field which allows you to specify the number of splits you
12
14
  # want per chunk. If not specified, the default 20 is used. However, you may want
13
15
  # to use a different number.
@@ -33,6 +35,7 @@ module Vapi
33
35
 
34
36
  # @param file_ids [Array<String>] These are the file ids that will be used to create the vector store. To upload
35
37
  # files, use the `POST /files` endpoint.
38
+ # @param websites [Array<String>] These are the websites that will be used to create the vector store.
36
39
  # @param target_splits_per_chunk [Float] This is an optional field which allows you to specify the number of splits you
37
40
  # want per chunk. If not specified, the default 20 is used. However, you may want
38
41
  # to use a different number.
@@ -46,16 +49,18 @@ module Vapi
46
49
  # such that 66 splits with a target_splits_per_chunk of 20 will result in 3 chunks
47
50
  # with 22 splits each.
48
51
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
49
- # @return [Vapi::TrieveKnowledgeBaseVectorStoreCreatePlan]
50
- def initialize(file_ids:, target_splits_per_chunk: OMIT, split_delimiters: OMIT, rebalance_chunks: OMIT,
51
- additional_properties: nil)
52
- @file_ids = file_ids
52
+ # @return [Vapi::TrieveKnowledgeBaseChunkPlan]
53
+ def initialize(file_ids: OMIT, websites: OMIT, target_splits_per_chunk: OMIT, split_delimiters: OMIT,
54
+ rebalance_chunks: OMIT, additional_properties: nil)
55
+ @file_ids = file_ids if file_ids != OMIT
56
+ @websites = websites if websites != OMIT
53
57
  @target_splits_per_chunk = target_splits_per_chunk if target_splits_per_chunk != OMIT
54
58
  @split_delimiters = split_delimiters if split_delimiters != OMIT
55
59
  @rebalance_chunks = rebalance_chunks if rebalance_chunks != OMIT
56
60
  @additional_properties = additional_properties
57
61
  @_field_set = {
58
62
  "fileIds": file_ids,
63
+ "websites": websites,
59
64
  "targetSplitsPerChunk": target_splits_per_chunk,
60
65
  "splitDelimiters": split_delimiters,
61
66
  "rebalanceChunks": rebalance_chunks
@@ -64,20 +69,21 @@ module Vapi
64
69
  end
65
70
  end
66
71
 
67
- # Deserialize a JSON object to an instance of
68
- # TrieveKnowledgeBaseVectorStoreCreatePlan
72
+ # Deserialize a JSON object to an instance of TrieveKnowledgeBaseChunkPlan
69
73
  #
70
74
  # @param json_object [String]
71
- # @return [Vapi::TrieveKnowledgeBaseVectorStoreCreatePlan]
75
+ # @return [Vapi::TrieveKnowledgeBaseChunkPlan]
72
76
  def self.from_json(json_object:)
73
77
  struct = JSON.parse(json_object, object_class: OpenStruct)
74
78
  parsed_json = JSON.parse(json_object)
75
79
  file_ids = parsed_json["fileIds"]
80
+ websites = parsed_json["websites"]
76
81
  target_splits_per_chunk = parsed_json["targetSplitsPerChunk"]
77
82
  split_delimiters = parsed_json["splitDelimiters"]
78
83
  rebalance_chunks = parsed_json["rebalanceChunks"]
79
84
  new(
80
85
  file_ids: file_ids,
86
+ websites: websites,
81
87
  target_splits_per_chunk: target_splits_per_chunk,
82
88
  split_delimiters: split_delimiters,
83
89
  rebalance_chunks: rebalance_chunks,
@@ -85,8 +91,7 @@ module Vapi
85
91
  )
86
92
  end
87
93
 
88
- # Serialize an instance of TrieveKnowledgeBaseVectorStoreCreatePlan to a JSON
89
- # object
94
+ # Serialize an instance of TrieveKnowledgeBaseChunkPlan to a JSON object
90
95
  #
91
96
  # @return [String]
92
97
  def to_json(*_args)
@@ -100,7 +105,8 @@ module Vapi
100
105
  # @param obj [Object]
101
106
  # @return [Void]
102
107
  def self.validate_raw(obj:)
103
- obj.file_ids.is_a?(Array) != false || raise("Passed value for field obj.file_ids is not the expected type, validation failed.")
108
+ obj.file_ids&.is_a?(Array) != false || raise("Passed value for field obj.file_ids is not the expected type, validation failed.")
109
+ obj.websites&.is_a?(Array) != false || raise("Passed value for field obj.websites is not the expected type, validation failed.")
104
110
  obj.target_splits_per_chunk&.is_a?(Float) != false || raise("Passed value for field obj.target_splits_per_chunk is not the expected type, validation failed.")
105
111
  obj.split_delimiters&.is_a?(Array) != false || raise("Passed value for field obj.split_delimiters is not the expected type, validation failed.")
106
112
  obj.rebalance_chunks&.is_a?(Boolean) != false || raise("Passed value for field obj.rebalance_chunks is not the expected type, validation failed.")
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "trieve_knowledge_base_chunk_plan"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module Vapi
8
+ class TrieveKnowledgeBaseCreate
9
+ # @return [Array<Vapi::TrieveKnowledgeBaseChunkPlan>] These are the chunk plans used to create the dataset.
10
+ attr_reader :chunk_plans
11
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
12
+ attr_reader :additional_properties
13
+ # @return [Object]
14
+ attr_reader :_field_set
15
+ protected :_field_set
16
+
17
+ OMIT = Object.new
18
+
19
+ # @param chunk_plans [Array<Vapi::TrieveKnowledgeBaseChunkPlan>] These are the chunk plans used to create the dataset.
20
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
21
+ # @return [Vapi::TrieveKnowledgeBaseCreate]
22
+ def initialize(chunk_plans:, additional_properties: nil)
23
+ @chunk_plans = chunk_plans
24
+ @additional_properties = additional_properties
25
+ @_field_set = { "chunkPlans": chunk_plans }
26
+ end
27
+
28
+ # Deserialize a JSON object to an instance of TrieveKnowledgeBaseCreate
29
+ #
30
+ # @param json_object [String]
31
+ # @return [Vapi::TrieveKnowledgeBaseCreate]
32
+ def self.from_json(json_object:)
33
+ struct = JSON.parse(json_object, object_class: OpenStruct)
34
+ parsed_json = JSON.parse(json_object)
35
+ chunk_plans = parsed_json["chunkPlans"]&.map do |item|
36
+ item = item.to_json
37
+ Vapi::TrieveKnowledgeBaseChunkPlan.from_json(json_object: item)
38
+ end
39
+ new(chunk_plans: chunk_plans, additional_properties: struct)
40
+ end
41
+
42
+ # Serialize an instance of TrieveKnowledgeBaseCreate to a JSON object
43
+ #
44
+ # @return [String]
45
+ def to_json(*_args)
46
+ @_field_set&.to_json
47
+ end
48
+
49
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
50
+ # hash and check each fields type against the current object's property
51
+ # definitions.
52
+ #
53
+ # @param obj [Object]
54
+ # @return [Void]
55
+ def self.validate_raw(obj:)
56
+ obj.chunk_plans.is_a?(Array) != false || raise("Passed value for field obj.chunk_plans is not the expected type, validation failed.")
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "trieve_knowledge_base_create"
5
+ require_relative "trieve_knowledge_base_import"
6
+
7
+ module Vapi
8
+ # This is the plan if you want us to create/import a new vector store using
9
+ # Trieve.
10
+ class TrieveKnowledgeBaseCreatePlan
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::TrieveKnowledgeBaseCreatePlan]
22
+ def initialize(member:, discriminant:)
23
+ @member = member
24
+ @discriminant = discriminant
25
+ end
26
+
27
+ # Deserialize a JSON object to an instance of TrieveKnowledgeBaseCreatePlan
28
+ #
29
+ # @param json_object [String]
30
+ # @return [Vapi::TrieveKnowledgeBaseCreatePlan]
31
+ def self.from_json(json_object:)
32
+ struct = JSON.parse(json_object, object_class: OpenStruct)
33
+ member = case struct.type
34
+ when "create"
35
+ Vapi::TrieveKnowledgeBaseCreate.from_json(json_object: json_object)
36
+ when "import"
37
+ Vapi::TrieveKnowledgeBaseImport.from_json(json_object: json_object)
38
+ else
39
+ Vapi::TrieveKnowledgeBaseCreate.from_json(json_object: json_object)
40
+ end
41
+ new(member: member, discriminant: struct.type)
42
+ end
43
+
44
+ # For Union Types, to_json functionality is delegated to the wrapped member.
45
+ #
46
+ # @return [String]
47
+ def to_json(*_args)
48
+ case @discriminant
49
+ when "create"
50
+ { **@member.to_json, type: @discriminant }.to_json
51
+ when "import"
52
+ { **@member.to_json, type: @discriminant }.to_json
53
+ else
54
+ { "type": @discriminant, value: @member }.to_json
55
+ end
56
+ @member.to_json
57
+ end
58
+
59
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
60
+ # hash and check each fields type against the current object's property
61
+ # definitions.
62
+ #
63
+ # @param obj [Object]
64
+ # @return [Void]
65
+ def self.validate_raw(obj:)
66
+ case obj.type
67
+ when "create"
68
+ Vapi::TrieveKnowledgeBaseCreate.validate_raw(obj: obj)
69
+ when "import"
70
+ Vapi::TrieveKnowledgeBaseImport.validate_raw(obj: obj)
71
+ else
72
+ raise("Passed value matched no type within the union, validation failed.")
73
+ end
74
+ end
75
+
76
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
77
+ #
78
+ # @param obj [Object]
79
+ # @return [Boolean]
80
+ def is_a?(obj)
81
+ @member.is_a?(obj)
82
+ end
83
+
84
+ # @param member [Vapi::TrieveKnowledgeBaseCreate]
85
+ # @return [Vapi::TrieveKnowledgeBaseCreatePlan]
86
+ def self.create(member:)
87
+ new(member: member, discriminant: "create")
88
+ end
89
+
90
+ # @param member [Vapi::TrieveKnowledgeBaseImport]
91
+ # @return [Vapi::TrieveKnowledgeBaseCreatePlan]
92
+ def self.import(member:)
93
+ new(member: member, discriminant: "import")
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Vapi
7
+ class TrieveKnowledgeBaseImport
8
+ # @return [String] This is the `datasetId` of the dataset on your Trieve account.
9
+ attr_reader :provider_id
10
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
11
+ attr_reader :additional_properties
12
+ # @return [Object]
13
+ attr_reader :_field_set
14
+ protected :_field_set
15
+
16
+ OMIT = Object.new
17
+
18
+ # @param provider_id [String] This is the `datasetId` of the dataset on your Trieve account.
19
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
20
+ # @return [Vapi::TrieveKnowledgeBaseImport]
21
+ def initialize(provider_id:, additional_properties: nil)
22
+ @provider_id = provider_id
23
+ @additional_properties = additional_properties
24
+ @_field_set = { "providerId": provider_id }
25
+ end
26
+
27
+ # Deserialize a JSON object to an instance of TrieveKnowledgeBaseImport
28
+ #
29
+ # @param json_object [String]
30
+ # @return [Vapi::TrieveKnowledgeBaseImport]
31
+ def self.from_json(json_object:)
32
+ struct = JSON.parse(json_object, object_class: OpenStruct)
33
+ parsed_json = JSON.parse(json_object)
34
+ provider_id = parsed_json["providerId"]
35
+ new(provider_id: provider_id, additional_properties: struct)
36
+ end
37
+
38
+ # Serialize an instance of TrieveKnowledgeBaseImport to a JSON object
39
+ #
40
+ # @return [String]
41
+ def to_json(*_args)
42
+ @_field_set&.to_json
43
+ end
44
+
45
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
46
+ # hash and check each fields type against the current object's property
47
+ # definitions.
48
+ #
49
+ # @param obj [Object]
50
+ # @return [Void]
51
+ def self.validate_raw(obj:)
52
+ obj.provider_id.is_a?(String) != false || raise("Passed value for field obj.provider_id is not the expected type, validation failed.")
53
+ end
54
+ end
55
+ end