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