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
@@ -91,22 +91,22 @@ module Vapi
91
91
  # @param call_id [String] This is the ID of the call.
92
92
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
93
93
  # @return [Vapi::Log]
94
- def initialize(time:, org_id:, type:, request_duration_seconds:, request_started_at:, request_finished_at:,
95
- request_body:, request_http_method:, request_url:, request_path:, response_http_code:, webhook_type: OMIT, resource: OMIT, request_query: OMIT, request_ip_address: OMIT, request_origin: OMIT, response_body: OMIT, request_headers: OMIT, error: OMIT, assistant_id: OMIT, phone_number_id: OMIT, customer_id: OMIT, squad_id: OMIT, call_id: OMIT, additional_properties: nil)
94
+ def initialize(time:, org_id:, type:, webhook_type: OMIT, resource: OMIT, request_duration_seconds: OMIT,
95
+ request_started_at: OMIT, request_finished_at: OMIT, request_body: OMIT, request_http_method: OMIT, request_url: OMIT, request_path: OMIT, request_query: OMIT, response_http_code: OMIT, request_ip_address: OMIT, request_origin: OMIT, response_body: OMIT, request_headers: OMIT, error: OMIT, assistant_id: OMIT, phone_number_id: OMIT, customer_id: OMIT, squad_id: OMIT, call_id: OMIT, additional_properties: nil)
96
96
  @time = time
97
97
  @org_id = org_id
98
98
  @type = type
99
99
  @webhook_type = webhook_type if webhook_type != OMIT
100
100
  @resource = resource if resource != OMIT
101
- @request_duration_seconds = request_duration_seconds
102
- @request_started_at = request_started_at
103
- @request_finished_at = request_finished_at
104
- @request_body = request_body
105
- @request_http_method = request_http_method
106
- @request_url = request_url
107
- @request_path = request_path
101
+ @request_duration_seconds = request_duration_seconds if request_duration_seconds != OMIT
102
+ @request_started_at = request_started_at if request_started_at != OMIT
103
+ @request_finished_at = request_finished_at if request_finished_at != OMIT
104
+ @request_body = request_body if request_body != OMIT
105
+ @request_http_method = request_http_method if request_http_method != OMIT
106
+ @request_url = request_url if request_url != OMIT
107
+ @request_path = request_path if request_path != OMIT
108
108
  @request_query = request_query if request_query != OMIT
109
- @response_http_code = response_http_code
109
+ @response_http_code = response_http_code if response_http_code != OMIT
110
110
  @request_ip_address = request_ip_address if request_ip_address != OMIT
111
111
  @request_origin = request_origin if request_origin != OMIT
112
112
  @response_body = response_body if response_body != OMIT
@@ -232,15 +232,15 @@ module Vapi
232
232
  obj.type.is_a?(Vapi::LogType) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
233
233
  obj.webhook_type&.is_a?(String) != false || raise("Passed value for field obj.webhook_type is not the expected type, validation failed.")
234
234
  obj.resource&.is_a?(Vapi::LogResource) != false || raise("Passed value for field obj.resource is not the expected type, validation failed.")
235
- obj.request_duration_seconds.is_a?(Float) != false || raise("Passed value for field obj.request_duration_seconds is not the expected type, validation failed.")
236
- obj.request_started_at.is_a?(String) != false || raise("Passed value for field obj.request_started_at is not the expected type, validation failed.")
237
- obj.request_finished_at.is_a?(String) != false || raise("Passed value for field obj.request_finished_at is not the expected type, validation failed.")
238
- obj.request_body.is_a?(Hash) != false || raise("Passed value for field obj.request_body is not the expected type, validation failed.")
239
- obj.request_http_method.is_a?(Vapi::LogRequestHttpMethod) != false || raise("Passed value for field obj.request_http_method is not the expected type, validation failed.")
240
- obj.request_url.is_a?(String) != false || raise("Passed value for field obj.request_url is not the expected type, validation failed.")
241
- obj.request_path.is_a?(String) != false || raise("Passed value for field obj.request_path is not the expected type, validation failed.")
235
+ obj.request_duration_seconds&.is_a?(Float) != false || raise("Passed value for field obj.request_duration_seconds is not the expected type, validation failed.")
236
+ obj.request_started_at&.is_a?(String) != false || raise("Passed value for field obj.request_started_at is not the expected type, validation failed.")
237
+ obj.request_finished_at&.is_a?(String) != false || raise("Passed value for field obj.request_finished_at is not the expected type, validation failed.")
238
+ obj.request_body&.is_a?(Hash) != false || raise("Passed value for field obj.request_body is not the expected type, validation failed.")
239
+ obj.request_http_method&.is_a?(Vapi::LogRequestHttpMethod) != false || raise("Passed value for field obj.request_http_method is not the expected type, validation failed.")
240
+ obj.request_url&.is_a?(String) != false || raise("Passed value for field obj.request_url is not the expected type, validation failed.")
241
+ obj.request_path&.is_a?(String) != false || raise("Passed value for field obj.request_path is not the expected type, validation failed.")
242
242
  obj.request_query&.is_a?(String) != false || raise("Passed value for field obj.request_query is not the expected type, validation failed.")
243
- obj.response_http_code.is_a?(Float) != false || raise("Passed value for field obj.response_http_code is not the expected type, validation failed.")
243
+ obj.response_http_code&.is_a?(Float) != false || raise("Passed value for field obj.response_http_code is not the expected type, validation failed.")
244
244
  obj.request_ip_address&.is_a?(String) != false || raise("Passed value for field obj.request_ip_address is not the expected type, validation failed.")
245
245
  obj.request_origin&.is_a?(String) != false || raise("Passed value for field obj.request_origin is not the expected type, validation failed.")
246
246
  obj.response_body&.is_a?(Hash) != false || raise("Passed value for field obj.response_body is not the expected type, validation failed.")
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Vapi
7
+ class LogicEdgeCondition
8
+ # @return [String]
9
+ attr_reader :liquid
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 liquid [String]
19
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
20
+ # @return [Vapi::LogicEdgeCondition]
21
+ def initialize(liquid:, additional_properties: nil)
22
+ @liquid = liquid
23
+ @additional_properties = additional_properties
24
+ @_field_set = { "liquid": liquid }
25
+ end
26
+
27
+ # Deserialize a JSON object to an instance of LogicEdgeCondition
28
+ #
29
+ # @param json_object [String]
30
+ # @return [Vapi::LogicEdgeCondition]
31
+ def self.from_json(json_object:)
32
+ struct = JSON.parse(json_object, object_class: OpenStruct)
33
+ parsed_json = JSON.parse(json_object)
34
+ liquid = parsed_json["liquid"]
35
+ new(liquid: liquid, additional_properties: struct)
36
+ end
37
+
38
+ # Serialize an instance of LogicEdgeCondition 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.liquid.is_a?(String) != false || raise("Passed value for field obj.liquid is not the expected type, validation failed.")
53
+ end
54
+ end
55
+ end
@@ -22,8 +22,6 @@ module Vapi
22
22
  # `tool.destinations`. For others like the function tool, these can be custom
23
23
  # configured.
24
24
  attr_reader :messages
25
- # @return [String] The type of tool. "make" for Make tool.
26
- attr_reader :type
27
25
  # @return [Vapi::ToolCall]
28
26
  attr_reader :tool_call
29
27
  # @return [Vapi::MakeToolMetadata]
@@ -63,7 +61,6 @@ module Vapi
63
61
  # For some tools, this is auto-filled based on special fields like
64
62
  # `tool.destinations`. For others like the function tool, these can be custom
65
63
  # configured.
66
- # @param type [String] The type of tool. "make" for Make tool.
67
64
  # @param tool_call [Vapi::ToolCall]
68
65
  # @param metadata [Vapi::MakeToolMetadata]
69
66
  # @param function [Vapi::OpenAiFunction] This is the function definition of the tool.
@@ -83,11 +80,10 @@ module Vapi
83
80
  # phoneNumber.serverUrl, then org.serverUrl.
84
81
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
85
82
  # @return [Vapi::MakeToolWithToolCall]
86
- def initialize(type:, tool_call:, metadata:, async: OMIT, messages: OMIT, function: OMIT, server: OMIT,
83
+ def initialize(tool_call:, metadata:, async: OMIT, messages: OMIT, function: OMIT, server: OMIT,
87
84
  additional_properties: nil)
88
85
  @async = async if async != OMIT
89
86
  @messages = messages if messages != OMIT
90
- @type = type
91
87
  @tool_call = tool_call
92
88
  @metadata = metadata
93
89
  @function = function if function != OMIT
@@ -96,7 +92,6 @@ module Vapi
96
92
  @_field_set = {
97
93
  "async": async,
98
94
  "messages": messages,
99
- "type": type,
100
95
  "toolCall": tool_call,
101
96
  "metadata": metadata,
102
97
  "function": function,
@@ -118,7 +113,6 @@ module Vapi
118
113
  item = item.to_json
119
114
  Vapi::MakeToolWithToolCallMessagesItem.from_json(json_object: item)
120
115
  end
121
- type = parsed_json["type"]
122
116
  if parsed_json["toolCall"].nil?
123
117
  tool_call = nil
124
118
  else
@@ -146,7 +140,6 @@ module Vapi
146
140
  new(
147
141
  async: async,
148
142
  messages: messages,
149
- type: type,
150
143
  tool_call: tool_call,
151
144
  metadata: metadata,
152
145
  function: function,
@@ -171,7 +164,6 @@ module Vapi
171
164
  def self.validate_raw(obj:)
172
165
  obj.async&.is_a?(Boolean) != false || raise("Passed value for field obj.async is not the expected type, validation failed.")
173
166
  obj.messages&.is_a?(Array) != false || raise("Passed value for field obj.messages is not the expected type, validation failed.")
174
- obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
175
167
  Vapi::ToolCall.validate_raw(obj: obj.tool_call)
176
168
  Vapi::MakeToolMetadata.validate_raw(obj: obj.metadata)
177
169
  obj.function.nil? || Vapi::OpenAiFunction.validate_raw(obj: obj.function)
@@ -25,6 +25,9 @@ module Vapi
25
25
  # the user speaks.
26
26
  # @default 10
27
27
  attr_reader :idle_timeout_seconds
28
+ # @return [String] This is the message that the assistant will say if the call ends due to silence.
29
+ # If unspecified, it will hang up without saying anything.
30
+ attr_reader :silence_timeout_message
28
31
  # @return [OpenStruct] Additional properties unmapped to the current class definition
29
32
  attr_reader :additional_properties
30
33
  # @return [Object]
@@ -50,18 +53,22 @@ module Vapi
50
53
  # The clock starts when the assistant finishes speaking and remains active until
51
54
  # the user speaks.
52
55
  # @default 10
56
+ # @param silence_timeout_message [String] This is the message that the assistant will say if the call ends due to silence.
57
+ # If unspecified, it will hang up without saying anything.
53
58
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
54
59
  # @return [Vapi::MessagePlan]
55
60
  def initialize(idle_messages: OMIT, idle_message_max_spoken_count: OMIT, idle_timeout_seconds: OMIT,
56
- additional_properties: nil)
61
+ silence_timeout_message: OMIT, additional_properties: nil)
57
62
  @idle_messages = idle_messages if idle_messages != OMIT
58
63
  @idle_message_max_spoken_count = idle_message_max_spoken_count if idle_message_max_spoken_count != OMIT
59
64
  @idle_timeout_seconds = idle_timeout_seconds if idle_timeout_seconds != OMIT
65
+ @silence_timeout_message = silence_timeout_message if silence_timeout_message != OMIT
60
66
  @additional_properties = additional_properties
61
67
  @_field_set = {
62
68
  "idleMessages": idle_messages,
63
69
  "idleMessageMaxSpokenCount": idle_message_max_spoken_count,
64
- "idleTimeoutSeconds": idle_timeout_seconds
70
+ "idleTimeoutSeconds": idle_timeout_seconds,
71
+ "silenceTimeoutMessage": silence_timeout_message
65
72
  }.reject do |_k, v|
66
73
  v == OMIT
67
74
  end
@@ -77,10 +84,12 @@ module Vapi
77
84
  idle_messages = parsed_json["idleMessages"]
78
85
  idle_message_max_spoken_count = parsed_json["idleMessageMaxSpokenCount"]
79
86
  idle_timeout_seconds = parsed_json["idleTimeoutSeconds"]
87
+ silence_timeout_message = parsed_json["silenceTimeoutMessage"]
80
88
  new(
81
89
  idle_messages: idle_messages,
82
90
  idle_message_max_spoken_count: idle_message_max_spoken_count,
83
91
  idle_timeout_seconds: idle_timeout_seconds,
92
+ silence_timeout_message: silence_timeout_message,
84
93
  additional_properties: struct
85
94
  )
86
95
  end
@@ -102,6 +111,7 @@ module Vapi
102
111
  obj.idle_messages&.is_a?(Array) != false || raise("Passed value for field obj.idle_messages is not the expected type, validation failed.")
103
112
  obj.idle_message_max_spoken_count&.is_a?(Float) != false || raise("Passed value for field obj.idle_message_max_spoken_count is not the expected type, validation failed.")
104
113
  obj.idle_timeout_seconds&.is_a?(Float) != false || raise("Passed value for field obj.idle_timeout_seconds is not the expected type, validation failed.")
114
+ obj.silence_timeout_message&.is_a?(String) != false || raise("Passed value for field obj.silence_timeout_message is not the expected type, validation failed.")
105
115
  end
106
116
  end
107
117
  end
@@ -30,8 +30,6 @@ module Vapi
30
30
  # shouldn't be specified unless you have a specific reason to do so. Vapi will
31
31
  # automatically find the fastest fallbacks that make sense.
32
32
  attr_reader :fallback_models
33
- # @return [Boolean]
34
- attr_reader :semantic_caching_enabled
35
33
  # @return [Float] This is the temperature that will be used for calls. Default is 0 to leverage
36
34
  # caching for lower latency.
37
35
  attr_reader :temperature
@@ -71,7 +69,6 @@ module Vapi
71
69
  # @param fallback_models [Array<Vapi::OpenAiModelFallbackModelsItem>] These are the fallback models that will be used if the primary model fails. This
72
70
  # shouldn't be specified unless you have a specific reason to do so. Vapi will
73
71
  # automatically find the fastest fallbacks that make sense.
74
- # @param semantic_caching_enabled [Boolean]
75
72
  # @param temperature [Float] This is the temperature that will be used for calls. Default is 0 to leverage
76
73
  # caching for lower latency.
77
74
  # @param max_tokens [Float] This is the max number of tokens that the assistant will be allowed to generate
@@ -89,7 +86,7 @@ module Vapi
89
86
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
90
87
  # @return [Vapi::OpenAiModel]
91
88
  def initialize(model:, messages: OMIT, tools: OMIT, tool_ids: OMIT, knowledge_base: OMIT, knowledge_base_id: OMIT,
92
- fallback_models: OMIT, semantic_caching_enabled: OMIT, temperature: OMIT, max_tokens: OMIT, emotion_recognition_enabled: OMIT, num_fast_turns: OMIT, additional_properties: nil)
89
+ fallback_models: OMIT, temperature: OMIT, max_tokens: OMIT, emotion_recognition_enabled: OMIT, num_fast_turns: OMIT, additional_properties: nil)
93
90
  @messages = messages if messages != OMIT
94
91
  @tools = tools if tools != OMIT
95
92
  @tool_ids = tool_ids if tool_ids != OMIT
@@ -97,7 +94,6 @@ module Vapi
97
94
  @knowledge_base_id = knowledge_base_id if knowledge_base_id != OMIT
98
95
  @model = model
99
96
  @fallback_models = fallback_models if fallback_models != OMIT
100
- @semantic_caching_enabled = semantic_caching_enabled if semantic_caching_enabled != OMIT
101
97
  @temperature = temperature if temperature != OMIT
102
98
  @max_tokens = max_tokens if max_tokens != OMIT
103
99
  @emotion_recognition_enabled = emotion_recognition_enabled if emotion_recognition_enabled != OMIT
@@ -111,7 +107,6 @@ module Vapi
111
107
  "knowledgeBaseId": knowledge_base_id,
112
108
  "model": model,
113
109
  "fallbackModels": fallback_models,
114
- "semanticCachingEnabled": semantic_caching_enabled,
115
110
  "temperature": temperature,
116
111
  "maxTokens": max_tokens,
117
112
  "emotionRecognitionEnabled": emotion_recognition_enabled,
@@ -146,7 +141,6 @@ module Vapi
146
141
  knowledge_base_id = parsed_json["knowledgeBaseId"]
147
142
  model = parsed_json["model"]
148
143
  fallback_models = parsed_json["fallbackModels"]
149
- semantic_caching_enabled = parsed_json["semanticCachingEnabled"]
150
144
  temperature = parsed_json["temperature"]
151
145
  max_tokens = parsed_json["maxTokens"]
152
146
  emotion_recognition_enabled = parsed_json["emotionRecognitionEnabled"]
@@ -159,7 +153,6 @@ module Vapi
159
153
  knowledge_base_id: knowledge_base_id,
160
154
  model: model,
161
155
  fallback_models: fallback_models,
162
- semantic_caching_enabled: semantic_caching_enabled,
163
156
  temperature: temperature,
164
157
  max_tokens: max_tokens,
165
158
  emotion_recognition_enabled: emotion_recognition_enabled,
@@ -189,7 +182,6 @@ module Vapi
189
182
  obj.knowledge_base_id&.is_a?(String) != false || raise("Passed value for field obj.knowledge_base_id is not the expected type, validation failed.")
190
183
  obj.model.is_a?(Vapi::OpenAiModelModel) != false || raise("Passed value for field obj.model is not the expected type, validation failed.")
191
184
  obj.fallback_models&.is_a?(Array) != false || raise("Passed value for field obj.fallback_models is not the expected type, validation failed.")
192
- obj.semantic_caching_enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.semantic_caching_enabled is not the expected type, validation failed.")
193
185
  obj.temperature&.is_a?(Float) != false || raise("Passed value for field obj.temperature is not the expected type, validation failed.")
194
186
  obj.max_tokens&.is_a?(Float) != false || raise("Passed value for field obj.max_tokens is not the expected type, validation failed.")
195
187
  obj.emotion_recognition_enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.emotion_recognition_enabled is not the expected type, validation failed.")
@@ -2,6 +2,8 @@
2
2
 
3
3
  module Vapi
4
4
  class OpenAiModelFallbackModelsItem
5
+ CHATGPT_4_O_LATEST = "chatgpt-4o-latest"
6
+ O_3_MINI = "o3-mini"
5
7
  O_1_PREVIEW = "o1-preview"
6
8
  O_1_PREVIEW_20240912 = "o1-preview-2024-09-12"
7
9
  O_1_MINI = "o1-mini"
@@ -3,6 +3,8 @@
3
3
  module Vapi
4
4
  # This is the OpenAI model that will be used.
5
5
  class OpenAiModelModel
6
+ CHATGPT_4_O_LATEST = "chatgpt-4o-latest"
7
+ O_3_MINI = "o3-mini"
6
8
  O_1_PREVIEW = "o1-preview"
7
9
  O_1_PREVIEW_20240912 = "o1-preview-2024-09-12"
8
10
  O_1_MINI = "o1-mini"
@@ -6,5 +6,6 @@ module Vapi
6
6
  PLAY_HT_20 = "PlayHT2.0"
7
7
  PLAY_HT_20_TURBO = "PlayHT2.0-turbo"
8
8
  PLAY_30_MINI = "Play3.0-mini"
9
+ PLAY_DIALOG = "PlayDialog"
9
10
  end
10
11
  end
@@ -2,26 +2,6 @@
2
2
 
3
3
  module Vapi
4
4
  class RimeAiVoiceIdEnum
5
- MARSH = "marsh"
6
- BAYOU = "bayou"
7
- CREEK = "creek"
8
- BROOK = "brook"
9
- FLOWER = "flower"
10
- SPORE = "spore"
11
- GLACIER = "glacier"
12
- GULCH = "gulch"
13
- ALPINE = "alpine"
14
- COVE = "cove"
15
- LAGOON = "lagoon"
16
- TUNDRA = "tundra"
17
- STEPPE = "steppe"
18
- MESA = "mesa"
19
- GROVE = "grove"
20
- RAINFOREST = "rainforest"
21
- MORAINE = "moraine"
22
- WILDFLOWER = "wildflower"
23
- PEAK = "peak"
24
- BOULDER = "boulder"
25
5
  ABBIE = "abbie"
26
6
  ALLISON = "allison"
27
7
  ALLY = "ally"
@@ -83,5 +63,27 @@ module Vapi
83
63
  TYLER = "tyler"
84
64
  VIV = "viv"
85
65
  YADIRA = "yadira"
66
+ MARSH = "marsh"
67
+ BAYOU = "bayou"
68
+ CREEK = "creek"
69
+ BROOK = "brook"
70
+ FLOWER = "flower"
71
+ SPORE = "spore"
72
+ GLACIER = "glacier"
73
+ GULCH = "gulch"
74
+ ALPINE = "alpine"
75
+ COVE = "cove"
76
+ LAGOON = "lagoon"
77
+ TUNDRA = "tundra"
78
+ STEPPE = "steppe"
79
+ MESA = "mesa"
80
+ GROVE = "grove"
81
+ RAINFOREST = "rainforest"
82
+ MORAINE = "moraine"
83
+ WILDFLOWER = "wildflower"
84
+ PEAK = "peak"
85
+ BOULDER = "boulder"
86
+ GYPSUM = "gypsum"
87
+ ZEST = "zest"
86
88
  end
87
89
  end
@@ -5,5 +5,6 @@ module Vapi
5
5
  class RimeAiVoiceModel
6
6
  V_1 = "v1"
7
7
  MIST = "mist"
8
+ MISTV_2 = "mistv2"
8
9
  end
9
10
  end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Vapi
7
+ class Say
8
+ # @return [String]
9
+ attr_reader :exact
10
+ # @return [String]
11
+ attr_reader :prompt
12
+ # @return [String]
13
+ attr_reader :name
14
+ # @return [Hash{String => Object}] This is for metadata you want to store on the task.
15
+ attr_reader :metadata
16
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
17
+ attr_reader :additional_properties
18
+ # @return [Object]
19
+ attr_reader :_field_set
20
+ protected :_field_set
21
+
22
+ OMIT = Object.new
23
+
24
+ # @param exact [String]
25
+ # @param prompt [String]
26
+ # @param name [String]
27
+ # @param metadata [Hash{String => Object}] This is for metadata you want to store on the task.
28
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
29
+ # @return [Vapi::Say]
30
+ def initialize(name:, exact: OMIT, prompt: OMIT, metadata: OMIT, additional_properties: nil)
31
+ @exact = exact if exact != OMIT
32
+ @prompt = prompt if prompt != OMIT
33
+ @name = name
34
+ @metadata = metadata if metadata != OMIT
35
+ @additional_properties = additional_properties
36
+ @_field_set = { "exact": exact, "prompt": prompt, "name": name, "metadata": metadata }.reject do |_k, v|
37
+ v == OMIT
38
+ end
39
+ end
40
+
41
+ # Deserialize a JSON object to an instance of Say
42
+ #
43
+ # @param json_object [String]
44
+ # @return [Vapi::Say]
45
+ def self.from_json(json_object:)
46
+ struct = JSON.parse(json_object, object_class: OpenStruct)
47
+ parsed_json = JSON.parse(json_object)
48
+ exact = parsed_json["exact"]
49
+ prompt = parsed_json["prompt"]
50
+ name = parsed_json["name"]
51
+ metadata = parsed_json["metadata"]
52
+ new(
53
+ exact: exact,
54
+ prompt: prompt,
55
+ name: name,
56
+ metadata: metadata,
57
+ additional_properties: struct
58
+ )
59
+ end
60
+
61
+ # Serialize an instance of Say to a JSON object
62
+ #
63
+ # @return [String]
64
+ def to_json(*_args)
65
+ @_field_set&.to_json
66
+ end
67
+
68
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
69
+ # hash and check each fields type against the current object's property
70
+ # definitions.
71
+ #
72
+ # @param obj [Object]
73
+ # @return [Void]
74
+ def self.validate_raw(obj:)
75
+ obj.exact&.is_a?(String) != false || raise("Passed value for field obj.exact is not the expected type, validation failed.")
76
+ obj.prompt&.is_a?(String) != false || raise("Passed value for field obj.prompt is not the expected type, validation failed.")
77
+ obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
78
+ obj.metadata&.is_a?(Hash) != false || raise("Passed value for field obj.metadata is not the expected type, validation failed.")
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Vapi
7
+ class SayHook
8
+ # @return [String]
9
+ attr_reader :type
10
+ # @return [Hash{String => Object}] This is for metadata you want to store on the task.
11
+ attr_reader :metadata
12
+ # @return [String]
13
+ attr_reader :exact
14
+ # @return [String]
15
+ attr_reader :prompt
16
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
17
+ attr_reader :additional_properties
18
+ # @return [Object]
19
+ attr_reader :_field_set
20
+ protected :_field_set
21
+
22
+ OMIT = Object.new
23
+
24
+ # @param type [String]
25
+ # @param metadata [Hash{String => Object}] This is for metadata you want to store on the task.
26
+ # @param exact [String]
27
+ # @param prompt [String]
28
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
29
+ # @return [Vapi::SayHook]
30
+ def initialize(type:, metadata: OMIT, exact: OMIT, prompt: OMIT, additional_properties: nil)
31
+ @type = type
32
+ @metadata = metadata if metadata != OMIT
33
+ @exact = exact if exact != OMIT
34
+ @prompt = prompt if prompt != OMIT
35
+ @additional_properties = additional_properties
36
+ @_field_set = { "type": type, "metadata": metadata, "exact": exact, "prompt": prompt }.reject do |_k, v|
37
+ v == OMIT
38
+ end
39
+ end
40
+
41
+ # Deserialize a JSON object to an instance of SayHook
42
+ #
43
+ # @param json_object [String]
44
+ # @return [Vapi::SayHook]
45
+ def self.from_json(json_object:)
46
+ struct = JSON.parse(json_object, object_class: OpenStruct)
47
+ parsed_json = JSON.parse(json_object)
48
+ type = parsed_json["type"]
49
+ metadata = parsed_json["metadata"]
50
+ exact = parsed_json["exact"]
51
+ prompt = parsed_json["prompt"]
52
+ new(
53
+ type: type,
54
+ metadata: metadata,
55
+ exact: exact,
56
+ prompt: prompt,
57
+ additional_properties: struct
58
+ )
59
+ end
60
+
61
+ # Serialize an instance of SayHook to a JSON object
62
+ #
63
+ # @return [String]
64
+ def to_json(*_args)
65
+ @_field_set&.to_json
66
+ end
67
+
68
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
69
+ # hash and check each fields type against the current object's property
70
+ # definitions.
71
+ #
72
+ # @param obj [Object]
73
+ # @return [Void]
74
+ def self.validate_raw(obj:)
75
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
76
+ obj.metadata&.is_a?(Hash) != false || raise("Passed value for field obj.metadata is not the expected type, validation failed.")
77
+ obj.exact&.is_a?(String) != false || raise("Passed value for field obj.exact is not the expected type, validation failed.")
78
+ obj.prompt&.is_a?(String) != false || raise("Passed value for field obj.prompt is not the expected type, validation failed.")
79
+ end
80
+ end
81
+ end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "backoff_plan"
3
4
  require "ostruct"
4
5
  require "json"
5
6
 
@@ -18,6 +19,8 @@ module Vapi
18
19
  # @return [Hash{String => Object}] These are the custom headers to include in the request sent to your server.
19
20
  # Each key-value pair represents a header name and its value.
20
21
  attr_reader :headers
22
+ # @return [Vapi::BackoffPlan] This is the backoff plan to use if the request fails.
23
+ attr_reader :backoff_plan
21
24
  # @return [OpenStruct] Additional properties unmapped to the current class definition
22
25
  attr_reader :additional_properties
23
26
  # @return [Object]
@@ -35,19 +38,23 @@ module Vapi
35
38
  # Same precedence logic as server.
36
39
  # @param headers [Hash{String => Object}] These are the custom headers to include in the request sent to your server.
37
40
  # Each key-value pair represents a header name and its value.
41
+ # @param backoff_plan [Vapi::BackoffPlan] This is the backoff plan to use if the request fails.
38
42
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
39
43
  # @return [Vapi::Server]
40
- def initialize(url:, timeout_seconds: OMIT, secret: OMIT, headers: OMIT, additional_properties: nil)
44
+ def initialize(url:, timeout_seconds: OMIT, secret: OMIT, headers: OMIT, backoff_plan: OMIT,
45
+ additional_properties: nil)
41
46
  @timeout_seconds = timeout_seconds if timeout_seconds != OMIT
42
47
  @url = url
43
48
  @secret = secret if secret != OMIT
44
49
  @headers = headers if headers != OMIT
50
+ @backoff_plan = backoff_plan if backoff_plan != OMIT
45
51
  @additional_properties = additional_properties
46
52
  @_field_set = {
47
53
  "timeoutSeconds": timeout_seconds,
48
54
  "url": url,
49
55
  "secret": secret,
50
- "headers": headers
56
+ "headers": headers,
57
+ "backoffPlan": backoff_plan
51
58
  }.reject do |_k, v|
52
59
  v == OMIT
53
60
  end
@@ -64,11 +71,18 @@ module Vapi
64
71
  url = parsed_json["url"]
65
72
  secret = parsed_json["secret"]
66
73
  headers = parsed_json["headers"]
74
+ if parsed_json["backoffPlan"].nil?
75
+ backoff_plan = nil
76
+ else
77
+ backoff_plan = parsed_json["backoffPlan"].to_json
78
+ backoff_plan = Vapi::BackoffPlan.from_json(json_object: backoff_plan)
79
+ end
67
80
  new(
68
81
  timeout_seconds: timeout_seconds,
69
82
  url: url,
70
83
  secret: secret,
71
84
  headers: headers,
85
+ backoff_plan: backoff_plan,
72
86
  additional_properties: struct
73
87
  )
74
88
  end
@@ -91,6 +105,7 @@ module Vapi
91
105
  obj.url.is_a?(String) != false || raise("Passed value for field obj.url is not the expected type, validation failed.")
92
106
  obj.secret&.is_a?(String) != false || raise("Passed value for field obj.secret is not the expected type, validation failed.")
93
107
  obj.headers&.is_a?(Hash) != false || raise("Passed value for field obj.headers is not the expected type, validation failed.")
108
+ obj.backoff_plan.nil? || Vapi::BackoffPlan.validate_raw(obj: obj.backoff_plan)
94
109
  end
95
110
  end
96
111
  end