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
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "json"
4
+ require_relative "client_message_workflow_node_started"
4
5
  require_relative "client_message_conversation_update"
5
6
  require_relative "client_message_hang"
6
7
  require_relative "client_message_metadata"
@@ -19,209 +20,192 @@ module Vapi
19
20
  # call. Configure the messages you'd like to receive in
20
21
  # `assistant.clientMessages`.
21
22
  class ClientMessageMessage
22
- # @return [Object]
23
- attr_reader :member
24
- # @return [String]
25
- attr_reader :discriminant
26
-
27
- private_class_method :new
28
- alias kind_of? is_a?
29
-
30
- # @param member [Object]
31
- # @param discriminant [String]
32
- # @return [Vapi::ClientMessageMessage]
33
- def initialize(member:, discriminant:)
34
- @member = member
35
- @discriminant = discriminant
36
- end
37
-
38
23
  # Deserialize a JSON object to an instance of ClientMessageMessage
39
24
  #
40
25
  # @param json_object [String]
41
26
  # @return [Vapi::ClientMessageMessage]
42
27
  def self.from_json(json_object:)
43
28
  struct = JSON.parse(json_object, object_class: OpenStruct)
44
- member = case struct.type
45
- when "conversation-update"
46
- Vapi::ClientMessageConversationUpdate.from_json(json_object: json_object)
47
- when "hang"
48
- Vapi::ClientMessageHang.from_json(json_object: json_object)
49
- when "metadata"
50
- Vapi::ClientMessageMetadata.from_json(json_object: json_object)
51
- when "model-output"
52
- Vapi::ClientMessageModelOutput.from_json(json_object: json_object)
53
- when "speech-update"
54
- Vapi::ClientMessageSpeechUpdate.from_json(json_object: json_object)
55
- when "transcript"
56
- Vapi::ClientMessageTranscript.from_json(json_object: json_object)
57
- when "tool-calls"
58
- Vapi::ClientMessageToolCalls.from_json(json_object: json_object)
59
- when "tool-calls-result"
60
- Vapi::ClientMessageToolCallsResult.from_json(json_object: json_object)
61
- when "transfer-update"
62
- Vapi::ClientMessageTransferUpdate.from_json(json_object: json_object)
63
- when "user-interrupted"
64
- Vapi::ClientMessageUserInterrupted.from_json(json_object: json_object)
65
- when "language-change-detected"
66
- Vapi::ClientMessageLanguageChangeDetected.from_json(json_object: json_object)
67
- when "voice-input"
68
- Vapi::ClientMessageVoiceInput.from_json(json_object: json_object)
69
- else
70
- Vapi::ClientMessageConversationUpdate.from_json(json_object: json_object)
71
- end
72
- new(member: member, discriminant: struct.type)
73
- end
29
+ begin
30
+ Vapi::ClientMessageWorkflowNodeStarted.validate_raw(obj: struct)
31
+ return Vapi::ClientMessageWorkflowNodeStarted.from_json(json_object: struct) unless struct.nil?
74
32
 
75
- # For Union Types, to_json functionality is delegated to the wrapped member.
76
- #
77
- # @return [String]
78
- def to_json(*_args)
79
- case @discriminant
80
- when "conversation-update"
81
- { **@member.to_json, type: @discriminant }.to_json
82
- when "hang"
83
- { **@member.to_json, type: @discriminant }.to_json
84
- when "metadata"
85
- { **@member.to_json, type: @discriminant }.to_json
86
- when "model-output"
87
- { **@member.to_json, type: @discriminant }.to_json
88
- when "speech-update"
89
- { **@member.to_json, type: @discriminant }.to_json
90
- when "transcript"
91
- { **@member.to_json, type: @discriminant }.to_json
92
- when "tool-calls"
93
- { **@member.to_json, type: @discriminant }.to_json
94
- when "tool-calls-result"
95
- { **@member.to_json, type: @discriminant }.to_json
96
- when "transfer-update"
97
- { **@member.to_json, type: @discriminant }.to_json
98
- when "user-interrupted"
99
- { **@member.to_json, type: @discriminant }.to_json
100
- when "language-change-detected"
101
- { **@member.to_json, type: @discriminant }.to_json
102
- when "voice-input"
103
- { **@member.to_json, type: @discriminant }.to_json
104
- else
105
- { "type": @discriminant, value: @member }.to_json
106
- end
107
- @member.to_json
108
- end
109
-
110
- # Leveraged for Union-type generation, validate_raw attempts to parse the given
111
- # hash and check each fields type against the current object's property
112
- # definitions.
113
- #
114
- # @param obj [Object]
115
- # @return [Void]
116
- def self.validate_raw(obj:)
117
- case obj.type
118
- when "conversation-update"
119
- Vapi::ClientMessageConversationUpdate.validate_raw(obj: obj)
120
- when "hang"
121
- Vapi::ClientMessageHang.validate_raw(obj: obj)
122
- when "metadata"
123
- Vapi::ClientMessageMetadata.validate_raw(obj: obj)
124
- when "model-output"
125
- Vapi::ClientMessageModelOutput.validate_raw(obj: obj)
126
- when "speech-update"
127
- Vapi::ClientMessageSpeechUpdate.validate_raw(obj: obj)
128
- when "transcript"
129
- Vapi::ClientMessageTranscript.validate_raw(obj: obj)
130
- when "tool-calls"
131
- Vapi::ClientMessageToolCalls.validate_raw(obj: obj)
132
- when "tool-calls-result"
133
- Vapi::ClientMessageToolCallsResult.validate_raw(obj: obj)
134
- when "transfer-update"
135
- Vapi::ClientMessageTransferUpdate.validate_raw(obj: obj)
136
- when "user-interrupted"
137
- Vapi::ClientMessageUserInterrupted.validate_raw(obj: obj)
138
- when "language-change-detected"
139
- Vapi::ClientMessageLanguageChangeDetected.validate_raw(obj: obj)
140
- when "voice-input"
141
- Vapi::ClientMessageVoiceInput.validate_raw(obj: obj)
142
- else
143
- raise("Passed value matched no type within the union, validation failed.")
33
+ return nil
34
+ rescue StandardError
35
+ # noop
144
36
  end
145
- end
37
+ begin
38
+ Vapi::ClientMessageConversationUpdate.validate_raw(obj: struct)
39
+ return Vapi::ClientMessageConversationUpdate.from_json(json_object: struct) unless struct.nil?
146
40
 
147
- # For Union Types, is_a? functionality is delegated to the wrapped member.
148
- #
149
- # @param obj [Object]
150
- # @return [Boolean]
151
- def is_a?(obj)
152
- @member.is_a?(obj)
153
- end
41
+ return nil
42
+ rescue StandardError
43
+ # noop
44
+ end
45
+ begin
46
+ Vapi::ClientMessageHang.validate_raw(obj: struct)
47
+ return Vapi::ClientMessageHang.from_json(json_object: struct) unless struct.nil?
154
48
 
155
- # @param member [Vapi::ClientMessageConversationUpdate]
156
- # @return [Vapi::ClientMessageMessage]
157
- def self.conversation_update(member:)
158
- new(member: member, discriminant: "conversation-update")
159
- end
49
+ return nil
50
+ rescue StandardError
51
+ # noop
52
+ end
53
+ begin
54
+ Vapi::ClientMessageMetadata.validate_raw(obj: struct)
55
+ return Vapi::ClientMessageMetadata.from_json(json_object: struct) unless struct.nil?
160
56
 
161
- # @param member [Vapi::ClientMessageHang]
162
- # @return [Vapi::ClientMessageMessage]
163
- def self.hang(member:)
164
- new(member: member, discriminant: "hang")
165
- end
57
+ return nil
58
+ rescue StandardError
59
+ # noop
60
+ end
61
+ begin
62
+ Vapi::ClientMessageModelOutput.validate_raw(obj: struct)
63
+ return Vapi::ClientMessageModelOutput.from_json(json_object: struct) unless struct.nil?
166
64
 
167
- # @param member [Vapi::ClientMessageMetadata]
168
- # @return [Vapi::ClientMessageMessage]
169
- def self.metadata(member:)
170
- new(member: member, discriminant: "metadata")
171
- end
65
+ return nil
66
+ rescue StandardError
67
+ # noop
68
+ end
69
+ begin
70
+ Vapi::ClientMessageSpeechUpdate.validate_raw(obj: struct)
71
+ return Vapi::ClientMessageSpeechUpdate.from_json(json_object: struct) unless struct.nil?
172
72
 
173
- # @param member [Vapi::ClientMessageModelOutput]
174
- # @return [Vapi::ClientMessageMessage]
175
- def self.model_output(member:)
176
- new(member: member, discriminant: "model-output")
177
- end
73
+ return nil
74
+ rescue StandardError
75
+ # noop
76
+ end
77
+ begin
78
+ Vapi::ClientMessageTranscript.validate_raw(obj: struct)
79
+ return Vapi::ClientMessageTranscript.from_json(json_object: struct) unless struct.nil?
178
80
 
179
- # @param member [Vapi::ClientMessageSpeechUpdate]
180
- # @return [Vapi::ClientMessageMessage]
181
- def self.speech_update(member:)
182
- new(member: member, discriminant: "speech-update")
183
- end
81
+ return nil
82
+ rescue StandardError
83
+ # noop
84
+ end
85
+ begin
86
+ Vapi::ClientMessageToolCalls.validate_raw(obj: struct)
87
+ return Vapi::ClientMessageToolCalls.from_json(json_object: struct) unless struct.nil?
184
88
 
185
- # @param member [Vapi::ClientMessageTranscript]
186
- # @return [Vapi::ClientMessageMessage]
187
- def self.transcript(member:)
188
- new(member: member, discriminant: "transcript")
189
- end
89
+ return nil
90
+ rescue StandardError
91
+ # noop
92
+ end
93
+ begin
94
+ Vapi::ClientMessageToolCallsResult.validate_raw(obj: struct)
95
+ return Vapi::ClientMessageToolCallsResult.from_json(json_object: struct) unless struct.nil?
190
96
 
191
- # @param member [Vapi::ClientMessageToolCalls]
192
- # @return [Vapi::ClientMessageMessage]
193
- def self.tool_calls(member:)
194
- new(member: member, discriminant: "tool-calls")
195
- end
97
+ return nil
98
+ rescue StandardError
99
+ # noop
100
+ end
101
+ begin
102
+ Vapi::ClientMessageTransferUpdate.validate_raw(obj: struct)
103
+ return Vapi::ClientMessageTransferUpdate.from_json(json_object: struct) unless struct.nil?
196
104
 
197
- # @param member [Vapi::ClientMessageToolCallsResult]
198
- # @return [Vapi::ClientMessageMessage]
199
- def self.tool_calls_result(member:)
200
- new(member: member, discriminant: "tool-calls-result")
201
- end
105
+ return nil
106
+ rescue StandardError
107
+ # noop
108
+ end
109
+ begin
110
+ Vapi::ClientMessageUserInterrupted.validate_raw(obj: struct)
111
+ return Vapi::ClientMessageUserInterrupted.from_json(json_object: struct) unless struct.nil?
202
112
 
203
- # @param member [Vapi::ClientMessageTransferUpdate]
204
- # @return [Vapi::ClientMessageMessage]
205
- def self.transfer_update(member:)
206
- new(member: member, discriminant: "transfer-update")
207
- end
113
+ return nil
114
+ rescue StandardError
115
+ # noop
116
+ end
117
+ begin
118
+ Vapi::ClientMessageLanguageChangeDetected.validate_raw(obj: struct)
119
+ return Vapi::ClientMessageLanguageChangeDetected.from_json(json_object: struct) unless struct.nil?
208
120
 
209
- # @param member [Vapi::ClientMessageUserInterrupted]
210
- # @return [Vapi::ClientMessageMessage]
211
- def self.user_interrupted(member:)
212
- new(member: member, discriminant: "user-interrupted")
213
- end
121
+ return nil
122
+ rescue StandardError
123
+ # noop
124
+ end
125
+ begin
126
+ Vapi::ClientMessageVoiceInput.validate_raw(obj: struct)
127
+ return Vapi::ClientMessageVoiceInput.from_json(json_object: struct) unless struct.nil?
214
128
 
215
- # @param member [Vapi::ClientMessageLanguageChangeDetected]
216
- # @return [Vapi::ClientMessageMessage]
217
- def self.language_change_detected(member:)
218
- new(member: member, discriminant: "language-change-detected")
129
+ return nil
130
+ rescue StandardError
131
+ # noop
132
+ end
133
+ struct
219
134
  end
220
135
 
221
- # @param member [Vapi::ClientMessageVoiceInput]
222
- # @return [Vapi::ClientMessageMessage]
223
- def self.voice_input(member:)
224
- new(member: member, discriminant: "voice-input")
136
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
137
+ # hash and check each fields type against the current object's property
138
+ # definitions.
139
+ #
140
+ # @param obj [Object]
141
+ # @return [Void]
142
+ def self.validate_raw(obj:)
143
+ begin
144
+ return Vapi::ClientMessageWorkflowNodeStarted.validate_raw(obj: obj)
145
+ rescue StandardError
146
+ # noop
147
+ end
148
+ begin
149
+ return Vapi::ClientMessageConversationUpdate.validate_raw(obj: obj)
150
+ rescue StandardError
151
+ # noop
152
+ end
153
+ begin
154
+ return Vapi::ClientMessageHang.validate_raw(obj: obj)
155
+ rescue StandardError
156
+ # noop
157
+ end
158
+ begin
159
+ return Vapi::ClientMessageMetadata.validate_raw(obj: obj)
160
+ rescue StandardError
161
+ # noop
162
+ end
163
+ begin
164
+ return Vapi::ClientMessageModelOutput.validate_raw(obj: obj)
165
+ rescue StandardError
166
+ # noop
167
+ end
168
+ begin
169
+ return Vapi::ClientMessageSpeechUpdate.validate_raw(obj: obj)
170
+ rescue StandardError
171
+ # noop
172
+ end
173
+ begin
174
+ return Vapi::ClientMessageTranscript.validate_raw(obj: obj)
175
+ rescue StandardError
176
+ # noop
177
+ end
178
+ begin
179
+ return Vapi::ClientMessageToolCalls.validate_raw(obj: obj)
180
+ rescue StandardError
181
+ # noop
182
+ end
183
+ begin
184
+ return Vapi::ClientMessageToolCallsResult.validate_raw(obj: obj)
185
+ rescue StandardError
186
+ # noop
187
+ end
188
+ begin
189
+ return Vapi::ClientMessageTransferUpdate.validate_raw(obj: obj)
190
+ rescue StandardError
191
+ # noop
192
+ end
193
+ begin
194
+ return Vapi::ClientMessageUserInterrupted.validate_raw(obj: obj)
195
+ rescue StandardError
196
+ # noop
197
+ end
198
+ begin
199
+ return Vapi::ClientMessageLanguageChangeDetected.validate_raw(obj: obj)
200
+ rescue StandardError
201
+ # noop
202
+ end
203
+ begin
204
+ return Vapi::ClientMessageVoiceInput.validate_raw(obj: obj)
205
+ rescue StandardError
206
+ # noop
207
+ end
208
+ raise("Passed value matched no type within the union, validation failed.")
225
209
  end
226
210
  end
227
211
  end
@@ -5,6 +5,9 @@ require "json"
5
5
 
6
6
  module Vapi
7
7
  class ClientMessageMetadata
8
+ # @return [String] This is the type of the message. "metadata" is sent to forward metadata to the
9
+ # client.
10
+ attr_reader :type
8
11
  # @return [String] This is the metadata content
9
12
  attr_reader :metadata
10
13
  # @return [OpenStruct] Additional properties unmapped to the current class definition
@@ -15,13 +18,16 @@ module Vapi
15
18
 
16
19
  OMIT = Object.new
17
20
 
21
+ # @param type [String] This is the type of the message. "metadata" is sent to forward metadata to the
22
+ # client.
18
23
  # @param metadata [String] This is the metadata content
19
24
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
20
25
  # @return [Vapi::ClientMessageMetadata]
21
- def initialize(metadata:, additional_properties: nil)
26
+ def initialize(type:, metadata:, additional_properties: nil)
27
+ @type = type
22
28
  @metadata = metadata
23
29
  @additional_properties = additional_properties
24
- @_field_set = { "metadata": metadata }
30
+ @_field_set = { "type": type, "metadata": metadata }
25
31
  end
26
32
 
27
33
  # Deserialize a JSON object to an instance of ClientMessageMetadata
@@ -31,8 +37,13 @@ module Vapi
31
37
  def self.from_json(json_object:)
32
38
  struct = JSON.parse(json_object, object_class: OpenStruct)
33
39
  parsed_json = JSON.parse(json_object)
40
+ type = parsed_json["type"]
34
41
  metadata = parsed_json["metadata"]
35
- new(metadata: metadata, additional_properties: struct)
42
+ new(
43
+ type: type,
44
+ metadata: metadata,
45
+ additional_properties: struct
46
+ )
36
47
  end
37
48
 
38
49
  # Serialize an instance of ClientMessageMetadata to a JSON object
@@ -49,6 +60,7 @@ module Vapi
49
60
  # @param obj [Object]
50
61
  # @return [Void]
51
62
  def self.validate_raw(obj:)
63
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
52
64
  obj.metadata.is_a?(String) != false || raise("Passed value for field obj.metadata is not the expected type, validation failed.")
53
65
  end
54
66
  end
@@ -5,6 +5,9 @@ require "json"
5
5
 
6
6
  module Vapi
7
7
  class ClientMessageModelOutput
8
+ # @return [String] This is the type of the message. "model-output" is sent as the model outputs
9
+ # tokens.
10
+ attr_reader :type
8
11
  # @return [Hash{String => Object}] This is the output of the model. It can be a token or tool call.
9
12
  attr_reader :output
10
13
  # @return [OpenStruct] Additional properties unmapped to the current class definition
@@ -15,13 +18,16 @@ module Vapi
15
18
 
16
19
  OMIT = Object.new
17
20
 
21
+ # @param type [String] This is the type of the message. "model-output" is sent as the model outputs
22
+ # tokens.
18
23
  # @param output [Hash{String => Object}] This is the output of the model. It can be a token or tool call.
19
24
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
20
25
  # @return [Vapi::ClientMessageModelOutput]
21
- def initialize(output:, additional_properties: nil)
26
+ def initialize(type:, output:, additional_properties: nil)
27
+ @type = type
22
28
  @output = output
23
29
  @additional_properties = additional_properties
24
- @_field_set = { "output": output }
30
+ @_field_set = { "type": type, "output": output }
25
31
  end
26
32
 
27
33
  # Deserialize a JSON object to an instance of ClientMessageModelOutput
@@ -31,8 +37,13 @@ module Vapi
31
37
  def self.from_json(json_object:)
32
38
  struct = JSON.parse(json_object, object_class: OpenStruct)
33
39
  parsed_json = JSON.parse(json_object)
40
+ type = parsed_json["type"]
34
41
  output = parsed_json["output"]
35
- new(output: output, additional_properties: struct)
42
+ new(
43
+ type: type,
44
+ output: output,
45
+ additional_properties: struct
46
+ )
36
47
  end
37
48
 
38
49
  # Serialize an instance of ClientMessageModelOutput to a JSON object
@@ -49,6 +60,7 @@ module Vapi
49
60
  # @param obj [Object]
50
61
  # @return [Void]
51
62
  def self.validate_raw(obj:)
63
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
52
64
  obj.output.is_a?(Hash) != false || raise("Passed value for field obj.output is not the expected type, validation failed.")
53
65
  end
54
66
  end
@@ -7,6 +7,9 @@ require "json"
7
7
 
8
8
  module Vapi
9
9
  class ClientMessageSpeechUpdate
10
+ # @return [String] This is the type of the message. "speech-update" is sent whenever assistant or
11
+ # user start or stop speaking.
12
+ attr_reader :type
10
13
  # @return [Vapi::ClientMessageSpeechUpdateStatus] This is the status of the speech update.
11
14
  attr_reader :status
12
15
  # @return [Vapi::ClientMessageSpeechUpdateRole] This is the role which the speech update is for.
@@ -19,15 +22,18 @@ module Vapi
19
22
 
20
23
  OMIT = Object.new
21
24
 
25
+ # @param type [String] This is the type of the message. "speech-update" is sent whenever assistant or
26
+ # user start or stop speaking.
22
27
  # @param status [Vapi::ClientMessageSpeechUpdateStatus] This is the status of the speech update.
23
28
  # @param role [Vapi::ClientMessageSpeechUpdateRole] This is the role which the speech update is for.
24
29
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
25
30
  # @return [Vapi::ClientMessageSpeechUpdate]
26
- def initialize(status:, role:, additional_properties: nil)
31
+ def initialize(type:, status:, role:, additional_properties: nil)
32
+ @type = type
27
33
  @status = status
28
34
  @role = role
29
35
  @additional_properties = additional_properties
30
- @_field_set = { "status": status, "role": role }
36
+ @_field_set = { "type": type, "status": status, "role": role }
31
37
  end
32
38
 
33
39
  # Deserialize a JSON object to an instance of ClientMessageSpeechUpdate
@@ -37,9 +43,11 @@ module Vapi
37
43
  def self.from_json(json_object:)
38
44
  struct = JSON.parse(json_object, object_class: OpenStruct)
39
45
  parsed_json = JSON.parse(json_object)
46
+ type = parsed_json["type"]
40
47
  status = parsed_json["status"]
41
48
  role = parsed_json["role"]
42
49
  new(
50
+ type: type,
43
51
  status: status,
44
52
  role: role,
45
53
  additional_properties: struct
@@ -60,6 +68,7 @@ module Vapi
60
68
  # @param obj [Object]
61
69
  # @return [Void]
62
70
  def self.validate_raw(obj:)
71
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
63
72
  obj.status.is_a?(Vapi::ClientMessageSpeechUpdateStatus) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
64
73
  obj.role.is_a?(Vapi::ClientMessageSpeechUpdateRole) != false || raise("Passed value for field obj.role is not the expected type, validation failed.")
65
74
  end
@@ -7,6 +7,8 @@ require "json"
7
7
 
8
8
  module Vapi
9
9
  class ClientMessageToolCalls
10
+ # @return [String] This is the type of the message. "tool-calls" is sent to call a tool.
11
+ attr_reader :type
10
12
  # @return [Array<Vapi::ClientMessageToolCallsToolWithToolCallListItem>] This is the list of tools calls that the model is requesting along with the
11
13
  # original tool configuration.
12
14
  attr_reader :tool_with_tool_call_list
@@ -20,16 +22,24 @@ module Vapi
20
22
 
21
23
  OMIT = Object.new
22
24
 
25
+ # @param type [String] This is the type of the message. "tool-calls" is sent to call a tool.
23
26
  # @param tool_with_tool_call_list [Array<Vapi::ClientMessageToolCallsToolWithToolCallListItem>] This is the list of tools calls that the model is requesting along with the
24
27
  # original tool configuration.
25
28
  # @param tool_call_list [Array<Vapi::ToolCall>] This is the list of tool calls that the model is requesting.
26
29
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
27
30
  # @return [Vapi::ClientMessageToolCalls]
28
- def initialize(tool_with_tool_call_list:, tool_call_list:, additional_properties: nil)
31
+ def initialize(tool_with_tool_call_list:, tool_call_list:, type: OMIT, additional_properties: nil)
32
+ @type = type if type != OMIT
29
33
  @tool_with_tool_call_list = tool_with_tool_call_list
30
34
  @tool_call_list = tool_call_list
31
35
  @additional_properties = additional_properties
32
- @_field_set = { "toolWithToolCallList": tool_with_tool_call_list, "toolCallList": tool_call_list }
36
+ @_field_set = {
37
+ "type": type,
38
+ "toolWithToolCallList": tool_with_tool_call_list,
39
+ "toolCallList": tool_call_list
40
+ }.reject do |_k, v|
41
+ v == OMIT
42
+ end
33
43
  end
34
44
 
35
45
  # Deserialize a JSON object to an instance of ClientMessageToolCalls
@@ -39,6 +49,7 @@ module Vapi
39
49
  def self.from_json(json_object:)
40
50
  struct = JSON.parse(json_object, object_class: OpenStruct)
41
51
  parsed_json = JSON.parse(json_object)
52
+ type = parsed_json["type"]
42
53
  tool_with_tool_call_list = parsed_json["toolWithToolCallList"]&.map do |item|
43
54
  item = item.to_json
44
55
  Vapi::ClientMessageToolCallsToolWithToolCallListItem.from_json(json_object: item)
@@ -48,6 +59,7 @@ module Vapi
48
59
  Vapi::ToolCall.from_json(json_object: item)
49
60
  end
50
61
  new(
62
+ type: type,
51
63
  tool_with_tool_call_list: tool_with_tool_call_list,
52
64
  tool_call_list: tool_call_list,
53
65
  additional_properties: struct
@@ -68,6 +80,7 @@ module Vapi
68
80
  # @param obj [Object]
69
81
  # @return [Void]
70
82
  def self.validate_raw(obj:)
83
+ obj.type&.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
71
84
  obj.tool_with_tool_call_list.is_a?(Array) != false || raise("Passed value for field obj.tool_with_tool_call_list is not the expected type, validation failed.")
72
85
  obj.tool_call_list.is_a?(Array) != false || raise("Passed value for field obj.tool_call_list is not the expected type, validation failed.")
73
86
  end
@@ -5,6 +5,9 @@ require "json"
5
5
 
6
6
  module Vapi
7
7
  class ClientMessageToolCallsResult
8
+ # @return [String] This is the type of the message. "tool-calls-result" is sent to forward the
9
+ # result of a tool call to the client.
10
+ attr_reader :type
8
11
  # @return [Hash{String => Object}] This is the result of the tool call.
9
12
  attr_reader :tool_call_result
10
13
  # @return [OpenStruct] Additional properties unmapped to the current class definition
@@ -15,13 +18,16 @@ module Vapi
15
18
 
16
19
  OMIT = Object.new
17
20
 
21
+ # @param type [String] This is the type of the message. "tool-calls-result" is sent to forward the
22
+ # result of a tool call to the client.
18
23
  # @param tool_call_result [Hash{String => Object}] This is the result of the tool call.
19
24
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
20
25
  # @return [Vapi::ClientMessageToolCallsResult]
21
- def initialize(tool_call_result:, additional_properties: nil)
26
+ def initialize(type:, tool_call_result:, additional_properties: nil)
27
+ @type = type
22
28
  @tool_call_result = tool_call_result
23
29
  @additional_properties = additional_properties
24
- @_field_set = { "toolCallResult": tool_call_result }
30
+ @_field_set = { "type": type, "toolCallResult": tool_call_result }
25
31
  end
26
32
 
27
33
  # Deserialize a JSON object to an instance of ClientMessageToolCallsResult
@@ -31,8 +37,13 @@ module Vapi
31
37
  def self.from_json(json_object:)
32
38
  struct = JSON.parse(json_object, object_class: OpenStruct)
33
39
  parsed_json = JSON.parse(json_object)
40
+ type = parsed_json["type"]
34
41
  tool_call_result = parsed_json["toolCallResult"]
35
- new(tool_call_result: tool_call_result, additional_properties: struct)
42
+ new(
43
+ type: type,
44
+ tool_call_result: tool_call_result,
45
+ additional_properties: struct
46
+ )
36
47
  end
37
48
 
38
49
  # Serialize an instance of ClientMessageToolCallsResult to a JSON object
@@ -49,6 +60,7 @@ module Vapi
49
60
  # @param obj [Object]
50
61
  # @return [Void]
51
62
  def self.validate_raw(obj:)
63
+ obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
52
64
  obj.tool_call_result.is_a?(Hash) != false || raise("Passed value for field obj.tool_call_result is not the expected type, validation failed.")
53
65
  end
54
66
  end