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