revox 0.0.2 → 0.2.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 (128) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +96 -0
  3. data/README.md +88 -22
  4. data/lib/revox/client.rb +19 -1
  5. data/lib/revox/internal/transport/base_client.rb +5 -0
  6. data/lib/revox/internal/type/base_model.rb +3 -3
  7. data/lib/revox/internal/util.rb +53 -7
  8. data/lib/revox/models/assistant_create_params.rb +1036 -11
  9. data/lib/revox/models/assistant_create_response.rb +1071 -11
  10. data/lib/revox/models/assistant_delete_params.rb +7 -1
  11. data/lib/revox/models/assistant_list_response.rb +1070 -11
  12. data/lib/revox/models/assistant_retrieve_params.rb +7 -1
  13. data/lib/revox/models/assistant_retrieve_response.rb +1066 -11
  14. data/lib/revox/models/assistant_update_params.rb +1043 -11
  15. data/lib/revox/models/assistant_update_response.rb +1097 -12
  16. data/lib/revox/models/call_create_params.rb +1063 -11
  17. data/lib/revox/models/call_create_response.rb +2507 -87
  18. data/lib/revox/models/call_retrieve_params.rb +7 -1
  19. data/lib/revox/models/call_retrieve_response.rb +2512 -87
  20. data/lib/revox/models/campaign_cancel_params.rb +20 -0
  21. data/lib/revox/models/campaign_cancel_response.rb +16 -0
  22. data/lib/revox/models/campaign_create_params.rb +239 -0
  23. data/lib/revox/models/campaign_create_response.rb +2030 -0
  24. data/lib/revox/models/campaign_delete_params.rb +20 -0
  25. data/lib/revox/models/campaign_delete_response.rb +16 -0
  26. data/lib/revox/models/campaign_export_rows_params.rb +20 -0
  27. data/lib/revox/models/campaign_export_rows_response.rb +22 -0
  28. data/lib/revox/models/campaign_get_rows_params.rb +20 -0
  29. data/lib/revox/models/campaign_get_rows_response.rb +3176 -0
  30. data/lib/revox/models/campaign_list_params.rb +14 -0
  31. data/lib/revox/models/campaign_list_response.rb +2024 -0
  32. data/lib/revox/models/campaign_retrieve_params.rb +20 -0
  33. data/lib/revox/models/campaign_retrieve_response.rb +2032 -0
  34. data/lib/revox/models/users/me_retrieve_response.rb +13 -1
  35. data/lib/revox/models/users/me_update_response.rb +13 -1
  36. data/lib/revox/models/voice_list_response.rb +55 -1
  37. data/lib/revox/models/voice_preview_params.rb +43 -3
  38. data/lib/revox/models/voice_retrieve_params.rb +7 -1
  39. data/lib/revox/models.rb +14 -2
  40. data/lib/revox/resources/assistants.rb +138 -6
  41. data/lib/revox/resources/call.rb +10 -27
  42. data/lib/revox/resources/campaigns.rb +176 -0
  43. data/lib/revox/resources/voices.rb +17 -7
  44. data/lib/revox/version.rb +1 -1
  45. data/lib/revox.rb +15 -2
  46. data/rbi/revox/client.rbi +3 -0
  47. data/rbi/revox/internal/util.rbi +28 -0
  48. data/rbi/revox/models/assistant_create_params.rbi +2135 -102
  49. data/rbi/revox/models/assistant_create_response.rbi +2454 -199
  50. data/rbi/revox/models/assistant_delete_params.rbi +11 -5
  51. data/rbi/revox/models/assistant_list_response.rbi +2448 -195
  52. data/rbi/revox/models/assistant_retrieve_params.rbi +11 -5
  53. data/rbi/revox/models/assistant_retrieve_response.rbi +2401 -210
  54. data/rbi/revox/models/assistant_update_params.rbi +2139 -100
  55. data/rbi/revox/models/assistant_update_response.rbi +2504 -198
  56. data/rbi/revox/models/call_create_params.rbi +2377 -222
  57. data/rbi/revox/models/call_create_response.rbi +5840 -594
  58. data/rbi/revox/models/call_retrieve_params.rbi +11 -5
  59. data/rbi/revox/models/call_retrieve_response.rbi +5872 -618
  60. data/rbi/revox/models/campaign_cancel_params.rbi +33 -0
  61. data/rbi/revox/models/campaign_cancel_response.rbi +23 -0
  62. data/rbi/revox/models/campaign_create_params.rbi +433 -0
  63. data/rbi/revox/models/campaign_create_response.rbi +4170 -0
  64. data/rbi/revox/models/campaign_delete_params.rbi +33 -0
  65. data/rbi/revox/models/campaign_delete_response.rbi +23 -0
  66. data/rbi/revox/models/campaign_export_rows_params.rbi +33 -0
  67. data/rbi/revox/models/campaign_export_rows_response.rbi +29 -0
  68. data/rbi/revox/models/campaign_get_rows_params.rbi +33 -0
  69. data/rbi/revox/models/campaign_get_rows_response.rbi +6706 -0
  70. data/rbi/revox/models/campaign_list_params.rbi +27 -0
  71. data/rbi/revox/models/campaign_list_response.rbi +4156 -0
  72. data/rbi/revox/models/campaign_retrieve_params.rbi +33 -0
  73. data/rbi/revox/models/campaign_retrieve_response.rbi +4175 -0
  74. data/rbi/revox/models/users/me_retrieve_response.rbi +13 -3
  75. data/rbi/revox/models/users/me_update_response.rbi +13 -3
  76. data/rbi/revox/models/voice_list_response.rbi +105 -3
  77. data/rbi/revox/models/voice_preview_params.rbi +60 -2
  78. data/rbi/revox/models/voice_retrieve_params.rbi +6 -1
  79. data/rbi/revox/models.rbi +14 -2
  80. data/rbi/revox/resources/assistants.rbi +301 -6
  81. data/rbi/revox/resources/call.rbi +10 -19
  82. data/rbi/revox/resources/campaigns.rbi +121 -0
  83. data/rbi/revox/resources/voices.rbi +15 -5
  84. data/sig/revox/client.rbs +2 -0
  85. data/sig/revox/internal/util.rbs +14 -0
  86. data/sig/revox/models/assistant_create_params.rbs +841 -4
  87. data/sig/revox/models/assistant_create_response.rbs +860 -3
  88. data/sig/revox/models/assistant_delete_params.rbs +8 -3
  89. data/sig/revox/models/assistant_list_response.rbs +860 -3
  90. data/sig/revox/models/assistant_retrieve_params.rbs +8 -3
  91. data/sig/revox/models/assistant_retrieve_response.rbs +859 -3
  92. data/sig/revox/models/assistant_update_params.rbs +846 -4
  93. data/sig/revox/models/assistant_update_response.rbs +886 -6
  94. data/sig/revox/models/call_create_params.rbs +844 -6
  95. data/sig/revox/models/call_create_response.rbs +2166 -79
  96. data/sig/revox/models/call_retrieve_params.rbs +9 -3
  97. data/sig/revox/models/call_retrieve_response.rbs +2166 -79
  98. data/sig/revox/models/campaign_cancel_params.rbs +20 -0
  99. data/sig/revox/models/campaign_cancel_response.rbs +13 -0
  100. data/sig/revox/models/campaign_create_params.rbs +203 -0
  101. data/sig/revox/models/campaign_create_response.rbs +1694 -0
  102. data/sig/revox/models/campaign_delete_params.rbs +20 -0
  103. data/sig/revox/models/campaign_delete_response.rbs +13 -0
  104. data/sig/revox/models/campaign_export_rows_params.rbs +20 -0
  105. data/sig/revox/models/campaign_export_rows_response.rbs +15 -0
  106. data/sig/revox/models/campaign_get_rows_params.rbs +20 -0
  107. data/sig/revox/models/campaign_get_rows_response.rbs +2688 -0
  108. data/sig/revox/models/campaign_list_params.rbs +14 -0
  109. data/sig/revox/models/campaign_list_response.rbs +1694 -0
  110. data/sig/revox/models/campaign_retrieve_params.rbs +20 -0
  111. data/sig/revox/models/campaign_retrieve_response.rbs +1694 -0
  112. data/sig/revox/models/users/me_retrieve_response.rbs +8 -3
  113. data/sig/revox/models/users/me_update_response.rbs +8 -3
  114. data/sig/revox/models/voice_list_response.rbs +45 -3
  115. data/sig/revox/models/voice_preview_params.rbs +35 -1
  116. data/sig/revox/models/voice_retrieve_params.rbs +5 -1
  117. data/sig/revox/models.rbs +14 -2
  118. data/sig/revox/resources/assistants.rbs +54 -0
  119. data/sig/revox/resources/call.rbs +0 -6
  120. data/sig/revox/resources/campaigns.rbs +49 -0
  121. data/sig/revox/resources/voices.rbs +3 -0
  122. metadata +47 -8
  123. data/lib/revox/models/call_list_params.rb +0 -29
  124. data/lib/revox/models/call_list_response.rb +0 -197
  125. data/rbi/revox/models/call_list_params.rbi +0 -47
  126. data/rbi/revox/models/call_list_response.rbi +0 -401
  127. data/sig/revox/models/call_list_params.rbs +0 -28
  128. data/sig/revox/models/call_list_response.rbs +0 -171
@@ -2,24 +2,52 @@ module Revox
2
2
  module Models
3
3
  type assistant_update_params =
4
4
  {
5
+ id: String,
6
+ after_call_sms_outcomes: ::Array[Revox::Models::AssistantUpdateParams::after_call_sms_outcome]?,
7
+ after_call_sms_prompt: String?,
5
8
  background_sound: Revox::Models::AssistantUpdateParams::background_sound?,
9
+ background_sound_volume: Float,
6
10
  calendly: Revox::AssistantUpdateParams::Calendly?,
7
11
  call_retry_config: Revox::AssistantUpdateParams::CallRetryConfig,
12
+ cartesia_dictionary_pronunciation_id: String?,
13
+ custom_tools: ::Array[Revox::AssistantUpdateParams::CustomTool]?,
14
+ email_notification_address: String?,
15
+ email_notification_language: Revox::Models::AssistantUpdateParams::email_notification_language,
16
+ email_notification_outcomes: ::Array[Revox::Models::AssistantUpdateParams::email_notification_outcome]?,
8
17
  end_of_call_sentence: String,
9
18
  faq_items: ::Array[Revox::AssistantUpdateParams::FaqItem],
10
19
  first_sentence: String,
11
20
  first_sentence_delay_ms: Integer,
12
21
  first_sentence_mode: Revox::Models::AssistantUpdateParams::first_sentence_mode,
22
+ from_phone_number: String?,
23
+ human_transfer_mode: Revox::Models::AssistantUpdateParams::human_transfer_mode?,
13
24
  ivr_navigation_enabled: bool,
14
25
  llm_model: Revox::Models::AssistantUpdateParams::llm_model,
26
+ logo_url: String?,
15
27
  max_call_duration_secs: Float,
28
+ max_duration_end_message: String?,
16
29
  name: String,
30
+ position: Revox::AssistantUpdateParams::Position?,
17
31
  prompt: String,
32
+ prompt_flow: Revox::AssistantUpdateParams::PromptFlow?,
33
+ slack: Revox::AssistantUpdateParams::Slack?,
34
+ sms_enabled: bool,
35
+ sms_template: String?,
18
36
  structured_output_config: ::Array[Revox::AssistantUpdateParams::StructuredOutputConfig],
37
+ structured_output_prompt: String?,
38
+ stt_context: Revox::AssistantUpdateParams::SttContext?,
39
+ stt_model: Revox::Models::AssistantUpdateParams::stt_model,
40
+ thinking_sound: Revox::Models::AssistantUpdateParams::thinking_sound?,
41
+ thinking_sound_probability: Float,
42
+ thinking_sound_volume: Float,
19
43
  transfer_phone_number: String?,
44
+ type: Revox::Models::AssistantUpdateParams::type_,
20
45
  voice: Revox::AssistantUpdateParams::Voice,
21
46
  voicemail_message: String?,
22
- webhook_url: String
47
+ voicemail_sms_prompt: String?,
48
+ warm_transfer_summary_instructions: String?,
49
+ webhook_url: String,
50
+ zoho: Revox::AssistantUpdateParams::Zoho?
23
51
  }
24
52
  & Revox::Internal::Type::request_parameters
25
53
 
@@ -27,8 +55,18 @@ module Revox
27
55
  extend Revox::Internal::Type::RequestParameters::Converter
28
56
  include Revox::Internal::Type::RequestParameters
29
57
 
58
+ attr_accessor id: String
59
+
60
+ attr_accessor after_call_sms_outcomes: ::Array[Revox::Models::AssistantUpdateParams::after_call_sms_outcome]?
61
+
62
+ attr_accessor after_call_sms_prompt: String?
63
+
30
64
  attr_accessor background_sound: Revox::Models::AssistantUpdateParams::background_sound?
31
65
 
66
+ attr_reader background_sound_volume: Float?
67
+
68
+ def background_sound_volume=: (Float) -> Float
69
+
32
70
  attr_accessor calendly: Revox::AssistantUpdateParams::Calendly?
33
71
 
34
72
  attr_reader call_retry_config: Revox::AssistantUpdateParams::CallRetryConfig?
@@ -37,6 +75,20 @@ module Revox
37
75
  Revox::AssistantUpdateParams::CallRetryConfig
38
76
  ) -> Revox::AssistantUpdateParams::CallRetryConfig
39
77
 
78
+ attr_accessor cartesia_dictionary_pronunciation_id: String?
79
+
80
+ attr_accessor custom_tools: ::Array[Revox::AssistantUpdateParams::CustomTool]?
81
+
82
+ attr_accessor email_notification_address: String?
83
+
84
+ attr_reader email_notification_language: Revox::Models::AssistantUpdateParams::email_notification_language?
85
+
86
+ def email_notification_language=: (
87
+ Revox::Models::AssistantUpdateParams::email_notification_language
88
+ ) -> Revox::Models::AssistantUpdateParams::email_notification_language
89
+
90
+ attr_accessor email_notification_outcomes: ::Array[Revox::Models::AssistantUpdateParams::email_notification_outcome]?
91
+
40
92
  attr_reader end_of_call_sentence: String?
41
93
 
42
94
  def end_of_call_sentence=: (String) -> String
@@ -61,6 +113,10 @@ module Revox
61
113
  Revox::Models::AssistantUpdateParams::first_sentence_mode
62
114
  ) -> Revox::Models::AssistantUpdateParams::first_sentence_mode
63
115
 
116
+ attr_accessor from_phone_number: String?
117
+
118
+ attr_accessor human_transfer_mode: Revox::Models::AssistantUpdateParams::human_transfer_mode?
119
+
64
120
  attr_reader ivr_navigation_enabled: bool?
65
121
 
66
122
  def ivr_navigation_enabled=: (bool) -> bool
@@ -71,26 +127,68 @@ module Revox
71
127
  Revox::Models::AssistantUpdateParams::llm_model
72
128
  ) -> Revox::Models::AssistantUpdateParams::llm_model
73
129
 
130
+ attr_accessor logo_url: String?
131
+
74
132
  attr_reader max_call_duration_secs: Float?
75
133
 
76
134
  def max_call_duration_secs=: (Float) -> Float
77
135
 
136
+ attr_accessor max_duration_end_message: String?
137
+
78
138
  attr_reader name: String?
79
139
 
80
140
  def name=: (String) -> String
81
141
 
142
+ attr_accessor position: Revox::AssistantUpdateParams::Position?
143
+
82
144
  attr_reader prompt: String?
83
145
 
84
146
  def prompt=: (String) -> String
85
147
 
148
+ attr_accessor prompt_flow: Revox::AssistantUpdateParams::PromptFlow?
149
+
150
+ attr_accessor slack: Revox::AssistantUpdateParams::Slack?
151
+
152
+ attr_reader sms_enabled: bool?
153
+
154
+ def sms_enabled=: (bool) -> bool
155
+
156
+ attr_accessor sms_template: String?
157
+
86
158
  attr_reader structured_output_config: ::Array[Revox::AssistantUpdateParams::StructuredOutputConfig]?
87
159
 
88
160
  def structured_output_config=: (
89
161
  ::Array[Revox::AssistantUpdateParams::StructuredOutputConfig]
90
162
  ) -> ::Array[Revox::AssistantUpdateParams::StructuredOutputConfig]
91
163
 
164
+ attr_accessor structured_output_prompt: String?
165
+
166
+ attr_accessor stt_context: Revox::AssistantUpdateParams::SttContext?
167
+
168
+ attr_reader stt_model: Revox::Models::AssistantUpdateParams::stt_model?
169
+
170
+ def stt_model=: (
171
+ Revox::Models::AssistantUpdateParams::stt_model
172
+ ) -> Revox::Models::AssistantUpdateParams::stt_model
173
+
174
+ attr_accessor thinking_sound: Revox::Models::AssistantUpdateParams::thinking_sound?
175
+
176
+ attr_reader thinking_sound_probability: Float?
177
+
178
+ def thinking_sound_probability=: (Float) -> Float
179
+
180
+ attr_reader thinking_sound_volume: Float?
181
+
182
+ def thinking_sound_volume=: (Float) -> Float
183
+
92
184
  attr_accessor transfer_phone_number: String?
93
185
 
186
+ attr_reader type: Revox::Models::AssistantUpdateParams::type_?
187
+
188
+ def type=: (
189
+ Revox::Models::AssistantUpdateParams::type_
190
+ ) -> Revox::Models::AssistantUpdateParams::type_
191
+
94
192
  attr_reader voice: Revox::AssistantUpdateParams::Voice?
95
193
 
96
194
  def voice=: (
@@ -99,54 +197,141 @@ module Revox
99
197
 
100
198
  attr_accessor voicemail_message: String?
101
199
 
200
+ attr_accessor voicemail_sms_prompt: String?
201
+
202
+ attr_accessor warm_transfer_summary_instructions: String?
203
+
102
204
  attr_reader webhook_url: String?
103
205
 
104
206
  def webhook_url=: (String) -> String
105
207
 
208
+ attr_accessor zoho: Revox::AssistantUpdateParams::Zoho?
209
+
106
210
  def initialize: (
211
+ id: String,
212
+ ?after_call_sms_outcomes: ::Array[Revox::Models::AssistantUpdateParams::after_call_sms_outcome]?,
213
+ ?after_call_sms_prompt: String?,
107
214
  ?background_sound: Revox::Models::AssistantUpdateParams::background_sound?,
215
+ ?background_sound_volume: Float,
108
216
  ?calendly: Revox::AssistantUpdateParams::Calendly?,
109
217
  ?call_retry_config: Revox::AssistantUpdateParams::CallRetryConfig,
218
+ ?cartesia_dictionary_pronunciation_id: String?,
219
+ ?custom_tools: ::Array[Revox::AssistantUpdateParams::CustomTool]?,
220
+ ?email_notification_address: String?,
221
+ ?email_notification_language: Revox::Models::AssistantUpdateParams::email_notification_language,
222
+ ?email_notification_outcomes: ::Array[Revox::Models::AssistantUpdateParams::email_notification_outcome]?,
110
223
  ?end_of_call_sentence: String,
111
224
  ?faq_items: ::Array[Revox::AssistantUpdateParams::FaqItem],
112
225
  ?first_sentence: String,
113
226
  ?first_sentence_delay_ms: Integer,
114
227
  ?first_sentence_mode: Revox::Models::AssistantUpdateParams::first_sentence_mode,
228
+ ?from_phone_number: String?,
229
+ ?human_transfer_mode: Revox::Models::AssistantUpdateParams::human_transfer_mode?,
115
230
  ?ivr_navigation_enabled: bool,
116
231
  ?llm_model: Revox::Models::AssistantUpdateParams::llm_model,
232
+ ?logo_url: String?,
117
233
  ?max_call_duration_secs: Float,
234
+ ?max_duration_end_message: String?,
118
235
  ?name: String,
236
+ ?position: Revox::AssistantUpdateParams::Position?,
119
237
  ?prompt: String,
238
+ ?prompt_flow: Revox::AssistantUpdateParams::PromptFlow?,
239
+ ?slack: Revox::AssistantUpdateParams::Slack?,
240
+ ?sms_enabled: bool,
241
+ ?sms_template: String?,
120
242
  ?structured_output_config: ::Array[Revox::AssistantUpdateParams::StructuredOutputConfig],
243
+ ?structured_output_prompt: String?,
244
+ ?stt_context: Revox::AssistantUpdateParams::SttContext?,
245
+ ?stt_model: Revox::Models::AssistantUpdateParams::stt_model,
246
+ ?thinking_sound: Revox::Models::AssistantUpdateParams::thinking_sound?,
247
+ ?thinking_sound_probability: Float,
248
+ ?thinking_sound_volume: Float,
121
249
  ?transfer_phone_number: String?,
250
+ ?type: Revox::Models::AssistantUpdateParams::type_,
122
251
  ?voice: Revox::AssistantUpdateParams::Voice,
123
252
  ?voicemail_message: String?,
253
+ ?voicemail_sms_prompt: String?,
254
+ ?warm_transfer_summary_instructions: String?,
124
255
  ?webhook_url: String,
256
+ ?zoho: Revox::AssistantUpdateParams::Zoho?,
125
257
  ?request_options: Revox::request_opts
126
258
  ) -> void
127
259
 
128
260
  def to_hash: -> {
261
+ id: String,
262
+ after_call_sms_outcomes: ::Array[Revox::Models::AssistantUpdateParams::after_call_sms_outcome]?,
263
+ after_call_sms_prompt: String?,
129
264
  background_sound: Revox::Models::AssistantUpdateParams::background_sound?,
265
+ background_sound_volume: Float,
130
266
  calendly: Revox::AssistantUpdateParams::Calendly?,
131
267
  call_retry_config: Revox::AssistantUpdateParams::CallRetryConfig,
268
+ cartesia_dictionary_pronunciation_id: String?,
269
+ custom_tools: ::Array[Revox::AssistantUpdateParams::CustomTool]?,
270
+ email_notification_address: String?,
271
+ email_notification_language: Revox::Models::AssistantUpdateParams::email_notification_language,
272
+ email_notification_outcomes: ::Array[Revox::Models::AssistantUpdateParams::email_notification_outcome]?,
132
273
  end_of_call_sentence: String,
133
274
  faq_items: ::Array[Revox::AssistantUpdateParams::FaqItem],
134
275
  first_sentence: String,
135
276
  first_sentence_delay_ms: Integer,
136
277
  first_sentence_mode: Revox::Models::AssistantUpdateParams::first_sentence_mode,
278
+ from_phone_number: String?,
279
+ human_transfer_mode: Revox::Models::AssistantUpdateParams::human_transfer_mode?,
137
280
  ivr_navigation_enabled: bool,
138
281
  llm_model: Revox::Models::AssistantUpdateParams::llm_model,
282
+ logo_url: String?,
139
283
  max_call_duration_secs: Float,
284
+ max_duration_end_message: String?,
140
285
  name: String,
286
+ position: Revox::AssistantUpdateParams::Position?,
141
287
  prompt: String,
288
+ prompt_flow: Revox::AssistantUpdateParams::PromptFlow?,
289
+ slack: Revox::AssistantUpdateParams::Slack?,
290
+ sms_enabled: bool,
291
+ sms_template: String?,
142
292
  structured_output_config: ::Array[Revox::AssistantUpdateParams::StructuredOutputConfig],
293
+ structured_output_prompt: String?,
294
+ stt_context: Revox::AssistantUpdateParams::SttContext?,
295
+ stt_model: Revox::Models::AssistantUpdateParams::stt_model,
296
+ thinking_sound: Revox::Models::AssistantUpdateParams::thinking_sound?,
297
+ thinking_sound_probability: Float,
298
+ thinking_sound_volume: Float,
143
299
  transfer_phone_number: String?,
300
+ type: Revox::Models::AssistantUpdateParams::type_,
144
301
  voice: Revox::AssistantUpdateParams::Voice,
145
302
  voicemail_message: String?,
303
+ voicemail_sms_prompt: String?,
304
+ warm_transfer_summary_instructions: String?,
146
305
  webhook_url: String,
306
+ zoho: Revox::AssistantUpdateParams::Zoho?,
147
307
  request_options: Revox::RequestOptions
148
308
  }
149
309
 
310
+ type after_call_sms_outcome =
311
+ :not_interested
312
+ | :interested
313
+ | :completed
314
+ | :requested_callback_later
315
+ | :requested_callback_new_number
316
+ | :do_not_contact
317
+ | :ai_averse
318
+ | :none
319
+
320
+ module AfterCallSMSOutcome
321
+ extend Revox::Internal::Type::Enum
322
+
323
+ NOT_INTERESTED: :not_interested
324
+ INTERESTED: :interested
325
+ COMPLETED: :completed
326
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
327
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
328
+ DO_NOT_CONTACT: :do_not_contact
329
+ AI_AVERSE: :ai_averse
330
+ NONE: :none
331
+
332
+ def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::after_call_sms_outcome]
333
+ end
334
+
150
335
  type background_sound = :"audio/office.ogg"
151
336
 
152
337
  module BackgroundSound
@@ -171,12 +356,18 @@ module Revox
171
356
 
172
357
  type call_retry_config =
173
358
  {
359
+ allowed_days: ::Array[Revox::Models::AssistantUpdateParams::CallRetryConfig::allowed_day],
360
+ call_twice_in_a_row: bool,
174
361
  calling_windows: ::Array[Revox::AssistantUpdateParams::CallRetryConfig::CallingWindow],
175
362
  max_retry_attempts: Integer,
176
363
  timezone: String?
177
364
  }
178
365
 
179
366
  class CallRetryConfig < Revox::Internal::Type::BaseModel
367
+ attr_accessor allowed_days: ::Array[Revox::Models::AssistantUpdateParams::CallRetryConfig::allowed_day]
368
+
369
+ attr_accessor call_twice_in_a_row: bool
370
+
180
371
  attr_accessor calling_windows: ::Array[Revox::AssistantUpdateParams::CallRetryConfig::CallingWindow]
181
372
 
182
373
  attr_accessor max_retry_attempts: Integer
@@ -184,17 +375,44 @@ module Revox
184
375
  attr_accessor timezone: String?
185
376
 
186
377
  def initialize: (
378
+ allowed_days: ::Array[Revox::Models::AssistantUpdateParams::CallRetryConfig::allowed_day],
379
+ call_twice_in_a_row: bool,
187
380
  calling_windows: ::Array[Revox::AssistantUpdateParams::CallRetryConfig::CallingWindow],
188
381
  max_retry_attempts: Integer,
189
382
  ?timezone: String?
190
383
  ) -> void
191
384
 
192
385
  def to_hash: -> {
386
+ allowed_days: ::Array[Revox::Models::AssistantUpdateParams::CallRetryConfig::allowed_day],
387
+ call_twice_in_a_row: bool,
193
388
  calling_windows: ::Array[Revox::AssistantUpdateParams::CallRetryConfig::CallingWindow],
194
389
  max_retry_attempts: Integer,
195
390
  timezone: String?
196
391
  }
197
392
 
393
+ type allowed_day =
394
+ :monday
395
+ | :tuesday
396
+ | :wednesday
397
+ | :thursday
398
+ | :friday
399
+ | :saturday
400
+ | :sunday
401
+
402
+ module AllowedDay
403
+ extend Revox::Internal::Type::Enum
404
+
405
+ MONDAY: :monday
406
+ TUESDAY: :tuesday
407
+ WEDNESDAY: :wednesday
408
+ THURSDAY: :thursday
409
+ FRIDAY: :friday
410
+ SATURDAY: :saturday
411
+ SUNDAY: :sunday
412
+
413
+ def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::CallRetryConfig::allowed_day]
414
+ end
415
+
198
416
  type calling_window =
199
417
  {
200
418
  calling_window_end_time: String,
@@ -223,6 +441,188 @@ module Revox
223
441
  end
224
442
  end
225
443
 
444
+ type custom_tool =
445
+ {
446
+ body_template: String?,
447
+ description: String,
448
+ headers: ::Array[Revox::AssistantUpdateParams::CustomTool::Header],
449
+ input_schema: ::Array[Revox::AssistantUpdateParams::CustomTool::InputSchema],
450
+ method_: Revox::Models::AssistantUpdateParams::CustomTool::method_,
451
+ name: String,
452
+ query_params: ::Array[Revox::AssistantUpdateParams::CustomTool::QueryParam],
453
+ url: String
454
+ }
455
+
456
+ class CustomTool < Revox::Internal::Type::BaseModel
457
+ attr_accessor body_template: String?
458
+
459
+ attr_accessor description: String
460
+
461
+ attr_accessor headers: ::Array[Revox::AssistantUpdateParams::CustomTool::Header]
462
+
463
+ attr_accessor input_schema: ::Array[Revox::AssistantUpdateParams::CustomTool::InputSchema]
464
+
465
+ attr_accessor method_: Revox::Models::AssistantUpdateParams::CustomTool::method_
466
+
467
+ attr_accessor name: String
468
+
469
+ attr_accessor query_params: ::Array[Revox::AssistantUpdateParams::CustomTool::QueryParam]
470
+
471
+ attr_accessor url: String
472
+
473
+ def initialize: (
474
+ body_template: String?,
475
+ description: String,
476
+ headers: ::Array[Revox::AssistantUpdateParams::CustomTool::Header],
477
+ input_schema: ::Array[Revox::AssistantUpdateParams::CustomTool::InputSchema],
478
+ method_: Revox::Models::AssistantUpdateParams::CustomTool::method_,
479
+ name: String,
480
+ query_params: ::Array[Revox::AssistantUpdateParams::CustomTool::QueryParam],
481
+ url: String
482
+ ) -> void
483
+
484
+ def to_hash: -> {
485
+ body_template: String?,
486
+ description: String,
487
+ headers: ::Array[Revox::AssistantUpdateParams::CustomTool::Header],
488
+ input_schema: ::Array[Revox::AssistantUpdateParams::CustomTool::InputSchema],
489
+ method_: Revox::Models::AssistantUpdateParams::CustomTool::method_,
490
+ name: String,
491
+ query_params: ::Array[Revox::AssistantUpdateParams::CustomTool::QueryParam],
492
+ url: String
493
+ }
494
+
495
+ type header = { key: String, value: String }
496
+
497
+ class Header < Revox::Internal::Type::BaseModel
498
+ attr_accessor key: String
499
+
500
+ attr_accessor value: String
501
+
502
+ def initialize: (key: String, value: String) -> void
503
+
504
+ def to_hash: -> { key: String, value: String }
505
+ end
506
+
507
+ type input_schema =
508
+ {
509
+ name: String,
510
+ required: bool,
511
+ type: Revox::Models::AssistantUpdateParams::CustomTool::InputSchema::type_,
512
+ description: String,
513
+ enum_options: ::Array[String]
514
+ }
515
+
516
+ class InputSchema < Revox::Internal::Type::BaseModel
517
+ attr_accessor name: String
518
+
519
+ attr_accessor required: bool
520
+
521
+ attr_accessor type: Revox::Models::AssistantUpdateParams::CustomTool::InputSchema::type_
522
+
523
+ attr_reader description: String?
524
+
525
+ def description=: (String) -> String
526
+
527
+ attr_reader enum_options: ::Array[String]?
528
+
529
+ def enum_options=: (::Array[String]) -> ::Array[String]
530
+
531
+ def initialize: (
532
+ name: String,
533
+ required: bool,
534
+ type: Revox::Models::AssistantUpdateParams::CustomTool::InputSchema::type_,
535
+ ?description: String,
536
+ ?enum_options: ::Array[String]
537
+ ) -> void
538
+
539
+ def to_hash: -> {
540
+ name: String,
541
+ required: bool,
542
+ type: Revox::Models::AssistantUpdateParams::CustomTool::InputSchema::type_,
543
+ description: String,
544
+ enum_options: ::Array[String]
545
+ }
546
+
547
+ type type_ = :string | :number | :boolean | :enum | :date | :datetime
548
+
549
+ module Type
550
+ extend Revox::Internal::Type::Enum
551
+
552
+ STRING: :string
553
+ NUMBER: :number
554
+ BOOLEAN: :boolean
555
+ ENUM: :enum
556
+ DATE: :date
557
+ DATETIME: :datetime
558
+
559
+ def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::CustomTool::InputSchema::type_]
560
+ end
561
+ end
562
+
563
+ type method_ = :GET | :POST | :PUT | :PATCH | :DELETE
564
+
565
+ module Method
566
+ extend Revox::Internal::Type::Enum
567
+
568
+ GET: :GET
569
+ POST: :POST
570
+ PUT: :PUT
571
+ PATCH: :PATCH
572
+ DELETE: :DELETE
573
+
574
+ def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::CustomTool::method_]
575
+ end
576
+
577
+ type query_param = { key: String, value: String }
578
+
579
+ class QueryParam < Revox::Internal::Type::BaseModel
580
+ attr_accessor key: String
581
+
582
+ attr_accessor value: String
583
+
584
+ def initialize: (key: String, value: String) -> void
585
+
586
+ def to_hash: -> { key: String, value: String }
587
+ end
588
+ end
589
+
590
+ type email_notification_language = :en | :fr
591
+
592
+ module EmailNotificationLanguage
593
+ extend Revox::Internal::Type::Enum
594
+
595
+ EN: :en
596
+ FR: :fr
597
+
598
+ def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::email_notification_language]
599
+ end
600
+
601
+ type email_notification_outcome =
602
+ :not_interested
603
+ | :interested
604
+ | :completed
605
+ | :requested_callback_later
606
+ | :requested_callback_new_number
607
+ | :do_not_contact
608
+ | :ai_averse
609
+ | :none
610
+
611
+ module EmailNotificationOutcome
612
+ extend Revox::Internal::Type::Enum
613
+
614
+ NOT_INTERESTED: :not_interested
615
+ INTERESTED: :interested
616
+ COMPLETED: :completed
617
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
618
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
619
+ DO_NOT_CONTACT: :do_not_contact
620
+ AI_AVERSE: :ai_averse
621
+ NONE: :none
622
+
623
+ def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::email_notification_outcome]
624
+ end
625
+
226
626
  type faq_item = { answer: String, question: String }
227
627
 
228
628
  class FaqItem < Revox::Internal::Type::BaseModel
@@ -247,9 +647,22 @@ module Revox
247
647
  def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::first_sentence_mode]
248
648
  end
249
649
 
650
+ type human_transfer_mode = :warm | :cold
651
+
652
+ module HumanTransferMode
653
+ extend Revox::Internal::Type::Enum
654
+
655
+ WARM: :warm
656
+ COLD: :cold
657
+
658
+ def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::human_transfer_mode]
659
+ end
660
+
250
661
  type llm_model =
251
662
  Revox::AssistantUpdateParams::LlmModel::UnionMember0
252
663
  | Revox::AssistantUpdateParams::LlmModel::UnionMember1
664
+ | Revox::AssistantUpdateParams::LlmModel::UnionMember2
665
+ | Revox::AssistantUpdateParams::LlmModel::UnionMember3
253
666
 
254
667
  module LlmModel
255
668
  extend Revox::Internal::Type::Union
@@ -314,9 +727,252 @@ module Revox
314
727
  }
315
728
  end
316
729
 
730
+ type union_member2 =
731
+ {
732
+ api_key: String,
733
+ api_url: String,
734
+ model_name: String,
735
+ type: :custom
736
+ }
737
+
738
+ class UnionMember2 < Revox::Internal::Type::BaseModel
739
+ attr_accessor api_key: String
740
+
741
+ attr_accessor api_url: String
742
+
743
+ attr_accessor model_name: String
744
+
745
+ attr_accessor type: :custom
746
+
747
+ def initialize: (
748
+ api_key: String,
749
+ api_url: String,
750
+ model_name: String,
751
+ ?type: :custom
752
+ ) -> void
753
+
754
+ def to_hash: -> {
755
+ api_key: String,
756
+ api_url: String,
757
+ model_name: String,
758
+ type: :custom
759
+ }
760
+ end
761
+
762
+ type union_member3 =
763
+ {
764
+ provider: Revox::Models::AssistantUpdateParams::LlmModel::UnionMember3::provider,
765
+ realtime_model_id: String,
766
+ type: :realtime,
767
+ realtime_voice_id: String
768
+ }
769
+
770
+ class UnionMember3 < Revox::Internal::Type::BaseModel
771
+ attr_accessor provider: Revox::Models::AssistantUpdateParams::LlmModel::UnionMember3::provider
772
+
773
+ attr_accessor realtime_model_id: String
774
+
775
+ attr_accessor type: :realtime
776
+
777
+ attr_reader realtime_voice_id: String?
778
+
779
+ def realtime_voice_id=: (String) -> String
780
+
781
+ def initialize: (
782
+ provider: Revox::Models::AssistantUpdateParams::LlmModel::UnionMember3::provider,
783
+ realtime_model_id: String,
784
+ ?realtime_voice_id: String,
785
+ ?type: :realtime
786
+ ) -> void
787
+
788
+ def to_hash: -> {
789
+ provider: Revox::Models::AssistantUpdateParams::LlmModel::UnionMember3::provider,
790
+ realtime_model_id: String,
791
+ type: :realtime,
792
+ realtime_voice_id: String
793
+ }
794
+
795
+ type provider = :openai | :google
796
+
797
+ module Provider
798
+ extend Revox::Internal::Type::Enum
799
+
800
+ OPENAI: :openai
801
+ GOOGLE: :google
802
+
803
+ def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::LlmModel::UnionMember3::provider]
804
+ end
805
+ end
806
+
317
807
  def self?.variants: -> ::Array[Revox::Models::AssistantUpdateParams::llm_model]
318
808
  end
319
809
 
810
+ type position = { x: Float, y_: Float }
811
+
812
+ class Position < Revox::Internal::Type::BaseModel
813
+ attr_accessor x: Float
814
+
815
+ attr_accessor y_: Float
816
+
817
+ def initialize: (x: Float, y_: Float) -> void
818
+
819
+ def to_hash: -> { x: Float, y_: Float }
820
+ end
821
+
822
+ type prompt_flow =
823
+ {
824
+ edges: ::Array[Revox::AssistantUpdateParams::PromptFlow::Edge],
825
+ nodes: ::Array[Revox::AssistantUpdateParams::PromptFlow::Node]
826
+ }
827
+
828
+ class PromptFlow < Revox::Internal::Type::BaseModel
829
+ attr_accessor edges: ::Array[Revox::AssistantUpdateParams::PromptFlow::Edge]
830
+
831
+ attr_accessor nodes: ::Array[Revox::AssistantUpdateParams::PromptFlow::Node]
832
+
833
+ def initialize: (
834
+ edges: ::Array[Revox::AssistantUpdateParams::PromptFlow::Edge],
835
+ nodes: ::Array[Revox::AssistantUpdateParams::PromptFlow::Node]
836
+ ) -> void
837
+
838
+ def to_hash: -> {
839
+ edges: ::Array[Revox::AssistantUpdateParams::PromptFlow::Edge],
840
+ nodes: ::Array[Revox::AssistantUpdateParams::PromptFlow::Node]
841
+ }
842
+
843
+ type edge = { id: String, source: String, target: String }
844
+
845
+ class Edge < Revox::Internal::Type::BaseModel
846
+ attr_accessor id: String
847
+
848
+ attr_accessor source: String
849
+
850
+ attr_accessor target: String
851
+
852
+ def initialize: (id: String, source: String, target: String) -> void
853
+
854
+ def to_hash: -> { id: String, source: String, target: String }
855
+ end
856
+
857
+ type node =
858
+ {
859
+ id: String,
860
+ data: Revox::AssistantUpdateParams::PromptFlow::Node::Data,
861
+ position: Revox::AssistantUpdateParams::PromptFlow::Node::Position,
862
+ type: :promptBlock
863
+ }
864
+
865
+ class Node < Revox::Internal::Type::BaseModel
866
+ attr_accessor id: String
867
+
868
+ attr_accessor data: Revox::AssistantUpdateParams::PromptFlow::Node::Data
869
+
870
+ attr_accessor position: Revox::AssistantUpdateParams::PromptFlow::Node::Position
871
+
872
+ attr_accessor type: :promptBlock
873
+
874
+ def initialize: (
875
+ id: String,
876
+ data: Revox::AssistantUpdateParams::PromptFlow::Node::Data,
877
+ position: Revox::AssistantUpdateParams::PromptFlow::Node::Position,
878
+ ?type: :promptBlock
879
+ ) -> void
880
+
881
+ def to_hash: -> {
882
+ id: String,
883
+ data: Revox::AssistantUpdateParams::PromptFlow::Node::Data,
884
+ position: Revox::AssistantUpdateParams::PromptFlow::Node::Position,
885
+ type: :promptBlock
886
+ }
887
+
888
+ type data = { body: String, title: String }
889
+
890
+ class Data < Revox::Internal::Type::BaseModel
891
+ attr_accessor body: String
892
+
893
+ attr_accessor title: String
894
+
895
+ def initialize: (body: String, title: String) -> void
896
+
897
+ def to_hash: -> { body: String, title: String }
898
+ end
899
+
900
+ type position = { x: Float, y_: Float }
901
+
902
+ class Position < Revox::Internal::Type::BaseModel
903
+ attr_accessor x: Float
904
+
905
+ attr_accessor y_: Float
906
+
907
+ def initialize: (x: Float, y_: Float) -> void
908
+
909
+ def to_hash: -> { x: Float, y_: Float }
910
+ end
911
+ end
912
+ end
913
+
914
+ type slack =
915
+ {
916
+ channel_id: String,
917
+ connection_id: String,
918
+ outcomes: ::Array[Revox::Models::AssistantUpdateParams::Slack::outcome],
919
+ channel_name: String?,
920
+ template: String?
921
+ }
922
+
923
+ class Slack < Revox::Internal::Type::BaseModel
924
+ attr_accessor channel_id: String
925
+
926
+ attr_accessor connection_id: String
927
+
928
+ attr_accessor outcomes: ::Array[Revox::Models::AssistantUpdateParams::Slack::outcome]
929
+
930
+ attr_accessor channel_name: String?
931
+
932
+ attr_accessor template: String?
933
+
934
+ def initialize: (
935
+ channel_id: String,
936
+ connection_id: String,
937
+ outcomes: ::Array[Revox::Models::AssistantUpdateParams::Slack::outcome],
938
+ ?channel_name: String?,
939
+ ?template: String?
940
+ ) -> void
941
+
942
+ def to_hash: -> {
943
+ channel_id: String,
944
+ connection_id: String,
945
+ outcomes: ::Array[Revox::Models::AssistantUpdateParams::Slack::outcome],
946
+ channel_name: String?,
947
+ template: String?
948
+ }
949
+
950
+ type outcome =
951
+ :not_interested
952
+ | :interested
953
+ | :completed
954
+ | :requested_callback_later
955
+ | :requested_callback_new_number
956
+ | :do_not_contact
957
+ | :ai_averse
958
+ | :none
959
+
960
+ module Outcome
961
+ extend Revox::Internal::Type::Enum
962
+
963
+ NOT_INTERESTED: :not_interested
964
+ INTERESTED: :interested
965
+ COMPLETED: :completed
966
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
967
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
968
+ DO_NOT_CONTACT: :do_not_contact
969
+ AI_AVERSE: :ai_averse
970
+ NONE: :none
971
+
972
+ def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::Slack::outcome]
973
+ end
974
+ end
975
+
320
976
  type structured_output_config =
321
977
  {
322
978
  name: String,
@@ -373,11 +1029,93 @@ module Revox
373
1029
  end
374
1030
  end
375
1031
 
1032
+ type stt_context =
1033
+ {
1034
+ general: ::Array[Revox::AssistantUpdateParams::SttContext::General],
1035
+ terms: ::Array[String]
1036
+ }
1037
+
1038
+ class SttContext < Revox::Internal::Type::BaseModel
1039
+ attr_accessor general: ::Array[Revox::AssistantUpdateParams::SttContext::General]
1040
+
1041
+ attr_accessor terms: ::Array[String]
1042
+
1043
+ def initialize: (
1044
+ general: ::Array[Revox::AssistantUpdateParams::SttContext::General],
1045
+ terms: ::Array[String]
1046
+ ) -> void
1047
+
1048
+ def to_hash: -> {
1049
+ general: ::Array[Revox::AssistantUpdateParams::SttContext::General],
1050
+ terms: ::Array[String]
1051
+ }
1052
+
1053
+ type general = { key: String, value: String }
1054
+
1055
+ class General < Revox::Internal::Type::BaseModel
1056
+ attr_accessor key: String
1057
+
1058
+ attr_accessor value: String
1059
+
1060
+ def initialize: (key: String, value: String) -> void
1061
+
1062
+ def to_hash: -> { key: String, value: String }
1063
+ end
1064
+ end
1065
+
1066
+ type stt_model = :"stt-rt-v4" | :"stt-rt-v5"
1067
+
1068
+ module SttModel
1069
+ extend Revox::Internal::Type::Enum
1070
+
1071
+ STT_RT_V4: :"stt-rt-v4"
1072
+ STT_RT_V5: :"stt-rt-v5"
1073
+
1074
+ def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::stt_model]
1075
+ end
1076
+
1077
+ type thinking_sound =
1078
+ :"city-ambience.ogg"
1079
+ | :"forest-ambience.ogg"
1080
+ | :"office-ambience.ogg"
1081
+ | :"crowded-room.ogg"
1082
+ | :"keyboard-typing.ogg"
1083
+ | :"keyboard-typing2.ogg"
1084
+ | :"hold_music.ogg"
1085
+
1086
+ module ThinkingSound
1087
+ extend Revox::Internal::Type::Enum
1088
+
1089
+ CITY_AMBIENCE_OGG: :"city-ambience.ogg"
1090
+ FOREST_AMBIENCE_OGG: :"forest-ambience.ogg"
1091
+ OFFICE_AMBIENCE_OGG: :"office-ambience.ogg"
1092
+ CROWDED_ROOM_OGG: :"crowded-room.ogg"
1093
+ KEYBOARD_TYPING_OGG: :"keyboard-typing.ogg"
1094
+ KEYBOARD_TYPING2_OGG: :"keyboard-typing2.ogg"
1095
+ HOLD_MUSIC_OGG: :"hold_music.ogg"
1096
+
1097
+ def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::thinking_sound]
1098
+ end
1099
+
1100
+ type type_ = :standalone | :"multi-step" | :"sub-assistant"
1101
+
1102
+ module Type
1103
+ extend Revox::Internal::Type::Enum
1104
+
1105
+ STANDALONE: :standalone
1106
+ MULTI_STEP: :"multi-step"
1107
+ SUB_ASSISTANT: :"sub-assistant"
1108
+
1109
+ def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::type_]
1110
+ end
1111
+
376
1112
  type voice =
377
1113
  {
378
1114
  id: String,
379
1115
  provider: Revox::Models::AssistantUpdateParams::Voice::provider,
380
- speed: Float
1116
+ model: Revox::Models::AssistantUpdateParams::Voice::model,
1117
+ speed: Float,
1118
+ volume: Float
381
1119
  }
382
1120
 
383
1121
  class Voice < Revox::Internal::Type::BaseModel
@@ -385,20 +1123,34 @@ module Revox
385
1123
 
386
1124
  attr_accessor provider: Revox::Models::AssistantUpdateParams::Voice::provider
387
1125
 
1126
+ attr_reader model: Revox::Models::AssistantUpdateParams::Voice::model?
1127
+
1128
+ def model=: (
1129
+ Revox::Models::AssistantUpdateParams::Voice::model
1130
+ ) -> Revox::Models::AssistantUpdateParams::Voice::model
1131
+
388
1132
  attr_reader speed: Float?
389
1133
 
390
1134
  def speed=: (Float) -> Float
391
1135
 
1136
+ attr_reader volume: Float?
1137
+
1138
+ def volume=: (Float) -> Float
1139
+
392
1140
  def initialize: (
393
1141
  id: String,
394
1142
  provider: Revox::Models::AssistantUpdateParams::Voice::provider,
395
- ?speed: Float
1143
+ ?model: Revox::Models::AssistantUpdateParams::Voice::model,
1144
+ ?speed: Float,
1145
+ ?volume: Float
396
1146
  ) -> void
397
1147
 
398
1148
  def to_hash: -> {
399
1149
  id: String,
400
1150
  provider: Revox::Models::AssistantUpdateParams::Voice::provider,
401
- speed: Float
1151
+ model: Revox::Models::AssistantUpdateParams::Voice::model,
1152
+ speed: Float,
1153
+ volume: Float
402
1154
  }
403
1155
 
404
1156
  type provider = :cartesia | :elevenlabs
@@ -411,6 +1163,96 @@ module Revox
411
1163
 
412
1164
  def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::Voice::provider]
413
1165
  end
1166
+
1167
+ type model = :"sonic-3" | :"sonic-3.5"
1168
+
1169
+ module Model
1170
+ extend Revox::Internal::Type::Enum
1171
+
1172
+ SONIC_3: :"sonic-3"
1173
+ SONIC_3_5: :"sonic-3.5"
1174
+
1175
+ def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::Voice::model]
1176
+ end
1177
+ end
1178
+
1179
+ type zoho =
1180
+ {
1181
+ connection_id: String,
1182
+ field_mapping: ::Array[Revox::AssistantUpdateParams::Zoho::FieldMapping],
1183
+ log_call_activity: bool,
1184
+ module_: String,
1185
+ outcomes: ::Array[Revox::Models::AssistantUpdateParams::Zoho::outcome],
1186
+ template: String?
1187
+ }
1188
+
1189
+ class Zoho < Revox::Internal::Type::BaseModel
1190
+ attr_accessor connection_id: String
1191
+
1192
+ attr_accessor field_mapping: ::Array[Revox::AssistantUpdateParams::Zoho::FieldMapping]
1193
+
1194
+ attr_accessor log_call_activity: bool
1195
+
1196
+ attr_accessor module_: String
1197
+
1198
+ attr_accessor outcomes: ::Array[Revox::Models::AssistantUpdateParams::Zoho::outcome]
1199
+
1200
+ attr_accessor template: String?
1201
+
1202
+ def initialize: (
1203
+ connection_id: String,
1204
+ field_mapping: ::Array[Revox::AssistantUpdateParams::Zoho::FieldMapping],
1205
+ log_call_activity: bool,
1206
+ module_: String,
1207
+ outcomes: ::Array[Revox::Models::AssistantUpdateParams::Zoho::outcome],
1208
+ ?template: String?
1209
+ ) -> void
1210
+
1211
+ def to_hash: -> {
1212
+ connection_id: String,
1213
+ field_mapping: ::Array[Revox::AssistantUpdateParams::Zoho::FieldMapping],
1214
+ log_call_activity: bool,
1215
+ module_: String,
1216
+ outcomes: ::Array[Revox::Models::AssistantUpdateParams::Zoho::outcome],
1217
+ template: String?
1218
+ }
1219
+
1220
+ type field_mapping = { source: String, zoho_field: String }
1221
+
1222
+ class FieldMapping < Revox::Internal::Type::BaseModel
1223
+ attr_accessor source: String
1224
+
1225
+ attr_accessor zoho_field: String
1226
+
1227
+ def initialize: (source: String, zoho_field: String) -> void
1228
+
1229
+ def to_hash: -> { source: String, zoho_field: String }
1230
+ end
1231
+
1232
+ type outcome =
1233
+ :not_interested
1234
+ | :interested
1235
+ | :completed
1236
+ | :requested_callback_later
1237
+ | :requested_callback_new_number
1238
+ | :do_not_contact
1239
+ | :ai_averse
1240
+ | :none
1241
+
1242
+ module Outcome
1243
+ extend Revox::Internal::Type::Enum
1244
+
1245
+ NOT_INTERESTED: :not_interested
1246
+ INTERESTED: :interested
1247
+ COMPLETED: :completed
1248
+ REQUESTED_CALLBACK_LATER: :requested_callback_later
1249
+ REQUESTED_CALLBACK_NEW_NUMBER: :requested_callback_new_number
1250
+ DO_NOT_CONTACT: :do_not_contact
1251
+ AI_AVERSE: :ai_averse
1252
+ NONE: :none
1253
+
1254
+ def self?.values: -> ::Array[Revox::Models::AssistantUpdateParams::Zoho::outcome]
1255
+ end
414
1256
  end
415
1257
  end
416
1258
  end