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