vapi_server_sdk 0.4.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 (170) hide show
  1. checksums.yaml +4 -4
  2. data/lib/requests.rb +2 -2
  3. data/lib/types_export.rb +60 -14
  4. data/lib/vapi_server_sdk/analytics/client.rb +41 -12
  5. data/lib/vapi_server_sdk/assistants/client.rb +80 -14
  6. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_server_messages_item.rb +1 -0
  7. data/lib/vapi_server_sdk/calls/client.rb +104 -6
  8. data/lib/vapi_server_sdk/logs/client.rb +2 -2
  9. data/lib/vapi_server_sdk/squads/client.rb +128 -8
  10. data/lib/vapi_server_sdk/test_suite_runs/client.rb +328 -0
  11. data/lib/vapi_server_sdk/test_suite_runs/types/test_suite_run_controller_find_all_paginated_request_sort_order.rb +10 -0
  12. data/lib/vapi_server_sdk/test_suite_tests/client.rb +331 -0
  13. data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_create_request.rb +81 -0
  14. data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_find_all_paginated_request_sort_order.rb +10 -0
  15. data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_remove_response.rb +82 -0
  16. data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_update_request.rb +81 -0
  17. data/lib/vapi_server_sdk/test_suites/client.rb +338 -0
  18. data/lib/vapi_server_sdk/test_suites/types/test_suite_controller_find_all_paginated_request_sort_order.rb +10 -0
  19. data/lib/vapi_server_sdk/types/{semantic_edge_condition.rb → ai_edge_condition.rb} +9 -11
  20. data/lib/vapi_server_sdk/types/analytics_operation_column.rb +1 -0
  21. data/lib/vapi_server_sdk/types/analytics_operation_operation.rb +1 -0
  22. data/lib/vapi_server_sdk/types/analytics_query.rb +4 -3
  23. data/lib/vapi_server_sdk/types/analytics_query_table.rb +9 -0
  24. data/lib/vapi_server_sdk/types/api_request.rb +165 -0
  25. data/lib/vapi_server_sdk/types/api_request_method.rb +8 -0
  26. data/lib/vapi_server_sdk/types/api_request_mode.rb +10 -0
  27. data/lib/vapi_server_sdk/types/artifact.rb +12 -2
  28. data/lib/vapi_server_sdk/types/artifact_plan.rb +56 -8
  29. data/lib/vapi_server_sdk/types/assistant.rb +27 -13
  30. data/lib/vapi_server_sdk/types/assistant_hook_action_base.rb +47 -0
  31. data/lib/vapi_server_sdk/types/assistant_hook_filter.rb +72 -0
  32. data/lib/vapi_server_sdk/types/assistant_hooks.rb +82 -0
  33. data/lib/vapi_server_sdk/types/assistant_overrides.rb +28 -14
  34. data/lib/vapi_server_sdk/types/assistant_overrides_server_messages_item.rb +1 -0
  35. data/lib/vapi_server_sdk/types/assistant_server_messages_item.rb +1 -0
  36. data/lib/vapi_server_sdk/types/azure_open_ai_credential_models_item.rb +1 -0
  37. data/lib/vapi_server_sdk/types/backoff_plan.rb +80 -0
  38. data/lib/vapi_server_sdk/types/byo_phone_number.rb +10 -1
  39. data/lib/vapi_server_sdk/types/byo_phone_number_status.rb +10 -0
  40. data/lib/vapi_server_sdk/types/call_ended_reason.rb +10 -1
  41. data/lib/vapi_server_sdk/types/cartesia_experimental_controls.rb +69 -0
  42. data/lib/vapi_server_sdk/types/cartesia_experimental_controls_emotion.rb +26 -0
  43. data/lib/vapi_server_sdk/types/cartesia_experimental_controls_speed.rb +11 -0
  44. data/lib/vapi_server_sdk/types/cartesia_voice.rb +24 -10
  45. data/lib/vapi_server_sdk/types/chat_completion_message.rb +80 -0
  46. data/lib/vapi_server_sdk/types/chat_completion_message_metadata.rb +94 -0
  47. data/lib/vapi_server_sdk/types/chat_completions_dto.rb +84 -0
  48. data/lib/vapi_server_sdk/types/client_inbound_message_transfer.rb +13 -3
  49. data/lib/vapi_server_sdk/types/client_message_conversation_update.rb +15 -2
  50. data/lib/vapi_server_sdk/types/client_message_hang.rb +22 -4
  51. data/lib/vapi_server_sdk/types/client_message_language_change_detected.rb +15 -3
  52. data/lib/vapi_server_sdk/types/client_message_message.rb +165 -181
  53. data/lib/vapi_server_sdk/types/client_message_metadata.rb +15 -3
  54. data/lib/vapi_server_sdk/types/client_message_model_output.rb +15 -3
  55. data/lib/vapi_server_sdk/types/client_message_speech_update.rb +11 -2
  56. data/lib/vapi_server_sdk/types/client_message_tool_calls.rb +15 -2
  57. data/lib/vapi_server_sdk/types/client_message_tool_calls_result.rb +15 -3
  58. data/lib/vapi_server_sdk/types/client_message_transcript.rb +12 -2
  59. data/lib/vapi_server_sdk/types/client_message_transcript_type.rb +10 -0
  60. data/lib/vapi_server_sdk/types/client_message_transfer_update.rb +11 -1
  61. data/lib/vapi_server_sdk/types/client_message_user_interrupted.rb +14 -4
  62. data/lib/vapi_server_sdk/types/client_message_voice_input.rb +15 -3
  63. data/lib/vapi_server_sdk/types/client_message_workflow_node_started.rb +67 -0
  64. data/lib/vapi_server_sdk/types/compliance_plan.rb +77 -0
  65. data/lib/vapi_server_sdk/types/create_assistant_dto.rb +28 -14
  66. data/lib/vapi_server_sdk/types/create_assistant_dto_server_messages_item.rb +1 -0
  67. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_models_item.rb +1 -0
  68. data/lib/vapi_server_sdk/types/create_test_suite_test_voice_dto.rb +90 -0
  69. data/lib/vapi_server_sdk/types/create_vapi_phone_number_dto.rb +12 -4
  70. data/lib/vapi_server_sdk/types/create_workflow_dto.rb +2 -9
  71. data/lib/vapi_server_sdk/types/create_workflow_dto_nodes_item.rb +104 -52
  72. data/lib/vapi_server_sdk/types/deep_seek_model.rb +4 -3
  73. data/lib/vapi_server_sdk/types/deep_seek_model_model.rb +9 -0
  74. data/lib/vapi_server_sdk/types/deepgram_transcriber.rb +28 -2
  75. data/lib/vapi_server_sdk/types/deepgram_voice.rb +22 -2
  76. data/lib/vapi_server_sdk/types/edge.rb +9 -2
  77. data/lib/vapi_server_sdk/types/edge_condition.rb +32 -19
  78. data/lib/vapi_server_sdk/types/failed_edge_condition.rb +47 -0
  79. data/lib/vapi_server_sdk/types/fallback_cartesia_voice.rb +24 -9
  80. data/lib/vapi_server_sdk/types/fallback_deepgram_voice.rb +17 -2
  81. data/lib/vapi_server_sdk/types/fallback_play_ht_voice_model.rb +1 -0
  82. data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_id_enum.rb +22 -20
  83. data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_model.rb +1 -0
  84. data/lib/vapi_server_sdk/types/format_plan.rb +22 -2
  85. data/lib/vapi_server_sdk/types/format_plan_formatters_enabled_item.rb +22 -0
  86. data/lib/vapi_server_sdk/types/gather.rb +81 -25
  87. data/lib/vapi_server_sdk/types/google_model_model.rb +4 -0
  88. data/lib/vapi_server_sdk/types/groq_model_model.rb +1 -0
  89. data/lib/vapi_server_sdk/types/hangup.rb +67 -0
  90. data/lib/vapi_server_sdk/types/hook.rb +70 -0
  91. data/lib/vapi_server_sdk/types/hook_on.rb +9 -0
  92. data/lib/vapi_server_sdk/types/invite_user_dto.rb +11 -2
  93. data/lib/vapi_server_sdk/types/json_schema.rb +26 -2
  94. data/lib/vapi_server_sdk/types/{programmatic_edge_condition.rb → logic_edge_condition.rb} +13 -15
  95. data/lib/vapi_server_sdk/types/message_plan.rb +12 -2
  96. data/lib/vapi_server_sdk/types/open_ai_model.rb +1 -9
  97. data/lib/vapi_server_sdk/types/open_ai_model_fallback_models_item.rb +2 -0
  98. data/lib/vapi_server_sdk/types/open_ai_model_model.rb +2 -0
  99. data/lib/vapi_server_sdk/types/play_ht_voice_model.rb +1 -0
  100. data/lib/vapi_server_sdk/types/rime_ai_voice_id_enum.rb +22 -20
  101. data/lib/vapi_server_sdk/types/rime_ai_voice_model.rb +1 -0
  102. data/lib/vapi_server_sdk/types/say.rb +23 -14
  103. data/lib/vapi_server_sdk/types/say_hook.rb +81 -0
  104. data/lib/vapi_server_sdk/types/server.rb +17 -2
  105. data/lib/vapi_server_sdk/types/server_message_assistant_request.rb +12 -2
  106. data/lib/vapi_server_sdk/types/server_message_conversation_update.rb +12 -2
  107. data/lib/vapi_server_sdk/types/server_message_end_of_call_report.rb +11 -1
  108. data/lib/vapi_server_sdk/types/server_message_end_of_call_report_ended_reason.rb +10 -1
  109. data/lib/vapi_server_sdk/types/server_message_hang.rb +20 -2
  110. data/lib/vapi_server_sdk/types/server_message_knowledge_base_request.rb +14 -2
  111. data/lib/vapi_server_sdk/types/server_message_language_change_detected.rb +11 -1
  112. data/lib/vapi_server_sdk/types/server_message_message.rb +212 -237
  113. data/lib/vapi_server_sdk/types/server_message_model_output.rb +11 -1
  114. data/lib/vapi_server_sdk/types/server_message_phone_call_control.rb +18 -2
  115. data/lib/vapi_server_sdk/types/server_message_speech_update.rb +11 -1
  116. data/lib/vapi_server_sdk/types/server_message_status_update.rb +12 -2
  117. data/lib/vapi_server_sdk/types/server_message_status_update_ended_reason.rb +10 -1
  118. data/lib/vapi_server_sdk/types/server_message_tool_calls.rb +10 -2
  119. data/lib/vapi_server_sdk/types/server_message_transcript.rb +13 -2
  120. data/lib/vapi_server_sdk/types/server_message_transcript_type.rb +10 -0
  121. data/lib/vapi_server_sdk/types/server_message_transfer_destination_request.rb +12 -2
  122. data/lib/vapi_server_sdk/types/server_message_transfer_update.rb +11 -1
  123. data/lib/vapi_server_sdk/types/server_message_user_interrupted.rb +12 -2
  124. data/lib/vapi_server_sdk/types/server_message_voice_input.rb +11 -1
  125. data/lib/vapi_server_sdk/types/server_message_voice_request.rb +50 -2
  126. data/lib/vapi_server_sdk/types/stop_speaking_plan.rb +27 -2
  127. data/lib/vapi_server_sdk/types/subscription.rb +33 -5
  128. data/lib/vapi_server_sdk/types/sync_voice_library_dto_providers_item.rb +1 -0
  129. data/lib/vapi_server_sdk/types/test_suite.rb +104 -0
  130. data/lib/vapi_server_sdk/types/test_suite_run.rb +127 -0
  131. data/lib/vapi_server_sdk/types/test_suite_run_scorer_ai.rb +80 -0
  132. data/lib/vapi_server_sdk/types/test_suite_run_scorer_ai_result.rb +9 -0
  133. data/lib/vapi_server_sdk/types/test_suite_run_status.rb +10 -0
  134. data/lib/vapi_server_sdk/types/test_suite_run_test_attempt.rb +75 -0
  135. data/lib/vapi_server_sdk/types/{analytics_query_dto.rb → test_suite_run_test_attempt_call.rb} +19 -17
  136. data/lib/vapi_server_sdk/types/test_suite_run_test_result.rb +75 -0
  137. data/lib/vapi_server_sdk/types/test_suite_runs_paginated_response.rb +75 -0
  138. data/lib/vapi_server_sdk/types/test_suite_test_scorer_ai.rb +65 -0
  139. data/lib/vapi_server_sdk/types/test_suite_test_voice.rb +132 -0
  140. data/lib/vapi_server_sdk/types/test_suite_tests_paginated_response.rb +75 -0
  141. data/lib/vapi_server_sdk/types/test_suites_paginated_response.rb +75 -0
  142. data/lib/vapi_server_sdk/types/time_range_step.rb +1 -0
  143. data/lib/vapi_server_sdk/types/tool_message_start.rb +18 -2
  144. data/lib/vapi_server_sdk/types/transfer.rb +74 -0
  145. data/lib/vapi_server_sdk/types/transfer_assistant_hook_action.rb +75 -0
  146. data/lib/vapi_server_sdk/types/{buy_phone_number_dto_fallback_destination.rb → transfer_assistant_hook_action_destination.rb} +9 -12
  147. data/lib/vapi_server_sdk/types/transfer_destination_assistant.rb +46 -0
  148. data/lib/vapi_server_sdk/types/transfer_plan.rb +37 -1
  149. data/lib/vapi_server_sdk/types/transfer_plan_mode.rb +4 -0
  150. data/lib/vapi_server_sdk/types/trieve_knowledge_base_search_plan.rb +12 -1
  151. data/lib/vapi_server_sdk/types/twilio_phone_number.rb +11 -2
  152. data/lib/vapi_server_sdk/types/twilio_phone_number_status.rb +10 -0
  153. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_models_item.rb +1 -0
  154. data/lib/vapi_server_sdk/types/update_test_suite_test_voice_dto.rb +90 -0
  155. data/lib/vapi_server_sdk/types/vapi_phone_number.rb +29 -4
  156. data/lib/vapi_server_sdk/types/vapi_phone_number_status.rb +10 -0
  157. data/lib/vapi_server_sdk/types/vonage_phone_number.rb +11 -2
  158. data/lib/vapi_server_sdk/types/vonage_phone_number_status.rb +10 -0
  159. data/lib/vapi_server_sdk/types/workflow.rb +1 -9
  160. data/lib/vapi_server_sdk/types/workflow_nodes_item.rb +104 -52
  161. data/lib/vapi_server_sdk/types/xai_model.rb +4 -3
  162. data/lib/vapi_server_sdk/types/xai_model_model.rb +10 -0
  163. data/lib/vapi_server_sdk.rb +21 -0
  164. metadata +61 -12
  165. data/lib/vapi_server_sdk/types/buy_phone_number_dto.rb +0 -147
  166. data/lib/vapi_server_sdk/types/org_with_org_user.rb +0 -262
  167. data/lib/vapi_server_sdk/types/org_with_org_user_channel.rb +0 -10
  168. data/lib/vapi_server_sdk/types/org_with_org_user_role.rb +0 -9
  169. data/lib/vapi_server_sdk/types/update_workflow_dto.rb +0 -82
  170. data/lib/vapi_server_sdk/types/update_workflow_dto_nodes_item.rb +0 -81
@@ -30,269 +30,244 @@ module Vapi
30
30
  # 3. `phoneNumber.serverUrl` (if configured)
31
31
  # 4. `org.serverUrl` (if configured)
32
32
  class ServerMessageMessage
33
- # @return [Object]
34
- attr_reader :member
35
- # @return [String]
36
- attr_reader :discriminant
37
-
38
- private_class_method :new
39
- alias kind_of? is_a?
40
-
41
- # @param member [Object]
42
- # @param discriminant [String]
43
- # @return [Vapi::ServerMessageMessage]
44
- def initialize(member:, discriminant:)
45
- @member = member
46
- @discriminant = discriminant
47
- end
48
-
49
33
  # Deserialize a JSON object to an instance of ServerMessageMessage
50
34
  #
51
35
  # @param json_object [String]
52
36
  # @return [Vapi::ServerMessageMessage]
53
37
  def self.from_json(json_object:)
54
38
  struct = JSON.parse(json_object, object_class: OpenStruct)
55
- member = case struct.type
56
- when "assistant-request"
57
- Vapi::ServerMessageAssistantRequest.from_json(json_object: json_object)
58
- when "conversation-update"
59
- Vapi::ServerMessageConversationUpdate.from_json(json_object: json_object)
60
- when "end-of-call-report"
61
- Vapi::ServerMessageEndOfCallReport.from_json(json_object: json_object)
62
- when "hang"
63
- Vapi::ServerMessageHang.from_json(json_object: json_object)
64
- when "knowledge-base-request"
65
- Vapi::ServerMessageKnowledgeBaseRequest.from_json(json_object: json_object)
66
- when "model-output"
67
- Vapi::ServerMessageModelOutput.from_json(json_object: json_object)
68
- when "phone-call-control"
69
- Vapi::ServerMessagePhoneCallControl.from_json(json_object: json_object)
70
- when "speech-update"
71
- Vapi::ServerMessageSpeechUpdate.from_json(json_object: json_object)
72
- when "status-update"
73
- Vapi::ServerMessageStatusUpdate.from_json(json_object: json_object)
74
- when "tool-calls"
75
- Vapi::ServerMessageToolCalls.from_json(json_object: json_object)
76
- when "transfer-destination-request"
77
- Vapi::ServerMessageTransferDestinationRequest.from_json(json_object: json_object)
78
- when "transfer-update"
79
- Vapi::ServerMessageTransferUpdate.from_json(json_object: json_object)
80
- when "transcript"
81
- Vapi::ServerMessageTranscript.from_json(json_object: json_object)
82
- when "user-interrupted"
83
- Vapi::ServerMessageUserInterrupted.from_json(json_object: json_object)
84
- when "language-change-detected"
85
- Vapi::ServerMessageLanguageChangeDetected.from_json(json_object: json_object)
86
- when "voice-input"
87
- Vapi::ServerMessageVoiceInput.from_json(json_object: json_object)
88
- when "voice-request"
89
- Vapi::ServerMessageVoiceRequest.from_json(json_object: json_object)
90
- else
91
- Vapi::ServerMessageAssistantRequest.from_json(json_object: json_object)
92
- end
93
- new(member: member, discriminant: struct.type)
94
- end
39
+ begin
40
+ Vapi::ServerMessageAssistantRequest.validate_raw(obj: struct)
41
+ return Vapi::ServerMessageAssistantRequest.from_json(json_object: struct) unless struct.nil?
95
42
 
96
- # For Union Types, to_json functionality is delegated to the wrapped member.
97
- #
98
- # @return [String]
99
- def to_json(*_args)
100
- case @discriminant
101
- when "assistant-request"
102
- { **@member.to_json, type: @discriminant }.to_json
103
- when "conversation-update"
104
- { **@member.to_json, type: @discriminant }.to_json
105
- when "end-of-call-report"
106
- { **@member.to_json, type: @discriminant }.to_json
107
- when "hang"
108
- { **@member.to_json, type: @discriminant }.to_json
109
- when "knowledge-base-request"
110
- { **@member.to_json, type: @discriminant }.to_json
111
- when "model-output"
112
- { **@member.to_json, type: @discriminant }.to_json
113
- when "phone-call-control"
114
- { **@member.to_json, type: @discriminant }.to_json
115
- when "speech-update"
116
- { **@member.to_json, type: @discriminant }.to_json
117
- when "status-update"
118
- { **@member.to_json, type: @discriminant }.to_json
119
- when "tool-calls"
120
- { **@member.to_json, type: @discriminant }.to_json
121
- when "transfer-destination-request"
122
- { **@member.to_json, type: @discriminant }.to_json
123
- when "transfer-update"
124
- { **@member.to_json, type: @discriminant }.to_json
125
- when "transcript"
126
- { **@member.to_json, type: @discriminant }.to_json
127
- when "user-interrupted"
128
- { **@member.to_json, type: @discriminant }.to_json
129
- when "language-change-detected"
130
- { **@member.to_json, type: @discriminant }.to_json
131
- when "voice-input"
132
- { **@member.to_json, type: @discriminant }.to_json
133
- when "voice-request"
134
- { **@member.to_json, type: @discriminant }.to_json
135
- else
136
- { "type": @discriminant, value: @member }.to_json
137
- end
138
- @member.to_json
139
- end
140
-
141
- # Leveraged for Union-type generation, validate_raw attempts to parse the given
142
- # hash and check each fields type against the current object's property
143
- # definitions.
144
- #
145
- # @param obj [Object]
146
- # @return [Void]
147
- def self.validate_raw(obj:)
148
- case obj.type
149
- when "assistant-request"
150
- Vapi::ServerMessageAssistantRequest.validate_raw(obj: obj)
151
- when "conversation-update"
152
- Vapi::ServerMessageConversationUpdate.validate_raw(obj: obj)
153
- when "end-of-call-report"
154
- Vapi::ServerMessageEndOfCallReport.validate_raw(obj: obj)
155
- when "hang"
156
- Vapi::ServerMessageHang.validate_raw(obj: obj)
157
- when "knowledge-base-request"
158
- Vapi::ServerMessageKnowledgeBaseRequest.validate_raw(obj: obj)
159
- when "model-output"
160
- Vapi::ServerMessageModelOutput.validate_raw(obj: obj)
161
- when "phone-call-control"
162
- Vapi::ServerMessagePhoneCallControl.validate_raw(obj: obj)
163
- when "speech-update"
164
- Vapi::ServerMessageSpeechUpdate.validate_raw(obj: obj)
165
- when "status-update"
166
- Vapi::ServerMessageStatusUpdate.validate_raw(obj: obj)
167
- when "tool-calls"
168
- Vapi::ServerMessageToolCalls.validate_raw(obj: obj)
169
- when "transfer-destination-request"
170
- Vapi::ServerMessageTransferDestinationRequest.validate_raw(obj: obj)
171
- when "transfer-update"
172
- Vapi::ServerMessageTransferUpdate.validate_raw(obj: obj)
173
- when "transcript"
174
- Vapi::ServerMessageTranscript.validate_raw(obj: obj)
175
- when "user-interrupted"
176
- Vapi::ServerMessageUserInterrupted.validate_raw(obj: obj)
177
- when "language-change-detected"
178
- Vapi::ServerMessageLanguageChangeDetected.validate_raw(obj: obj)
179
- when "voice-input"
180
- Vapi::ServerMessageVoiceInput.validate_raw(obj: obj)
181
- when "voice-request"
182
- Vapi::ServerMessageVoiceRequest.validate_raw(obj: obj)
183
- else
184
- raise("Passed value matched no type within the union, validation failed.")
43
+ return nil
44
+ rescue StandardError
45
+ # noop
185
46
  end
186
- end
187
-
188
- # For Union Types, is_a? functionality is delegated to the wrapped member.
189
- #
190
- # @param obj [Object]
191
- # @return [Boolean]
192
- def is_a?(obj)
193
- @member.is_a?(obj)
194
- end
47
+ begin
48
+ Vapi::ServerMessageConversationUpdate.validate_raw(obj: struct)
49
+ return Vapi::ServerMessageConversationUpdate.from_json(json_object: struct) unless struct.nil?
195
50
 
196
- # @param member [Vapi::ServerMessageAssistantRequest]
197
- # @return [Vapi::ServerMessageMessage]
198
- def self.assistant_request(member:)
199
- new(member: member, discriminant: "assistant-request")
200
- end
51
+ return nil
52
+ rescue StandardError
53
+ # noop
54
+ end
55
+ begin
56
+ Vapi::ServerMessageEndOfCallReport.validate_raw(obj: struct)
57
+ return Vapi::ServerMessageEndOfCallReport.from_json(json_object: struct) unless struct.nil?
201
58
 
202
- # @param member [Vapi::ServerMessageConversationUpdate]
203
- # @return [Vapi::ServerMessageMessage]
204
- def self.conversation_update(member:)
205
- new(member: member, discriminant: "conversation-update")
206
- end
59
+ return nil
60
+ rescue StandardError
61
+ # noop
62
+ end
63
+ begin
64
+ Vapi::ServerMessageHang.validate_raw(obj: struct)
65
+ return Vapi::ServerMessageHang.from_json(json_object: struct) unless struct.nil?
207
66
 
208
- # @param member [Vapi::ServerMessageEndOfCallReport]
209
- # @return [Vapi::ServerMessageMessage]
210
- def self.end_of_call_report(member:)
211
- new(member: member, discriminant: "end-of-call-report")
212
- end
67
+ return nil
68
+ rescue StandardError
69
+ # noop
70
+ end
71
+ begin
72
+ Vapi::ServerMessageKnowledgeBaseRequest.validate_raw(obj: struct)
73
+ return Vapi::ServerMessageKnowledgeBaseRequest.from_json(json_object: struct) unless struct.nil?
213
74
 
214
- # @param member [Vapi::ServerMessageHang]
215
- # @return [Vapi::ServerMessageMessage]
216
- def self.hang(member:)
217
- new(member: member, discriminant: "hang")
218
- end
75
+ return nil
76
+ rescue StandardError
77
+ # noop
78
+ end
79
+ begin
80
+ Vapi::ServerMessageModelOutput.validate_raw(obj: struct)
81
+ return Vapi::ServerMessageModelOutput.from_json(json_object: struct) unless struct.nil?
219
82
 
220
- # @param member [Vapi::ServerMessageKnowledgeBaseRequest]
221
- # @return [Vapi::ServerMessageMessage]
222
- def self.knowledge_base_request(member:)
223
- new(member: member, discriminant: "knowledge-base-request")
224
- end
83
+ return nil
84
+ rescue StandardError
85
+ # noop
86
+ end
87
+ begin
88
+ Vapi::ServerMessagePhoneCallControl.validate_raw(obj: struct)
89
+ return Vapi::ServerMessagePhoneCallControl.from_json(json_object: struct) unless struct.nil?
225
90
 
226
- # @param member [Vapi::ServerMessageModelOutput]
227
- # @return [Vapi::ServerMessageMessage]
228
- def self.model_output(member:)
229
- new(member: member, discriminant: "model-output")
230
- end
91
+ return nil
92
+ rescue StandardError
93
+ # noop
94
+ end
95
+ begin
96
+ Vapi::ServerMessageSpeechUpdate.validate_raw(obj: struct)
97
+ return Vapi::ServerMessageSpeechUpdate.from_json(json_object: struct) unless struct.nil?
231
98
 
232
- # @param member [Vapi::ServerMessagePhoneCallControl]
233
- # @return [Vapi::ServerMessageMessage]
234
- def self.phone_call_control(member:)
235
- new(member: member, discriminant: "phone-call-control")
236
- end
99
+ return nil
100
+ rescue StandardError
101
+ # noop
102
+ end
103
+ begin
104
+ Vapi::ServerMessageStatusUpdate.validate_raw(obj: struct)
105
+ return Vapi::ServerMessageStatusUpdate.from_json(json_object: struct) unless struct.nil?
237
106
 
238
- # @param member [Vapi::ServerMessageSpeechUpdate]
239
- # @return [Vapi::ServerMessageMessage]
240
- def self.speech_update(member:)
241
- new(member: member, discriminant: "speech-update")
242
- end
107
+ return nil
108
+ rescue StandardError
109
+ # noop
110
+ end
111
+ begin
112
+ Vapi::ServerMessageToolCalls.validate_raw(obj: struct)
113
+ return Vapi::ServerMessageToolCalls.from_json(json_object: struct) unless struct.nil?
243
114
 
244
- # @param member [Vapi::ServerMessageStatusUpdate]
245
- # @return [Vapi::ServerMessageMessage]
246
- def self.status_update(member:)
247
- new(member: member, discriminant: "status-update")
248
- end
115
+ return nil
116
+ rescue StandardError
117
+ # noop
118
+ end
119
+ begin
120
+ Vapi::ServerMessageTransferDestinationRequest.validate_raw(obj: struct)
121
+ return Vapi::ServerMessageTransferDestinationRequest.from_json(json_object: struct) unless struct.nil?
249
122
 
250
- # @param member [Vapi::ServerMessageToolCalls]
251
- # @return [Vapi::ServerMessageMessage]
252
- def self.tool_calls(member:)
253
- new(member: member, discriminant: "tool-calls")
254
- end
123
+ return nil
124
+ rescue StandardError
125
+ # noop
126
+ end
127
+ begin
128
+ Vapi::ServerMessageTransferUpdate.validate_raw(obj: struct)
129
+ return Vapi::ServerMessageTransferUpdate.from_json(json_object: struct) unless struct.nil?
255
130
 
256
- # @param member [Vapi::ServerMessageTransferDestinationRequest]
257
- # @return [Vapi::ServerMessageMessage]
258
- def self.transfer_destination_request(member:)
259
- new(member: member, discriminant: "transfer-destination-request")
260
- end
131
+ return nil
132
+ rescue StandardError
133
+ # noop
134
+ end
135
+ begin
136
+ Vapi::ServerMessageTranscript.validate_raw(obj: struct)
137
+ return Vapi::ServerMessageTranscript.from_json(json_object: struct) unless struct.nil?
261
138
 
262
- # @param member [Vapi::ServerMessageTransferUpdate]
263
- # @return [Vapi::ServerMessageMessage]
264
- def self.transfer_update(member:)
265
- new(member: member, discriminant: "transfer-update")
266
- end
139
+ return nil
140
+ rescue StandardError
141
+ # noop
142
+ end
143
+ begin
144
+ Vapi::ServerMessageUserInterrupted.validate_raw(obj: struct)
145
+ return Vapi::ServerMessageUserInterrupted.from_json(json_object: struct) unless struct.nil?
267
146
 
268
- # @param member [Vapi::ServerMessageTranscript]
269
- # @return [Vapi::ServerMessageMessage]
270
- def self.transcript(member:)
271
- new(member: member, discriminant: "transcript")
272
- end
147
+ return nil
148
+ rescue StandardError
149
+ # noop
150
+ end
151
+ begin
152
+ Vapi::ServerMessageLanguageChangeDetected.validate_raw(obj: struct)
153
+ return Vapi::ServerMessageLanguageChangeDetected.from_json(json_object: struct) unless struct.nil?
273
154
 
274
- # @param member [Vapi::ServerMessageUserInterrupted]
275
- # @return [Vapi::ServerMessageMessage]
276
- def self.user_interrupted(member:)
277
- new(member: member, discriminant: "user-interrupted")
278
- end
155
+ return nil
156
+ rescue StandardError
157
+ # noop
158
+ end
159
+ begin
160
+ Vapi::ServerMessageVoiceInput.validate_raw(obj: struct)
161
+ return Vapi::ServerMessageVoiceInput.from_json(json_object: struct) unless struct.nil?
279
162
 
280
- # @param member [Vapi::ServerMessageLanguageChangeDetected]
281
- # @return [Vapi::ServerMessageMessage]
282
- def self.language_change_detected(member:)
283
- new(member: member, discriminant: "language-change-detected")
284
- end
163
+ return nil
164
+ rescue StandardError
165
+ # noop
166
+ end
167
+ begin
168
+ Vapi::ServerMessageVoiceRequest.validate_raw(obj: struct)
169
+ return Vapi::ServerMessageVoiceRequest.from_json(json_object: struct) unless struct.nil?
285
170
 
286
- # @param member [Vapi::ServerMessageVoiceInput]
287
- # @return [Vapi::ServerMessageMessage]
288
- def self.voice_input(member:)
289
- new(member: member, discriminant: "voice-input")
171
+ return nil
172
+ rescue StandardError
173
+ # noop
174
+ end
175
+ struct
290
176
  end
291
177
 
292
- # @param member [Vapi::ServerMessageVoiceRequest]
293
- # @return [Vapi::ServerMessageMessage]
294
- def self.voice_request(member:)
295
- new(member: member, discriminant: "voice-request")
178
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
179
+ # hash and check each fields type against the current object's property
180
+ # definitions.
181
+ #
182
+ # @param obj [Object]
183
+ # @return [Void]
184
+ def self.validate_raw(obj:)
185
+ begin
186
+ return Vapi::ServerMessageAssistantRequest.validate_raw(obj: obj)
187
+ rescue StandardError
188
+ # noop
189
+ end
190
+ begin
191
+ return Vapi::ServerMessageConversationUpdate.validate_raw(obj: obj)
192
+ rescue StandardError
193
+ # noop
194
+ end
195
+ begin
196
+ return Vapi::ServerMessageEndOfCallReport.validate_raw(obj: obj)
197
+ rescue StandardError
198
+ # noop
199
+ end
200
+ begin
201
+ return Vapi::ServerMessageHang.validate_raw(obj: obj)
202
+ rescue StandardError
203
+ # noop
204
+ end
205
+ begin
206
+ return Vapi::ServerMessageKnowledgeBaseRequest.validate_raw(obj: obj)
207
+ rescue StandardError
208
+ # noop
209
+ end
210
+ begin
211
+ return Vapi::ServerMessageModelOutput.validate_raw(obj: obj)
212
+ rescue StandardError
213
+ # noop
214
+ end
215
+ begin
216
+ return Vapi::ServerMessagePhoneCallControl.validate_raw(obj: obj)
217
+ rescue StandardError
218
+ # noop
219
+ end
220
+ begin
221
+ return Vapi::ServerMessageSpeechUpdate.validate_raw(obj: obj)
222
+ rescue StandardError
223
+ # noop
224
+ end
225
+ begin
226
+ return Vapi::ServerMessageStatusUpdate.validate_raw(obj: obj)
227
+ rescue StandardError
228
+ # noop
229
+ end
230
+ begin
231
+ return Vapi::ServerMessageToolCalls.validate_raw(obj: obj)
232
+ rescue StandardError
233
+ # noop
234
+ end
235
+ begin
236
+ return Vapi::ServerMessageTransferDestinationRequest.validate_raw(obj: obj)
237
+ rescue StandardError
238
+ # noop
239
+ end
240
+ begin
241
+ return Vapi::ServerMessageTransferUpdate.validate_raw(obj: obj)
242
+ rescue StandardError
243
+ # noop
244
+ end
245
+ begin
246
+ return Vapi::ServerMessageTranscript.validate_raw(obj: obj)
247
+ rescue StandardError
248
+ # noop
249
+ end
250
+ begin
251
+ return Vapi::ServerMessageUserInterrupted.validate_raw(obj: obj)
252
+ rescue StandardError
253
+ # noop
254
+ end
255
+ begin
256
+ return Vapi::ServerMessageLanguageChangeDetected.validate_raw(obj: obj)
257
+ rescue StandardError
258
+ # noop
259
+ end
260
+ begin
261
+ return Vapi::ServerMessageVoiceInput.validate_raw(obj: obj)
262
+ rescue StandardError
263
+ # noop
264
+ end
265
+ begin
266
+ return Vapi::ServerMessageVoiceRequest.validate_raw(obj: obj)
267
+ rescue StandardError
268
+ # noop
269
+ end
270
+ raise("Passed value matched no type within the union, validation failed.")
296
271
  end
297
272
  end
298
273
  end
@@ -15,6 +15,9 @@ module Vapi
15
15
  # - `call.phoneNumber`,
16
16
  # - `call.phoneNumberId`.
17
17
  attr_reader :phone_number
18
+ # @return [String] This is the type of the message. "model-output" is sent as the model outputs
19
+ # tokens.
20
+ attr_reader :type
18
21
  # @return [String] This is the ISO-8601 formatted timestamp of when the message was sent.
19
22
  attr_reader :timestamp
20
23
  # @return [Vapi::Artifact] This is a live version of the `call.artifact`.
@@ -54,6 +57,8 @@ module Vapi
54
57
  # This matches one of the following:
55
58
  # - `call.phoneNumber`,
56
59
  # - `call.phoneNumberId`.
60
+ # @param type [String] This is the type of the message. "model-output" is sent as the model outputs
61
+ # tokens.
57
62
  # @param timestamp [String] This is the ISO-8601 formatted timestamp of when the message was sent.
58
63
  # @param artifact [Vapi::Artifact] This is a live version of the `call.artifact`.
59
64
  # This matches what is stored on `call.artifact` after the call.
@@ -77,9 +82,10 @@ module Vapi
77
82
  # @param output [Hash{String => Object}] This is the output of the model. It can be a token or tool call.
78
83
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
79
84
  # @return [Vapi::ServerMessageModelOutput]
80
- def initialize(output:, phone_number: OMIT, timestamp: OMIT, artifact: OMIT, assistant: OMIT, customer: OMIT,
85
+ def initialize(type:, output:, phone_number: OMIT, timestamp: OMIT, artifact: OMIT, assistant: OMIT, customer: OMIT,
81
86
  call: OMIT, additional_properties: nil)
82
87
  @phone_number = phone_number if phone_number != OMIT
88
+ @type = type
83
89
  @timestamp = timestamp if timestamp != OMIT
84
90
  @artifact = artifact if artifact != OMIT
85
91
  @assistant = assistant if assistant != OMIT
@@ -89,6 +95,7 @@ module Vapi
89
95
  @additional_properties = additional_properties
90
96
  @_field_set = {
91
97
  "phoneNumber": phone_number,
98
+ "type": type,
92
99
  "timestamp": timestamp,
93
100
  "artifact": artifact,
94
101
  "assistant": assistant,
@@ -113,6 +120,7 @@ module Vapi
113
120
  phone_number = parsed_json["phoneNumber"].to_json
114
121
  phone_number = Vapi::ServerMessageModelOutputPhoneNumber.from_json(json_object: phone_number)
115
122
  end
123
+ type = parsed_json["type"]
116
124
  timestamp = parsed_json["timestamp"]
117
125
  if parsed_json["artifact"].nil?
118
126
  artifact = nil
@@ -141,6 +149,7 @@ module Vapi
141
149
  output = parsed_json["output"]
142
150
  new(
143
151
  phone_number: phone_number,
152
+ type: type,
144
153
  timestamp: timestamp,
145
154
  artifact: artifact,
146
155
  assistant: assistant,
@@ -166,6 +175,7 @@ module Vapi
166
175
  # @return [Void]
167
176
  def self.validate_raw(obj:)
168
177
  obj.phone_number.nil? || Vapi::ServerMessageModelOutputPhoneNumber.validate_raw(obj: obj.phone_number)
178
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
169
179
  obj.timestamp&.is_a?(String) != false || raise("Passed value for field obj.timestamp is not the expected type, validation failed.")
170
180
  obj.artifact.nil? || Vapi::Artifact.validate_raw(obj: obj.artifact)
171
181
  obj.assistant.nil? || Vapi::CreateAssistantDto.validate_raw(obj: obj.assistant)
@@ -17,6 +17,12 @@ module Vapi
17
17
  # - `call.phoneNumber`,
18
18
  # - `call.phoneNumberId`.
19
19
  attr_reader :phone_number
20
+ # @return [String] This is the type of the message. "phone-call-control" is an advanced type of
21
+ # message.
22
+ # When it is requested in `assistant.serverMessages`, the hangup and forwarding
23
+ # responsibilities are delegated to your server. Vapi will no longer do the actual
24
+ # transfer and hangup.
25
+ attr_reader :type
20
26
  # @return [Vapi::ServerMessagePhoneCallControlRequest] This is the request to control the phone call.
21
27
  attr_reader :request
22
28
  # @return [Vapi::ServerMessagePhoneCallControlDestination] This is the destination to forward the call to if the request is "forward".
@@ -58,6 +64,11 @@ module Vapi
58
64
  # This matches one of the following:
59
65
  # - `call.phoneNumber`,
60
66
  # - `call.phoneNumberId`.
67
+ # @param type [String] This is the type of the message. "phone-call-control" is an advanced type of
68
+ # message.
69
+ # When it is requested in `assistant.serverMessages`, the hangup and forwarding
70
+ # responsibilities are delegated to your server. Vapi will no longer do the actual
71
+ # transfer and hangup.
61
72
  # @param request [Vapi::ServerMessagePhoneCallControlRequest] This is the request to control the phone call.
62
73
  # @param destination [Vapi::ServerMessagePhoneCallControlDestination] This is the destination to forward the call to if the request is "forward".
63
74
  # @param timestamp [String] This is the ISO-8601 formatted timestamp of when the message was sent.
@@ -82,9 +93,10 @@ module Vapi
82
93
  # especially after the call is ended, use GET /call/:id.
83
94
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
84
95
  # @return [Vapi::ServerMessagePhoneCallControl]
85
- def initialize(request:, phone_number: OMIT, destination: OMIT, timestamp: OMIT, artifact: OMIT, assistant: OMIT,
86
- customer: OMIT, call: OMIT, additional_properties: nil)
96
+ def initialize(type:, request:, phone_number: OMIT, destination: OMIT, timestamp: OMIT, artifact: OMIT,
97
+ assistant: OMIT, customer: OMIT, call: OMIT, additional_properties: nil)
87
98
  @phone_number = phone_number if phone_number != OMIT
99
+ @type = type
88
100
  @request = request
89
101
  @destination = destination if destination != OMIT
90
102
  @timestamp = timestamp if timestamp != OMIT
@@ -95,6 +107,7 @@ module Vapi
95
107
  @additional_properties = additional_properties
96
108
  @_field_set = {
97
109
  "phoneNumber": phone_number,
110
+ "type": type,
98
111
  "request": request,
99
112
  "destination": destination,
100
113
  "timestamp": timestamp,
@@ -120,6 +133,7 @@ module Vapi
120
133
  phone_number = parsed_json["phoneNumber"].to_json
121
134
  phone_number = Vapi::ServerMessagePhoneCallControlPhoneNumber.from_json(json_object: phone_number)
122
135
  end
136
+ type = parsed_json["type"]
123
137
  request = parsed_json["request"]
124
138
  if parsed_json["destination"].nil?
125
139
  destination = nil
@@ -154,6 +168,7 @@ module Vapi
154
168
  end
155
169
  new(
156
170
  phone_number: phone_number,
171
+ type: type,
157
172
  request: request,
158
173
  destination: destination,
159
174
  timestamp: timestamp,
@@ -180,6 +195,7 @@ module Vapi
180
195
  # @return [Void]
181
196
  def self.validate_raw(obj:)
182
197
  obj.phone_number.nil? || Vapi::ServerMessagePhoneCallControlPhoneNumber.validate_raw(obj: obj.phone_number)
198
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
183
199
  obj.request.is_a?(Vapi::ServerMessagePhoneCallControlRequest) != false || raise("Passed value for field obj.request is not the expected type, validation failed.")
184
200
  obj.destination.nil? || Vapi::ServerMessagePhoneCallControlDestination.validate_raw(obj: obj.destination)
185
201
  obj.timestamp&.is_a?(String) != false || raise("Passed value for field obj.timestamp is not the expected type, validation failed.")
@@ -17,6 +17,9 @@ module Vapi
17
17
  # - `call.phoneNumber`,
18
18
  # - `call.phoneNumberId`.
19
19
  attr_reader :phone_number
20
+ # @return [String] This is the type of the message. "speech-update" is sent whenever assistant or
21
+ # user start or stop speaking.
22
+ attr_reader :type
20
23
  # @return [Vapi::ServerMessageSpeechUpdateStatus] This is the status of the speech update.
21
24
  attr_reader :status
22
25
  # @return [Vapi::ServerMessageSpeechUpdateRole] This is the role which the speech update is for.
@@ -58,6 +61,8 @@ module Vapi
58
61
  # This matches one of the following:
59
62
  # - `call.phoneNumber`,
60
63
  # - `call.phoneNumberId`.
64
+ # @param type [String] This is the type of the message. "speech-update" is sent whenever assistant or
65
+ # user start or stop speaking.
61
66
  # @param status [Vapi::ServerMessageSpeechUpdateStatus] This is the status of the speech update.
62
67
  # @param role [Vapi::ServerMessageSpeechUpdateRole] This is the role which the speech update is for.
63
68
  # @param timestamp [String] This is the ISO-8601 formatted timestamp of when the message was sent.
@@ -82,9 +87,10 @@ module Vapi
82
87
  # especially after the call is ended, use GET /call/:id.
83
88
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
84
89
  # @return [Vapi::ServerMessageSpeechUpdate]
85
- def initialize(status:, role:, phone_number: OMIT, timestamp: OMIT, artifact: OMIT, assistant: OMIT,
90
+ def initialize(type:, status:, role:, phone_number: OMIT, timestamp: OMIT, artifact: OMIT, assistant: OMIT,
86
91
  customer: OMIT, call: OMIT, additional_properties: nil)
87
92
  @phone_number = phone_number if phone_number != OMIT
93
+ @type = type
88
94
  @status = status
89
95
  @role = role
90
96
  @timestamp = timestamp if timestamp != OMIT
@@ -95,6 +101,7 @@ module Vapi
95
101
  @additional_properties = additional_properties
96
102
  @_field_set = {
97
103
  "phoneNumber": phone_number,
104
+ "type": type,
98
105
  "status": status,
99
106
  "role": role,
100
107
  "timestamp": timestamp,
@@ -120,6 +127,7 @@ module Vapi
120
127
  phone_number = parsed_json["phoneNumber"].to_json
121
128
  phone_number = Vapi::ServerMessageSpeechUpdatePhoneNumber.from_json(json_object: phone_number)
122
129
  end
130
+ type = parsed_json["type"]
123
131
  status = parsed_json["status"]
124
132
  role = parsed_json["role"]
125
133
  timestamp = parsed_json["timestamp"]
@@ -149,6 +157,7 @@ module Vapi
149
157
  end
150
158
  new(
151
159
  phone_number: phone_number,
160
+ type: type,
152
161
  status: status,
153
162
  role: role,
154
163
  timestamp: timestamp,
@@ -175,6 +184,7 @@ module Vapi
175
184
  # @return [Void]
176
185
  def self.validate_raw(obj:)
177
186
  obj.phone_number.nil? || Vapi::ServerMessageSpeechUpdatePhoneNumber.validate_raw(obj: obj.phone_number)
187
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
178
188
  obj.status.is_a?(Vapi::ServerMessageSpeechUpdateStatus) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
179
189
  obj.role.is_a?(Vapi::ServerMessageSpeechUpdateRole) != false || raise("Passed value for field obj.role is not the expected type, validation failed.")
180
190
  obj.timestamp&.is_a?(String) != false || raise("Passed value for field obj.timestamp is not the expected type, validation failed.")