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.
- checksums.yaml +4 -4
- data/lib/requests.rb +2 -2
- data/lib/types_export.rb +83 -12
- data/lib/vapi_server_sdk/analytics/client.rb +41 -26
- data/lib/vapi_server_sdk/assistants/client.rb +84 -84
- data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_server_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/blocks/client.rb +0 -70
- data/lib/vapi_server_sdk/calls/client.rb +110 -76
- data/lib/vapi_server_sdk/files/client.rb +0 -70
- data/lib/vapi_server_sdk/knowledge_bases/client.rb +0 -70
- data/lib/vapi_server_sdk/logs/client.rb +15 -46
- data/lib/vapi_server_sdk/logs/types/logging_controller_logs_delete_query_request_type.rb +12 -0
- data/lib/vapi_server_sdk/phone_numbers/client.rb +0 -70
- data/lib/vapi_server_sdk/squads/client.rb +136 -78
- data/lib/vapi_server_sdk/test_suite_runs/client.rb +328 -0
- data/lib/vapi_server_sdk/test_suite_runs/types/test_suite_run_controller_find_all_paginated_request_sort_order.rb +10 -0
- data/lib/vapi_server_sdk/test_suite_tests/client.rb +331 -0
- data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_create_request.rb +81 -0
- data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_find_all_paginated_request_sort_order.rb +10 -0
- data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_remove_response.rb +82 -0
- data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_update_request.rb +81 -0
- data/lib/vapi_server_sdk/test_suites/client.rb +338 -0
- data/lib/vapi_server_sdk/test_suites/types/test_suite_controller_find_all_paginated_request_sort_order.rb +10 -0
- data/lib/vapi_server_sdk/tools/client.rb +0 -70
- data/lib/vapi_server_sdk/types/ai_edge_condition.rb +55 -0
- data/lib/vapi_server_sdk/types/analytics_operation_column.rb +1 -0
- data/lib/vapi_server_sdk/types/analytics_operation_operation.rb +1 -0
- data/lib/vapi_server_sdk/types/analytics_query.rb +4 -3
- data/lib/vapi_server_sdk/types/analytics_query_table.rb +9 -0
- data/lib/vapi_server_sdk/types/api_request.rb +165 -0
- data/lib/vapi_server_sdk/types/api_request_method.rb +8 -0
- data/lib/vapi_server_sdk/types/api_request_mode.rb +10 -0
- data/lib/vapi_server_sdk/types/artifact.rb +12 -2
- data/lib/vapi_server_sdk/types/artifact_plan.rb +56 -8
- data/lib/vapi_server_sdk/types/assistant.rb +27 -13
- data/lib/vapi_server_sdk/types/assistant_hook_action_base.rb +47 -0
- data/lib/vapi_server_sdk/types/assistant_hook_filter.rb +72 -0
- data/lib/vapi_server_sdk/types/assistant_hooks.rb +82 -0
- data/lib/vapi_server_sdk/types/assistant_overrides.rb +28 -14
- data/lib/vapi_server_sdk/types/assistant_overrides_server_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/assistant_server_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/azure_credential_region.rb +4 -2
- data/lib/vapi_server_sdk/types/azure_open_ai_credential_models_item.rb +1 -0
- data/lib/vapi_server_sdk/types/azure_open_ai_credential_region.rb +4 -2
- data/lib/vapi_server_sdk/types/backoff_plan.rb +80 -0
- data/lib/vapi_server_sdk/types/bash_tool_with_tool_call.rb +175 -0
- data/lib/vapi_server_sdk/types/bash_tool_with_tool_call_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/byo_phone_number.rb +10 -1
- data/lib/vapi_server_sdk/types/byo_phone_number_status.rb +10 -0
- data/lib/vapi_server_sdk/types/call_ended_reason.rb +10 -1
- data/lib/vapi_server_sdk/types/cartesia_experimental_controls.rb +69 -0
- data/lib/vapi_server_sdk/types/cartesia_experimental_controls_emotion.rb +26 -0
- data/lib/vapi_server_sdk/types/cartesia_experimental_controls_speed.rb +11 -0
- data/lib/vapi_server_sdk/types/cartesia_voice.rb +24 -10
- data/lib/vapi_server_sdk/types/chat_completion_message.rb +80 -0
- data/lib/vapi_server_sdk/types/chat_completion_message_metadata.rb +94 -0
- data/lib/vapi_server_sdk/types/chat_completions_dto.rb +84 -0
- data/lib/vapi_server_sdk/types/client_inbound_message_end_call.rb +47 -0
- data/lib/vapi_server_sdk/types/client_inbound_message_message.rb +13 -0
- data/lib/vapi_server_sdk/types/client_inbound_message_transfer.rb +13 -3
- data/lib/vapi_server_sdk/types/client_message_conversation_update.rb +15 -2
- data/lib/vapi_server_sdk/types/client_message_hang.rb +22 -4
- data/lib/vapi_server_sdk/types/client_message_language_change_detected.rb +15 -3
- data/lib/vapi_server_sdk/types/client_message_message.rb +165 -181
- data/lib/vapi_server_sdk/types/client_message_metadata.rb +15 -3
- data/lib/vapi_server_sdk/types/client_message_model_output.rb +15 -3
- data/lib/vapi_server_sdk/types/client_message_speech_update.rb +11 -2
- data/lib/vapi_server_sdk/types/client_message_tool_calls.rb +15 -2
- data/lib/vapi_server_sdk/types/client_message_tool_calls_result.rb +15 -3
- data/lib/vapi_server_sdk/types/client_message_tool_calls_tool_with_tool_call_list_item.rb +116 -77
- data/lib/vapi_server_sdk/types/client_message_transcript.rb +12 -2
- data/lib/vapi_server_sdk/types/client_message_transcript_type.rb +10 -0
- data/lib/vapi_server_sdk/types/client_message_transfer_update.rb +11 -1
- data/lib/vapi_server_sdk/types/client_message_user_interrupted.rb +14 -4
- data/lib/vapi_server_sdk/types/client_message_voice_input.rb +15 -3
- data/lib/vapi_server_sdk/types/client_message_workflow_node_started.rb +67 -0
- data/lib/vapi_server_sdk/types/compliance_plan.rb +77 -0
- data/lib/vapi_server_sdk/types/computer_tool_with_tool_call.rb +199 -0
- data/lib/vapi_server_sdk/types/computer_tool_with_tool_call_messages_item.rb +120 -0
- data/lib/vapi_server_sdk/types/create_assistant_dto.rb +28 -14
- data/lib/vapi_server_sdk/types/create_assistant_dto_server_messages_item.rb +1 -0
- data/lib/vapi_server_sdk/types/create_azure_credential_dto_region.rb +4 -2
- data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_models_item.rb +1 -0
- data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_region.rb +4 -2
- data/lib/vapi_server_sdk/types/create_custom_knowledge_base_dto.rb +2 -4
- data/lib/vapi_server_sdk/types/create_test_suite_test_voice_dto.rb +90 -0
- data/lib/vapi_server_sdk/types/create_trieve_knowledge_base_dto.rb +34 -47
- data/lib/vapi_server_sdk/types/create_trieve_knowledge_base_dto_create_plan.rb +97 -0
- data/lib/vapi_server_sdk/types/create_vapi_phone_number_dto.rb +12 -4
- data/lib/vapi_server_sdk/types/create_workflow_dto.rb +80 -0
- data/lib/vapi_server_sdk/types/create_workflow_dto_nodes_item.rb +133 -0
- data/lib/vapi_server_sdk/types/custom_knowledge_base.rb +2 -4
- data/lib/vapi_server_sdk/types/deep_seek_model.rb +4 -3
- data/lib/vapi_server_sdk/types/deep_seek_model_model.rb +9 -0
- data/lib/vapi_server_sdk/types/deepgram_transcriber.rb +28 -2
- data/lib/vapi_server_sdk/types/deepgram_voice.rb +22 -2
- data/lib/vapi_server_sdk/types/edge.rb +87 -0
- data/lib/vapi_server_sdk/types/edge_condition.rb +107 -0
- data/lib/vapi_server_sdk/types/failed_edge_condition.rb +47 -0
- data/lib/vapi_server_sdk/types/fallback_cartesia_voice.rb +24 -9
- data/lib/vapi_server_sdk/types/fallback_deepgram_voice.rb +17 -2
- data/lib/vapi_server_sdk/types/fallback_play_ht_voice_model.rb +1 -0
- data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_id_enum.rb +22 -20
- data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_model.rb +1 -0
- data/lib/vapi_server_sdk/types/format_plan.rb +22 -2
- data/lib/vapi_server_sdk/types/format_plan_formatters_enabled_item.rb +22 -0
- data/lib/vapi_server_sdk/types/function_tool_with_tool_call.rb +1 -10
- data/lib/vapi_server_sdk/types/gather.rb +143 -0
- data/lib/vapi_server_sdk/types/ghl_tool_with_tool_call.rb +1 -9
- data/lib/vapi_server_sdk/types/google_model_model.rb +4 -0
- data/lib/vapi_server_sdk/types/groq_model_model.rb +1 -0
- data/lib/vapi_server_sdk/types/hangup.rb +67 -0
- data/lib/vapi_server_sdk/types/hook.rb +70 -0
- data/lib/vapi_server_sdk/types/hook_on.rb +9 -0
- data/lib/vapi_server_sdk/types/invite_user_dto.rb +11 -2
- data/lib/vapi_server_sdk/types/json_schema.rb +37 -2
- data/lib/vapi_server_sdk/types/log.rb +18 -18
- data/lib/vapi_server_sdk/types/logic_edge_condition.rb +55 -0
- data/lib/vapi_server_sdk/types/make_tool_with_tool_call.rb +1 -9
- data/lib/vapi_server_sdk/types/message_plan.rb +12 -2
- data/lib/vapi_server_sdk/types/open_ai_model.rb +1 -9
- data/lib/vapi_server_sdk/types/open_ai_model_fallback_models_item.rb +2 -0
- data/lib/vapi_server_sdk/types/open_ai_model_model.rb +2 -0
- data/lib/vapi_server_sdk/types/play_ht_voice_model.rb +1 -0
- data/lib/vapi_server_sdk/types/rime_ai_voice_id_enum.rb +22 -20
- data/lib/vapi_server_sdk/types/rime_ai_voice_model.rb +1 -0
- data/lib/vapi_server_sdk/types/say.rb +81 -0
- data/lib/vapi_server_sdk/types/say_hook.rb +81 -0
- data/lib/vapi_server_sdk/types/server.rb +17 -2
- data/lib/vapi_server_sdk/types/server_message_assistant_request.rb +12 -2
- data/lib/vapi_server_sdk/types/server_message_conversation_update.rb +12 -2
- data/lib/vapi_server_sdk/types/server_message_end_of_call_report.rb +11 -1
- data/lib/vapi_server_sdk/types/server_message_end_of_call_report_ended_reason.rb +10 -1
- data/lib/vapi_server_sdk/types/server_message_hang.rb +20 -2
- data/lib/vapi_server_sdk/types/server_message_knowledge_base_request.rb +14 -2
- data/lib/vapi_server_sdk/types/server_message_language_change_detected.rb +11 -1
- data/lib/vapi_server_sdk/types/server_message_message.rb +212 -237
- data/lib/vapi_server_sdk/types/server_message_model_output.rb +11 -1
- data/lib/vapi_server_sdk/types/server_message_phone_call_control.rb +18 -2
- data/lib/vapi_server_sdk/types/server_message_speech_update.rb +11 -1
- data/lib/vapi_server_sdk/types/server_message_status_update.rb +12 -2
- data/lib/vapi_server_sdk/types/server_message_status_update_ended_reason.rb +10 -1
- data/lib/vapi_server_sdk/types/server_message_tool_calls.rb +10 -2
- data/lib/vapi_server_sdk/types/server_message_tool_calls_tool_with_tool_call_list_item.rb +116 -77
- data/lib/vapi_server_sdk/types/server_message_transcript.rb +13 -2
- data/lib/vapi_server_sdk/types/server_message_transcript_type.rb +10 -0
- data/lib/vapi_server_sdk/types/server_message_transfer_destination_request.rb +12 -2
- data/lib/vapi_server_sdk/types/server_message_transfer_update.rb +11 -1
- data/lib/vapi_server_sdk/types/server_message_user_interrupted.rb +12 -2
- data/lib/vapi_server_sdk/types/server_message_voice_input.rb +11 -1
- data/lib/vapi_server_sdk/types/server_message_voice_request.rb +50 -2
- data/lib/vapi_server_sdk/types/stop_speaking_plan.rb +27 -2
- data/lib/vapi_server_sdk/types/subscription.rb +44 -14
- data/lib/vapi_server_sdk/types/sync_voice_library_dto_providers_item.rb +1 -0
- data/lib/vapi_server_sdk/types/test_suite.rb +104 -0
- data/lib/vapi_server_sdk/types/test_suite_run.rb +127 -0
- data/lib/vapi_server_sdk/types/test_suite_run_scorer_ai.rb +80 -0
- data/lib/vapi_server_sdk/types/test_suite_run_scorer_ai_result.rb +9 -0
- data/lib/vapi_server_sdk/types/test_suite_run_status.rb +10 -0
- data/lib/vapi_server_sdk/types/test_suite_run_test_attempt.rb +75 -0
- data/lib/vapi_server_sdk/types/{analytics_query_dto.rb → test_suite_run_test_attempt_call.rb} +19 -17
- data/lib/vapi_server_sdk/types/test_suite_run_test_result.rb +75 -0
- data/lib/vapi_server_sdk/types/test_suite_runs_paginated_response.rb +75 -0
- data/lib/vapi_server_sdk/types/test_suite_test_scorer_ai.rb +65 -0
- data/lib/vapi_server_sdk/types/test_suite_test_voice.rb +132 -0
- data/lib/vapi_server_sdk/types/test_suite_tests_paginated_response.rb +75 -0
- data/lib/vapi_server_sdk/types/test_suites_paginated_response.rb +75 -0
- data/lib/vapi_server_sdk/types/text_editor_tool_with_tool_call.rb +175 -0
- data/lib/vapi_server_sdk/types/text_editor_tool_with_tool_call_messages_item.rb +121 -0
- data/lib/vapi_server_sdk/types/time_range_step.rb +1 -0
- data/lib/vapi_server_sdk/types/tool_message_start.rb +18 -2
- data/lib/vapi_server_sdk/types/transfer.rb +74 -0
- data/lib/vapi_server_sdk/types/transfer_assistant_hook_action.rb +75 -0
- data/lib/vapi_server_sdk/types/{buy_phone_number_dto_fallback_destination.rb → transfer_assistant_hook_action_destination.rb} +9 -12
- data/lib/vapi_server_sdk/types/transfer_destination_assistant.rb +46 -0
- data/lib/vapi_server_sdk/types/transfer_plan.rb +37 -1
- data/lib/vapi_server_sdk/types/transfer_plan_mode.rb +4 -0
- data/lib/vapi_server_sdk/types/trieve_knowledge_base.rb +35 -44
- data/lib/vapi_server_sdk/types/{trieve_knowledge_base_vector_store_create_plan.rb → trieve_knowledge_base_chunk_plan.rb} +17 -11
- data/lib/vapi_server_sdk/types/trieve_knowledge_base_create.rb +59 -0
- data/lib/vapi_server_sdk/types/trieve_knowledge_base_create_plan.rb +96 -0
- data/lib/vapi_server_sdk/types/trieve_knowledge_base_import.rb +55 -0
- data/lib/vapi_server_sdk/types/{trieve_knowledge_base_vector_store_search_plan.rb → trieve_knowledge_base_search_plan.rb} +21 -12
- 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
- data/lib/vapi_server_sdk/types/twilio_phone_number.rb +11 -2
- data/lib/vapi_server_sdk/types/twilio_phone_number_status.rb +10 -0
- data/lib/vapi_server_sdk/types/update_azure_credential_dto_region.rb +4 -2
- data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_models_item.rb +1 -0
- data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_region.rb +4 -2
- data/lib/vapi_server_sdk/types/update_custom_knowledge_base_dto.rb +2 -4
- data/lib/vapi_server_sdk/types/update_test_suite_test_voice_dto.rb +90 -0
- data/lib/vapi_server_sdk/types/update_trieve_knowledge_base_dto.rb +34 -47
- data/lib/vapi_server_sdk/types/update_trieve_knowledge_base_dto_create_plan.rb +97 -0
- data/lib/vapi_server_sdk/types/vapi_model.rb +27 -1
- data/lib/vapi_server_sdk/types/vapi_phone_number.rb +29 -4
- data/lib/vapi_server_sdk/types/vapi_phone_number_status.rb +10 -0
- data/lib/vapi_server_sdk/types/vonage_phone_number.rb +11 -2
- data/lib/vapi_server_sdk/types/vonage_phone_number_status.rb +10 -0
- data/lib/vapi_server_sdk/types/workflow.rb +117 -0
- data/lib/vapi_server_sdk/types/workflow_nodes_item.rb +133 -0
- data/lib/vapi_server_sdk/types/xai_model.rb +4 -3
- data/lib/vapi_server_sdk/types/xai_model_model.rb +10 -0
- data/lib/vapi_server_sdk.rb +21 -0
- metadata +85 -11
- data/lib/vapi_server_sdk/types/buy_phone_number_dto.rb +0 -147
- data/lib/vapi_server_sdk/types/org_with_org_user.rb +0 -262
- data/lib/vapi_server_sdk/types/org_with_org_user_channel.rb +0 -10
- 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 "
|
4
|
-
require_relative "
|
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::
|
13
|
-
|
14
|
-
#
|
15
|
-
#
|
16
|
-
|
17
|
-
|
18
|
-
#
|
19
|
-
#
|
20
|
-
|
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
|
37
|
-
#
|
38
|
-
#
|
39
|
-
#
|
40
|
-
#
|
41
|
-
#
|
42
|
-
#
|
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(
|
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
|
-
@
|
52
|
-
@
|
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
|
-
"
|
60
|
-
"
|
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["
|
78
|
-
|
71
|
+
if parsed_json["searchPlan"].nil?
|
72
|
+
search_plan = nil
|
79
73
|
else
|
80
|
-
|
81
|
-
|
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["
|
84
|
-
|
77
|
+
if parsed_json["createPlan"].nil?
|
78
|
+
create_plan = nil
|
85
79
|
else
|
86
|
-
|
87
|
-
|
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
|
-
|
95
|
-
|
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::
|
119
|
-
obj.
|
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
|
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::
|
50
|
-
def initialize(file_ids
|
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::
|
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
|
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
|
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
|