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
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative "vapi_phone_number_fallback_destination"
4
4
  require "date"
5
+ require_relative "vapi_phone_number_status"
5
6
  require_relative "server"
6
7
  require_relative "sip_authentication"
7
8
  require "ostruct"
@@ -24,6 +25,10 @@ module Vapi
24
25
  attr_reader :created_at
25
26
  # @return [DateTime] This is the ISO 8601 date-time string of when the phone number was last updated.
26
27
  attr_reader :updated_at
28
+ # @return [Vapi::VapiPhoneNumberStatus] This is the status of the phone number.
29
+ attr_reader :status
30
+ # @return [String] These are the digits of the phone number you purchased from Vapi.
31
+ attr_reader :number
27
32
  # @return [String] This is the name of the phone number. This is just for your own reference.
28
33
  attr_reader :name
29
34
  # @return [String] This is the assistant that will be used for incoming calls to this phone number.
@@ -43,6 +48,8 @@ module Vapi
43
48
  # 2. phoneNumber.server
44
49
  # 3. org.server
45
50
  attr_reader :server
51
+ # @return [String] This is the area code of the phone number to purchase.
52
+ attr_reader :number_desired_area_code
46
53
  # @return [String] This is the SIP URI of the phone number. You can SIP INVITE this. The assistant
47
54
  # attached to this number will answer.
48
55
  # This is case-insensitive.
@@ -69,6 +76,8 @@ module Vapi
69
76
  # @param org_id [String] This is the unique identifier for the org that this phone number belongs to.
70
77
  # @param created_at [DateTime] This is the ISO 8601 date-time string of when the phone number was created.
71
78
  # @param updated_at [DateTime] This is the ISO 8601 date-time string of when the phone number was last updated.
79
+ # @param status [Vapi::VapiPhoneNumberStatus] This is the status of the phone number.
80
+ # @param number [String] These are the digits of the phone number you purchased from Vapi.
72
81
  # @param name [String] This is the name of the phone number. This is just for your own reference.
73
82
  # @param assistant_id [String] This is the assistant that will be used for incoming calls to this phone number.
74
83
  # If neither `assistantId` nor `squadId` is set, `assistant-request` will be sent
@@ -84,6 +93,7 @@ module Vapi
84
93
  # 1. assistant.server
85
94
  # 2. phoneNumber.server
86
95
  # 3. org.server
96
+ # @param number_desired_area_code [String] This is the area code of the phone number to purchase.
87
97
  # @param sip_uri [String] This is the SIP URI of the phone number. You can SIP INVITE this. The assistant
88
98
  # attached to this number will answer.
89
99
  # This is case-insensitive.
@@ -92,18 +102,21 @@ module Vapi
92
102
  # accepted.
93
103
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
94
104
  # @return [Vapi::VapiPhoneNumber]
95
- def initialize(id:, org_id:, created_at:, updated_at:, sip_uri:, fallback_destination: OMIT, name: OMIT, assistant_id: OMIT,
96
- squad_id: OMIT, server: OMIT, authentication: OMIT, additional_properties: nil)
105
+ def initialize(id:, org_id:, created_at:, updated_at:, fallback_destination: OMIT, status: OMIT, number: OMIT,
106
+ name: OMIT, assistant_id: OMIT, squad_id: OMIT, server: OMIT, number_desired_area_code: OMIT, sip_uri: OMIT, authentication: OMIT, additional_properties: nil)
97
107
  @fallback_destination = fallback_destination if fallback_destination != OMIT
98
108
  @id = id
99
109
  @org_id = org_id
100
110
  @created_at = created_at
101
111
  @updated_at = updated_at
112
+ @status = status if status != OMIT
113
+ @number = number if number != OMIT
102
114
  @name = name if name != OMIT
103
115
  @assistant_id = assistant_id if assistant_id != OMIT
104
116
  @squad_id = squad_id if squad_id != OMIT
105
117
  @server = server if server != OMIT
106
- @sip_uri = sip_uri
118
+ @number_desired_area_code = number_desired_area_code if number_desired_area_code != OMIT
119
+ @sip_uri = sip_uri if sip_uri != OMIT
107
120
  @authentication = authentication if authentication != OMIT
108
121
  @additional_properties = additional_properties
109
122
  @_field_set = {
@@ -112,10 +125,13 @@ module Vapi
112
125
  "orgId": org_id,
113
126
  "createdAt": created_at,
114
127
  "updatedAt": updated_at,
128
+ "status": status,
129
+ "number": number,
115
130
  "name": name,
116
131
  "assistantId": assistant_id,
117
132
  "squadId": squad_id,
118
133
  "server": server,
134
+ "numberDesiredAreaCode": number_desired_area_code,
119
135
  "sipUri": sip_uri,
120
136
  "authentication": authentication
121
137
  }.reject do |_k, v|
@@ -140,6 +156,8 @@ module Vapi
140
156
  org_id = parsed_json["orgId"]
141
157
  created_at = (DateTime.parse(parsed_json["createdAt"]) unless parsed_json["createdAt"].nil?)
142
158
  updated_at = (DateTime.parse(parsed_json["updatedAt"]) unless parsed_json["updatedAt"].nil?)
159
+ status = parsed_json["status"]
160
+ number = parsed_json["number"]
143
161
  name = parsed_json["name"]
144
162
  assistant_id = parsed_json["assistantId"]
145
163
  squad_id = parsed_json["squadId"]
@@ -149,6 +167,7 @@ module Vapi
149
167
  server = parsed_json["server"].to_json
150
168
  server = Vapi::Server.from_json(json_object: server)
151
169
  end
170
+ number_desired_area_code = parsed_json["numberDesiredAreaCode"]
152
171
  sip_uri = parsed_json["sipUri"]
153
172
  if parsed_json["authentication"].nil?
154
173
  authentication = nil
@@ -162,10 +181,13 @@ module Vapi
162
181
  org_id: org_id,
163
182
  created_at: created_at,
164
183
  updated_at: updated_at,
184
+ status: status,
185
+ number: number,
165
186
  name: name,
166
187
  assistant_id: assistant_id,
167
188
  squad_id: squad_id,
168
189
  server: server,
190
+ number_desired_area_code: number_desired_area_code,
169
191
  sip_uri: sip_uri,
170
192
  authentication: authentication,
171
193
  additional_properties: struct
@@ -191,11 +213,14 @@ module Vapi
191
213
  obj.org_id.is_a?(String) != false || raise("Passed value for field obj.org_id is not the expected type, validation failed.")
192
214
  obj.created_at.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.")
193
215
  obj.updated_at.is_a?(DateTime) != false || raise("Passed value for field obj.updated_at is not the expected type, validation failed.")
216
+ obj.status&.is_a?(Vapi::VapiPhoneNumberStatus) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
217
+ obj.number&.is_a?(String) != false || raise("Passed value for field obj.number is not the expected type, validation failed.")
194
218
  obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
195
219
  obj.assistant_id&.is_a?(String) != false || raise("Passed value for field obj.assistant_id is not the expected type, validation failed.")
196
220
  obj.squad_id&.is_a?(String) != false || raise("Passed value for field obj.squad_id is not the expected type, validation failed.")
197
221
  obj.server.nil? || Vapi::Server.validate_raw(obj: obj.server)
198
- obj.sip_uri.is_a?(String) != false || raise("Passed value for field obj.sip_uri is not the expected type, validation failed.")
222
+ obj.number_desired_area_code&.is_a?(String) != false || raise("Passed value for field obj.number_desired_area_code is not the expected type, validation failed.")
223
+ obj.sip_uri&.is_a?(String) != false || raise("Passed value for field obj.sip_uri is not the expected type, validation failed.")
199
224
  obj.authentication.nil? || Vapi::SipAuthentication.validate_raw(obj: obj.authentication)
200
225
  end
201
226
  end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vapi
4
+ # This is the status of the phone number.
5
+ class VapiPhoneNumberStatus
6
+ ACTIVE = "active"
7
+ ACTIVATING = "activating"
8
+ BLOCKED = "blocked"
9
+ end
10
+ end
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative "vonage_phone_number_fallback_destination"
4
4
  require "date"
5
+ require_relative "vonage_phone_number_status"
5
6
  require_relative "server"
6
7
  require "ostruct"
7
8
  require "json"
@@ -23,6 +24,8 @@ module Vapi
23
24
  attr_reader :created_at
24
25
  # @return [DateTime] This is the ISO 8601 date-time string of when the phone number was last updated.
25
26
  attr_reader :updated_at
27
+ # @return [Vapi::VonagePhoneNumberStatus] This is the status of the phone number.
28
+ attr_reader :status
26
29
  # @return [String] This is the name of the phone number. This is just for your own reference.
27
30
  attr_reader :name
28
31
  # @return [String] This is the assistant that will be used for incoming calls to this phone number.
@@ -65,6 +68,7 @@ module Vapi
65
68
  # @param org_id [String] This is the unique identifier for the org that this phone number belongs to.
66
69
  # @param created_at [DateTime] This is the ISO 8601 date-time string of when the phone number was created.
67
70
  # @param updated_at [DateTime] This is the ISO 8601 date-time string of when the phone number was last updated.
71
+ # @param status [Vapi::VonagePhoneNumberStatus] This is the status of the phone number.
68
72
  # @param name [String] This is the name of the phone number. This is just for your own reference.
69
73
  # @param assistant_id [String] This is the assistant that will be used for incoming calls to this phone number.
70
74
  # If neither `assistantId` nor `squadId` is set, `assistant-request` will be sent
@@ -85,13 +89,14 @@ module Vapi
85
89
  # like call transfer and hang up.
86
90
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
87
91
  # @return [Vapi::VonagePhoneNumber]
88
- def initialize(id:, org_id:, created_at:, updated_at:, number:, credential_id:, fallback_destination: OMIT, name: OMIT, assistant_id: OMIT,
89
- squad_id: OMIT, server: OMIT, additional_properties: nil)
92
+ def initialize(id:, org_id:, created_at:, updated_at:, number:, credential_id:, fallback_destination: OMIT, status: OMIT, name: OMIT,
93
+ assistant_id: OMIT, squad_id: OMIT, server: OMIT, additional_properties: nil)
90
94
  @fallback_destination = fallback_destination if fallback_destination != OMIT
91
95
  @id = id
92
96
  @org_id = org_id
93
97
  @created_at = created_at
94
98
  @updated_at = updated_at
99
+ @status = status if status != OMIT
95
100
  @name = name if name != OMIT
96
101
  @assistant_id = assistant_id if assistant_id != OMIT
97
102
  @squad_id = squad_id if squad_id != OMIT
@@ -105,6 +110,7 @@ module Vapi
105
110
  "orgId": org_id,
106
111
  "createdAt": created_at,
107
112
  "updatedAt": updated_at,
113
+ "status": status,
108
114
  "name": name,
109
115
  "assistantId": assistant_id,
110
116
  "squadId": squad_id,
@@ -133,6 +139,7 @@ module Vapi
133
139
  org_id = parsed_json["orgId"]
134
140
  created_at = (DateTime.parse(parsed_json["createdAt"]) unless parsed_json["createdAt"].nil?)
135
141
  updated_at = (DateTime.parse(parsed_json["updatedAt"]) unless parsed_json["updatedAt"].nil?)
142
+ status = parsed_json["status"]
136
143
  name = parsed_json["name"]
137
144
  assistant_id = parsed_json["assistantId"]
138
145
  squad_id = parsed_json["squadId"]
@@ -150,6 +157,7 @@ module Vapi
150
157
  org_id: org_id,
151
158
  created_at: created_at,
152
159
  updated_at: updated_at,
160
+ status: status,
153
161
  name: name,
154
162
  assistant_id: assistant_id,
155
163
  squad_id: squad_id,
@@ -179,6 +187,7 @@ module Vapi
179
187
  obj.org_id.is_a?(String) != false || raise("Passed value for field obj.org_id is not the expected type, validation failed.")
180
188
  obj.created_at.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.")
181
189
  obj.updated_at.is_a?(DateTime) != false || raise("Passed value for field obj.updated_at is not the expected type, validation failed.")
190
+ obj.status&.is_a?(Vapi::VonagePhoneNumberStatus) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
182
191
  obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
183
192
  obj.assistant_id&.is_a?(String) != false || raise("Passed value for field obj.assistant_id is not the expected type, validation failed.")
184
193
  obj.squad_id&.is_a?(String) != false || raise("Passed value for field obj.squad_id is not the expected type, validation failed.")
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vapi
4
+ # This is the status of the phone number.
5
+ class VonagePhoneNumberStatus
6
+ ACTIVE = "active"
7
+ ACTIVATING = "activating"
8
+ BLOCKED = "blocked"
9
+ end
10
+ end
@@ -8,8 +8,6 @@ require "json"
8
8
 
9
9
  module Vapi
10
10
  class Workflow
11
- # @return [String]
12
- attr_reader :type
13
11
  # @return [Array<Vapi::WorkflowNodesItem>]
14
12
  attr_reader :nodes
15
13
  # @return [String]
@@ -32,7 +30,6 @@ module Vapi
32
30
 
33
31
  OMIT = Object.new
34
32
 
35
- # @param type [String]
36
33
  # @param nodes [Array<Vapi::WorkflowNodesItem>]
37
34
  # @param id [String]
38
35
  # @param org_id [String]
@@ -42,8 +39,7 @@ module Vapi
42
39
  # @param edges [Array<Vapi::Edge>]
43
40
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
44
41
  # @return [Vapi::Workflow]
45
- def initialize(type:, nodes:, id:, org_id:, created_at:, updated_at:, name:, edges:, additional_properties: nil)
46
- @type = type
42
+ def initialize(nodes:, id:, org_id:, created_at:, updated_at:, name:, edges:, additional_properties: nil)
47
43
  @nodes = nodes
48
44
  @id = id
49
45
  @org_id = org_id
@@ -53,7 +49,6 @@ module Vapi
53
49
  @edges = edges
54
50
  @additional_properties = additional_properties
55
51
  @_field_set = {
56
- "type": type,
57
52
  "nodes": nodes,
58
53
  "id": id,
59
54
  "orgId": org_id,
@@ -71,7 +66,6 @@ module Vapi
71
66
  def self.from_json(json_object:)
72
67
  struct = JSON.parse(json_object, object_class: OpenStruct)
73
68
  parsed_json = JSON.parse(json_object)
74
- type = parsed_json["type"]
75
69
  nodes = parsed_json["nodes"]&.map do |item|
76
70
  item = item.to_json
77
71
  Vapi::WorkflowNodesItem.from_json(json_object: item)
@@ -86,7 +80,6 @@ module Vapi
86
80
  Vapi::Edge.from_json(json_object: item)
87
81
  end
88
82
  new(
89
- type: type,
90
83
  nodes: nodes,
91
84
  id: id,
92
85
  org_id: org_id,
@@ -112,7 +105,6 @@ module Vapi
112
105
  # @param obj [Object]
113
106
  # @return [Void]
114
107
  def self.validate_raw(obj:)
115
- obj.type.is_a?(String) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
116
108
  obj.nodes.is_a?(Array) != false || raise("Passed value for field obj.nodes is not the expected type, validation failed.")
117
109
  obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
118
110
  obj.org_id.is_a?(String) != false || raise("Passed value for field obj.org_id is not the expected type, validation failed.")
@@ -3,49 +3,70 @@
3
3
  require "json"
4
4
  require_relative "say"
5
5
  require_relative "gather"
6
- require_relative "create_workflow_dto"
6
+ require_relative "api_request"
7
+ require_relative "hangup"
8
+ require_relative "transfer"
7
9
 
8
10
  module Vapi
9
11
  class WorkflowNodesItem
12
+ # @return [Object]
13
+ attr_reader :member
14
+ # @return [String]
15
+ attr_reader :discriminant
16
+
17
+ private_class_method :new
18
+ alias kind_of? is_a?
19
+
20
+ # @param member [Object]
21
+ # @param discriminant [String]
22
+ # @return [Vapi::WorkflowNodesItem]
23
+ def initialize(member:, discriminant:)
24
+ @member = member
25
+ @discriminant = discriminant
26
+ end
27
+
10
28
  # Deserialize a JSON object to an instance of WorkflowNodesItem
11
29
  #
12
30
  # @param json_object [String]
13
31
  # @return [Vapi::WorkflowNodesItem]
14
32
  def self.from_json(json_object:)
15
33
  struct = JSON.parse(json_object, object_class: OpenStruct)
16
- begin
17
- Vapi::Say.validate_raw(obj: struct)
18
- return Vapi::Say.from_json(json_object: struct) unless struct.nil?
19
-
20
- return nil
21
- rescue StandardError
22
- # noop
23
- end
24
- begin
25
- Vapi::Gather.validate_raw(obj: struct)
26
- return Vapi::Gather.from_json(json_object: struct) unless struct.nil?
27
-
28
- return nil
29
- rescue StandardError
30
- # noop
31
- end
32
- begin
33
- struct.is_a?(Object) != false || raise("Passed value for field struct is not the expected type, validation failed.")
34
- return struct unless struct.nil?
35
-
36
- return nil
37
- rescue StandardError
38
- # noop
39
- end
40
- begin
41
- Vapi::CreateWorkflowDto.validate_raw(obj: struct)
42
- return Vapi::CreateWorkflowDto.from_json(json_object: struct) unless struct.nil?
34
+ member = case struct.type
35
+ when "say"
36
+ Vapi::Say.from_json(json_object: json_object)
37
+ when "gather"
38
+ Vapi::Gather.from_json(json_object: json_object)
39
+ when "apiRequest"
40
+ Vapi::ApiRequest.from_json(json_object: json_object)
41
+ when "hangup"
42
+ Vapi::Hangup.from_json(json_object: json_object)
43
+ when "transfer"
44
+ Vapi::Transfer.from_json(json_object: json_object)
45
+ else
46
+ Vapi::Say.from_json(json_object: json_object)
47
+ end
48
+ new(member: member, discriminant: struct.type)
49
+ end
43
50
 
44
- return nil
45
- rescue StandardError
46
- # noop
51
+ # For Union Types, to_json functionality is delegated to the wrapped member.
52
+ #
53
+ # @return [String]
54
+ def to_json(*_args)
55
+ case @discriminant
56
+ when "say"
57
+ { **@member.to_json, type: @discriminant }.to_json
58
+ when "gather"
59
+ { **@member.to_json, type: @discriminant }.to_json
60
+ when "apiRequest"
61
+ { **@member.to_json, type: @discriminant }.to_json
62
+ when "hangup"
63
+ { **@member.to_json, type: @discriminant }.to_json
64
+ when "transfer"
65
+ { **@member.to_json, type: @discriminant }.to_json
66
+ else
67
+ { "type": @discriminant, value: @member }.to_json
47
68
  end
48
- struct
69
+ @member.to_json
49
70
  end
50
71
 
51
72
  # Leveraged for Union-type generation, validate_raw attempts to parse the given
@@ -55,27 +76,58 @@ module Vapi
55
76
  # @param obj [Object]
56
77
  # @return [Void]
57
78
  def self.validate_raw(obj:)
58
- begin
59
- return Vapi::Say.validate_raw(obj: obj)
60
- rescue StandardError
61
- # noop
62
- end
63
- begin
64
- return Vapi::Gather.validate_raw(obj: obj)
65
- rescue StandardError
66
- # noop
79
+ case obj.type
80
+ when "say"
81
+ Vapi::Say.validate_raw(obj: obj)
82
+ when "gather"
83
+ Vapi::Gather.validate_raw(obj: obj)
84
+ when "apiRequest"
85
+ Vapi::ApiRequest.validate_raw(obj: obj)
86
+ when "hangup"
87
+ Vapi::Hangup.validate_raw(obj: obj)
88
+ when "transfer"
89
+ Vapi::Transfer.validate_raw(obj: obj)
90
+ else
91
+ raise("Passed value matched no type within the union, validation failed.")
67
92
  end
68
- begin
69
- return obj.is_a?(Object) != false || raise("Passed value for field obj is not the expected type, validation failed.")
70
- rescue StandardError
71
- # noop
72
- end
73
- begin
74
- return Vapi::CreateWorkflowDto.validate_raw(obj: obj)
75
- rescue StandardError
76
- # noop
77
- end
78
- raise("Passed value matched no type within the union, validation failed.")
93
+ end
94
+
95
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
96
+ #
97
+ # @param obj [Object]
98
+ # @return [Boolean]
99
+ def is_a?(obj)
100
+ @member.is_a?(obj)
101
+ end
102
+
103
+ # @param member [Vapi::Say]
104
+ # @return [Vapi::WorkflowNodesItem]
105
+ def self.say(member:)
106
+ new(member: member, discriminant: "say")
107
+ end
108
+
109
+ # @param member [Vapi::Gather]
110
+ # @return [Vapi::WorkflowNodesItem]
111
+ def self.gather(member:)
112
+ new(member: member, discriminant: "gather")
113
+ end
114
+
115
+ # @param member [Vapi::ApiRequest]
116
+ # @return [Vapi::WorkflowNodesItem]
117
+ def self.api_request(member:)
118
+ new(member: member, discriminant: "apiRequest")
119
+ end
120
+
121
+ # @param member [Vapi::Hangup]
122
+ # @return [Vapi::WorkflowNodesItem]
123
+ def self.hangup(member:)
124
+ new(member: member, discriminant: "hangup")
125
+ end
126
+
127
+ # @param member [Vapi::Transfer]
128
+ # @return [Vapi::WorkflowNodesItem]
129
+ def self.transfer(member:)
130
+ new(member: member, discriminant: "transfer")
79
131
  end
80
132
  end
81
133
  end
@@ -3,6 +3,7 @@
3
3
  require_relative "open_ai_message"
4
4
  require_relative "xai_model_tools_item"
5
5
  require_relative "create_custom_knowledge_base_dto"
6
+ require_relative "xai_model_model"
6
7
  require "ostruct"
7
8
  require "json"
8
9
 
@@ -22,7 +23,7 @@ module Vapi
22
23
  attr_reader :knowledge_base
23
24
  # @return [String] This is the ID of the knowledge base the model will use.
24
25
  attr_reader :knowledge_base_id
25
- # @return [String] This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b
26
+ # @return [Vapi::XaiModelModel] This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b
26
27
  attr_reader :model
27
28
  # @return [Float] This is the temperature that will be used for calls. Default is 0 to leverage
28
29
  # caching for lower latency.
@@ -59,7 +60,7 @@ module Vapi
59
60
  # Both `tools` and `toolIds` can be used together.
60
61
  # @param knowledge_base [Vapi::CreateCustomKnowledgeBaseDto] These are the options for the knowledge base.
61
62
  # @param knowledge_base_id [String] This is the ID of the knowledge base the model will use.
62
- # @param model [String] This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b
63
+ # @param model [Vapi::XaiModelModel] This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b
63
64
  # @param temperature [Float] This is the temperature that will be used for calls. Default is 0 to leverage
64
65
  # caching for lower latency.
65
66
  # @param max_tokens [Float] This is the max number of tokens that the assistant will be allowed to generate
@@ -167,7 +168,7 @@ module Vapi
167
168
  obj.tool_ids&.is_a?(Array) != false || raise("Passed value for field obj.tool_ids is not the expected type, validation failed.")
168
169
  obj.knowledge_base.nil? || Vapi::CreateCustomKnowledgeBaseDto.validate_raw(obj: obj.knowledge_base)
169
170
  obj.knowledge_base_id&.is_a?(String) != false || raise("Passed value for field obj.knowledge_base_id is not the expected type, validation failed.")
170
- obj.model.is_a?(String) != false || raise("Passed value for field obj.model is not the expected type, validation failed.")
171
+ obj.model.is_a?(Vapi::XaiModelModel) != false || raise("Passed value for field obj.model is not the expected type, validation failed.")
171
172
  obj.temperature&.is_a?(Float) != false || raise("Passed value for field obj.temperature is not the expected type, validation failed.")
172
173
  obj.max_tokens&.is_a?(Float) != false || raise("Passed value for field obj.max_tokens is not the expected type, validation failed.")
173
174
  obj.emotion_recognition_enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.emotion_recognition_enabled is not the expected type, validation failed.")
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vapi
4
+ # This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b
5
+ class XaiModelModel
6
+ GROK_BETA = "grok-beta"
7
+ GROK_2 = "grok-2"
8
+ GROK_3 = "grok-3"
9
+ end
10
+ end
@@ -13,6 +13,9 @@ require_relative "vapi_server_sdk/tools/client"
13
13
  require_relative "vapi_server_sdk/files/client"
14
14
  require_relative "vapi_server_sdk/analytics/client"
15
15
  require_relative "vapi_server_sdk/logs/client"
16
+ require_relative "vapi_server_sdk/test_suites/client"
17
+ require_relative "vapi_server_sdk/test_suite_tests/client"
18
+ require_relative "vapi_server_sdk/test_suite_runs/client"
16
19
 
17
20
  module Vapi
18
21
  class Client
@@ -36,6 +39,12 @@ module Vapi
36
39
  attr_reader :analytics
37
40
  # @return [Vapi::LogsClient]
38
41
  attr_reader :logs
42
+ # @return [Vapi::TestSuitesClient]
43
+ attr_reader :test_suites
44
+ # @return [Vapi::TestSuiteTestsClient]
45
+ attr_reader :test_suite_tests
46
+ # @return [Vapi::TestSuiteRunsClient]
47
+ attr_reader :test_suite_runs
39
48
 
40
49
  # @param base_url [String]
41
50
  # @param environment [Vapi::Environment]
@@ -62,6 +71,9 @@ module Vapi
62
71
  @files = Vapi::FilesClient.new(request_client: @request_client)
63
72
  @analytics = Vapi::AnalyticsClient.new(request_client: @request_client)
64
73
  @logs = Vapi::LogsClient.new(request_client: @request_client)
74
+ @test_suites = Vapi::TestSuitesClient.new(request_client: @request_client)
75
+ @test_suite_tests = Vapi::TestSuiteTestsClient.new(request_client: @request_client)
76
+ @test_suite_runs = Vapi::TestSuiteRunsClient.new(request_client: @request_client)
65
77
  end
66
78
  end
67
79
 
@@ -86,6 +98,12 @@ module Vapi
86
98
  attr_reader :analytics
87
99
  # @return [Vapi::AsyncLogsClient]
88
100
  attr_reader :logs
101
+ # @return [Vapi::AsyncTestSuitesClient]
102
+ attr_reader :test_suites
103
+ # @return [Vapi::AsyncTestSuiteTestsClient]
104
+ attr_reader :test_suite_tests
105
+ # @return [Vapi::AsyncTestSuiteRunsClient]
106
+ attr_reader :test_suite_runs
89
107
 
90
108
  # @param base_url [String]
91
109
  # @param environment [Vapi::Environment]
@@ -112,6 +130,9 @@ module Vapi
112
130
  @files = Vapi::AsyncFilesClient.new(request_client: @async_request_client)
113
131
  @analytics = Vapi::AsyncAnalyticsClient.new(request_client: @async_request_client)
114
132
  @logs = Vapi::AsyncLogsClient.new(request_client: @async_request_client)
133
+ @test_suites = Vapi::AsyncTestSuitesClient.new(request_client: @async_request_client)
134
+ @test_suite_tests = Vapi::AsyncTestSuiteTestsClient.new(request_client: @async_request_client)
135
+ @test_suite_runs = Vapi::AsyncTestSuiteRunsClient.new(request_client: @async_request_client)
115
136
  end
116
137
  end
117
138
  end